perry.tew at cibavision.novartis.com
perry.tew at cibavision.novartis.com
Mon Feb 2 22:44:33 EST 2004
Grisha, Alas, I fear I have offended. Let me elaborate on the errors I received. While using the worker MPM, I was making calls to an oracle database using cx_Oracle (bad idea) and later the DCOracle2 implementation. Under low stress, the worker MPM contained no errors. However, under heavy load, I started to receive errors thrown from the jonpy dbpool.py class, specifically in the _connection_notinuse method. It would recurse until the apache child died. When I switched to the prefork model I could not reproduce the error at all. And I pounded the site using ab and 250 clients. Without knowing for sure that the jonpy module was absolutely correct, it is unfair for me to say that it's mod_python's fault. However, it is fair for me to say that the combination of mod_python with the jon.dbpool class did not work under the worker MPM, and does work under the prefork. I could not and do not know how to validate the dbpool.py class. I'm new to python and have yet to understand weak references and some other things. It was easy for me to recompile apache using a different MPM. I hope that sheds some more light onto the situation I'm encountered and gives mod_python a fairer shake. Let me also say that I feel really bad speaking negatively about free open source software. I know you've worked hard for the past several years to provide a really good python module for apache. I do appreciate it. I also know that since I've paid zero dollars to use it, it's bad mojo to criticize. However, I was only trying to help another developer having similar issues as I was. I do intend to contribute to this project. But, I come from a strong java background and am learning python and C as I go. Man, do I _love_ python. Right now I am but a grasshopper. I will commit to troubleshooting the jonpy module under the worker MPM and report back what the root cause failure analysis is (as best as I understand it). I did not do it previously because of deadlines (I know we all got 'em). When I can, I will investigate. It would help if anyone has any experience with the jonpy modules and can report on their experiences. It would also help if someone could suggest another pooling module to manage db connections under a threaded model. I don't know of another. In the meantime, is there anything I can do from a low-tech or non-tech perspective that doesn't require a critical timeline? Thanks, Perry Tew At 09:41 PM 2/2/2004 -0500, you wrote: >On Mon, 2 Feb 2004, Daniel West wrote: > > > At 02:33 PM 2/2/2004 -0500, you wrote: > > > > >Like Daniel said, going with a threaded MPM is not for the faint of > > >heart, as MySQLdb doesn't like sharing connections very much. > > > > Actually, database connections can successfully be shared among multiple > > threads with the standard Python Queue module plus some support > > code. However, mod_python seems to have problems in general with > > multi-threaded environments. > >Just to be fair - mod_python does not have problems with multi-threaded >environments, none that I am aware of at least. It is used quite a bit in >mutlithreaded environments, not the least of which is Windows, where >multi-threaded is the only option. > >What does have a problem with multi-threaded environment is one of the >commonly used MySQL Python modules, which doesn't really have much to do >with mod_python itself. Grisha, I posted a problem I ran into a couple weeks ago to this list (subject: 3.1.2b and worker_mpm). Seems the output filter under load was mixing up requests. When making a request I would get part of my request plus part of another request. When I changed to a prefork model, that problem went away. The only response I got to my message was from Perry who claims "it went to pieces under stress testing" and "I saw some wicked nasty recursion errors" in reference to the worker_mpm and mod_python. Since I didn't get any response from you or anyone else in the know about these things, I was left to assume that this was a weak area for mod_python which would receive attention in due time. I even offered my assistance for testing. I don't know how else to describe the problem I experienced except for a threading issue. Perhaps there's something there that you're not aware of. I, for one, would love to be able to use worker_mpm again. -Dan _______________________________________________ Mod_python mailing list Mod_python at modpython.org http://mailman.modpython.org/mailman/listinfo/mod_python
|