List Info

Thread: crash in AOLServer 4.5.0, after exiting threads




crash in AOLServer 4.5.0, after exiting threads
user name
2006-11-02 01:26:43
Jim,

I tried in on the command line, seems to be my case 

However, I run aolserver on debian, via
/etc/init.d/aolserver,
Which basically invokes /usr/lib/aolserver4/bin/nsd.
How do I make it use nstclsh instead of tclsh ?
I don't see any options for that.

Thanks,
~ Alex.

On 11/1/06, Jim Davidson <jgdavidsonmac.com> wrote:
> Hi,
>
> I think this is related to the comment I added to the
RELEASE notes:
>
> * Loading libnsd into a tclsh and then creating new
threads with
> the ns_thread command will result in a crash when those
threads
> exit. The issues has to do with finalization of the
async-cancel
> context used to support the new "ns_ictl
cancel" feature.  This bug
> is not present when using the "nstclsh"
binary.
>
>
> The issue above, where Tcl is initialized before
AOLserver by loading
> libnsd into tclsh, results in Tcl thread local storage
being
> finalized before AOLserver's context which includes a
pointer to an
> async handler.
>
> Now, that's not what you're doing here but perhaps TclX
is having the
> same effect.  I haven't looked at TclX for sometime so
I can't recall
> what it would be using an async handler for -- perhaps
you could dig
> through the code and comment it out as the async
handler stuff was
> really designed for Unix signal-related things which
aren't common in
> multi-threaded AOLserver.
>
> Alternatively, Tcl could be fixed to avoid freeing
itself before
> AOLserver or any other extension.  Unfortunately, that
could be a big
> job -- the Tcl core is already riddled with a lot of
code to try to
> manage the order of finalization.
>
> -Jim
>
>
>
>
>
>
> On Nov 1, 2006, at 5:35 PM, Zoran Vasiljevic wrote:
>
> > On 01.11.2006, at 23:27, Alex wrote:
> >
> >> Hi,
> >>
> >> I am getting yet another crash in AOLServer
4.5.0.
> >> This time it crashes after exiting from
threads started with
> >> "ns_thread begin" or "ns_thread
begindetached".
> >>
> >> Any Suggestions?
> >>
> >> Thanks,
> >> ~ Alex.
> >>
> >> Program received signal SIGSEGV, Segmentation
fault.
> >> [Switching to Thread 1086359904 (LWP 19612)]
> >> 0x00002aaaaae6c2a7 in Tcl_AsyncDelete
(async=0x54e6c0) at
> >>
/srv/DIST/tcl8.4.13/unix/../generic/tclAsync.c:297
> >> 297             while (prevPtr->nextPtr !=
asyncPtr) {
> >> (gdb) back
> >> #0  0x00002aaaaae6c2a7 in Tcl_AsyncDelete
(async=0x54e6c0) at
> >>
/srv/DIST/tcl8.4.13/unix/../generic/tclAsync.c:297
> >> #1  0x00002aaaad48190e in TclX_SelectInit ()
from /usr/lib/
> >> libtclx8.4.so.1
> >
> > I'm not sure TclX is thread-safe...
> >
> > Cheers
> > Zoran
> >
> >
> > --
> > AOLserver - http://www.aolserver.com/
> >
> > To Remove yourself from this list, simply send an
email to
> > <listservlistserv.aol.com> with the
> > body of "SIGNOFF AOLSERVER" in the email
message. You can leave the
> > Subject: field of your email blank.
>
>
> --
> AOLserver - http://www.aolserver.com/
>
> To Remove yourself from this list, simply send an email
to <listservlistserv.aol.com> with the
> body of "SIGNOFF AOLSERVER" in the email
message. You can leave the Subject: field of your email
blank.
>


--
AOLserver - http://www.aolserver.com/

To Remove yourself from this list, simply send an email to
<listservlistserv.aol.com> with the
body of "SIGNOFF AOLSERVER" in the email message.
You can leave the Subject: field of your email blank.
crash in AOLServer 4.5.0, after exiting threads
user name
2006-11-02 12:55:28
Hi,

To clarify, the "nstclsh" is another binary which
is the same as  
"tclsh" but includes the AOLserver commands, e.g.:

[jimbolocalhost aolserver]$ bin/nstclsh
% ns_info version
4.5
%

The idea was that some of those ns_* commands could be
useful in non- 
AOLserver shell scripts.  Nstclsh doesn't yet have the
capability to  
be a full AOLserver so you still need nsd which still does
all sorts  
of weird process init (chroot, pre-bind, etc.), evals a
config, and  
starts web-server related threads.



BTW:  Some day it should be possible to do:

$ tclsh
% package require aolserver
% nsd::do various config things...
% nsd::start
% vwait nsd

But that'll take some time -- it would still require
threaded builds  
of Tcl which aren't standard and the startup/init/config
process  
would be non-backwards compatible although quite a bit
cleaner.

-Jim



On Nov 1, 2006, at 8:26 PM, Alex wrote:

> Jim,
>
> I tried in on the command line, seems to be my case

>
> However, I run aolserver on debian, via
/etc/init.d/aolserver,
> Which basically invokes /usr/lib/aolserver4/bin/nsd.
> How do I make it use nstclsh instead of tclsh ?
> I don't see any options for that.
>
> Thanks,
> ~ Alex.
>
> On 11/1/06, Jim Davidson <jgdavidsonmac.com> wrote:
>> Hi,
>>
>> I think this is related to the comment I added to
the RELEASE notes:
>>
>> * Loading libnsd into a tclsh and then creating new
threads with
>> the ns_thread command will result in a crash when
those threads
>> exit. The issues has to do with finalization of the
async-cancel
>> context used to support the new "ns_ictl
cancel" feature.  This bug
>> is not present when using the "nstclsh"
binary.
>>
>>
>> The issue above, where Tcl is initialized before
AOLserver by loading
>> libnsd into tclsh, results in Tcl thread local
storage being
>> finalized before AOLserver's context which includes
a pointer to an
>> async handler.
>>
>> Now, that's not what you're doing here but perhaps
TclX is having the
>> same effect.  I haven't looked at TclX for sometime
so I can't recall
>> what it would be using an async handler for --
perhaps you could dig
>> through the code and comment it out as the async
handler stuff was
>> really designed for Unix signal-related things
which aren't common in
>> multi-threaded AOLserver.
>>
>> Alternatively, Tcl could be fixed to avoid freeing
itself before
>> AOLserver or any other extension.  Unfortunately,
that could be a big
>> job -- the Tcl core is already riddled with a lot
of code to try to
>> manage the order of finalization.
>>
>> -Jim
>>
>>
>>
>>
>>
>>
>> On Nov 1, 2006, at 5:35 PM, Zoran Vasiljevic wrote:
>>
>> > On 01.11.2006, at 23:27, Alex wrote:
>> >
>> >> Hi,
>> >>
>> >> I am getting yet another crash in
AOLServer 4.5.0.
>> >> This time it crashes after exiting from
threads started with
>> >> "ns_thread begin" or
"ns_thread begindetached".
>> >>
>> >> Any Suggestions?
>> >>
>> >> Thanks,
>> >> ~ Alex.
>> >>
>> >> Program received signal SIGSEGV,
Segmentation fault.
>> >> [Switching to Thread 1086359904 (LWP
19612)]
>> >> 0x00002aaaaae6c2a7 in Tcl_AsyncDelete
(async=0x54e6c0) at
>> >>
/srv/DIST/tcl8.4.13/unix/../generic/tclAsync.c:297
>> >> 297             while (prevPtr->nextPtr
!= asyncPtr) {
>> >> (gdb) back
>> >> #0  0x00002aaaaae6c2a7 in Tcl_AsyncDelete
(async=0x54e6c0) at
>> >>
/srv/DIST/tcl8.4.13/unix/../generic/tclAsync.c:297
>> >> #1  0x00002aaaad48190e in TclX_SelectInit
() from /usr/lib/
>> >> libtclx8.4.so.1
>> >
>> > I'm not sure TclX is thread-safe...
>> >
>> > Cheers
>> > Zoran
>> >
>> >
>> > --
>> > AOLserver - http://www.aolserver.com/
>> >
>> > To Remove yourself from this list, simply send
an email to
>> > <listservlistserv.aol.com> with
the
>> > body of "SIGNOFF AOLSERVER" in the
email message. You can leave the
>> > Subject: field of your email blank.
>>
>>
>> --
>> AOLserver - http://www.aolserver.com/
>>
>> To Remove yourself from this list, simply send an
email to  
>> <listservlistserv.aol.com> with the
>> body of "SIGNOFF AOLSERVER" in the email
message. You can leave  
>> the Subject: field of your email blank.
>>
>
>
> --
> AOLserver - http://www.aolserver.com/
>
> To Remove yourself from this list, simply send an email
to  
> <listservlistserv.aol.com> with the
> body of "SIGNOFF AOLSERVER" in the email
message. You can leave the  
> Subject: field of your email blank.


--
AOLserver - http://www.aolserver.com/

To Remove yourself from this list, simply send an email to
<listservlistserv.aol.com> with the
body of "SIGNOFF AOLSERVER" in the email message.
You can leave the Subject: field of your email blank.
crash in AOLServer 4.5.0, after exiting threads
user name
2006-11-02 03:38:26
Zoran, Jim

thanks very much for suggestions!
I think I figured it out.
The code which was executing in the thread concluded with
"exit" tcl command.
I got it replaced with "return" and it seems not
to be crashing anymore.

However, it would be probably a good idea to disable/rename
"exit" for
the code executed in threads created by ns_thread. Not sure
if this
shall be submitted as an "enhancement"-level bug.

Thanks,
~ Alex.

On 11/1/06, Alex <alexsottgmail.com> wrote:
> Jim,
>
> I tried in on the command line, seems to be my case

>
> However, I run aolserver on debian, via
/etc/init.d/aolserver,
> Which basically invokes /usr/lib/aolserver4/bin/nsd.
> How do I make it use nstclsh instead of tclsh ?
> I don't see any options for that.
>
> Thanks,
> ~ Alex.
>
> On 11/1/06, Jim Davidson <jgdavidsonmac.com> wrote:
> > Hi,
> >
> > I think this is related to the comment I added to
the RELEASE notes:
> >
> > * Loading libnsd into a tclsh and then creating
new threads with
> > the ns_thread command will result in a crash when
those threads
> > exit. The issues has to do with finalization of
the async-cancel
> > context used to support the new "ns_ictl
cancel" feature.  This bug
> > is not present when using the "nstclsh"
binary.
> >
> >
> > The issue above, where Tcl is initialized before
AOLserver by loading
> > libnsd into tclsh, results in Tcl thread local
storage being
> > finalized before AOLserver's context which
includes a pointer to an
> > async handler.
> >
> > Now, that's not what you're doing here but perhaps
TclX is having the
> > same effect.  I haven't looked at TclX for
sometime so I can't recall
> > what it would be using an async handler for --
perhaps you could dig
> > through the code and comment it out as the async
handler stuff was
> > really designed for Unix signal-related things
which aren't common in
> > multi-threaded AOLserver.
> >
> > Alternatively, Tcl could be fixed to avoid freeing
itself before
> > AOLserver or any other extension.  Unfortunately,
that could be a big
> > job -- the Tcl core is already riddled with a lot
of code to try to
> > manage the order of finalization.
> >
> > -Jim
> >
> >
> >
> >
> >
> >
> > On Nov 1, 2006, at 5:35 PM, Zoran Vasiljevic
wrote:
> >
> > > On 01.11.2006, at 23:27, Alex wrote:
> > >
> > >> Hi,
> > >>
> > >> I am getting yet another crash in
AOLServer 4.5.0.
> > >> This time it crashes after exiting from
threads started with
> > >> "ns_thread begin" or
"ns_thread begindetached".
> > >>
> > >> Any Suggestions?
> > >>
> > >> Thanks,
> > >> ~ Alex.
> > >>
> > >> Program received signal SIGSEGV,
Segmentation fault.
> > >> [Switching to Thread 1086359904 (LWP
19612)]
> > >> 0x00002aaaaae6c2a7 in Tcl_AsyncDelete
(async=0x54e6c0) at
> > >>
/srv/DIST/tcl8.4.13/unix/../generic/tclAsync.c:297
> > >> 297             while
(prevPtr->nextPtr != asyncPtr) {
> > >> (gdb) back
> > >> #0  0x00002aaaaae6c2a7 in Tcl_AsyncDelete
(async=0x54e6c0) at
> > >>
/srv/DIST/tcl8.4.13/unix/../generic/tclAsync.c:297
> > >> #1  0x00002aaaad48190e in TclX_SelectInit
() from /usr/lib/
> > >> libtclx8.4.so.1
> > >
> > > I'm not sure TclX is thread-safe...
> > >
> > > Cheers
> > > Zoran
> > >
> > >
> > > --
> > > AOLserver - http://www.aolserver.com/
> > >
> > > To Remove yourself from this list, simply
send an email to
> > > <listservlistserv.aol.com> with
the
> > > body of "SIGNOFF AOLSERVER" in the
email message. You can leave the
> > > Subject: field of your email blank.
> >
> >
> > --
> > AOLserver - http://www.aolserver.com/
> >
> > To Remove yourself from this list, simply send an
email to <listservlistserv.aol.com> with the
> > body of "SIGNOFF AOLSERVER" in the email
message. You can leave the Subject: field of your email
blank.
> >
>


--
AOLserver - http://www.aolserver.com/

To Remove yourself from this list, simply send an email to
<listservlistserv.aol.com> with the
body of "SIGNOFF AOLSERVER" in the email message.
You can leave the Subject: field of your email blank.
[1-3]

about | contact  Other archives ( Real Estate discussion Medical topics )