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
>> resin-interest@caucho.com
>> http://maillist.caucho.com/mailman/listinfo/resin-interest
>> 
> 
> 
> 
> _______________________________________________
> resin-interest mailing list
> resin-interest@caucho.com
> http://maillist.caucho.com/mailman/listinfo/resin-interest



_______________________________________________
resin-interest mailing list
resin-interest@caucho.com
http://maillist.caucho.com/mailman/listinfo/resin-interest

Reply via email to