Uploaded image for project: 'mod_python'
  1. mod_python
  2. MODPYTHON-113

PythonImport should use apache.import_module() and not PyImport_ImportModule().

    Details

    • Type: Bug
    • Status: Closed
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: 3.1.4, 3.2.7
    • Fix Version/s: 3.3.1
    • Component/s: core
    • Labels:
      None

      Description

      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

        Activity

        Hide
        grahamd Graham Dumpleton added a comment -

        Attached "MP113_20060316_grahamd_1.diff" containing proposed changes. This also includes changes to implement MODPYTHON-118.

        The problem covered by this issue needs to be addressed, but changes for MODPYTHON-118 are optional and can be left out if anyone objects.

        Feedback appreciated.

        Show
        grahamd Graham Dumpleton added a comment - Attached "MP113_20060316_grahamd_1.diff" containing proposed changes. This also includes changes to implement MODPYTHON-118 . The problem covered by this issue needs to be addressed, but changes for MODPYTHON-118 are optional and can be left out if anyone objects. Feedback appreciated.

          People

          • Assignee:
            grahamd Graham Dumpleton
            Reporter:
            grahamd Graham Dumpleton
          • Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved:

              Development