Failed to map transaction log path - Stale file handle

Aki Tuomi aki.tuomi at open-xchange.com
Tue Mar 2 09:58:53 EET 2021


You could even have only one, but two is ok too.

Aki

> On 02/03/2021 09:56 Gonzalo Palacios Goicolea <gonzalo.palacios at externo.uam.es> wrote:
> 
> 
> Hi Aki,
> Thanks for your quick answer.
> I've read it's recommended to use different servers for director and backends. So, for a 5 backend cluster, how many director servers are recommended? I guess that at least 2, but if it's better to use more than 2, please, let me know.
> Best regards
> Gonzalo
> 
> El 02/03/2021 a las 8:35, Aki Tuomi escribió:
> 
> > It has never been safe, not even in 2.2.10, to access mail from multiple backends concurrently. You have just gotten lucky.
> > 
> > You must use director (or similar solution) to ensure all sessions end up in same server.
> > 
> > Aki
> > 
> > 
> > > On 02/03/2021 09:26 Gonzalo Palacios Goicolea <gonzalo.palacios at externo.uam.es> wrote:
> > > 
> > > 
> > > Hi Aki
> > > We're using NFS v3. Should we use v4 to avoid this problem?
> > > 
> > > Regarding concurrent access, when a user uses more than one device it can go to any of the servers. It's the same config we had with dovecot-2.2.10 that never gave us this problem.
> > > So, if the issue is related to concurrent access, is it any configuration we can apply to solve it? Or the only solution is director?
> > > Thanks again
> > > 
> > > El 02/03/2021 a las 7:27, Aki Tuomi escribió:
> > > 
> > > 
> > > > > 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
> > > > 
> > > > 
> > > -- 
> > > 
> > > Gonzalo Palacios Goicolea
> > >  U.T de Infraestructura de Equipos Centrales
> > > Tecnologías de la Información
> > > Universidad Autónoma de Madrid • Campus de Cantoblanco
> > >  
> > > Antes de imprimir este correo piense si es necesario.Cuidemos el medioambiente.
> > > 
> -- 
> 
> Gonzalo Palacios Goicolea
>  U.T de Infraestructura de Equipos Centrales
> Tecnologías de la Información
> Universidad Autónoma de Madrid • Campus de Cantoblanco
>  
> Antes de imprimir este correo piense si es necesario.Cuidemos el medioambiente.


More information about the dovecot mailing list