lkml.org 
[lkml]   [2000]   [Dec]   [29]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: linux 2.2.19pre and thttpd (VM-global problem?)
On Fri, Dec 29, 2000 at 09:40:54AM +0100, Jure Pecar wrote:
> problem on a similary configured 2.2.17 with VM-global patch 3. gcc

Good. Can you try to reproduce with 2.2.19pre3? (if you absolutely need raid
0.90 you can try again with 2.2.19pre3aa3 after backing out 04_wake-one-3 that
introduces a deadlocks spotted by Chris and that I'm debugging right now)

> select(7, [5], [6], NULL, {98, 547000}) = 1 (in [5], left {98, 210000})

num_ready = fdwatch( tmr_mstimeout( &tv ) );
if ( num_ready < 0 )
{
if ( errno == EINTR )
continue; /* try again */
syslog( LOG_ERR, "fdwatch - %m" );
exit( 1 );
}

> gettimeofday({978078109, 324744}, NULL) = 0

(void) gettimeofday( &tv, (struct timezone*) 0 );

> accept(5, {sin_family=AF_INET, sin_port=htons(3687),
> sin_addr=inet_addr("62.76.36.242")}, [16]) = 7

httpd_get_conn( httpd_server* hs, int listen_fd, httpd_conn* hc )
[..]
hc->conn_fd = accept( listen_fd, &sa.sa, &sz );

> fcntl(7, F_SETFD, FD_CLOEXEC) = 0

(void) fcntl( hc->conn_fd, F_SETFD, 1 );

> fcntl(7, F_GETFL) = 0x2 (flags O_RDWR)

flags = fcntl( c->hc->conn_fd, F_GETFL, 0 );

> fcntl(7, F_SETFL, O_RDWR|O_NONBLOCK) = 0

else if ( fcntl( c->hc->conn_fd, F_SETFL, flags | O_NDELAY ) < 0 )

> brk(0x8078000) = 0x8077000
> brk(0x8078000) = 0x8077000

for some unknown reason it doesn't notice it has to handle the new connection.

> time([978078109]) = 978078109
> getpid() = 22061
> send(3, "<27>Dec 29 09:21:49 thttpd[22061"..., 69, 0) = 69

shut_down();
syslog( LOG_NOTICE, "exiting" );

> munmap(0x125000, 4096) = 0
> _exit(1) = ?

However according to the latest sources (2.20b) shut_down() should at least
call gettimeofday at once and that's not the case for you:

shut_down( void )
{
int cnum;
struct timeval tv;

#ifdef STATS_TIME
show_stats( JunkClientData, (struct timeval*) 0 );
#endif /* STATS_TIME */
(void) gettimeofday( &tv, (struct timezone*) 0 );

So you aren't using thttpd version 2.20b (or it's not the vanilla source).

Well, this would look like an userspace bug, but I understand it's strange that
it works well for three days.... Can you try to upgrade thttpd to the latest
version compiled from vanilla sources?

But regardless of the userspace upgrade, I still recommend to upgrade to
2.2.19pre3 or 2.2.19pre3aa3 minus 04_wake-one-3 (once I'll fix wake-one-3 I'll
release -4 revision and pre3aa4).

Thanks,
Andrea
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
Please read the FAQ at http://www.tux.org/lkml/

\
 
 \ /
  Last update: 2005-03-22 12:52    [W:0.115 / U:0.156 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site