(address . bug-guile@gnu.org)(name . Mark H Weaver)(address . mhw@netris.org)
Hello,
In Guile 2.2.5, if you run:
./meta/guile examples/web/hello.scm &
wget -O - http://localhost:8080
You’ll notice that ‘wget’ hangs (never receives a response) because the
server is actually stuck in a read(2) call that will never complete, in
‘read-headers’.
Reverting 73cde5ed7218a090ecee888870908af5445796f0 solves the problem.
AIUI, before that commit, ‘read-header-line’ would read exactly one
line. After this change, it calls ‘lookahead-char’, which can block,
and that’s exactly what’s happening here.
I don’t know how HTTP continuation lines work, so I’m not sure what a
correct fix would look like. Mark, WDYT?
I also noticed that there are no unit tests for (web server), which we
should probably address while we’re at it. :-)
Thanks,
Ludo’.