Short answer: The rails log shows it successfully processed. The strace of the Railsrunner shows it trying and closing the socket 3 times, and the web server agrees. I think perhaps it's something wrong with the LSAPI hating it when yous end a Status: header with the result?
LITESPEED LOG
2006-12-09 09:50:06.521 [DEBUG] [127.0.0.1:64798-0#storywrite] New request:
Method=[HEAD], URI=[/testas4],
QueryString=[]
Content Length=0
REWRITE] Rule: Match '/testas4' with pattern '^.*$', result: 1
REWRITE] stat( /Users/inspire/Projects/storywrite/public/../../down.html ) failed
REWRITE] Rule: Match '/testas4' with pattern '^$', result: -1
REWRITE] Rule: Match '/testas4' with pattern '^([^.]+)$', result: 2
REWRITE] Source URI: '/testas4' => Result URI: '/testas4.html'
REWRITE] Rule: Match '/testas4.html' with pattern '^(.*)$', result: 2
REWRITE] stat( /Users/inspire/Projects/storywrite/public/testas4.html ) failed
REWRITE] Source URI: '/testas4.html' => Result URI: 'dispatch.cgi'
REWRITE] Last Rule, stop!
Find context with URI: [/dispatch.cgi], location: []
processContextPath() return 0
run lsapi processor.
request [127.0.0.1:64798-0#storywrite:lsapi] is assigned with connection!
[ExtConn] reconnect()
[ExtConn] connecting to [uds://tmp/lshttpd/storywrite:_.sock]...
ExtConn:
nWrite()
request header is done
ExtConn::continueRead()
Request body done!
ExtConn::suspendWrite()
processNewReq() return 0.
ExtConn:
nRead()
LsapiConn::doRead()
process packet header 8 bytes
process packet header 0 bytes
ExtConn:
nRead()
LsapiConn::doRead()
process packet header -1 bytes
connection to [uds://tmp/lshttpd/storywrite:_.sock] on request #0, error: Connection reset by peer!
[ExtConn] close()
No Request has been processed successfully through this connection, the maximum connections allowed will be reduced!
HttpExtConnector::tryRecover()...
trying to recover from connection problem, attempt: #1!
request [127.0.0.1:64798-0#storywrite:lsapi] is assigned with connection!
[ExtConn] reconnect()
[ExtConn] connecting to [uds://tmp/lshttpd/storywrite:_.sock]...
ExtConn:
nWrite()
request header is done
ExtConn::continueRead()
Request body done!
ExtConn::suspendWrite()
ExtConn:
nRead()
LsapiConn::doRead()
process packet header 8 bytes
process packet header 0 bytes
ExtConn:
nRead()
LsapiConn::doRead()
process packet header -1 bytes
connection to [uds://tmp/lshttpd/storywrite:_.sock] on request #0, error: Connection reset by peer!
[ExtConn] close()
No Request has been processed successfully through this connection, the maximum connections allowed will be reduced!
HttpExtConnector::tryRecover()...
trying to recover from connection problem, attempt: #2!
request [127.0.0.1:64798-0#storywrite:lsapi] is assigned with connection!
[ExtConn] reconnect()
[ExtConn] connecting to [uds://tmp/lshttpd/storywrite:_.sock]...
ExtConn:
nWrite()
request header is done
ExtConn::continueRead()
Request body done!
ExtConn::suspendWrite()
ExtConn:
nRead()
LsapiConn::doRead()
process packet header 8 bytes
process packet header 0 bytes
o such file or directory
o such file or directory
ExtConn:
nRead()
LsapiConn::doRead()
process packet header -1 bytes
connection to [uds://tmp/lshttpd/storywrite:_.sock] on request #0, error: Connection reset by peer!
[ExtConn] close()
No Request has been processed successfully through this connection, the maximum connections allowed will be reduced!
HttpExtConnector::tryRecover()...
HttpIOLink::continueWrite()...
write resumed!
HttpIOLink::handleEvents() events=4!
HttpIOLink::suspendWrite()...
HttpConnection::sendHttpError(),code=503 Service Unavailable
HttpConnection::flush()!
Written to client: 111
HttpConnection::nextRequest()!
HttpExtConnector::cleanUp() ...
abort request...
release ExtProcessor!
Non-KeepAlive, CLOSING!
Shutting down out-bound socket ...
HttpIOLink::handleEvents() events=17!
Close socket ...
******* STRACE OF RAILSRUNNER
select(1, [0], NULL, NULL, {1, 0}) = 1 (in [0], left {0, 525000})
--- SIGCHLD (Child exited) @ 0 (0) ---
wait4(-1, [{WIFEXITED(s) && WEXITSTATUS(s) == 1}], WNOHANG|WSTOPPED, NULL) = 8839
wait4(-1, 0x7fbfffd454, WNOHANG|WSTOPPED, NULL) = 0
rt_sigreturn(0xffffffffffffffff) = 1
nanosleep({0, 10000}, NULL) = 0
select(1, [0], NULL, NULL, {0, 0}) = 1 (in [0], left {0, 0})
accept(0, {sa_family=AF_FILE, path="??<"}, [18051271735726047234]) = 3
clone(child_stack=0, flags=CLONE_CHILD_CLEARTID|CLONE_CHILD_SETTID|SIGCHLD, child_tidptr=0x2a955619d0) = 9153
close(3) = 0
select(1, [0], NULL, NULL, {1, 0}) = 0 (Timeout)
kill(8492, SIG_0) = 0
select(1, [0], NULL, NULL, {1, 0}) = ? ERESTARTNOHAND (To be restarted)
--- SIGCHLD (Child exited) @ 0 (0) ---
wait4(-1, [{WIFEXITED(s) && WEXITSTATUS(s) == 1}], WNOHANG|WSTOPPED, NULL) = 9153
wait4(-1, 0x7fbfffd454, WNOHANG|WSTOPPED, NULL) = 0
rt_sigreturn(0xffffffffffffffff) = -1 EINTR (Interrupted system call)
select(1, [0], NULL, NULL, {0, 953000}) = 1 (in [0], left {0, 575000})
nanosleep({0, 10000}, 0) = ? ERESTART_RESTARTBLOCK (To be restarted)
--- SIGCHLD (Child exited) @ 0 (0) ---
wait4(-1, [{WIFEXITED(s) && WEXITSTATUS(s) == 1}], WNOHANG|WSTOPPED, NULL) = 8502
wait4(-1, 0x7fbfffd474, WNOHANG|WSTOPPED, NULL) = -1 ECHILD (No child processes)
rt_sigreturn(0xffffffffffffffff) = -1 EINTR (Interrupted system call)
select(1, [0], NULL, NULL, {0, 0}) = 1 (in [0], left {0, 0})
accept(0, {sa_family=AF_FILE, path="??<"}, [18051271735726047234]) = 3
clone(child_stack=0, flags=CLONE_CHILD_CLEARTID|CLONE_CHILD_SETTID|SIGCHLD, child_tidptr=0x2a955619d0) = 9154
close(3) = 0
select(1, [0], NULL, NULL, {1, 0}) = 0 (Timeout)
kill(8492, SIG_0) = 0
select(1, [0], NULL, NULL, {1, 0}) = ? ERESTARTNOHAND (To be restarted)
--- SIGCHLD (Child exited) @ 0 (0) ---
wait4(-1, [{WIFEXITED(s) && WEXITSTATUS(s) == 1}], WNOHANG|WSTOPPED, NULL) = 9154
wait4(-1, 0x7fbfffd454, WNOHANG|WSTOPPED, NULL) = -1 ECHILD (No child processes)
rt_sigreturn(0xffffffffffffffff) = -1 EINTR (Interrupted system call)
select(1, [0], NULL, NULL, {0, 934000}) = 0 (Timeout)
****** RAILS LOG ********
Processing UserController#show (for 67.171.73.40 at 2006-12-09 09:17:35) [HEAD]
Session ID: 0ca5e149498d890db933851b193e6421
Parameters: {"action"=>"show", "id"=>"testas6", "controller"=>"user"}
*application.rb:124 reloading vars, last was 2 hours ago
MemCache Get online
MemCache Get user/show/testas6
User Load (0.000910) SELECT * FROM users WHERE (name='testas6') LIMIT 1
Namechange Load (0.000369) SELECT * FROM ap.namechanges WHERE (start='testas6') ORDER BY created_at desc LIMIT 1
Rendering public/404.html (404)
MemCache Put session:0ca5e149498d890db933851b193e6421 expires 0
UserController: missing default helper path user_helper
MemCache Get session:bda40d81bf8501de7187f7beb6b71e3f