dotgnu-general
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

RE: [DotGNU]Seg Fault in the Dgee.


From: Thong \(Tum\) Nguyen
Subject: RE: [DotGNU]Seg Fault in the Dgee.
Date: Thu, 10 Jul 2003 07:02:52 +1200

Hi Chris :-)

There was a bug in the finalization code that caused a SEGV.  A refresh
from CVS should fix the problem.  Let me know how you get on...

All the best,

^Tum


> -----Original Message-----
> From: Chris Smith [mailto:address@hidden
> Sent: Wednesday, 9 July 2003 10:18 p.m.
> To: 'Portable. NET'
> Subject: [DotGNU]Seg Fault in the Dgee.
> 
> I've discovered that after performing the IL cleanup code in the dgee
pnetVM
> and going back to waiting for further requests, a second thread 'comes
alive'
> and kills the process (itself) off.
> 
> Fortunately Goldwater starts the process back up, but we're getting
less than
> traditional CGI performance now :o/
> 
> ... cleanup code called somewhere round here ...
> 
> [pid 28453] write(3, "2003/07/08 22:01:45 28453:400:/D"..., 63) = 63
> [pid 28453] rt_sigprocmask(SIG_BLOCK, ~[], [RTMIN 43], 8) = 0
> [pid 28453] semop(1015809, 0xbffff6c0, 1) = 0
> [pid 28453] semop(1015809, 0xbffff6c0, 1) = 0
> [pid 28453] semop(1015809, 0xbffff6e0, 1) = 0
> [pid 28453] semop(1015809, 0xbffff6e0, 1) = 0
> [pid 28453] rt_sigprocmask(SIG_SETMASK, [RTMIN 43], NULL, 8) = 0
> [pid 28453] write(1, "-31,-31,-31,-31,-31,-31,-31,-31,"..., 123) = 123
> [pid 28453] rt_sigprocmask(SIG_BLOCK, ~[], [RTMIN 43], 8) = 0
> [pid 28453] semop(1015809, 0xbffff720, 1) = 0
> [pid 28453] semop(1015809, 0xbffff720, 1) = 0
> [pid 28453] rt_sigprocmask(SIG_SETMASK, [RTMIN 43], NULL, 8) = 0
> 
> ... DGpnetVM goes off and blocks waiting for a new request ...
> 
> [pid 28453] msgrcv( <unfinished ...>
> [pid 28463] <... poll resumed> [{fd=7, events=POLLIN}], 1, 2000) = -1
EINTR
> (Interrupted system call)
> 
> ... Is this a child thread ???? ...
> [pid 28463] --- SIGRT_1 (Real-time signal 1) ---
> [pid 28463] sigreturn()                 = ? (mask now ~[TRAP KILL
STOP])
> [pid 28463] getppid()                   = 28453
> [pid 28463] wait4(-1, [WIFSIGNALED(s) && WTERMSIG(s) == SIGSEGV],
> WNOHANG|__WCLONE, NULL) = 28464
> [pid 28463] modify_ldt(0x1, 0x8280ecc, 0x10) = 0
> [pid 28463] munmap(0x4057d000, 8388608) = 0
> [pid 28463] kill(28453, SIGSEGV)        = 0               <<< **
NEUGH! **
> [pid 28453] <... msgrcv resumed> 17170446, {1,
> "\0\0\0\0\1\0\0\0\300\1\0\0\377\377\377\377\1\0\0\0\n\200"...}, 16500,
> -805306367, 0) = -1 EINTR (Interrupted system call)
> [pid 28463] _exit(0)                    = ?
> --- SIGSEGV (Segmentation fault) ---
> 
> 
> We've come up with a much better DGpnetVM design that spawns a thread
in C to
> contain the pnet runtime.  The IL code running in the pnet runtime
will make
> an internal call to some special DGEE code that will block and wait
for
> request data.  The parent thread waits for external requests and
passes them
> to the child pnet engine thread when necessary.
> This allows me to do a level of webservice bytecode caching etc and is
> therefore much better.
> To reduce memory consumption, the child pnet thread will be restarted
> frequently.
> [These are not pnet threads I'm talking about here]
> 
> However I'd like to get a handle on what is causing the segv at the
moment as
> it may be a while before the new pnetvm code is in place.
> 
> tum, rhys I'll send you pnetvm.c seperately - or get it from the dgee
cvs.
> 
> Cheers,
> Chris
> 
> _______________________________________________
> Developers mailing list
> address@hidden
> http://dotgnu.org/mailman/listinfo/developers




reply via email to

[Prev in Thread] Current Thread [Next in Thread]