PythonImport should use apache.import_module() and not PyImport_ImportModule(). -------------------------------------------------------------------------------
Key: MODPYTHON-113 URL: http://issues.apache.org/jira/browse/MODPYTHON-113 Project: mod_python Type: Bug Components: core Versions: 3.1.4, 3.2 Reporter: Graham Dumpleton When the "PythonImport" directive is used, mod_python uses the "PyImport_ImportModule()" function to import the specified module. If that same module is later imported using the "apache.import_module()" function, it will be reloaded a second time even though the Python module file hadn't changed and even if "PythonAutoReload" is set to "Off". This reloading can cause problems if the module when loaded using PythonImport had setup resources such as database connections etc. This is because "apache.import_module()" will effectively throw away the existing values and replace them. This can be an issue if the resources aren't deleted properly and hold open stuff like socket connections with those connections no longer being accessible or useable. The basic problem here is the mixing of standard Python import mechanism and any system implemented by mod_python. The best solution now and in the future, would be for the "PythonImport" directive to use the "apache.import_module()" function to import any modules. That way it would be ensured they always work together properly and not against each other. Note that this problem was previously catalogued as ISSUE 17 on my list of mod_python module importing problems. This list of problems can be found at: http://www.dscpl.com.au/articles/modpython-003.html -- This message is automatically generated by JIRA. - If you think it was sent incorrectly contact one of the administrators: http://issues.apache.org/jira/secure/Administrators.jspa - For more information on JIRA, see: http://www.atlassian.com/software/jira