]> granicus.if.org Git - postgresql/commitdiff
Add a comment explaining the recent fix for plpython breakage in commit 4c966d9.
authorAndrew Dunstan <andrew@dunslane.net>
Fri, 4 Mar 2011 00:41:54 +0000 (19:41 -0500)
committerAndrew Dunstan <andrew@dunslane.net>
Fri, 4 Mar 2011 00:41:54 +0000 (19:41 -0500)
Mostly text supplied by Jan UrbaƄski.

src/pl/plpython/plpython.c

index a2ebd22428c04006aa3430647e0cd14eea962afb..75f7b5cf57fc371ce4a38e6eb8240d9f4d17155b 100644 (file)
@@ -3936,6 +3936,16 @@ PLy_add_exceptions(PyObject *plpy)
 #endif
        if (PyModule_AddObject(plpy, "spiexceptions", excmod) < 0)
                PLy_elog(ERROR, "failed to add the spiexceptions module");
+
+/* 
+ * XXX it appears that in some circumstances the reference count of the
+ * spiexceptions module drops to zero causing a Python assert failure when
+ * the garbage collector visits the module. This has been observed on the
+ * buildfarm. To fix this, add an additional ref for the module here. 
+ *
+ * This shouldn't cause a memory leak - we don't want this garbage collected,
+ * and this function shouldn't be called more than once per backend.
+ */
        Py_INCREF(excmod);
 
        PLy_exc_error = PyErr_NewException("plpy.Error", NULL, NULL);