Re: problem using python-ldap under fcgi
Matt Bartolome wrote: Hey Michael. Thank you for your response. I modified LDAPObject.c and ldapcontrol.c to use the solution described here: https://bugs.launchpad.net/ubuntu/+source/python-cdb/+bug/157251 Looks like it is something specific to glibc in ubuntu and the recommended use of PyObject_Del instead of PyMem_DEL. I've attached a patch showing the modifications for anyone else ripping their hair out. The glibc python free() error is now gone. If this is really a more general issue I'd like to see this fixed. So I tried your patch. But it seg faults on my openSUSE 11.0 system. I noticed some warnings during build (see below). Ciao, Michael. --- snip --- [..] Modules/LDAPObject.c: In function ‘Tuple_to_LDAPMod’: Modules/LDAPObject.c:126: warning: passing argument 1 of ‘_PyObject_New’ makes pointer from integer without a cast Modules/LDAPObject.c:134: warning: passing argument 1 of ‘_PyObject_New’ makes pointer from integer without a cast Modules/LDAPObject.c:143: warning: passing argument 1 of ‘_PyObject_New’ makes pointer from integer without a cast Modules/LDAPObject.c:146: warning: passing argument 1 of ‘_PyObject_New’ makes pointer from integer without a cast Modules/LDAPObject.c:154: warning: passing argument 1 of ‘_PyObject_New’ makes pointer from integer without a cast Modules/LDAPObject.c:158: warning: passing argument 1 of ‘_PyObject_New’ makes pointer from integer without a cast Modules/LDAPObject.c: In function ‘List_to_LDAPMods’: Modules/LDAPObject.c:226: warning: passing argument 1 of ‘_PyObject_New’ makes pointer from integer without a cast Modules/LDAPObject.c: In function ‘attrs_from_List’: Modules/LDAPObject.c:273: warning: passing argument 1 of ‘_PyObject_New’ makes pointer from integer without a cast gcc -pthread -fno-strict-aliasing -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -DHAVE_LIBLDAP_R -DHAVE_SASL -DHAVE_TLS -DLDAPMODULE_VERSION=2.3.6 -IModules -I/opt/openldap-HEAD/include -I/opt/sasl/include/sasl -I/usr/include/sasl -I/usr/include/python2.6 -c Modules/ldapcontrol.c -o build/temp.linux-i686-2.6/Modules/ldapcontrol.o -g Modules/ldapcontrol.c: In function ‘Tuple_to_LDAPControl’: Modules/ldapcontrol.c:83: warning: passing argument 1 of ‘_PyObject_New’ makes pointer from integer without a cast Modules/ldapcontrol.c:92: warning: passing argument 1 of ‘_PyObject_New’ makes pointer from integer without a cast Modules/ldapcontrol.c: In function ‘List_to_LDAPControls’: Modules/ldapcontrol.c:139: warning: passing argument 1 of ‘_PyObject_New’ makes pointer from integer without a cast [..] - This SF.Net email is sponsored by the Moblin Your Move Developer's challenge Build the coolest Linux based applications with Moblin SDK win great prizes Grand prize is a trip for two to an Open Source event anywhere in the world http://moblin-contest.org/redirect.php?banner_id=100url=/ ___ Python-LDAP-dev mailing list Python-LDAP-dev@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/python-ldap-dev
Re: problem using python-ldap under fcgi
Matt Bartolome wrote: My apologies on the wild goose chase but after using valgrind on my fcgi process it is python cx_Oracle (would have never guessed that!) which triggers the segmentation fault when ldap.initialize() is called. Why it does this is beyond me but a simple alteration of my code makes the problem go away completely. I was creating a global oracle db cursor which I'm now creating inside the functions that use it. I'm not sure about the glib c error and patch now. Using the original release without modification works so I will leave it at that. Glad you figured out what the issue was. It's good if you don't run a patched version of python-ldap. In general and thanks to the contributors who provided patches in the past python-ldap seems fairly stable. But let's look at the blog entry which convinced you to try patching python-ldap (see http://www.notes.xythian.net/2007/10/24/python-cdb-032-52ubuntu2-with-python-25-causes-double-free-corruption-crash-on-dealloc/): Some other searching suggests that python-cdb’s use of PyMem_DEL is no longer recommended. That's pretty unprecise, not even a single URL. But if somebody can add more detailed information to this it could be helpful to dive into this. IMO an admirable goal of python-ldap is not to fall back behind what's considered current best practice when writing extension modules for CPython. Ciao, Michael. - This SF.Net email is sponsored by the Moblin Your Move Developer's challenge Build the coolest Linux based applications with Moblin SDK win great prizes Grand prize is a trip for two to an Open Source event anywhere in the world http://moblin-contest.org/redirect.php?banner_id=100url=/ ___ Python-LDAP-dev mailing list Python-LDAP-dev@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/python-ldap-dev
Re: problem using python-ldap under fcgi
Michael Ströder [EMAIL PROTECTED] writes: But let's look at the blog entry which convinced you to try patching python-ldap (see http://www.notes.xythian.net/2007/10/24/python-cdb-032-52ubuntu2-with-python-25-causes-double-free-corruption-crash-on-dealloc/): Some other searching suggests that python-cdb’s use of PyMem_DEL is no longer recommended. That's pretty unprecise, not even a single URL. But if somebody can add more detailed information to this it could be helpful to dive into this. IMO an admirable goal of python-ldap is not to fall back behind what's considered current best practice when writing extension modules for CPython. I think the blog writer was bitten by http://bugs.debian.org/468993. In Python 2.5, PyMem_DEL and PyObject_Del are no longer interchangeable; memory allocated by PyMem_NEW needs to be deallocated by PyMem_DEL, and likewise for PyObject_New and PyObject_Del. A similar (automated) report was filed for python-ldap, and I've verified that it doesn't apply -- http://bugs.debian.org/468995. Cheers, Matej - This SF.Net email is sponsored by the Moblin Your Move Developer's challenge Build the coolest Linux based applications with Moblin SDK win great prizes Grand prize is a trip for two to an Open Source event anywhere in the world http://moblin-contest.org/redirect.php?banner_id=100url=/ ___ Python-LDAP-dev mailing list Python-LDAP-dev@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/python-ldap-dev
Re: problem using python-ldap under fcgi
Matt Bartolome wrote: I'll take a stab at this. I'll give you fair warning though that I don't know much about C. It looks like the modifications would be fairly straight forward though given I can find the recommended usage and documentation. I left off at the type cast build warnings so I just need to figure that in plus make sure it is backwards compatible (I saw an example showing how to do that). Given Matej's answer and the fact that your problem is fixed it seems to me nothing has to be done. Ciao, Michael. - This SF.Net email is sponsored by the Moblin Your Move Developer's challenge Build the coolest Linux based applications with Moblin SDK win great prizes Grand prize is a trip for two to an Open Source event anywhere in the world http://moblin-contest.org/redirect.php?banner_id=100url=/ ___ Python-LDAP-dev mailing list Python-LDAP-dev@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/python-ldap-dev