Here is what I found (I hope I don't get too specific)
The line that screws everything up is in a method where various
parts of a page are dynamically generated. The 'modules'
that generate these sections of the page are implemented through
classes which in turn are sourced by a method invoked by the
main template.

I verified that the 'sourcing' of these classes' files
breaks the rivet process (although the code 'per se'
is functioning!).

So if you don't source them, no crash?

Let me show you the code snippet.
Commenting out the whole code block makes the child
processes robust as they can get. Commenting the instantiation,
execution and destruction lines breaks apache again.

    source        [file join $::request::site_root
${fun(filename)}.tcl]
    set module  [$fun(function_class) #auto $dioObject $sessionStatus]
    $module      displayModule
    $module      destroy

It seems that Itcl classes namespace definitions are not properly cleaned up
in this case. I'm trying to see what happens if I force the class definition
to happen in the ::request namespace, not in my class' namespace.

Hrm...  is it possible to replicate the crash in a 'clean' environment
that is as simple as possible?

>> Should the following line imply that Itcl stuff is involved
>> (but I could not figure out where...)
>>
>> #9  0x422a4bb3 in Itcl_DeleteClass () from /usr/lib/libitcl3.2.so.1
>
>
> Could well be...  What OS and version are you running on?  Debian stable?

yes, precisely.

>
>> > One thing you could do to help track this down is check this out of
>> > subversion and use it to create your Apache module:
>> >
>> > https://svn.apache.org/repos/asf/tcl/rivet/branches/1_0
>> >
>>
>> I'm afraid that my knowledge of svn goes as far as its commands
>> have the same switches and syntax as cvs. Using cvs syntax for
>> svn would do the work in this case? And Rivet doesn't compile
>> on Debian using the autotools because of a macro problem...(I know
>> you are laden by this task too, I'm sorry, I did not intend
>> to overload you with too many things to think of)
>
>
> You want to do:
>
> svn checkout https......   local-rivet-directory-name
>
> Is this Debian unstable/testing then?


no, it's stable. The problem is similar on the laptop running
'testing' but the messages in the log complain about the
child exiting upon a segfault.

It should be possible to build the '1.0' branch on debian stable, I think.

--
David N. Welton
- http://www.dedasys.com/davidw/

Linux, Open Source Consulting
- http://www.dedasys.com/

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to