Re: problem using python-ldap under fcgi

2008-08-27 Thread Michael Ströder
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

2008-08-27 Thread Michael Ströder
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

2008-08-27 Thread Matej Vela
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

2008-08-27 Thread Michael Ströder
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