On Apr 9, 2010, at 9:23 AM, Scott Ferguson wrote:
> Rob Lockstone wrote:
>> This is Resin Pro 4.0.5 running on a non-busy OS X machine.
>>
>> When I perform curl -I requests (which just retrieves the header
>> information from the server) to a simple jsp page, sometimes it
>> returns the header, but other times the curl request responds with:
> Can you try the new snapshot at
> http://caucho.com/download/resin-pro-4_0-snap.tar.gz?
>
> We've updated some of the read timeout code, but I haven't been able to
> duplicate that exact behavior.
The snapshot has been running for a couple days now without timing out. So that
seems to be working in the snapshot.
However, the original problem that caused me to start looking into this is
still there. I can't get resin 4.x to reliably serve media files, e.g. an mp3
file. This worked fine in 3.1.x.
The entry for mp3 in the app-default.xml is:
<mime-mapping extension=".mp3" mime-type="audio/mpeg"/>
Here is what the logs show when an attempt is made to access an mp3 file via a
browser:
{http://*:8080-384} TcpSocketLink[id=384]starting connection
TcpConnection[id=http://*:8080-384,http://*:8080,ACCEPT], total=2
{http://*:8080-384} Http[384] GET /media/AnMP3.mp3 HTTP/1.1
{http://*:8080-384} Http[384] Remote-IP: an.ip.address:46471
{http://*:8080-384} Http[384] Host: ahostname.com
{http://*:8080-384} Http[384] User-Agent: Mozilla/5.0 (Macintosh; U; Intel Mac
OS X 10_6_3; en-us) AppleWebKit/531.22.7 (KHTML, like Gecko) Version/4.0.5
Safari/531.22.7
{http://*:8080-384} Http[384] Cache-Control: max-age=0
{http://*:8080-384} Http[384] Accept:
application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5
{http://*:8080-384} Http[384] Accept-Language: en-us
{http://*:8080-384} Http[384] Accept-Encoding: gzip, deflate
{http://*:8080-384} Http[384] Connection: keep-alive
{http://*:8080-384} Dispatch '/media/AnMP3.mp3' to
AccessLogFilterChain[http://www.ahostname.com,
next=CacheFilterChain[/media/AnMP3.mp3?null,
next=WebAppFilterChain[http://www.ahostname.com,
next=ServletFilterChain[resin-file]]]]
{http://*:8080-384} using cache: /media/AnMP3.mp3
{http://*:8080-384} Http[384] HTTP/1.1 304 Not Modified
{http://*:8080-384} Http[384] ETag: "AaG2y8FQvm+"
{http://*:8080-384} Http[384] Last-Modified: Sat, 08 Nov 2008 20:44:49 GMT
{http://*:8080-384} Http[384] Accept-Ranges: bytes
{http://*:8080-384} Http[384] Cache-Control: max-age=5
{http://*:8080-384} Http[384] Expires: Mon, 12 Apr 2010 20:07:43 GMT
{http://*:8080-384} Http[384] finish/keepalive
{http://*:8080-384} Http[384] GET /favicon.ico HTTP/1.1
{http://*:8080-384} Http[384] Remote-IP: an.ip.address:46471
{http://*:8080-384} Http[384] Host: ahostname.com
{http://*:8080-384} Http[384] Referer: http://ahostname.com/media/AnMP3.mp3
{http://*:8080-384} Http[384] Cache-Control: max-age=0
{http://*:8080-384} Http[384] User-Agent: Mozilla/5.0 (Macintosh; U; Intel Mac
OS X 10_6_3; en-us) AppleWebKit/531.22.7 (KHTML, like Gecko) Version/4.0.5
Safari/531.22.7
{http://*:8080-384} Http[384] Accept: */*
{http://*:8080-384} Http[384] Accept-Language: en-us
{http://*:8080-384} Http[384] Accept-Encoding: gzip, deflate
{http://*:8080-384} Http[384] Connection: keep-alive
{http://*:8080-384} Dispatch '/favicon.ico' to
AccessLogFilterChain[http://www.ahostname.com,
next=CacheFilterChain[/favicon.ico?null,
next=WebAppFilterChain[http://www.ahostname.com,
next=ServletFilterChain[resin-file]]]]
{http://*:8080-384} using cache: /favicon.ico
{http://*:8080-384} Http[384] HTTP/1.1 200 OK
{http://*:8080-384} Http[384] ETag: "HbeaWcJZM5Q"
{http://*:8080-384} Http[384] Last-Modified: Mon, 16 Jun 2008 19:05:25 GMT
{http://*:8080-384} Http[384] Accept-Ranges: bytes
{http://*:8080-384} Http[384] Cache-Control: max-age=5
{http://*:8080-384} Http[384] Expires: Mon, 12 Apr 2010 20:07:43 GMT
{http://*:8080-384} Http[384] Content-Length: 3638
{http://*:8080-384} Http[384] write-set-offset(3894)
{http://*:8080-384} Http[384] finish/keepalive
30 seconds later:
{http://*:8080-384}
TcpConnection[id=http://*:8080-384,http://*:8080,REQUEST_KEEPALIVE] add
keepalive (select fd=55)
{resin-select-manager-0}
TcpConnection[id=http://*:8080-384,http://*:8080,REQUEST_KEEPALIVE] wake
keepalive (select fd=55)
{http://*:8080-384} TcpSocketLink[id=384] keepalive (select)
{http://*:8080-384} TcpSocketLink[id=384] closing connection
TcpConnection[id=http://*:8080-384,http://*:8080,CLOSED], total=4
A separate request, just for the header, using the curl -I command returns the
correct Content-Type and Content-Length and logs that same information in the
server log. But I don't see a reference to the Content-Type in the above
request (which was from a browser), and the Content-Length is only 3638 bytes.
Admittedly, I don't know exactly what resin is logging or why.
Rob
>
> -- Scott
>>
>> curl: (52) Empty reply from server
>>
>> Also, if I remove the -I from the curl request, it will download the
>> contents of the page, but again, it sometimes works, but other other
>> times it gets an "Empty reply from server" response.
>>
>> However, loading pages in a browser seems to work consistently. I
>> tried commenting out the cache block in resin.xml, and that does lead
>> to page load failures in the browser. So I suspect this has something
>> to do with resin's caching, but not sure what. ???
>>
>> With the log level set to "finer", I'm seeing the following messages
>> in resin's logs.
>>
>> This first set is for a successful curl -I request:
>>
>> {http://*:8080-3} TcpConnection[id=3]starting connection
>> TcpConnection[id=http://*:8080-3,http://*:8080,ACCEPT],
>> <http://*:8080,ACCEPT%5D,> total=3
>> {http://*:8080-3} Http[3] HEAD /some.jsp HTTP/1.1
>> {http://*:8080-3} Http[3] Remote-IP: an.ip.address:49390
>> {http://*:8080-3} Http[3] User-Agent: curl/7.19.7
>> (universal-apple-darwin10.0) libcurl/7.19.7 OpenSSL/0.9.8l zlib/1.2.3
>> {http://*:8080-3} Http[3] Host: somehost.com <http://somehost.com>
>> {http://*:8080-3} Http[3] Accept: */*
>> {http://*:8080-3} Dispatch '/some.jsp' to
>> AccessLogFilterChain[http://www.somehost.com,
>> next=CacheFilterChain[/some.jsp?null,
>> next=WebAppFilterChain[http://www.somehost.com,
>> next=PageFilterChain[JspServlet[WebApp[http://www.somehost.com]]]]]]
>> {http://*:8080-3} SessionImpl[aaaeeoksxMIpE9HDBsAFs,] new
>> {http://*:8080-3} SessionImpl[aaaeeoksxMIpE9HDBsAFs,] create session
>> {http://*:8080-3} Http[3] HTTP/1.1 200 OK
>> {http://*:8080-3} Http[3] Cache-Control: private
>> {http://*:8080-3} Http[3] Set-Cookie:
>> JSESSIONID=aaaeeoksxMIpE9HDBsAFs; path=/
>> {http://*:8080-3} Http[3] Content-Type: text/html; charset=utf-8
>> {http://*:8080-3} Http[3] Content-Length: 378
>> {http://*:8080-3} Http[3] finish/keepalive
>> {http://*:8080-3} Http[3] read timeout
>> {http://*:8080-3} TcpConnection[id=3] closing connection
>> TcpConnection[id=http://*:8080-3,http://*:8080,CLOSED],
>> <http://*:8080,CLOSED%5D,> total=3
>>
>>
>> And this is what resin logs when curl gets the "Empty reply from server":
>>
>> {http://*:8080-5} TcpConnection[id=5]starting connection
>> TcpConnection[id=http://*:8080-5,http://*:8080,ACCEPT],
>> <http://*:8080,ACCEPT%5D,> total=3
>> {http://*:8080-5} Http[5] read timeout
>> {http://*:8080-5} TcpConnection[id=5] closing connection
>> TcpConnection[id=http://*:8080-5,http://*:8080,CLOSED],
>> <http://*:8080,CLOSED%5D,> total=3
>>
>> Any thoughts? I'm using the same configuration as I had with Resin Pro
>> 4.0.2 and I don't think it was happening with that version. But
>> admittedly, I didn't try doing this with that version as I had no
>> reason to suspect anything was wrong.
>>
>> Rob
>>
>> ------------------------------------------------------------------------
>>
>> _______________________________________________
>> resin-interest mailing list
>> [email protected]
>> http://maillist.caucho.com/mailman/listinfo/resin-interest
>>
>
>
>
> _______________________________________________
> resin-interest mailing list
> [email protected]
> http://maillist.caucho.com/mailman/listinfo/resin-interest
_______________________________________________
resin-interest mailing list
[email protected]
http://maillist.caucho.com/mailman/listinfo/resin-interest