David Welton wrote:
On 7/18/06, Massimo Manghi <[EMAIL PROTECTED]> wrote:
Some more things to try:
Launch apache with the -X flag to put it in single process mode.
I obtained the backtrace running in single process mode.
Keep eliminating code to see if you can get it to crash with less and
less code (and thus an easier test case for me to replicate).
I'm getting close to the target. First of all: I checked
the code in the template is executed from the beginning
up to the last line. The last line in the template "puts" a message
in the process logfile. This message appears in the log of
every crashed process.
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!).
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.
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.
--
-- Massimo Manghi
-- Dipartimento di Biologia Evolutiva e Funzionale
-- Università degli Studi di Parma
-- Parco Area delle Scienze 11A - 43100 Parma
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]