Details
-
Bug
-
Status: Open
-
Major
-
Resolution: Unresolved
-
3.3.1
-
None
-
None
Description
Although the new module importer prevents two threads trying to load a module at the same time, the transition from checking to see if a module requires (re)loading to the actual loading isn't properly thread protected and as a result a second thread, although it may decide a module needs (re)loading, isn't simply waiting for the first thread to finish the loading and use the result of that and is instead loading the module again even though no change has been made.
This issue was highlighted in following mailing list posts:
http://www.modpython.org/pipermail/mod_python/2007-May/023583.html
http://www.modpython.org/pipermail/mod_python/2007-May/023586.html
Further discussion can be found in the associated posts for that thread in the archives.
Note that this only affects multithreaded Apache MPMs and the window for this to happen is very small and is only going to occur under heavy load from multiple clients or in web pages where multiple requests may be made from a page to a resource requiring the same code module be loaded.