Why does loading my Perl module in mod_perl make Apache hang?

I have a mod_perl program that implements its own handler function (i.e. does not use Apache :: Registry).

I have a parser module written using Parse :: RecDescent.

I have successfully used the parser module in another similar mod_perl program for several months without any problems.

Just “using” the analyzer module in my new mod_perl program (i.e. no function references in the module) forces the Apache server to start child processes until it reaches its maximum limit. Commenting out the “use” statement solves the problem (but leaves me without using a parser, obviously).

I suspect that turning on the library does what causes the Apache life cycle to hang until it finishes. I believe this happens after the logging phase from the moment the response was sent and the log was updated.

Does anyone have any clues for me? I'm at a loss.

- phil -

+3
source share
2 answers

I have no answer for you (I personally use fastcgi ...), but I can offer an approach: attach strace, ltrace, gdb, etc. to the apache child process and see where it hangs. You may need to rebuild apache, mod_perl and even perl with debugging symbols to get reasonable output from gdb.

+1
source

, , , . , , .

Derobert , mod_perl voila, .

, , , , SO, , , .

+1

Source: https://habr.com/ru/post/1704980/


All Articles