[mod-lisp-devel] Re: [tbnl-devel] Odd behavior (socket leak)

pete-tbnl-dev at kazmier.com pete-tbnl-dev at kazmier.com
Fri Jul 16 16:31:07 UTC 2004


On Thu, Jul 15, 2004 at 05:22:52PM -0400, pete-tbnl-dev at kazmier.com wrote:

> In any case, I've been banging my head all day, I need a break, but it
> would be appreciated if someone could either confirm or deny the opening
> of multiple sockets while never closing any of the old ones.  Its easy
> to see via a 'netstat -an | grep 3000' (or whatever port you run it on).

Upon further thought, isn't this behavior to be expected?  I.e. as
requests come into Apache, and Apache dispatches them to one or more of
its children (processes/threads), doesn't each child via the mod_lisp
handler create its own connection to TBNL on port 3000?  And since 
Keep-Socket is "1", this is the reason why I never see any of the 
sockets closing.  Thus, I should expect to see a socket for every child 
Apache process/thread, right?  Or does mod_lisp make sure the same 
socket is used for all cases?  This does not appear to be the case as I
do see TBNL accept more than one connection on port 3000.  Obviously, 
I'm not very familiar with the Apache API or mod_lisp.

Back to my original problem, I'm still a little confused as to why I
can't get a simple page that includes 3 style links (irrelevant I
suspect other than it does cause multiple requests to occur in a very 
short amount of time perhaps on different sockets from the client) in
it to load properly under any combination of mod_lisp, TBNL and lisp 
implementation.  I've tried using SBCL, CMUCL, Apache 1.x
(w/ modlisp-2.33), Apache 2.x (w/ modlisp for 2.x Apache).  The symptom
is the same, the web browser just sits there and hangs until the 
mod_lisp module times out reading from TBNL.

Debugging the mod_lisp module seems to indicate that mod_lisp just sits
there waiting for a response from TBNL.  This seems to only occur for
one of the four initial requests that it sent to TBNL (one of the style
links).  My only guess is that perhaps TBNL is somehow writing its 
response to the wrong *apache-stream* as mod_lisp handler does open
multiple connections to TBNL on port 3000.  I'm new to lisp and I'm not
quite sure how special variables work in a multithreaded app or one that
uses the CMUCL event loop.

I look forward to your return Edi for some enlightenment!  :-)

Thanks,
Pete





More information about the mod-lisp-devel mailing list