Segmentation fault with LDAPUserFolder
I'm trying to use LDAPUserFolder, but whenever I try to create a new LDAPUserFolder my Zope dies with a Segmentation Fault error. What can that be? I'm using RedHat 7.2, Zope 2.6.2, Python 2.1.3, python-ldap 2.0.0pre14 and Openldap 2.0.25-1 The error message from Zope is this: 2003-11-10T11:36:44 ERROR(200) zdaemon Process 20151 terminated by signal SIGSEGV(11) Can someone help me? Thanks Antonio
Antonio =?ISO-8859-1?Q?Jo=E3o?= Ferreira Francisco wrote I'm trying to use LDAPUserFolder, but whenever I try to create a new LDAPUserFolder my Zope dies with a Segmentation Fault error. What can that be?
I'm using RedHat 7.2, Zope 2.6.2, Python 2.1.3, python-ldap 2.0.0pre14 and Openldap 2.0.25-1
Did you build python-ldap using the re-entrant ldap libraries? (they end in _r, from memory). Anthony -- Anthony Baxter <anthony@interlink.com.au> It's never too late to have a happy childhood.
Antonio João Ferreira Francisco wrote:
I'm using RedHat 7.2, Zope 2.6.2, Python 2.1.3, python-ldap 2.0.0pre14 and Openldap 2.0.25-1
The error message from Zope is this:
2003-11-10T11:36:44 ERROR(200) zdaemon Process 20151 terminated by signal SIGSEGV(11)
I am pretty sure that the LDAPUserFolder Product attempts a bind operation when you create one. You could try a similar bind operation using a Python console -- this might help you find out if Zope is ~part~ of the problem. You might also be able to use strace on your Zope process to find out where it is being killed. My hunch is that there are some mysterious thread-related problems here. JZ
Antonio João Ferreira Francisco wrote at 2003-11-10 11:49 -0200:
I'm trying to use LDAPUserFolder, but whenever I try to create a new LDAPUserFolder my Zope dies with a Segmentation Fault error. What can that be?
I'm using RedHat 7.2, Zope 2.6.2, Python 2.1.3, python-ldap 2.0.0pre14 and Openldap 2.0.25-1
The error message from Zope is this:
2003-11-10T11:36:44 ERROR(200) zdaemon Process 20151 terminated by signal SIGSEGV(11)
Recently, I have analysed something that looked precisely like you describe it. It turned out to be an infinite "__getattr__" recursion in "LDAPUser". This recursion exceeded the C runtime stack limit before it hit Python's "RuntimeError: maximal recursion depth exceeded". The result has been a SIGSEGV due to C runtime stack overflow. This problem was easy to fix: I added a "_properties= None" definition to the "LDAPUser" class. Not sure, whether you have the same problem -- even though the symptoms are identical. -- Dieter
participants (4)
-
Anthony Baxter -
Antonio João Ferreira Francisco -
Dieter Maurer -
John Ziniti