Jacky Chan
2010-Dec-08 03:43 UTC
[Dovecot] dovecot-lda 2.0.8 Panic: stream doesn't support seeking backwards
Running 2.0.8 as IMAP server and LDA with quota support. The environment is: os: 64bit Slackware 13.1.0 fs: ext3 smtp: postfix-2.7.2 imap: dovecot-2.0.8 The dovecot setting in postfix master.cf dovecot unix - n n - - pipe user=mailuser:mailuser argv=/usr/dovecot/libexec/dovecot/dovecot-lda -d ${recipient} Everything work fine and mail can be saved to user's home directory without error when the user is not over quota. If over quota occur, the maillog log this error message: Command died with signal 6: "/usr/dovecot/libexec/dovecot/dovecot-lda". Command output: lda: Debug: Loading modules from directory: /usr/dovecot/lib64/dovecot lda: Debug: Module loaded: /usr/dovecot/lib64/dovecot/lib10_quota_plugin.so lda: Debug: auth input: xxx at xxx.com home=/home/mail_data/xxx.com/xxx quota_rule=*:storage=1024 uid=9203 gid=9203 lda: Debug: Added userdb setting: plugin/quota_rule=*:storage=1024 lda(xxx at xxx.com): Debug: Effective uid=9203, gid=9203, home=/home/mail_data/xxx.com/xxx lda(xxx at xxx.com): Debug: Quota root: name= backend=maildir args= lda(xxx at xxx.com): Debug: Quota rule: root= mailbox=* bytes=1048576 messages=0 lda(xxx at xxx.com): Debug: Quota rule: root= mailbox=Trash bytes=+104857600 messages=0 lda(xxx at xxx.com): Debug: maildir++: root=/home/mail_data/xxx.com/xxx, index=, control=, inbox=/home/mail_data/xxx.com/xxx lda(xxx at xxx.com): Debug: Quota root: name= backend=maildir args= lda(xxx at xxx.com): Debug: none: root=, index=, control=, inbox= lda(xxx at xxx.com): Panic: stream doesn't support seeking backwards lda(xxx at xxx.com): Error: Raw backtrace: /usr/dovecot-2.0.8/lib64/dovecot/libdovecot.so.0(+0x3ca6a) [0x7ffc860a1a6a] -> /usr/dovecot-2.0.8/lib64/dovecot/libdovecot.so.0(default_fatal_handler+0x32) [0x7ffc860a1b52] -> /usr/dovecot-2.0.8/lib64/dovecot/libdovecot.so.0(i_fatal+0) [0x7ffc8607c031] -> /usr/dovecot-2.0.8/lib64/dovecot/libdovecot.so.0(+0x45834) [0x7ffc860aa834] -> /usr/dovecot-2.0.8/lib64/dovecot/libdovecot.so.0(i_stream_seek+0x86) [0x7ffc860a81f6] -> /usr/dovecot-2.0.8/lib64/dovecot/libdovecot.so.0(+0x45d87) [0x7ffc860aad87] -> /usr/dovecot-2.0.8/lib64/dovecot/libdovecot.so.0(i_stream_read+0x64) [0x7ffc860a8284] -> /usr/dovecot-2.0.8/lib64/dovecot/libdovecot.so.0(i_stream_read_data+0x3d) [0x7ffc860a894d] -> /usr/dovecot-2.0.8/lib64/dovecot/libdovecot.so.0(message_parse_header_next+0x73) [0x7ffc8608e973] -> /usr/dovecot-2.0.8/lib64/dovecot/libdovecot.so.0(+0x2b1a7) [0x7ffc860901a7] -> /usr/dovecot-2.0.8/lib64/dovecot/libdovecot.so.0(message_parser_parse_next_block+0x29) [0x7ffc860908f9] -> /usr/dovecot-2.0.8/lib64/dovecot/libdovecot.so.0(message_parser_parse_header+0x41) [0x7ffc86090a91] -> /usr/dovecot-2.0.8/lib64/dovecot/libdovecot-storage.so.0(index_mail_parse_headers+0xc2) [0x7ffc86535fd2] -> /usr/dovecot-2.0.8/lib64/dovecot/libdovecot-storage.so.0(+0x462ea) [0x7ffc865362ea] -> /usr/dovecot-2.0.8/lib64/dovecot/libdovecot-storage.so.0(index_mail_get_first_header+0x5e) [0x7ffc8653689e] -> /usr/dovecot-2.0.8/lib64/dovecot/libdovecot-lda.so.0(mail_deliver_get_log_var_expand_table+0x48) [0x7ffc862eb848] -> /usr/dovecot-2.0.8/lib64/dovecot/libdovecot-lda.so.0(+0x593a) [0x7ffc862eb93a] -> /usr/dovecot-2.0.8/lib64/dovecot/libdovecot-lda.so.0(mail_deliver_log+0x118) [0x7ffc862ebb28] -> /usr/dovecot-2.0.8/lib64/dovecot/libdovecot-lda.so.0(mail_deliver_save+0x2e2) [0x7ffc862ec012] -> /usr/dovecot-2.0.8/lib64/dovecot/libdovecot-lda.so.0(mail_deliver+0xe3) [0x7ffc862ec2c3] -> /usr/dovecot/libexec/dovecot/dovecot-lda(main+0x67c) [0x402dec] -> /lib64/libc.so.6(__libc_start_main+0xfd) [0x7ffc858f4c7d] -> /usr/dovecot/libexec/dovecot/dovecot-lda() [0x402549] I tried run the dovecot-lda at command line: /usr/dovecot/libexec/dovecot/dovecot-lda -d xxx at xxx.com < some_saved_mail The result is dovecot quota plugin reject the mail and send an over quota message back to the sender without any error. It seems that the error is only occur with postfix pipe command. Any hints?
Timo Sirainen
2010-Dec-08 04:01 UTC
[Dovecot] dovecot-lda 2.0.8 Panic: stream doesn't support seeking backwards
On 8.12.2010, at 3.43, Jacky Chan wrote:> Everything work fine and mail can be saved to user's home directory without error when the user is not over quota. > If over quota occur, the maillog log this error message: > > Panic: stream doesn't support seeking backwards lda(xxx at xxx.com):Hmm. Interesting. I'll check tomorrow.> I tried run the dovecot-lda at command line: > /usr/dovecot/libexec/dovecot/dovecot-lda -d xxx at xxx.com < some_saved_mail > > The result is dovecot quota plugin reject the mail and send an over quota message back to the sender without any error. > > It seems that the error is only occur with postfix pipe command.You can most likely reproduce it with: cat some_saved_mail | dovecot-lda -d ..