spostamento spam inbox
importato da memo:
Author: putro, Date: 2016-09-20.16:35:59
diverse persone hanno riportato questo problema spostando email da/verso il folder "spam" sospetto fortemente un problema di dovecot-antispam che esegue un nostro script custom, bisogna investigare perche' e' cosa noiosissima ho fatto un paio di prove, se provo a spostare il messaggio la prima volta ottengo l'errore, se pero' ci riprovo viene spostato poi pero' ogni tanto non ci riesco, non ho ancora capito dov'e' il nesso tra quando ci riesco e quando no.
se provo a rimetterlo dalla inbox nel folder spam non funziona mai
se lo sposto nel folder trash e da li nel folder spam funziona (ma solo se uso il folder trash principale, se uso Trash sotto la INBOX non funziona).
se abilito mail_log in dovecot quando si verifica l'errore non logga nulla. (che mi pare strano, questa cosa la devo rivedere)
se abilito imap-debug in roundcube non si vede nessun errore, a parte roundcube: [E274] S: A0006 NO [SERVERBUG] failed to send mail questo potrebbe essere sa-report che fallisce a spedire la mail ?
pero' se lancio sa_report a mano non da errori e la mail parte:
cat /home/admins/putro/msg | /usr/local/bin/sa_report --anonymize --key-id=DA733D59D98DA9CE --gnupghome=/etc/dovecot/sa-report --recipient=spam-collect@autistici.org --spam
tra l'altro, la mailbox spam-collect contiene 137000 msg di cui 54000 non letti, e non trovo nessuno script che vada a leggerla
to be continued....
Author: putro, Date: 2016-09-21.17:24:43
aggiornamento:
il responsabile e' effettivamente /usr/local/bin/sa_report
nella versione attuale non funzionava proprio neanche lanciato da command line perche' mancava un always trust: encrypted_data = gpg.encrypt(data, [pgp_key_id], always_trust=True)
per cui spediva mail vuote.
Ora invece, lanciato da command line
cat /tmp/sendmail-msg-21555.txt | /usr/local/bin/sa_report --anonymize --key-id=DA733D59D98DA9CE --gnupghome=/etc/dovecot/sa-report --spam --recipient=putro@autistici.org
funziona e spedisce il msg crittato con la chiave di info;
eseguito da dovecot pero' da evidentemente dei problemi perche' si ferma quando esegue la riga
encrypted_data = gpg.encrypt(data, [pgp_key_id], always_trust=True)
dovecot, anche con debug attivo, non logga assolutamente nulla di tutto cio'.
Author: ale, Date: 2016-09-22.07:38:32
19:23:22 <&_ale> 29355 write(2, "8FFE61D6: There is no assurance this key belongs to th
19:23:22 <&_ale> e named user\n", 67 <unfinished ...>
19:23:22 <&_ale> 29355 write(2, "8FFE61D6: There is no assurance this key belongs to th
19:23:22 <&_ale> e named user\n", 67 <unfinished ...>
19:23:30 <&_ale> 29355 write(2, "Sorry, no terminal at all requested - can't get input\n", 54 <unfinished ...>
19:23:40 <&_ale> 29355 exit_group(2) = ?
19:40:28 <&_ale> bah qualcosa che ha a che fare col trustdb
19:45:54 <&_ale> ho dovuto risolvere con --edit-key e dando ultimate trust (?!?)
Author: putro, Date: 2016-09-22.10:20:06
questo si risolve aggiungendo always_trust=True come argomento di gpg.encrypt, avevo gia' avuto questo problema in passato con python-gnupg e' un po' esigente sul trusting.
pero' poi ci sono altri problemi di permessi:
forse serve avere /var/empty/.gnupg con permessi aperti perche' l'utente possa scriverci dentro quando usa gpg
sudo -u uno@investici.org gpg --keyring /etc/dovecot/sa-report/pubring.gpg --list-keys
gpg: fatal: can't create directory `/var/empty/.gnupg': No such file or directory
poi pare che anche /etc/dovecot/sa-report deve essere scrivibile dall'utente:
gpg: failed to create temporary file `/etc/dovecot/sa-report/.#lk0x26fa450.latitanza.29912': Permission denied
messo tutto temporaneamente con permessi 777 giusto per essere sicuro di non avere altri problemi del genere e lanciato da command line
ora funziona e spedisce il msg crittato:
sudo -u uno@investici.org /usr/local/bin/sa_report --anonymize --key-id=DA733D59D98DA9CE --gnupghome=/etc/dovecot/sa-report --spam --recipient=putro@autistici.org < /tmp/sendmail-msg-21555.txt
ma lanciato da dovecot quando sposto un msg, ancora si ferma sul gpg.encrypt che pero' non e' facilmente debuggabile perche' l'istruzione gpg.encrypt anche se ci metto un try except non restituisce un'eccezione, pur fallendo evidentemente...
c'e' un sa_report con un po' di logging su latitanza per fare le prove con uno@investici.org
Author: putro, Date: 2016-09-25.16:50:37
mi arrendo, abilitando il debug sul plugin antispam si vede che lo script fallisce, ma non ci sono altre info che credo sia magari qualche output di gpg (python-gnupg pare che non intercetti tutti i msg di errore di gpg).
questo e' il debug quando si cerca di spostare un msg da spam a INBOX:
Sep 25 16:40:00 latitanza imap: antispam: plugin initialising (2.0-notgit)
Sep 25 16:40:00 latitanza imap: antispam: verbose debug enabled
Sep 25 16:40:00 latitanza imap: antispam: "spam" is exact match spam folder
Sep 25 16:40:00 latitanza imap: antispam: "Spam" is exact match spam folder
Sep 25 16:40:00 latitanza imap: antispam: no unsure folders
Sep 25 16:40:00 latitanza imap: antispam: "trash" is exact match trash folder
Sep 25 16:40:00 latitanza imap: antispam: "Trash" is exact match trash folder
Sep 25 16:40:00 latitanza imap: antispam: "Deleted Items" is exact match trash folder
Sep 25 16:40:00 latitanza imap: antispam: "Deleted Messages" is exact match trash folder
Sep 25 16:40:00 latitanza imap: antispam: pipe backend spam argument = --spam
Sep 25 16:40:00 latitanza imap: antispam: pipe backend not-spam argument = --ham
Sep 25 16:40:00 latitanza imap: antispam: pipe backend program = /usr/local/bin/sa_report
Sep 25 16:40:00 latitanza imap: antispam: pipe backend program arg[0] = --anonymize
Sep 25 16:40:00 latitanza imap: antispam: pipe backend program arg[1] = --key-id=DA733D59D98DA9CE
Sep 25 16:40:00 latitanza imap: antispam: pipe backend program arg[2] = --gnupghome=/etc/dovecot/sa-report
Sep 25 16:40:00 latitanza imap: antispam: pipe backend program arg[3] = --recipient=spam-collect@autistici.org
Sep 25 16:40:00 latitanza imap: antispam: pipe backend tmpdir /tmp
Sep 25 16:40:00 latitanza imap [uno@investici.org 127.0.0.1 UID COPY]: antispam: mailbox_is_unsure(INBOX): 0
Sep 25 16:40:00 latitanza imap [uno@investici.org 127.0.0.1 UID COPY]: antispam: mailbox_is_trash(Spam): 0
Sep 25 16:40:00 latitanza imap [uno@investici.org 127.0.0.1 UID COPY]: antispam: mailbox_is_trash(INBOX): 0
Sep 25 16:40:00 latitanza imap [uno@investici.org 127.0.0.1 UID COPY]: antispam: mail copy: from trash: 0, to trash: 0
Sep 25 16:40:00 latitanza imap [uno@investici.org 127.0.0.1 UID COPY]: antispam: mailbox_is_spam(Spam): 1
Sep 25 16:40:00 latitanza imap [uno@investici.org 127.0.0.1 UID COPY]: antispam: mailbox_is_spam(INBOX): 0
Sep 25 16:40:00 latitanza imap [uno@investici.org 127.0.0.1 UID COPY]: antispam: mailbox_is_unsure(Spam): 0
Sep 25 16:40:00 latitanza imap [uno@investici.org 127.0.0.1 UID COPY]: antispam: mail copy: src spam: 1, dst spam: 0, src unsure: 0
Sep 25 16:40:00 latitanza imap [uno@investici.org 127.0.0.1 UID COPY]: antispam: running mailtrain backend program /usr/local/bin/sa_report
Sep 25 16:40:00 latitanza imap [uno@investici.org 127.0.0.1 UID COPY]: antispam: running mailtrain backend program /usr/local/bin/sa_report
Sep 25 16:40:00 latitanza imap [uno@investici.org 127.0.0.1 UID COPY]: antispam: running mailtrain backend program parameter 1 --anonymize
Sep 25 16:40:00 latitanza imap [uno@investici.org 127.0.0.1 UID COPY]: antispam: running mailtrain backend program parameter 2 --key-id=DA733D59D98DA9CE
Sep 25 16:40:00 latitanza imap [uno@investici.org 127.0.0.1 UID COPY]: antispam: running mailtrain backend program parameter 3 --gnupghome=/etc/dovecot/sa-report
Sep 25 16:40:00 latitanza imap [uno@investici.org 127.0.0.1 UID COPY]: antispam: running mailtrain backend program parameter 4 --recipient=spam-collect@autistici.org
Sep 25 16:40:00 latitanza imap [uno@investici.org 127.0.0.1 UID COPY]: antispam: running mailtrain backend program parameter 5 --ham
Sep 25 16:40:00 latitanza imap [uno@investici.org 127.0.0.1 UID COPY]: antispam: run program failed with exit code -1
eppure il comando lanciato da command line come utente uno@investici.org funziona
quindi, visto che per ora io quantomeno non ne esco, disabiliterei sa_report almeno la gente puo' tornare a spostare i msg nella inbox.
Author: putro, Date: 2016-09-26.22:09:22
trovato il problema, per ora disabilitato il plugin antispam di dovecot:
<_ale>18532 <... mmap resumed> ) = -1 ENOMEM (Cannot allocate memory)
<_ale> ma proprio a brutto mentre sta caricando le librerie dinamiche
<_ale> in effetti il processo dovecot figlio ha degli ulimit diversi da uno normale...
<_ale> /proc/18196/limits vs /proc/$$/limits
<_ale> max data size / max address space a 256M mi sa che non fanno bene a python
<_ale> ok ora si' possiamo disabilitarlo :) almeno abbiamo capito cosa c'e' da risolvere...
<_ale> # Default VSZ (virtual memory size) limit for service processes. This is mainly
<_ale> # intended to catch and kill processes that leak memory before they eat up
<_ale> (da dovecot.conf)
<_ale> # everything.
<_ale> #default_vsz_limit = 256M
Author: ale
Questa issue e' in realta' relativa a https://git.autistici.org/ai/sa-train - negli ultimi mesi i problemi menzionati qua sopra son stati risolti, quello che manca e' mandare in produzione sa-train (per raccogliere le mail di training e produrre regolarmente nuovi dataset bayesiani)...