Hi,

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

[EMAIL PROTECTED] 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 <[EMAIL PROTECTED]> 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
> <[EMAIL PROTECTED]> 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 <[EMAIL PROTECTED]> 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 <[EMAIL PROTECTED]> 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 <[EMAIL PROTECTED]> 
with the
body of "SIGNOFF AOLSERVER" in the email message. You can leave the Subject: 
field of your email blank.

Reply via email to