Failed to map transaction log path - Stale file handle
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@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 transaction log path/Maildir/dovecot.index.log at sync_offset=10328
- newer log can't exist (initial_mapped=1, reason=Index mapped) Feb 28 08:50:42 server5 dovecot: imap(user@domain): Warning: fscking index file path/Maildir/dovecot.index Feb 28 08:50:42 server5 dovecot: imap(user@domain): Error: Failed to map
after locking: pread() failed: Stale file handle Feb 28 08:50:42 server5 dovecot: imap(user@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@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@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@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 =
Can you please help me? Thanks in advance and best regards
--
*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.
On 01/03/2021 14:59 Gonzalo Palacios Goicolea gonzalo.palacios@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@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@domain): Warning: fscking index file path/Maildir/dovecot.index Feb 28 08:50:42 server5 dovecot: imap(user@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@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@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@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@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 =
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
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@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@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@domain): Warning: fscking index file path/Maildir/dovecot.index Feb 28 08:50:42 server5 dovecot: imap(user@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@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@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@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@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 =
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 c/ Francisco Tomás y Valiente, n° 11, Edificio B de la EPS – TI-208 - 28049, Madrid Tel.: 91497 2368 – gonzalo.palacios@externo.uam.es - www.uam.es <3D"http://www.uam.es/">
LinkedIn <3D"https://www.linkedin.com/in/universidadautonomademadrid/"> | Twitter <3D"https://twitter.com/uam_madrid"> | Facebook <3D"https://www.facebook.com/universidadautonomademadrid/"> | Youtube <3D"https://www.youtube.com/user/uam"> ¿Eres de la Autónoma? Hazte AlumniUAM <3D"https://alumni.uam.es/">
Antes de imprimir este correo piense si es necesario.Cuidemos el medioambiente.
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@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@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@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@domain): Warning: fscking index file path/Maildir/dovecot.index Feb 28 08:50:42 server5 dovecot: imap(user@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@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@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@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@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 =
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 c/ Francisco Tomás y Valiente, n° 11, Edificio B de la EPS – TI-208 - 28049, Madrid Tel.: 91497 2368 – gonzalo.palacios@externo.uam.es - www.uam.es
LinkedIn | Twitter | Facebook | Youtube ¿Eres de la Autónoma? Hazte AlumniUAM Antes de imprimir este correo piense si es necesario.Cuidemos el medioambiente.
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@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@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@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@domain): Warning: fscking index file path/Maildir/dovecot.index Feb 28 08:50:42 server5 dovecot: imap(user@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@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@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@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@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 =
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 <3D"https://alumni.uam.es/">
Antes de imprimir este correo piense si es necesario.Cuidemos el medioambiente.
You could even have only one, but two is ok too.
Aki
On 02/03/2021 09:56 Gonzalo Palacios Goicolea gonzalo.palacios@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@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@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@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@domain): Warning: fscking index file path/Maildir/dovecot.index Feb 28 08:50:42 server5 dovecot: imap(user@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@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@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@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@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 =
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.
participants (2)
-
Aki Tuomi
-
Gonzalo Palacios Goicolea