Le 16 févr. 2013 à 17:47, Timo Sirainen a écrit :
[...] a) dtruss the pop3 process to see which syscall hangs. Maybe this works:
service pop3 { executable = /usr/bin/dtruss /usr/local/libexec/dovecot/pop3 }
It logs to Dovecot's error log.
Hello Timo,
As usual, once again, many thanks for your reply. :-)
I already tried the dtruss way on hanging pop3 processes, but without any valuable output: they were just sleeping, and dtruss came without any output.
Anyway, yes, above proposal proved functional. Interestingly. ;-)
I tried five consecutive pop logins (RUN 1 to 5) with the same user ("user1", 100002/100002), yet without being able to discern some conclusive pattern.
Just to be sure, I turned flocking off for two other subsequent logins (RUN 6 and 7). Again without any "Aha" effect on my side.
In all cases, I had to send a KILL signal to the hanging pop3 process, hence the last empty line in the log ("pop3: Error: ").
Outputs are in Pop3Hangs.txt.zip.
b) get gdb backtrace:
gdb -p <pid of pop3 process> bt full
I thus tried an eigth run, still with flocking off.
Output is in Pop3HangsGdb.txt.zip.
Wishing you all the best, Axel