ptloader segfaults gone in Kolab 3.4?

Cornelius Hald hald at icandy.de
Tue May 5 12:32:36 CEST 2015


Hi Franz,

thanks so much for looking into this. I've applied your patch to my
Kolab 3.3 install and so far I've not encountered a single segmentation
fault :)

I've taken your patch to create an updated Cyrus-Imapd for Kolab 3.3.
Maybe someone could check it so we might publish it through the official
updates repository.

https://obs.kolabsys.com/package/show/home:connyhald:branches:Kolab:3.3:Updates/cyrus-imapd

Thanks!
Conny

On Mon, 2015-05-04 at 18:33 +0200, Franz Skale wrote:
> 
> 
> Hi,
> for the abort problem, when using multiple domains,
> i created a issue some time ago
> Now i have posted a fixed version of the problem function:
> Fyi:
> 
> https://issues.kolab.org/show_bug.cgi?id=4979
> 
> 
> 
> Rgds.
> 
> 
> Franz
> 
> 
>  Am 03.04.15 um 20:50 schrieb Franz Skale:
> 
> > 
> > 
> > Hi,
> > sorry, but the last time i forgot to egrep 'segfault|signaled'.
> > The segfault patch doesn't exaplain the problem.
> > I now created a new backtrace with more details:
> > Core was generated by `ptloader -d9'.
> > Program terminated with signal 6, Aborted.
> > #0  0x00007f13554a6107 in raise ()
> > from /lib/x86_64-linux-gnu/libc.so.6
> > (gdb) bt
> > #0  0x00007f13554a6107 in raise ()
> > from /lib/x86_64-linux-gnu/libc.so.6
> > #1  0x00007f13554a74e8 in abort ()
> > from /lib/x86_64-linux-gnu/libc.so.6
> > #2  0x00007f13554e8f3d in ?? () from /lib/x86_64-linux-gnu/libc.so.6
> > #3  0x00007f13554ebde1 in ?? () from /lib/x86_64-linux-gnu/libc.so.6
> > #4  0x00007f13554eceb0 in malloc ()
> > from /lib/x86_64-linux-gnu/libc.so.6
> > #5  0x00007f13582cf00b in xmalloc () from /usr/lib/libcyrus_min.so.0
> > #6  0x00007f13582cf11e in xstrdup () from /usr/lib/libcyrus_min.so.0
> > #7  0x0000000000403504 in ptsmodule_standard_root_dn
> > (domain=domain at entry=0x177e060 "example", result=0x177cf98) at
> > ptclient/ldap.c:677
> > #8  0x00000000004042ba in ptsmodule_get_dn
> > (canon_id=canon_id at entry=0x607fa0 "info at example.com",
> > size=size at entry=33, ret=ret at entry=0x7fff3550b290) at
> > ptclient/ldap.c:993
> > #9  0x000000000040527d in ptsmodule_make_authstate_attribute
> > (newstate=0x7fff3550b278, dsize=0x7fff3550b31c,
> > reply=0x7fff3550b320, size=33, canon_id=0x607fa0 "info at example.com")
> >     at ptclient/ldap.c:1085
> > #10 myauthstate (identifier=<optimized out>, size=33,
> > reply=<optimized out>, dsize=0x7fff3550b31c) at ptclient/ldap.c:1497
> > #11 0x0000000000402de9 in service_main_fd (c=c at entry=11,
> > argc=<optimized out>, argv=<optimized out>,
> > envp=envp at entry=0x7fff3550bb20) at ptclient/ptloader.c:232
> > #12 0x0000000000402834 in main (argc=<optimized out>,
> > argv=0x7fff3550bb08, envp=0x7fff3550bb20) at
> > master/service-thread.c:296
> > 
> > 
> > At the same time, the slapd access log shows an access (via imap)
> > and a service connection:
> > [03/Apr/2015:19:26:59 +0200] conn=41 fd=71 slot=71 connection from
> > 127.0.0.1 to 127.0.0.1
> > [03/Apr/2015:19:26:59 +0200] conn=41 op=0 BIND
> > dn="uid=kolab-service,ou=Special Users,dc=example,dc=com" method=128
> > version=3
> > [03/Apr/2015:19:26:59 +0200] conn=41 op=0 RESULT err=0 tag=97
> > nentries=0 etime=0 dn="uid=kolab-service,ou=special
> > users,dc=example,dc=com"
> > [03/Apr/2015:19:26:59 +0200] conn=41 op=1 SRCH
> > base="cn=kolab,cn=config" scope=2
> > filter="(&(objectClass=domainrelatedobject)(associatedDomain=example.com))" attrs="associatedDomain inetDomainBaseDN"
> > [03/Apr/2015:19:26:59 +0200] conn=41 op=1 RESULT err=0 tag=101
> > nentries=1 etime=0
> > [03/Apr/2015:19:26:59 +0200] conn=41 op=-1 fd=71 closed - B1
> > [03/Apr/2015:19:26:59 +0200] conn=42 fd=71 slot=71 connection from
> > 127.0.0.1 to 127.0.0.1
> > [03/Apr/2015:19:26:59 +0200] conn=42 op=0 BIND dn="cn=Directory
> > Manager" method=128 version=3
> > [03/Apr/2015:19:26:59 +0200] conn=42 op=0 RESULT err=0 tag=97
> > nentries=0 etime=0 dn="cn=directory manager"
> > [03/Apr/2015:19:26:59 +0200] conn=42 op=1 BIND
> > dn="uid=info,ou=People,dc=example,dc=com" method=128 version=3
> > [03/Apr/2015:19:26:59 +0200] conn=42 op=1 RESULT err=0 tag=97
> > nentries=0 etime=0 dn="uid=info,ou=people,dc=example,dc=com"
> > [03/Apr/2015:19:26:59 +0200] conn=42 op=2 UNBIND
> > [03/Apr/2015:19:26:59 +0200] conn=42 op=2 fd=71 closed - U1
> > [03/Apr/2015:19:26:59 +0200] conn=43 fd=71 slot=71 connection from
> > 127.0.0.1 to 127.0.0.1
> > [03/Apr/2015:19:26:59 +0200] conn=43 op=0 BIND dn="cn=Directory
> > Manager" method=128 version=3
> > [03/Apr/2015:19:26:59 +0200] conn=43 op=0 RESULT err=0 tag=97
> > nentries=0 etime=0 dn="cn=directory manager"
> > [03/Apr/2015:19:26:59 +0200] conn=43 op=1 BIND
> > dn="uid=info,ou=People,dc=example,dc=com" method=128 version=3
> > [03/Apr/2015:19:26:59 +0200] conn=43 op=1 RESULT err=0 tag=97
> > nentries=0 etime=0 dn="uid=info,ou=people,dc=example,dc=com"
> > [03/Apr/2015:19:26:59 +0200] conn=43 op=2 UNBIND
> > [03/Apr/2015:19:26:59 +0200] conn=43 op=2 fd=71 closed - U1
> > 
> > So, the problem is ldap related.
> > I will downgrade to version git-12-2014 which worked for me so far.
> > 
> > Rgds.
> > 
> > Franz
> > 
> > 
> > 
> > Am 01.04.15 um 20:34 schrieb Franz Skale:
> > 
> > > 
> > > 
> > > 
> > > Hi,
> > > just want to report back the reason of the segfaults.
> > > It seems, that an empty dc value is the cause of the problem, then
> > > subsequent ldap calls causes segaults until the max respawn limit
> > > has been reached:
> > > Debug: (with toms syslog patch:
> > > https://obs.kolabsys.com/package/view_file/home:connyhald:branches:Kolab:3.3:Updates/cyrus-imapd/ptloader-segfault.patch?expand=1)
> > > 
> > > Mar 30 21:05:27 mail cyrus-imapd/ptloader[23045]: SEGV: ld: x,
> > > base: dc=,dc=, scope: 2, filter:
> > > (|(&(|(uid=cyrus-admin)(uid=cyrus-murder))(uid=cyrus-admin))(&(|(uid=cyrus-admin)(mail=cyrus-admin@)(mail=cyrus-admin@))(objectclass=kolabinetorgperson))), attrs: x, timeout: 10.000000
> > > Mar 30 21:05:27 mail cyrus-imapd/ptloader[23045]: SEGV: ld: x,
> > > base: dc=,dc=, scope: 2, filter:
> > > (|(&(|(uid=cyrus-admin)(uid=cyrus-murder))(uid=cyrus-admin))(&(|(uid=cyrus-admin)(mail=cyrus-admin@)(mail=cyrus-admin@))(objectclass=kolabinetorgperson))), attrs: x, timeout: 10.000000
> > > Mar 30 21:05:27 mail cyrus-imapd/ptloader[23045]: SEGV: ld: x,
> > > base: dc=,dc=, scope: 2, filter:
> > > (|(&(|(uid=cyrus-admin)(uid=cyrus-murder))(uid=cyrus-admin))(&(|(uid=cyrus-admin)(mail=cyrus-admin@)(mail=cyrus-admin@))(objectclass=kolabinetorgperson))), attrs: x, timeout: 10.000000
> > > Mar 30 21:07:04 mail cyrus-imapd/ptloader[23045]: SEGV: ld: x,
> > > base: dc=example,dc=com, scope: 2, filter:
> > > (|(&(|(uid=cyrus-admin)(uid=cyrus-murder))(uid=info.example))(&(|(uid=info.example)(mail=info.example at example.com)(mail=info.example@))(objectclass=kolabinetorgperson))), attrs: x, timeout: 10.000000
> > > Mar 30 21:07:04 mail cyrus-imapd/ptloader[23045]: SEGV: Reached
> > > last return. Ret: uid=info,ou=People,dc=example,dc=com
> > > Mar 30 21:07:16 mail cyrus-imapd/ptloader[23045]: SEGV: ld: x,
> > > base: dc=example,dc=com, scope: 2, filter:
> > > (|(&(|(uid=cyrus-admin)(uid=cyrus-murder))(uid=cyrus-admin))(&(|(uid=cyrus-admin)(mail=cyrus-admin@)(mail=cyrus-admin@))(objectclass=kolabinetorgperson))), attrs: x, timeout: 10.000000
> > > Mar 30 21:07:16 mail cyrus-imapd/ptloader[23045]: SEGV: Reached
> > > last return. Ret: NULL
> > > Mar 30 21:07:16 mail cyrus-imapd/ptloader[23045]: SEGV: ld: x,
> > > base: dc=example,dc=com, scope: 2, filter:
> > > (|(&(|(uid=cyrus-admin)(uid=cyrus-murder))(uid=cyrus-admin))(&(|(uid=cyrus-admin)(mail=cyrus-admin@)(mail=cyrus-admin@))(objectclass=kolabinetorgperson))), attrs: x, timeout: 10.000000
> > > Mar 30 21:07:16 mail cyrus-imapd/ptloader[23045]: SEGV: Reached
> > > last return. Ret: NULL
> > > Mar 30 21:07:16 mail cyrus-imapd/ptloader[23045]: SEGV: ld: x,
> > > base: dc=example,dc=com, scope: 2, filter:
> > > (|(&(|(uid=cyrus-admin)(uid=cyrus-murder))(uid=cyrus-admin))(&(|(uid=cyrus-admin)(mail=cyrus-admin@)(mail=cyrus-admin@))(objectclass=kolabinetorgperson))), attrs: x, timeout: 10.000000
> > > Mar 30 21:07:16 mail cyrus-imapd/ptloader[23045]: SEGV: Reached
> > > last return. Ret: NULL
> > > Mar 30 21:07:16 mail cyrus-imapd/ptloader[23045]: SEGV: ld: x,
> > > base: dc=example,dc=com, scope: 2, filter:
> > > (|(&(|(uid=cyrus-admin)(uid=cyrus-murder))(uid=cyrus-admin))(&(|(uid=cyrus-admin)(mail=cyrus-admin@)(mail=cyrus-admin@))(objectclass=kolabinetorgperson))), attrs: x, timeout: 10.000000
> > > Mar 30 21:07:16 mail cyrus-imapd/ptloader[23045]: SEGV: Reached
> > > last return. Ret: NULL
> > > Mar 30 21:22:29 mail cyrus-imapd/ptloader[23498]: SEGV: ld: x,
> > > base: dc=,dc=, scope: 2, filter:
> > > (|(&(|(uid=cyrus-admin)(uid=cyrus-murder))(uid=cyrus-admin))(&(|(uid=cyrus-admin)(mail=cyrus-admin@)(mail=cyrus-admin@))(objectclass=kolabinetorgperson))), attrs: x, timeout: 10.000000
> > > Mar 30 21:22:29 mail cyrus-imapd/ptloader[23498]: SEGV: ld: x,
> > > base: dc=,dc=, scope: 2, filter:
> > > (|(&(|(uid=cyrus-admin)(uid=cyrus-murder))(uid=cyrus-admin))(&(|(uid=cyrus-admin)(mail=cyrus-admin@)(mail=cyrus-admin@))(objectclass=kolabinetorgperson))), attrs: x, timeout: 10.000000
> > > Mar 30 21:37:37 mail cyrus-imapd/ptloader[23498]: SEGV: ld: x,
> > > base: dc=,dc=, scope: 2, filter:
> > > (|(&(|(uid=cyrus-admin)(uid=cyrus-murder))(uid=cyrus-admin))(&(|(uid=cyrus-admin)(mail=cyrus-admin@)(mail=cyrus-admin@))(objectclass=kolabinetorgperson))), attrs: x, timeout: 10.000000
> > > Mar 30 21:37:37 mail cyrus-imapd/ptloader[23498]: SEGV: ld: x,
> > > base: dc=,dc=, scope: 2, filter:
> > > (|(&(|(uid=cyrus-admin)(uid=cyrus-murder))(uid=cyrus-admin))(&(|(uid=cyrus-admin)(mail=cyrus-admin@)(mail=cyrus-admin@))(objectclass=kolabinetorgperson))), attrs: x, timeout: 10.000000
> > > Mar 30 21:52:52 mail cyrus-imapd/ptloader[23810]: SEGV: ld: x,
> > > base: dc=,dc=, scope: 2, filter:
> > > (|(&(|(uid=cyrus-admin)(uid=cyrus-murder))(uid=cyrus-admin))(&(|(uid=cyrus-admin)(mail=cyrus-admin@)(mail=cyrus-admin@))(objectclass=kolabinetorgperson))), attrs: x, timeout: 10.000000
> > > Mar 30 21:52:52 mail cyrus-imapd/ptloader[23810]: SEGV: ld: x,
> > > base: dc=,dc=, scope: 2, filter:
> > > (|(&(|(uid=cyrus-admin)(uid=cyrus-murder))(uid=cyrus-admin))(&(|(uid=cyrus-admin)(mail=cyrus-admin@)(mail=cyrus-admin@))(objectclass=kolabinetorgperson))), attrs: x, timeout: 10.000000
> > > 
> > > Perhaps, anyone is able to find the root cause of the problem.
> > > 
> > > Rgds.
> > > Franz
> > > 
> > > 
> > > 
> > > 
> > > Am 30.03.15 um 20:01 schrieb Franz Skale:
> > > 
> > > > Hi,
> > > > only wanted to report back.
> > > > With version 2.5.0.0 (dev tree but stable cyrus release) the segfaults
> > > > came back.
> > > > I have to compile cyrus with debugging symbols enabled to dig deeper.
> > > > The actual bt:
> > > > Core was generated by `ptloader -d9'.
> > > > Program terminated with signal 6, Aborted.
> > > > #0  0x00007f799ee0c107 in raise () from /lib/x86_64-linux-gnu/libc.so.6
> > > > (gdb) bt
> > > > #0  0x00007f799ee0c107 in raise () from /lib/x86_64-linux-gnu/libc.so.6
> > > > #1  0x00007f799ee0d4e8 in abort () from /lib/x86_64-linux-gnu/libc.so.6
> > > > #2  0x00007f799ee4ef3d in ?? () from /lib/x86_64-linux-gnu/libc.so.6
> > > > #3  0x00007f799ee51de1 in ?? () from /lib/x86_64-linux-gnu/libc.so.6
> > > > #4  0x00007f799ee52eb0 in malloc () from /lib/x86_64-linux-gnu/libc.so.6
> > > > #5  0x00007f79a1c3500b in xmalloc () from /usr/lib/libcyrus_min.so.0
> > > > #6  0x00007f79a1c3511e in xstrdup () from /usr/lib/libcyrus_min.so.0
> > > > #7  0x0000000000403504 in ?? ()
> > > > #8  0x00000000004041e6 in ?? ()
> > > > #9  0x000000000040514d in ?? ()
> > > > #10 0x0000000000402de9 in ?? ()
> > > > #11 0x0000000000402834 in ?? ()
> > > > #12 0x00007f799edf8b45 in __libc_start_main () from
> > > > /lib/x86_64-linux-gnu/libc.so.6
> > > > #13 0x0000000000402a5e in ?? ()
> > > > 
> > > > Rgds.
> > > > 
> > > > Franz
> > > > 
> > > > 
> > > > Am 24.03.15 um 08:35 schrieb Cornelius Hald:
> > > > > On Sat, 2015-03-21 at 12:58 +0100, Jan Kowalsky wrote:
> > > > > > Hi,
> > > > > > 
> > > > > > I upgraded a clone of my productive mailserver - but the ptloader errors
> > > > > > still exists. In a plain new installation with only one domain and a
> > > > > > couple of testaccounts everything looks ok - but not in the productive
> > > > > > environment with hundreds of accounts and about 15 domains.
> > > > > > 
> > > > > > I hadn't had the time to get further in this problem - and I'm afraid
> > > > > > I'll lack of knowledge about cyrus ...
> > > > > > 
> > > > > > But did you find out more about the reasons of segfault? It seems to be
> > > > > > related to certain conditions of the setup. Otherwise a lot more people
> > > > > > should be affected.
> > > > > > 
> > > > > > Regards
> > > > > > Jan
> > > > > Hi,
> > > > > 
> > > > > so far I didn't find time to look into this further. Also I'm not an
> > > > > expert in cyrus and ldap as well... I might have a chance to look into
> > > > > this again next week, but I doubt I'll find a solution by myself.
> > > > > 
> > > > > Anyway, thanks a lot for you input. It's good to know the bug still
> > > > > exists with current cyrus.
> > > > > 
> > > > > Cheers,
> > > > > Conny
> > > > > 
> > > > > _______________________________________________
> > > > > users mailing list
> > > > > users at lists.kolab.org
> > > > > https://lists.kolab.org/mailman/listinfo/users
> > > > 
> > > > 
> > > > _______________________________________________
> > > > users mailing list
> > > > users at lists.kolab.org
> > > > https://lists.kolab.org/mailman/listinfo/users
> > > 
> > > 
> > > 
> > > _______________________________________________
> > > users mailing list
> > > users at lists.kolab.org
> > > https://lists.kolab.org/mailman/listinfo/users
> > 
> > 
> > 
> > _______________________________________________
> > users mailing list
> > users at lists.kolab.org
> > https://lists.kolab.org/mailman/listinfo/users
> 
> _______________________________________________
> users mailing list
> users at lists.kolab.org
> https://lists.kolab.org/mailman/listinfo/users



More information about the users mailing list