Peter Sanchez
petersanchez at gmail.com
Wed Oct 12 13:25:35 EDT 2005
Sounds good and thanks! I look forward to the results! Peter On 10/12/05, Gregory (Grisha) Trubetskoy <grisha at modpython.org> wrote: > > > You may be onto something here... I'll see about testing this out on my > FreeBSD system. > > Grisha > > On Tue, 11 Oct 2005, Graham Dumpleton wrote: > > > Making an educated guess (???), in src/mod_python.c, can you modify the > > release_interpreter() function and change: > > > > static void release_interpreter(void) > > { > > PyThreadState *tstate = PyThreadState_Get(); > > #ifdef WITH_THREAD > > PyEval_ReleaseThread(tstate); > > #endif > > PyThreadState_Delete(tstate); > > } > > > > to: > > > > static void release_interpreter(void) > > { > > PyThreadState *tstate = PyThreadState_Get(); > > #ifdef WITH_THREAD > > PyEval_ReleaseThread(tstate); > > #else > > PyThreadState_Swap(NULL); > > #endif > > PyThreadState_Delete(tstate); > > } > > > > The original doesn't seem quite right to me because it wouldn't revert > > the thread state before deleting it when threads aren't used. There is a > > similar bit of code in get_interpreter() where it has: > > > > if (!idata->obcallback) > > { > > #ifdef WITH_THREAD > > PyEval_ReleaseThread(tstate); > > #endif PyThreadState_Delete(tstate); > > > > which perhaps should be: > > > > if (!idata->obcallback) > > { > > #ifdef WITH_THREAD > > PyEval_ReleaseThread(tstate); > > #else > > PyThreadState_Swap(NULL); > > #endif > > PyThreadState_Delete(tstate); > > > > In this case it only gets invoked when mod_python callback can't be > > created. > > > > If this is indeed the problem, in mod_python 3.1.3, the callback may be > > created okay so it only dies in release_interpreter(). In mod_python 3.2 > > though, maybe the callback creation itself is failing meaning it would > > die everytime a child process is created. > > > > If someone has the time and a non BSD platform could you independently > > build a version of Python without thread support and then build > > mod_python 3.2 and see if you get similar crashes. Ie., I feel this > > could be wrong for no threads and not be BSD specific. From what I have > > seen, FreeBSD is the only platform that still doesn't build in threads > > to Python by default and thus why it isn't seen more. I can't do it > > personally as have MacOS X and one has to be careful with multiple > > Python installations there in case one trashes system one accidentally. > > Would rather not risk it. :-) > > > > Graham > > > > Peter Sanchez wrote .. > >> Thanks for the reference. I tried adding the following line, no real > help. > >> So I rebuilt apache2 and mod_python and made sure it didn't have > threads > >> support. Now, I still get the same error message, but the entire page > is > >> loading correctly? > >> > >> Same log entries though: > >> > >> Fatal Python error: PyThreadState_Delete: tstate is still current > >> [Tue Oct 11 13:05:15 2005] [notice] child pid 256 exit signal Abort > trap > >> (6) > >> > >> I am wondering if at this point, its not related to Cheetah Template > engine, > >> which I use for my templates (will be converting to psp template system > >> very > >> soon) I am not sure if that attempts any threaded functions, etc. Also, > >> I > >> dont know that if it was trying something like that, if it would effect > >> mod_python in this way. > >> > >> Is there any traces I can run, etc. to help debug this issue? > >> > >> Thanks, > >> > >> Peter > >> > >> On 10/11/05, Jim Gallacher <jg.lists at sympatico.ca> wrote: > >>> > >>> Peter Sanchez wrote: > >>>> OK, I tried 3.2.2b from source. Now, when I start apache, the logs > >> just > >>>> go into a loop with the same errors as before :) > >>>> > >>>> [Tue Oct 11 10:26:14 2005] [notice] Apache/2.0.54 (FreeBSD) PHP/4.4.0 > >>>> mod_python/3.2.0b Python/2.4.1 configured -- resuming normal > operations > >>>> [Tue Oct 11 10:26:14 2005] [notice] child pid 26791 exit signal Abort > >>>> trap (6) > >>>> [Tue Oct 11 10:26:14 2005] [notice] child pid 26318 exit signal Abort > >>>> trap (6) > >>>> [Tue Oct 11 10:26:14 2005] [notice] child pid 26317 exit signal Abort > >>>> trap (6) > >>>> [Tue Oct 11 10:26:14 2005] [notice] child pid 24178 exit signal Abort > >>>> trap (6) > >>>> [Tue Oct 11 10:26:14 2005] [notice] child pid 24162 exit signal Abort > >>>> trap (6) > >>>> [Tue Oct 11 10:26:14 2005] [notice] child pid 24148 exit signal Abort > >>>> trap (6) > >>>> [Tue Oct 11 10:26:14 2005] [notice] child pid 24133 exit signal Abort > >>>> trap (6) > >>>> [Tue Oct 11 10:26:14 2005] [notice] child pid 24122 exit signal Abort > >>>> trap (6) > >>>> [Tue Oct 11 10:26:14 2005] [notice] child pid 24050 exit signal Abort > >>>> trap (6) > >>>> [Tue Oct 11 10:26:14 2005] [notice] child pid 24033 exit signal Abort > >>>> trap (6) > >>>> [Tue Oct 11 10:26:14 2005] [notice] child pid 23318 exit signal Abort > >>>> trap (6) > >>>> [Tue Oct 11 10:26:14 2005] [notice] child pid 23285 exit signal Abort > >>>> trap (6) > >>>> [Tue Oct 11 10:26:14 2005] [notice] child pid 23266 exit signal Abort > >>>> trap (6) > >>>> [Tue Oct 11 10:26:14 2005] [notice] child pid 23195 exit signal Abort > >>>> trap (6) > >>>> [Tue Oct 11 10:26:14 2005] [error] make_obcallback: could not call > >>> init.\n > >>>> TypeError: init() takes exactly 2 arguments (0 given) > >>>> Fatal Python error: PyThreadState_Delete: tstate is still current > >>>> [Tue Oct 11 10:26:14 2005] [error] make_obcallback: could not call > >>> init.\n > >>>> TypeError: init() takes exactly 2 arguments (0 given) > >>>> Fatal Python error: PyThreadState_Delete: tstate is still current > >>>> > >>>> Note, these were being given while NOT loading my mod_python code, > >> I > >>>> think it was doing this for every 'normal' apache instance. I quickly > >>>> reverted back to the last setup (mod_pyton/3.1.4) > >>>> > >>>> Any other ideas guys? > >>>> > >>>> Thanks, > >>>> > >>>> Peter > >>>> > >>> > >>> This sounds like the problem I was having trying to get the 3.2.2bunit > >>> tests to pass on FreeBSD. This was discussed on the python-dev list > >>> around Sept 10. > >>> > >>> You can read the archive on gmane at > >>> http://comments.gmane.org/gmane.comp.apache.mod-python.devel/1465 > >>> > >>> Grisha suggested you can see this sort of problem on FreeBSD where > >>> Python is threaded and Apache is not and offered the following: > >>> > >>> If you built apache without thread support, you may need to add the > >>> following lines to $PREFIX/sbin/envvars: > >>> > >>> LD_PRELOAD=/usr/lib/libc_r.so > >>> export LD_PRELOAD > >>> > >>> Regards, > >>> Jim > >>> > > _______________________________________________ > > Mod_python mailing list > > Mod_python at modpython.org > > http://mailman.modpython.org/mailman/listinfo/mod_python > > > -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mm_cfg_has_not_been_edited_to_set_host_domains/pipermail/mod_python/attachments/20051012/d809f804/attachment.html
|