Running nsproxy on debian linux, I quite frequently get this:

Fatal: received fatal signal 11

and then the server becomes unresponsive. It seems to happen at random. I can't (regularly) reproduce it in a simple test case, but it does happen most times in the test case (which I have included at the end of this message) This happens sometimes on the first try, sometimes on the hundredth, and it happens whether I have 1 proxy in the pool or 10.

Update: while I was typing this, I think I found something... if I execute a bunch of ns_proxy evals, like via my apache bench testing, it will usually fail at some point after the requests. Sometimes it appears to be *during* the requests because the time between when the first one starts and the last one ends can be 20 or more seconds. At some random interval after I start using ns_proxy, I get this:

[01/Sep/2006:12:21:52][8252.114696][-conn:2-] Notice: exiting: timeout waiting for connection [01/Sep/2006:12:21:52][8252.131081][-conn:3-] Notice: exiting: timeout waiting for connection [01/Sep/2006:12:21:52][8252.131081][-conn:3-] Fatal: received fatal signal 11

You should be able to verify this using the script I have below on a clean nsd with nsproxy loaded. Go to the ADP web page one time (to make sure that the config just happens one). Reload quickly a dozen or so times. Wait several minutes. This will eventually appear in your logs and the server becomes unresponsive. On my box it appears to happen after exactly 2 minutes. It doesn't ALWAYS happen though. But most of the time.

Also, unlike db handles, if you have only one proxy (-max 1) and you try to get 2 concurrently you get this error:
could not get 1 handle from pool "tclport": allocation deadlock
wrapping it in a mutex seems to take care of that, but I thought it should be noted.



One other thing I noticed when I tried to make a test case was that in my test case I get this all the time:
Error: waitpid(7948) failed: No child processes
It doesn't seem to cause any problems, just curious what it means.

my test case looks like this (in an ADP obviously). I am running apache bench on it with 5 concurrent connections usually.
<%
if ![ nsv_exists . proxytest ] {
   nsv_set . proxytest 1
   ns_proxy config test -max 10 -evaltimeout 20000
}

set handle [ns_proxy get test]
set time [expr int(rand()*1500)]
if [catch { set return [ns_proxy eval $handle "puts before-$handle-$time; after $time; puts after-$handle; return $time"] } err] {
   ns_adp_puts $err
}
if { $return != $time } { ns_adp_puts "ERROR" } else { ns_adp_puts OK }
ns_proxy release $handle
%>


P.S. I haven't been able to put any more time into compiling a windows version. If someone could give me a compiled version that would be great. Otherwise I'll work on it when I get a chance.


Rusty


--
AOLserver - http://www.aolserver.com/

To Remove yourself from this list, simply send an email to <[EMAIL PROTECTED]> 
with the
body of "SIGNOFF AOLSERVER" in the email message. You can leave the Subject: 
field of your email blank.

Reply via email to