RE: Reconstruct: IOERROR: Mailbox name too long

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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@xxxxxxxxxxx



From: brong@xxxxxxxxxxx
To: magiza83@xxxxxxxxxxx; info-cyrus@xxxxxxxxxxxxxxxxxxxx
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
 
--
Bron Gondwana
brong@xxxxxxxxxxx
----
Cyrus Home Page: http://www.cyrusimap.org/
List Archives/Info: http://lists.andrew.cmu.edu/pipermail/info-cyrus/

[Index of Archives]     [Cyrus SASL]     [Squirrel Mail]     [Asterisk PBX]     [Video For Linux]     [Photo]     [Yosemite News]     [gtk]     [KDE]     [Gimp on Windows]     [Steve's Art]

  Powered by Linux