As soon as I find one bug [1] than I find another one.
In an unrelated program.
Sigh.
In this case, the bug was in my gopher server [2], or rather, the custom module for the gopher server [3] that serves up my blog entries. Earlier this month, I rewrote parts of that module [4] to convert HTML (HyperText Markup Language) to text and I munged the part that serves up ancillary files like images. I found the bug as I was pulling links for the previous entry [5] when I came across this entry [6] from last year about the horrible job Lynx [7] was doing converting HTML to text. In that post, I wrote what I would like to see and I decided to check how good of a job I did.
It's pretty much spot on, but I for some reason decided to view the image on that entry (via gopher), and that's when I found the bug.
The image never downloaded because the coroutine handling the request crashed, which triggered a call to assert() causing the server to stop running.
Oops.
The root cause was I forgot to prepend the storage path to the ancilliary files. And with that out of the way … [8]
[2] gopher://gopher.conman.org:70/1
[3] https://github.com/spc476/port70