So, is anyone out there actually *using* the antispam plugin with spamassassin ? What is your recipe for success ?
The issue I'm seeing here appears to be the running of a perl script that does mysql access from dovecot. I'm running the exact same script from roundcube using the markasjunk2 plugin, and it works fine. The only difference is that roundcube provides a file argument for the email to learn, while dovecot pipes the email into the script.
dovecot sa-learn-pipe.sh --spam < /tmp/sometmpfile roundcube sa-learn-pipe.sh --spam /tmp/someotherfile
The script handles either case just fine. Testing on the cmdline works cleanly. From antispam/dovecot, it always fails on the mysql access :
27877-sa-learn Nov 16 10:05:44.887 [27879] dbg: FuzzyOcr: Connecting to: dbi:mysql:database=FuzzyOcr;mysql_socket=/var/run/mysqld/mysqld.sock
27877-sa-learn libgcc_s.so.1 must be installed for pthread_cancel to work 27877-end
Something about the perl DBI interface seems to want something from the libgcc_s.so lib and can't find it, even though it's installed. But why would it work fine from the cmdline, with any userid ? And from roundcube/markasjunk2 ?
On 11/11/2013 04:00 PM, Dean wrote:
On 11/11/2013 02:31 AM, Steffen Kaiser wrote:
On Fri, 8 Nov 2013, Dean Carpenter wrote:
Running /usr/bin/sa-learn directly always returns with an error code of 1, and the bayes DB isn't actually updated. Running the /usr/local/bin/sa-learn-pipe.sh script from the example will run sa-learn successfully, but sa-learn fails partway through, right on a sql DB access. I have both bayes and FuzzyOcr data stored in mysql, and the error occurs on accessing either one. That is, I've tested with FuzzyOcr enabled, and it fails on the db access to the FuzzyOcr DB, and I've tried it with FuzzyOcr disabled. In that case, it fails on the access to the bayes DB. The error line right there is : libgcc_s.so.1 must be installed for pthread_cancel to work Since sa-learn terminated prematurely, the bayes DB isn't updated at
all.
But this is not a Dovecot problem, isn't it? Antispam calls sa-learn, but that program fails.
Exactly true. But the circumstance is particular to Dovecot, and I'm sure that *someone* else out there is using this config (dovecot and spamassassin). So hoping someone has seen this and gotten around it.
Do you have the system library libgcc_s installed as the error message says?
Yup. $ locate libgcc_s
/lib/x86_64-linux-gnu/libgcc_s.so.1 /usr/lib/gcc/x86_64-linux-gnu/4.7/libgcc_s.so
Search the net for that error message, see: https://lists.ubuntu.com/archives/foundations-bugs/2012-March/070050.html
If you are on a 64bit system, maybe sa-learn is compiled 32bit only, then the library must be installed as 32bit version as well.
/usr/bin/sa-learn is a perl script, calling the various Mail::SpamAssassin modules. No 32/64 bit there afaik.