-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1
On Wed, 20 Nov 2013, Dean wrote:
Date: Wed, 20 Nov 2013 18:05:25 -0500 From: Dean deano-dovecot@areyes.com Cc: dovecot@dovecot.org Subject: Re: [Dovecot] Problems with dovecot 2.1.7, spamassassin 3.3.2 and antispam plugin
Darn. Thought I had found a good point about pthread_cancel. See the last post here :
https://bugs.launchpad.net/ubuntu/+source/gcc-3.3/+bug/40285
Juergen Perlinger (juergen-perlinger) https://launchpad.net/%7Ejuergen-perlinger wrote on 2013-10-25: #30 https://bugs.launchpad.net/ubuntu/+source/gcc-3.3/+bug/40285/comments/30
I finally tracked it down, I think. The pthread code tries to load libgcc_s on pthread_exit(), and this dos not work when the effective user was changed -- many daemons switch from root to a restricted user, and that's one way to end up in this problem. If the library is loaded globally for the process before the user is changed, everything works.
This is a problem of the 'pthread_exit()' implementation (delayed/on-demand load of libgcc_s) and/or the 'mmap()' implementation in the kernel.
I've tried putting /lib/x86_64-linux-gnu/libgcc_s.so.1 into /etc/ld.so.preload, I've changed the exec line in /etc/init/dovecot to
exec LD_PRELOAD=/lib/x86_64-linux-gnu/libgcc_s.so.1
/usr/sbin/dovecot -F -c /etc/dovecot/dovecot.conf
and the sa-learn line in /usr/local/bin/sa-learn-pipe.sh to
LD_PRELOAD=/lib/x86_64-linux-gnu/libgcc_s.so.1 /usr/bin/sa-learn -D --progress $* /tmp/sendmail-msg-$$.txt >> /tmp/sa-learn-pipe.$$.log 2>&1
Does sa-learn change UID? Maybe you can make sa-learn set-uid or pass a specific -u /-x .
Steffen Kaiser -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.11 (GNU/Linux)
iQEVAwUBUo26A13r2wJMiz2NAQJ8FwgAl/i1dxQL0XqKwP+Xzwea33LfK39p4Rqw BpNw2iedsK4EhY3dkpOGb1tpcdl9PVAZK2z8WxdTqgXJWugOfmVJRMymp+1nKVYQ lMCQp9LIMAasAl9BDa9OCN6L99qNclYSEH8SNPj1PDvxpyAeshroz2GQY1R+JuEl +I7EsZsVEkrm+Zq4ET6Jjbbv6n/nWCVRGvvUi83vb4oGUcdvpyQoJ6QmhEZDV3Gc kIkB1a4PhnhYqweuyZ2s6Xo+kYjjSIOvPcNkbDG3xwX1g2re6MlNTAHNSJbk7u21 8z10IwSlDRD6H13vWvtwfQL4v1tPafJp+RF0kRb9qO3C8DwE+7d2EQ== =+ICP -----END PGP SIGNATURE-----