Dr. Thomas Fischbacher <email@example.com>
| Not infrequently, a web request returns an empty page. If I tcpdump the
| communication between apache and lisp, I see that a proper request is
| sent by mod_lisp to the lisp process, but this TCP packet causes
| a TCP RST reply. Lisp-wise, the incoming request is not noticed in any
| way, as it seems.
| My initial guess was that the *modlisp-socket* socket was closed on the
| lisp side while there's still data in the recv buffer, hence the RST.
| But strange enough, this behaviour (i.e. sending out RST replies)
| persists if I alien-funcall shutdown(2) in kmrcl:close-active-socket
| (which is used to shut down the modlisp socket).
You might have some or all of your output page still buffered in
the Lisp stream, so make sure that your CL-MODLISP code is doing a
(FINISH-OUTPUT *MODLISP-SOCKET*) or at least (FORCE-OUTPUT *MODLISP-SOCKET*)
before calling the "shutdown(2)".
I ran into this problem early when developin my web-app framework,
too, and adding a FORCE-OUTPUT at the end of each response page
Rob Warnock <firstname.lastname@example.org>
627 26th Avenue <URL:http://rpw3.org/>
San Mateo, CA 94403 (650)572-2607