Failed to map transaction log path - Stale file handle
Aki Tuomi
aki.tuomi at open-xchange.com
Tue Mar 2 08:27:57 EET 2021
> On 01/03/2021 14:59 Gonzalo Palacios Goicolea <gonzalo.palacios at externo.uam.es> wrote:
>
>
> Hi All,
>
> We recently moved from RHEL6 to RHEL7 and updated dovecot from dovecot-2.2.10-1_14.el6.x86_64 to dovecot-2.2.36-8.el7.x86_64. We use NFS for storing the mail, and 5 servers running at the same time.
> Before updating dovecot we stopped the service and deleted all dovecot.index* files
> Now we're experiencing some problems. For example, when deleting an email it is note deleted and appears again duplicated. These are the logs:
>
> Feb 28 08:50:42 server5 dovecot: imap(user at domain): Error: Index path/Maildir/dovecot.index: Lost log for seq=5 offset=228: Missing middle file seq=5 (between 5..4294967295, we have seqs 4): Log is locked - newer log can't exist (initial_mapped=1, reason=Index mapped)
> Feb 28 08:50:42 server5 dovecot: imap(user at domain): Warning: fscking index file path/Maildir/dovecot.index
> Feb 28 08:50:42 server5 dovecot: imap(user at domain): Error: Failed to map transaction log path/Maildir/dovecot.index.log at sync_offset=10328 after locking: pread() failed: Stale file handle
> Feb 28 08:50:42 server5 dovecot: imap(user at domain): Error: Index path/Maildir/dovecot.index: Lost log for seq=5 offset=228: Missing middle file seq=5 (between 5..4294967295, we have seqs 4): Requested newer log than exists - still after NFS flush: Log inode is unchanged (initial_mapped=1, reason=Index mapped)
> Feb 28 08:50:45 server5 dovecot: imap(user at domain): Error: Failed to map transaction log path/Maildir/dovecot.index.log at sync_offset=10328 after locking: pread() failed: Stale file handle
> Feb 28 08:50:45 server5 dovecot: imap(user at domain): Error: Failed to map view for path/Maildir/dovecot.index: Missing middle file seq=5 (between 5..5, we have seqs 4): Requested newer log than exists - still after NFS flush: Log inode is unchanged
>
> Usually restarting the email client solves the problem for a while. We've tried deleting the indexes but it happens again some time later.
>
> This is dovecot config:
>
> dovecot -n
> # 2.2.36 (1f10bfa63): /etc/dovecot/dovecot.conf
> # Pigeonhole version 0.4.24 (124e06aa)
> # OS: Linux 3.10.0-1160.6.1.el7.x86_64 x86_64 Red Hat Enterprise Linux Server release 7.9 (Maipo)
> # Hostname: server
> auth_cache_negative_ttl = 5 mins
> auth_cache_size = 500 M
> auth_cache_ttl = 5 mins
> auth_failure_delay = 5 secs
> default_vsz_limit = 1 G
> disable_plaintext_auth = no
> hostname = server
> imap_logout_format = in(bytes read)=%i out(bytes sent)=%o
> listen = *
> lock_method = dotlock
> mail_fsync = always
> mail_location = maildir:%h/Maildir
> mail_nfs_index = yes
> mail_nfs_storage = yes
> mail_plugins = " quota mail_log notify"
> managesieve_notify_capability = mailto
> managesieve_sieve_capability = fileinto reject envelope encoded-character vacation subaddress comparator-i;ascii-numeric relational regex imap4flags copy include variables body enotify environment mailbox date index ihave duplicate mime foreverypart extracttext imapflags notify
> mbox_write_locks = fcntl
> mmap_disable = yes
> namespace {
> location = maildir:%h/Maildir/_backup
> prefix = _backup.
> separator = .
> type = private
> }
> namespace inbox {
> inbox = yes
> location =
> mailbox Drafts {
> special_use = \Drafts
> }
> mailbox Junk {
> special_use = \Junk
> }
> mailbox Sent {
> special_use = \Sent
> }
> mailbox "Sent Messages" {
> special_use = \Sent
> }
> mailbox Trash {
> special_use = \Trash
> }
> prefix =
> }
> passdb {
> args = /etc/dovecot/dovecot-ldap.conf.ext
> driver = ldap
> }
> plugin {
> mail_log_events = delete undelete expunge mailbox_delete mailbox_rename mailbox_create save
> mail_log_fields = uid box msgid from subject
> quota = maildir:_backup:ns=
> quota_exceeded_message = El espacio asignado para el almacenamiento del correo del destinatario ha superado su capacidad total. Por ello, el correo que usted intenta enviar no se puede entregar al destinatario.
> quota_warning = storage=70%% quota-warning 70 %u
> quota_warning1 = storage=90%% quota-warning 90 %u
> quota_warning2 = storage=95%% quota-warning 95 %u
> quota_warning3 = storage=99%% quota-warning 99 %u
> sieve = ~/.dovecot.sieve
> sieve_dir = ~/Maildir/sieve
> sieve_extensions = +notify +imapflags
> }
> postmaster_address = postmaster at domain
> protocols = imap pop3 sieve
> service auth {
> unix_listener auth-userdb {
> group = vmail
> mode = 0666
> user = vmail
> }
> }
> service imap-login {
> inet_listener imap {
> port = 143
> }
> process_min_avail = 20
> }
> service imap {
> process_limit = 2048
> }
> service managesieve-login {
> inet_listener sieve {
> port = 4190
> }
> inet_listener sieve_deprecated {
> port = 2000
> }
> process_min_avail = 20
> }
> service pop3-login {
> inet_listener pop3 {
> port = 110
> }
> process_min_avail = 20
> }
> service pop3 {
> process_limit = 2048
> }
> service quota-warning {
> executable = script /etc/dovecot/scripts_notification_quota/quota-warning.sh
> unix_listener quota-warning {
> user = vmail
> }
> user = vmail
> }
> ssl = no
> ssl_cert = </etc/pki/dovecot/certs/dovecot.pem
> ssl_key = # hidden, use -P to show it
> submission_host = smtp.domain:25
> syslog_facility = local1
> userdb {
> args = /etc/dovecot/dovecot-ldap.conf.ext
> driver = ldap
> }
> protocol lda {
> mail_plugins = " quota mail_log notify sieve"
> }
> protocol imap {
> mail_max_userip_connections = 10000
> mail_plugins = " quota mail_log notify imap_quota"
> }
> protocol pop3 {
> mail_max_userip_connections = 10
> }
>
> Can you please help me?
> Thanks in advance and best regards
>
> --
>
> Gonzalo Palacios Goicolea
Hi!
Are you ensuring that the same user is not concurrently being accessed by multiple backends. All mail sessions for a user, including mail delivery.
Are you using NFSv3 or NFSv4?
Aki
More information about the dovecot
mailing list