fastcgi problems (connection hangs/time outs)
Attila Nagy
bra at fsn.hu
Tue Oct 9 14:44:00 MSD 2007
Hello,
As always, I've forgot to tell that this is on FreeBSD 6-STABLE/i386.
I've also tried select instead of kqueue, but nothing happened:
96817 nginx 1191926437.380087 CALL recvfrom(0x9,0x80bc000,0x1000,0,0,0)
96817 nginx 1191926437.380129 GIO fd 9 read 80 bytes
0x0000 0106 0001 002e 0200 5374 6174 7573 3a20 |........Status: |
0x0010 3230 300d 0a43 6f6e 7465 6e74 2d54 7970 |200..Content-Typ|
0x0020 653a 2074 6578 742f 6874 6d6c 0d0a 0d0a |e: text/html....|
0x0030 7661 6c61 6d69 0000 0106 0001 0000 0000 |valami..........|
0x0040 0103 0001 0008 0000 0000 0000 0000 0000 |................|
96817 nginx 1191926437.380134 RET recvfrom 80/0x50
96817 nginx 1191926437.380166 CALL
select(0xa,0x8098a60,0x8098ae0,0,0xbfbfe
a60)
96817 nginx 1191926497.364856 RET select 0
96817 nginx 1191926497.364886 CALL gettimeofday(0xbfbfe9b8,0)
96817 nginx 1191926497.364889 RET gettimeofday 0
96817 nginx 1191926497.364929 CALL write(0x4,0xbfbfe1e0,0xe6)
96817 nginx 1191926497.364951 GIO fd 4 wrote 230 bytes
"2007/10/09 12:41:37 [error] 96817#0: *1 upstream timed out (60:
Operat\
ion timed out) while reading upstream, client: 172.16.129.150,
server:\
localhost, URL: "/", upstream: "fastcgi://127.0.0.1:1026",
host: "jap\
an.asdfghj.private"
"
96817 nginx 1191926497.364955 RET write 230/0xe6
96817 nginx 1191926497.365330 CALL close(0x9)
96817 nginx 1191926497.366573 RET close 0
On 10/09/07 12:23, Attila Nagy wrote:
> Hello,
>
> I have a very simple perl fastcgi application (just for testing) and
> nginx 0.5.32 and 0.6.13.
> With both versions I get nothing in the web browser and the log says
> that there is a timeout.
>
> ktrace of the nginx process: (the first read is from the fcgi program,
> via localhost/TCP, same with unix socket)
> 91364 nginx 1191924703.034159 CALL
> recvfrom(0xa,0x80fa000,0x1000,0,0,0)
> 91364 nginx 1191924703.034195 GIO fd 10 read 85 bytes
> 0x0000 0106 0001 0035 0000 436f 6e74 656e 742d |.....5..Content-|
> 0x0010 7479 7065 3a20 7465 7874 2f68 746d 6c0d |type: text/html.|
> 0x0020 0a43 6f6e 7465 6e74 2d6c 656e 6774 683a |.Content-length:|
> 0x0030 2035 0d0a 0d0a 6865 6c6c 6f0d 0a01 0600 | 5....hello.....|
> 0x0040 0100 0000 0001 0300 0100 0800 0000 0000 |................|
> 0x0050 0000 0000 00 |.....|
>
> 91364 nginx 1191924703.034199 RET recvfrom 85/0x55
> 91364 nginx 1191924703.034229 CALL
> kevent(0x9,0x80b4000,0,0x80c4000,0x200,0xbfbfea60)
> 91364 nginx 1191924763.022580 RET kevent 0
> 91364 nginx 1191924763.022613 CALL gettimeofday(0xbfbfe9b8,0)
> 91364 nginx 1191924763.022616 RET gettimeofday 0
> 91364 nginx 1191924763.022634 CALL
> kevent(0x9,0x80b4000,0,0x80c4000,0x200,0xbfbfea60)
> 91364 nginx 1191924763.032573 RET kevent 0
> 91364 nginx 1191924763.032583 CALL gettimeofday(0xbfbfe9b8,0)
> 91364 nginx 1191924763.032585 RET gettimeofday 0
> 91364 nginx 1191924763.032613 CALL write(0x4,0xbfbfe1e0,0xe6)
> 91364 nginx 1191924763.032635 GIO fd 4 wrote 230 bytes
> "2007/10/09 12:12:43 [error] 91364#0: *1 upstream timed out (60:
> Operat\
> ion timed out) while reading upstream, client: 172.16.129.150,
> server:\
> localhost, URL: "/", upstream: "fastcgi://127.0.0.1:1026",
> host: "jap\
> an.asdfghj.private"
> "
> 91364 nginx 1191924763.032639 RET write 230/0xe6
> 91364 nginx 1191924763.033010 CALL close(0xa)
> 91364 nginx 1191924763.033588 RET close 0
>
> I've also tried the same program with lighttpd and there everything
> works fine:
>
> 90925 lighttpd GIO fd 8 read 85 bytes
> 0x0000 0106 0001 0035 0000 436f 6e74 656e 742d |.....5..Content-|
> 0x0010 7479 7065 3a20 7465 7874 2f68 746d 6c0d |type: text/html.|
> 0x0020 0a43 6f6e 7465 6e74 2d6c 656e 6774 683a |.Content-length:|
> 0x0030 2035 0d0a 0d0a 6865 6c6c 6f0d 0a01 0600 | 5....hello.....|
> 0x0040 0100 0000 0001 0300 0100 0800 0000 0000 |................|
> 0x0050 0000 0000 00 |.....|
>
> 90925 lighttpd RET read 85/0x55
> 90925 lighttpd CALL kevent(0x6,0xbfbfe930,0x1,0,0,0xbfbfe928)
> 90925 lighttpd RET kevent 0
> 90925 lighttpd CALL close(0x8)
> 90925 lighttpd RET close 0
> [...]
> the above little page gets served to the browser.
>
> nginx config:
> worker_processes 1;
> error_log /tmp/nginx.log debug;
> events {
> worker_connections 1024;
> }
> http {
> include mime.types;
> default_type application/octet-stream;
> sendfile on;
> keepalive_timeout 65;
> server {
> listen 80;
> server_name localhost;
> location / {
> include fastcgi_params;
> fastcgi_pass 127.0.0.1:1026;
> fastcgi_param SCRIPT_FILENAME
> /scripts$fastcgi_script_name;
> }
> error_page 500 502 503 504 /50x.html;
> location = /50x.html {
> root /usr/local/www/nginx-dist;
> }
> }
> }
>
> And the program, which serves the fastcgi response:
> use FCGI::Async;
> use IO::Async::Set::IO_Poll;
>
> my $fcgi = FCGI::Async->new(
> port => 1026,
> on_request => sub {
> my ($fcgi, $req) = @_;
> my $page = "hello";
> $req->print_stdout(
> "Content-type: text/html\r\n".
> "Content-length: ".length($page)."\r\n".
> "\r\n".
> $page."\r\n"
> );
> $req->finish();
> }
> );
>
> my $set = IO::Async::Set::IO_Poll->new();
>
> $set->add($fcgi);
> $set->loop_forever;
>
> (but I've tried with a completely different stuff,
> POE::Component::FastCGI and the effect is the same)
>
> Any ideas?
>
> ps: please keep me on CC.
>
> Thanks,
>
--
Attila Nagy e-mail: Attila.Nagy at fsn.hu
Free Software Network (FSN.HU) phone: +3630 306 6758
http://www.fsn.hu/
More information about the nginx
mailing list