Reconstruct: IOERROR: Mailbox name too long

Bron Gondwana brong at fastmail.fm
Fri Feb 10 10:37:23 EST 2012


remote_cyrus# ctl_mboxlist -d > file
local_cyrus# clt_mboxlist -u < file

In between these steps, do this:

sed 's/\t0 spool[12] /\t0 default /' < file > file2 && mv file2
file

(tested on a dumb sample here)

basically you want to replace the "partition" field in the dump
with default in all cases.

Alternatively, you could create partition-spool1 and
partition-spool2 pointing to symlinks to the real data, but I
would advise being careful about that and moving mailboxes
between them - I'm not sure Cyrus is totally sane about resolving
the real path in all cases.

Bron.

On Fri, Feb 10, 2012, at 02:35 PM, Manel Gimeno Zaragozá wrote:

Hello Bron,
Thanks for your quick response. I paste the config from remote
server:
Remote server#
   configdirectory: /uc01-cyr1/shared/config
   defaultpartition: spool1
   partition-spool1: /uc01-cyr1/shared/spool1
   partition-spool2: /uc01-cyr1/shared/spool2
Local server#
   partition-default: /var/spool/imap
   configdirectory: /var/lib/imap
But, before ask by mail I made a softlink in the local server to
simulate the same "partition-spool" hoping that this could
happend when importing mailboxes...but It has not solve the
problem. Maybe a softlink is not the correct solution.
Local server#
   ls -la /uc01-cyr1/shared/spool1
          lrwxrwxrwx 1 cyrus mail 16 Feb 10 13:18
/uc01-cyr1/shared/spool1 -> /var/spool/imap/
Regarding copying spool files, I guess this is a workaround, but
I cannot do this in production migration as I should rsync 600GB.
Thanks!
Regards.
Manel Gimeno Zaragoza
magiza83 at hotmail.com
  ____________________________________________________________

From: brong at fastmail.fm
To: magiza83 at hotmail.com; info-cyrus at lists.andrew.cmu.edu
Subject: Re: Reconstruct: IOERROR: Mailbox name too long
Date: Fri, 10 Feb 2012 14:21:18 +0100
Bogus message is probably totally bogus.  I suspect the real
error is that
your partition layout doesn't match.  What were the partitions on
the remote
cyrus?

Also - recommend you don't do this - just copy the spool files
AND the
config files (/var/lib/imap/) to the new machine and it should
upgrade in place.

Bron.


On Fri, Feb 10, 2012, at 02:07 PM, Manel Gimeno Zaragozá wrote:

Hello,
I've installed "cyrus-imapd-2.4.13-1.el6.x86_64" and i'm trying
to migrate a mailbox from a remote cyrus server to a new one. The
steps I follow are:
remote_cyrus# ctl_mboxlist -d > file
local_cyrus# clt_mboxlist -u < file
local_cyrus# reconstruct -rxf user.test_user
    user.test_user: failed to read index header
    user.test_user: Invalid mailbox name (null)
    user.test_user.Borrador: failed to read index header
    user.test_user.Borrador: Invalid mailbox name (null)
    user.test_user.Elementos eliminados: failed to read index
header
    user.test_user.Elementos eliminados: Invalid mailbox name
(null)
    user.test_user.Elementos enviados: failed to read index
header
    user.test_user.Elementos enviados: Invalid mailbox name
(null)
    user.test_user.SPAM: failed to read index header
    user.test_user.SPAM: Invalid mailbox name (null)
Also the log file shows:
local_cyrus# cat /var/log/maillog
    ...
    ...
    Feb 10 13:48:30 cyrus1-test reconstruct[21520]: create new
mailbox user.test_user
    Feb 10 13:48:30 cyrus1-test reconstruct[21520]: failed to
read index header for user.test_user
    Feb 10 13:48:30 cyrus1-test reconstruct[21520]: IOERROR:
Mailbox name too long (user.test_user)
    Feb 10 13:48:30 cyrus1-test reconstruct[21520]:
reconstructing user.test_user.Borrador
    Feb 10 13:48:30 cyrus1-test reconstruct[21520]: IOERROR:
opening index user.test_user.Borrador: Invalid mailbox name
    Feb 10 13:48:30 cyrus1-test reconstruct[21520]: create new
mailbox user.test_user.Borrador
    Feb 10 13:48:30 cyrus1-test reconstruct[21520]: failed to
read index header for user.test_user.Borrador
    Feb 10 13:48:30 cyrus1-test reconstruct[21520]: IOERROR:
Mailbox name too long (user.test_user.Borrador)
    Feb 10 13:48:30 cyrus1-test reconstruct[21520]:
reconstructing user.test_user.Elementos eliminados
    Feb 10 13:48:30 cyrus1-test reconstruct[21520]: IOERROR:
opening index user.test_user.Elementos eliminados: Invalid
mailbox name
    Feb 10 13:48:30 cyrus1-test reconstruct[21520]: create new
mailbox user.test_user.Elementos eliminados
    Feb 10 13:48:30 cyrus1-test reconstruct[21520]: failed to
read index header for user.test_user.Elementos eliminados
    Feb 10 13:48:30 cyrus1-test reconstruct[21520]: IOERROR:
Mailbox name too long (user.test_user.Elementos eliminados)
    Feb 10 13:48:30 cyrus1-test reconstruct[21520]:
reconstructing user.test_user.Elementos enviados
    Feb 10 13:48:30 cyrus1-test reconstruct[21520]: IOERROR:
opening index user.test_user.Elementos enviados: Invalid mailbox
name
    Feb 10 13:48:30 cyrus1-test reconstruct[21520]: create new
mailbox user.test_user.Elementos enviados
    Feb 10 13:48:30 cyrus1-test reconstruct[21520]: failed to
read index header for user.test_user.Elementos enviados
    Feb 10 13:48:30 cyrus1-test reconstruct[21520]: IOERROR:
Mailbox name too long (user.test_user.Elementos enviados)
    Feb 10 13:48:30 cyrus1-test reconstruct[21520]:
reconstructing user.test_user.SPAM
    Feb 10 13:48:30 cyrus1-test reconstruct[21520]: IOERROR:
opening index user.test_user.SPAM: Invalid mailbox name
    Feb 10 13:48:30 cyrus1-test reconstruct[21520]: create new
mailbox user.test_user.SPAM
    Feb 10 13:48:30 cyrus1-test reconstruct[21520]: failed to
read index header for user.test_user.SPAM
    Feb 10 13:48:30 cyrus1-test reconstruct[21520]: IOERROR:
Mailbox name too long (user.test_user.SPAM)
    ...
    ...
It looks like I'm not able to reconstruct the mailbox due to
"name too long".
Is it possible to avoid this problem without modify the mbox
name? as I have more that 10.000 account and all of them have the
same type of folders with spaces and "long names", even some of
them have longer name folders.
Anyway, I think in some cases the name is not too long (f.e.
user.test_user) but I get the same error, I'm guessing that maybe
the problem is not there, but I'm not able to find it.
I post also my config files:
=========================imapd.conf=========================
    admins: cyrus
    allowplaintext: yes
    allowapop: no
    configdirectory: /var/lib/imap
    partition-default: /var/spool/imap
    imapidresponse: no
    sasl_pwcheck_method: saslauthd
    sasl_mech_list: PLAIN LOGIN
    sievedir: /var/lib/imap/sieve
    altnamespace: yes
    hashimapspool: true
    unixhierarchysep: no
    lmtp_downcase_rcpt: no
    allowanonymouslogin: no
    popminpoll: 1
    autocreatequota: 0
    umask: 027
    sieveusehomedir: false
    sasl_ldap_servers: ldap://******.com:1389/
    sasl_ldap_basedn: ou=*******,dc=org
    tls_ca_path: /etc/ssl/certs
    tls_session_timeout: 1440
    tls_cipher_list:
TLSv1:SSLv3:SSLv2:!NULL:!EXPORT:!DES:!LOW:@STRENGTH
    lmtpsocket: /var/run/cyrus/socket/lmtp
    idlesocket: /var/run/cyrus/socket/idle
    notifysocket: /var/run/cyrus/socket/notify
    delete_mode: immediate
    expunge_mode: immediate
    #Replica config
    sync_host: 192.168.**.**
    sync_authname: ******
    sync_password: ******
    #Configuracion para el rolling
    sync_log: 1
    sync_repeat_interval: 1
    sync_machineid: 1
============================================================
=========================cyrus.conf=========================
    START {
      # do not delete this entry!
      recover       cmd="ctl_cyrusdb -r"
      # this is only necessary if using idled for IMAP IDLE
      idled         cmd="idled"
      #Si queremos que sea MASTER tenemos que arrancar el
sync_client
      syncclient    cmd="/usr/lib/cyrus-imapd/sync_client -r"
    }
    SERVICES {
      # add or remove based on preferences
      imap          cmd="imapd" listen="imap" prefork=5
      #imaps                cmd="imapd -s" listen="imaps"
prefork=1
      pop3          cmd="pop3d" listen="pop3" prefork=3
      #pop3s                cmd="pop3d -s" listen="pop3s"
prefork=1
      sieve         cmd="timsieved" listen="sieve" prefork=0
      lmtpunix      cmd="lmtpd"
listen="/var/lib/imap/socket/lmtp" prefork=1
    }
    EVENTS {
      # this is required
      checkpoint    cmd="ctl_cyrusdb -c" period=30
      # this is only necessary if using duplicate delivery
suppression,
      # Sieve or NNTP
      delprune      cmd="cyr_expire -D 7 -E 3 -X 7" at=0400
      # this is only necessary if caching TLS sessions
      tlsprune      cmd="tls_prune" at=0400
    }
============================================================
Thanks & Regards.

----
Cyrus Home Page: http://www.cyrusimap.org/
List Archives/Info: http://lists.andrew.cmu.edu/pipermail/info-cyrus/


--
Bron Gondwana
[1]brong at fastmail.fm

References

1. mailto:brong at fastmail.fm
-- 
  Bron Gondwana
  brong at fastmail.fm

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.andrew.cmu.edu/pipermail/info-cyrus/attachments/20120210/b62cbc89/attachment-0001.html 


More information about the Info-cyrus mailing list