Re: IOERROR: zero index/expunge record

2011-08-04 Thread Marc Muehlfeld
Hi Bron,

thanks for the long explanation, even if I don't understand everything. :-)

It sounds like there is no way to fix this by a configuration parameter or 
migrating a database or so. And if the only way is to patch the current 
version or compile a new one, then I think the new one is the better idea.

Can I keep the cyrus-sasl packages from my distribution and just replace the 
imapd with the latest version?

This are the cyrus packages I currently have installed
cyrus-imapd-2.3.16-6.el6_1.2.x86_64
cyrus-imapd-utils-2.3.16-6.el6_1.2.x86_64
cyrus-sasl-2.1.23-8.el6.x86_64
cyrus-sasl-lib-2.1.23-8.el6.x86_64
cyrus-sasl-plain-2.1.23-8.el6.x86_64

When I upgrade to 2.4.10, are there any migrations I have to do (like 
databases)? Or can I just compile and update the daemon and utils and start 
cyrus again?

Regards,
Marc



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


Re: IOERROR: zero index/expunge record

2011-08-04 Thread Bron Gondwana
On Thu, 04 Aug 2011 09:51:07 +0200, Marc Muehlfeld  
marc.muehlf...@medizinische-genetik.de wrote:

 Hi Bron,

 thanks for the long explanation, even if I don't understand everything.  
 :-)

 It sounds like there is no way to fix this by a configuration parameter  
 or migrating a database or so. And if the only way is to patch the  
 current version or compile a new one, then I think the new one is the  
 better idea.

Pretty much - and the patch would be super-invasive even if someone
did write it.

 Can I keep the cyrus-sasl packages from my distribution and just replace  
 the imapd with the latest version?

Yes - we use cyrus-sasl as shipped by our vendor (Debian in our case).
You will need the cyrus-sasl-devel package (or whatever it's called).
Or talk to Jeroen about pre-compiled Cyrus RPMs.  He probably has some.

 This are the cyrus packages I currently have installed
 cyrus-imapd-2.3.16-6.el6_1.2.x86_64
 cyrus-imapd-utils-2.3.16-6.el6_1.2.x86_64
 cyrus-sasl-2.1.23-8.el6.x86_64
 cyrus-sasl-lib-2.1.23-8.el6.x86_64
 cyrus-sasl-plain-2.1.23-8.el6.x86_64

 When I upgrade to 2.4.10, are there any migrations I have to do (like  
 databases)? Or can I just compile and update the daemon and utils and  
 start cyrus again?

Everything should migrate itself automatically.  It will be VERY slow for
a while while it basically does a reconstruct of each mailbox first time
you open it to upgrade some of the datastructures.

Bron.


-- 
Using Opera's revolutionary email client: http://www.opera.com/mail/

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


Re: IOERROR: zero index/expunge record

2011-08-04 Thread Marc Muehlfeld
Am 04.08.2011 10:06, schrieb Bron Gondwana:
 Pretty much - and the patch would be super-invasive even if someone
 did write it.

I opened a bugreport at redhat:
https://bugzilla.redhat.com/show_bug.cgi?id=728148
Maybe they will fix it.




 Everything should migrate itself automatically. It will be VERY slow for
 a while while it basically does a reconstruct of each mailbox first time
 you open it to upgrade some of the datastructures.

I'll setup a test system during the next days and try switching to 2.4.10.



Just because of being curious: If I switch to the latest version now, is it 
possible to switch back to the distribution version, if Redhat fix it? Or is a 
downgrade not possible?



Thanks for the great help.


Regards,
Marc

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


Re: IOERROR: zero index/expunge record

2011-08-04 Thread Simon Matter
 Am 04.08.2011 10:06, schrieb Bron Gondwana:
 Pretty much - and the patch would be super-invasive even if someone
 did write it.

 I opened a bugreport at redhat:
 https://bugzilla.redhat.com/show_bug.cgi?id=728148
 Maybe they will fix it.


Hi,

The interesting point is why do you see those problems and others do not.
Since you are running a rebuild of stock RHEL6 cyrus-imapd package it
seems like others should have the same problem since it's out for quite
some time.


 Everything should migrate itself automatically. It will be VERY slow for
 a while while it basically does a reconstruct of each mailbox first time
 you open it to upgrade some of the datastructures.

 I'll setup a test system during the next days and try switching to 2.4.10.



 Just because of being curious: If I switch to the latest version now, is
 it
 possible to switch back to the distribution version, if Redhat fix it? Or
 is a
 downgrade not possible?

You can not directly go back because of the upgrade some of the
datastructures. While I can suggest running 2.4.10 I'm quite sure it
should also work fine with 2.3.16. So there may really be something wrong
with your system. I'd try to find out first what's going on.

I could send you my 2.4.10 rpms for EL6 (i686 or x86_64) for testing, but
I don't think it's a good idea to upgrade your production box if you may
want to go back to 2.3.16 later.

Simon


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


Re: IOERROR: zero index/expunge record

2011-08-03 Thread Marc Muehlfeld
Am 03.08.2011 06:55, schrieb Simon Matter:
 Something is wrong with the database because Cyrus-imapd uses a number
 of databases. So I guess here is a problem.

I removed cyrus.cache, cyrus.index and cyrus.header out of the users broken 
mailbox and run a reconstruct to recreate them. For some mailboxes this fixes 
the issue. But for some it comes back after hours or days.

I also read that I should run
db_recover -h /var/lib/imap/db
while the cyrus services are stopped. But this doesn't help either.

What other databases could be affected and how can I fix them?



 Do you not see any other errors in the Cyrus logs?

No. The
  imap[21918]: IOERROR: user.xxx zero index/expunge record 41/47
errors are the only ones.




Regards,
Marc

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


Re: IOERROR: zero index/expunge record

2011-08-03 Thread Simon Matter
 Am 03.08.2011 06:55, schrieb Simon Matter:
 Something is wrong with the database because Cyrus-imapd uses a number
 of databases. So I guess here is a problem.

 I removed cyrus.cache, cyrus.index and cyrus.header out of the users
 broken
 mailbox and run a reconstruct to recreate them. For some mailboxes this
 fixes
 the issue. But for some it comes back after hours or days.

 I also read that I should run
 db_recover -h /var/lib/imap/db
 while the cyrus services are stopped. But this doesn't help either.

 What other databases could be affected and how can I fix them?


Well, I don't know what configuration EL6 ships with. At least the
db_recover command above will only work on BDB but not on skiplist
databases. What does file /var/lib/imap/*.db show?

Simon


 Do you not see any other errors in the Cyrus logs?

 No. The
   imap[21918]: IOERROR: user.xxx zero index/expunge record 41/47
 errors are the only ones.




 Regards,
 Marc




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


Re: IOERROR: zero index/expunge record

2011-08-03 Thread Simon Matter
 Am 03.08.2011 09:47, schrieb Simon Matter:
 Well, I don't know what configuration EL6 ships with. At least the
 db_recover command above will only work on BDB but not on skiplist
 databases. What does file /var/lib/imap/*.db show?

 The configuration is the same that we used on Centos 5 before for years.


 # file /var/lib/imap/*.db
 /var/lib/imap/annotations.db:  Cyrus skiplist DB
 /var/lib/imap/deliver.db:  Berkeley DB (Btree, version 9, native
 byte-order)
 /var/lib/imap/mailboxes.db:Cyrus skiplist DB
 /var/lib/imap/tls_sessions.db: Berkeley DB (Btree, version 9, native
 byte-order)

So, you are still using Berkeley DB but the versions are different. How
did you upgrade those files? I suggest to switch to skiplist for all
databases. And make sure you clean up /var/lib/imap/db. BTW, deliver.db
and tls_sessions.db are not so important, you could configure skiplist and
just remove those dbs and also the content of /var/lib/imap/db.

Simon


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


Re: IOERROR: zero index/expunge record

2011-08-03 Thread Bron Gondwana
On Wed, Aug 03, 2011 at 08:59:01PM +0200, Simon Matter wrote:
 Skiplist is the default with 2.4. With 2.3 I'm still consider skiplist
 recommended. I'm running all my system skiplist only for a long time.

Skiplist is recommended in 2.3.12+

  The IOERROS could (temporarily) repaired by removing cyrus.cache and
  cyrus.index (sometimes cyrus.header also) and doing a reconstruct. Also I
  have
  this *.NEW files in the mailbox folder when it's bringing this errors.
  Couldn't be a problem with this files or processes that access this files,
  too? Or could it result from the other (BDB) databases?
 
 I don't know, did you also check the ownership and permissions of all
 directories?

Also check out your locking.  If this is 2.4.x, make sure you don't have
anything cleaning up the 'mboxname_lockpath' directory.

What version are you running?

Bron.

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


Re: IOERROR: zero index/expunge record

2011-08-03 Thread Marc Muehlfeld
Am 03.08.2011 20:59, schrieb Simon Matter:
 They should, but be aware that maybe you broght some crap in
 /var/lib/imap/db so it was still not clean.

But when I stop cyrus, the db folder just contains the DB_CONFIG file and a 4 
byte skipstamp file. Nothing else. Just when cyrus is running, there are 
some files in it:

-rw---  1 cyrus mail24576  3. Aug 22:06 __db.001
-rw---  1 cyrus mail  6930432  3. Aug 22:06 __db.002
-rw---  1 cyrus mail  2629632  3. Aug 22:06 __db.003
-rw---  1 cyrus mail  1081344  3. Aug 22:06 __db.004
-rw---  1 cyrus mail 38887424  3. Aug 22:06 __db.005
-rw---  1 cyrus mail57344  3. Aug 22:06 __db.006
-rw-r--r--  1 cyrus mail   52 18. Jul 13:04 DB_CONFIG
-rw---  1 cyrus mail 10485760  3. Aug 22:06 log.01
-rw---  1 cyrus mail4  3. Aug 22:06 skipstamp



 How do I switch the two BDB databases to skiplist? I think tlscache_db
 is
 the parameter for tls_sessions. But which one is responsible for
 deliver.db?

 That's duplicate_db,


I changed tlscache_db and duplicate_db to skiplist now:

# file /var/lib/imap/*.db
/var/lib/imap/annotations.db:  Cyrus skiplist DB
/var/lib/imap/deliver.db:  Cyrus skiplist DB
/var/lib/imap/mailboxes.db:Cyrus skiplist DB
/var/lib/imap/tls_sessions.db: Cyrus skiplist DB




 I don't know, did you also check the ownership and permissions of all
 directories?

Yes. It's all fine. When I remove the files and do a reconstruct they are 
recreated and the IOERRORS are gone. On some mailboxes the never came back, on 
others they came back after hours or some days.


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


Re: IOERROR: zero index/expunge record

2011-08-03 Thread Marc Muehlfeld
Am 03.08.2011 21:34, schrieb Bron Gondwana:
 Also check out your locking.  If this is 2.4.x, make sure you don't have
 anything cleaning up the 'mboxname_lockpath' directory.

Is there anything I can check ybout locking in 2.3.16?




 What version are you running?

2.3.16 that was shipped with Scientific Linux 6 (RHEL 6).


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


Re: IOERROR: zero index/expunge record

2011-08-03 Thread Bron Gondwana
On Wed, 03 Aug 2011 22:14:23 +0200, Marc Muehlfeld  
marc.muehlf...@medizinische-genetik.de wrote:

 Am 03.08.2011 21:34, schrieb Bron Gondwana:
 Also check out your locking.  If this is 2.4.x, make sure you don't have
 anything cleaning up the 'mboxname_lockpath' directory.

 Is there anything I can check ybout locking in 2.3.16?

Oh - great, 2.3.16.  Hang on a second while I unrecycle some
memories and check out the code.

And let's have copies of your imapd.conf and cyrus.conf while
we're at it.  Feel free to check imapd.conf for passwords and
strip them first, there are a couple of replication and murder
configurations which store files in imapd.conf.

 What version are you running?

 2.3.16 that was shipped with Scientific Linux 6 (RHEL 6).

 ---/* Sanity check */
 ---if (*((bit32 *)(buf+OFFSET_UID)) == 0) {
 ---syslog(LOG_ERR, IOERROR: %s zero index/expunge record  
 %u/%lu,
 --   mailbox-name, msgno, exists);
 ---return IMAP_IOERROR;
 ---}

I thought that looked familiar.  That would be me who wrote that
line I think.  Unfortunately git blame isn't much help due to the
way branches from CVS got moved over.  I'm pretty sure I remember
dealing with this.

So you have corrupted cyrus.index files.  I don't suppose you kept any
of them?

Do you have delayed expunge?

I really can't remember now exactly what cause this - but there some
pattern of accesses and expunges that could trigger it.  I just
can't remember what it was now.  I know I used to clean up from them
occasionally back before 2.4 was done.  It was probably to do with
aborted appends.  Gah.  Something horrible about locking being
incorrect.

Certainly if you repack a mailbox that has cyrus.index and cyrus.expire
files that have the same UID in them, then you're going to be rather
screwed.  I know we had that happen sometimes, but I don't remember why
now.  I'm sorry.

I do recommend upgrading to 2.4.10, despite the initial IO hit of the
upgrade.  The repack on expunge in 2.3.x was really, really complex
and buggy.

Bron.

-- 
Using Opera's revolutionary email client: http://www.opera.com/mail/

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


Re: IOERROR: zero index/expunge record

2011-08-03 Thread Bron Gondwana
On Wed, 03 Aug 2011 22:12:14 +0200, Marc Muehlfeld  
marc.muehlf...@medizinische-genetik.de wrote:

 Am 03.08.2011 20:59, schrieb Simon Matter:
 They should, but be aware that maybe you broght some crap in
 /var/lib/imap/db so it was still not clean.

Sorry, I should have jumped on this earlier!  Stuff will get
created in /var/lib/imap/db if BDB support is compiled in,
even if you're not using it at all.

 But when I stop cyrus, the db folder just contains the DB_CONFIG file  
 and a 4
 byte skipstamp file. Nothing else. Just when cyrus is running, there  
 are
 some files in it:

skipstamp is required for skiplist to work well.  That's fine.

 -rw---  1 cyrus mail24576  3. Aug 22:06 __db.001
 -rw---  1 cyrus mail  6930432  3. Aug 22:06 __db.002
 -rw---  1 cyrus mail  2629632  3. Aug 22:06 __db.003
 -rw---  1 cyrus mail  1081344  3. Aug 22:06 __db.004
 -rw---  1 cyrus mail 38887424  3. Aug 22:06 __db.005
 -rw---  1 cyrus mail57344  3. Aug 22:06 __db.006
 -rw-r--r--  1 cyrus mail   52 18. Jul 13:04 DB_CONFIG
 -rw---  1 cyrus mail 10485760  3. Aug 22:06 log.01
 -rw---  1 cyrus mail4  3. Aug 22:06 skipstamp

man I hate BDB.

 I changed tlscache_db and duplicate_db to skiplist now:

 # file /var/lib/imap/*.db
 /var/lib/imap/annotations.db:  Cyrus skiplist DB
 /var/lib/imap/deliver.db:  Cyrus skiplist DB
 /var/lib/imap/mailboxes.db:Cyrus skiplist DB
 /var/lib/imap/tls_sessions.db: Cyrus skiplist DB

Good idea, but apart from just being nicer DBs - it has nothing to do
with your IOERROR index/expunge problem.  It's not related to the
lib/cyrusdb files at all - it's purely mailbox files (cyrus.index
and cyrus.expunge) related.

 I don't know, did you also check the ownership and permissions of all
 directories?

 Yes. It's all fine. When I remove the files and do a reconstruct they are
 recreated and the IOERRORS are gone. On some mailboxes the never came  
 back, on
 others they came back after hours or some days.

I wish I could help with this - but the memories have faded and I don't  
have
the time to dig through all my emails looking for my descriptions of where
I found the bugs in all this - I wound up just replacing the whole blob of
code (over a thousand lines!) with about 20 lines of pretty clear code,  
using
a new model of doing mailbox repacks that's a lot simpler.

Bron.

-- 
Using Opera's revolutionary email client: http://www.opera.com/mail/

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


Re: IOERROR: zero index/expunge record

2011-08-03 Thread Patrick Boutilier
On 08/03/2011 05:41 PM, Bron Gondwana wrote:
 On Wed, 03 Aug 2011 22:12:14 +0200, Marc Muehlfeld
 marc.muehlf...@medizinische-genetik.de  wrote:

 Am 03.08.2011 20:59, schrieb Simon Matter:
 They should, but be aware that maybe you broght some crap in
 /var/lib/imap/db so it was still not clean.

 Sorry, I should have jumped on this earlier!  Stuff will get
 created in /var/lib/imap/db if BDB support is compiled in,
 even if you're not using it at all.

 But when I stop cyrus, the db folder just contains the DB_CONFIG file
 and a 4
 byte skipstamp file. Nothing else. Just when cyrus is running, there
 are
 some files in it:

 skipstamp is required for skiplist to work well.  That's fine.

 -rw---  1 cyrus mail24576  3. Aug 22:06 __db.001
 -rw---  1 cyrus mail  6930432  3. Aug 22:06 __db.002
 -rw---  1 cyrus mail  2629632  3. Aug 22:06 __db.003
 -rw---  1 cyrus mail  1081344  3. Aug 22:06 __db.004
 -rw---  1 cyrus mail 38887424  3. Aug 22:06 __db.005
 -rw---  1 cyrus mail57344  3. Aug 22:06 __db.006
 -rw-r--r--  1 cyrus mail   52 18. Jul 13:04 DB_CONFIG
 -rw---  1 cyrus mail 10485760  3. Aug 22:06 log.01
 -rw---  1 cyrus mail4  3. Aug 22:06 skipstamp

 man I hate BDB.

 I changed tlscache_db and duplicate_db to skiplist now:

 # file /var/lib/imap/*.db
 /var/lib/imap/annotations.db:  Cyrus skiplist DB
 /var/lib/imap/deliver.db:  Cyrus skiplist DB
 /var/lib/imap/mailboxes.db:Cyrus skiplist DB
 /var/lib/imap/tls_sessions.db: Cyrus skiplist DB

 Good idea, but apart from just being nicer DBs - it has nothing to do
 with your IOERROR index/expunge problem.  It's not related to the
 lib/cyrusdb files at all - it's purely mailbox files (cyrus.index
 and cyrus.expunge) related.

 I don't know, did you also check the ownership and permissions of all
 directories?

 Yes. It's all fine. When I remove the files and do a reconstruct they are
 recreated and the IOERRORS are gone. On some mailboxes the never came
 back, on
 others they came back after hours or some days.

 I wish I could help with this - but the memories have faded and I don't
 have
 the time to dig through all my emails looking for my descriptions of where
 I found the bugs in all this - I wound up just replacing the whole blob of
 code (over a thousand lines!) with about 20 lines of pretty clear code,
 using
 a new model of doing mailbox repacks that's a lot simpler.


This sounds like the problem you fixed for me where I was having to 
reconstruct mailboxes every time after a weekly ipurge run hit every 
mailbox. Turns out that you fixed the ipurge utility itself with a one 
or two line patch. But that should be fixed in 2.3.16 .







 Bron.



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


Re: IOERROR: zero index/expunge record

2011-08-03 Thread Marc Muehlfeld
Am 03.08.2011 22:37, schrieb Bron Gondwana:
 And let's have copies of your imapd.conf and cyrus.conf while
 we're at it.

/etc/imapd.conf:
http://pastebin.com/D8Szgmqk

/etc/cyrus.conf:
http://pastebin.com/CL2M64AR




 So you have corrupted cyrus.index files. I don't suppose you kept any
 of them?

I can send you a copy of a complete broken mail folder including cyrus.cache, 
cyrus.cache.NEW, cyrus.header, cyrus.index, cyrus.index.NEW and mails. It's 
nothing secret. It's a subfolder of my mailbox where I put the mails from this 
mailing list in. I'll send it in a separate mail to your address.




 Do you have delayed expunge?

Where can I check this?




 I do recommend upgrading to 2.4.10, despite the initial IO hit of the
 upgrade. The repack on expunge in 2.3.x was really, really complex
 and buggy.

If there is a change, we would stay at the version that comes with the 
distrubution, because then we can easily update on bugs or security issues 
through the repository. But if there's a bug, that could be fixed I, or 
whoever, can send it to redhat.


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


Re: IOERROR: zero index/expunge record

2011-08-03 Thread Marc Muehlfeld
Am 03.08.2011 23:01, schrieb Patrick Boutilier:
 This sounds like the problem you fixed for me where I was having to
 reconstruct mailboxes every time after a weekly ipurge run hit every
 mailbox. Turns out that you fixed the ipurge utility itself with a one
 or two line patch. But that should be fixed in 2.3.16 .

Here the mailboxes break on differnent times. I wrote a small cronjob that 
check all mailboxes for *.NEW files and run this every 15 mins. Here's a short 
list of the last half day when broken mailboxes were found:



2011-08-03 23:00:03: 3 folders
Mailbox user.
Mailbox user..DokumentenAOQ-nderungsantrAOQ-ge
Mailbox user.

2011-08-03 22:45:02: 2 folders
Mailbox user.
Mailbox user.

2011-08-03 22:30:03: 2 folders
Mailbox user..Sent
Mailbox user.
Mailbox user.

2011-08-03 18:00:01: 2 folders
Mailbox user.
Mailbox user..Automatisierung

2011-08-03 15:30:02: 1 folder
Mailbox user.


I replaced the usernames with letters. Same letters are same usernames.

My small script removes all *.NEW files and the corresponding files and runs a 
reconstruct on the mailbox. This is a workaround to fix the mailboxes 
automatically. As you can see, some mailboxes break after a few hours again.


Regards,
Marc

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


Re: IOERROR: zero index/expunge record

2011-08-03 Thread Marc Muehlfeld
Am 03.08.2011 23:27, schrieb Patrick Boutilier:
 I see drac stuff in imapd.conf. You must be using a patched version of
 Cyrus that supports Dynamic Relay Authorization Control ?

I use the version that is shipped with Scientific Linux 6 (RHEL6).

The origin config file was created about 8 years ago. I think there is nothing 
that uses this drac parameters any more.


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


Re: IOERROR: zero index/expunge record

2011-08-03 Thread Bron Gondwana
On Wed, 03 Aug 2011 23:13:16 +0200, Marc Muehlfeld  
marc.muehlf...@medizinische-genetik.de wrote:

 Am 03.08.2011 22:37, schrieb Bron Gondwana:
 And let's have copies of your imapd.conf and cyrus.conf while
 we're at it.

 /etc/imapd.conf:
 http://pastebin.com/D8Szgmqk

 /etc/cyrus.conf:
 http://pastebin.com/CL2M64AR

Sure.

 So you have corrupted cyrus.index files. I don't suppose you kept any
 of them?

 I can send you a copy of a complete broken mail folder including  
 cyrus.cache, cyrus.cache.NEW, cyrus.header, cyrus.index, cyrus.index.NEW  
 and mails. It's nothing secret. It's a subfolder of my mailbox where I  
 put the mails from this mailing list in. I'll send it in a separate mail  
 to your address.

Thanks, comments below.

 Do you have delayed expunge?

 Where can I check this?

imapd.conf, and no you don't.

 I do recommend upgrading to 2.4.10, despite the initial IO hit of the
 upgrade. The repack on expunge in 2.3.x was really, really complex
 and buggy.

 If there is a change, we would stay at the version that comes with the  
 distrubution, because then we can easily update on bugs or security  
 issues through the repository. But if there's a bug, that could be fixed  
 I, or whoever, can send it to redhat.

Good luck with that.  It's not an easy fix, which is part of why I rewrote
that whole section after a couple of years of soul searching about the
amount of work it would bloody well entail.  Took about a year.

Here's some interesting dump from your cyrus.index:

23 1311668694 1311674400 6022 5038 5038 40660 1311668975  
  
0001
  
34 2  1
0 0 0 0 0 0 0 0   

  
0 0  0
25 1311688444 1311674400 5130 4545 4545 45252 1311692683  
  
0001
  
18 2  1

All the UIDs are perfectly sane right up until 24, which is totally blank.

Then 25 is good again.  That last number is MODSEQ - so there's no  
corruption
at all within the records.  A totally blank record got written.

It's also not anywhere interesting blockwise, so unlikely to be any OS
MMAP problem (we have had them).

0840  00 00 00 00 00 00 00 01  00 00 00 00 00 00 00 00   
||
0850  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00   
||
*
08a0  00 00 00 19 4e 2e c6 fc  4e 2e 90 20 00 00 14 0a  |N...N..  
|
08b0  00 00 11 c1 00 00 11 c1  00 00 b0 c4 4e 2e d7 8b   
|N...|


That's the hexdump of the interesting area - a long run of zero bytes.

Unsurpringly, cyrus.index.NEW runs up to the same point and then throws an  
error.

24. is a perfectly normal email file - so nothing going on there.

SOMETHING wrote a blank record.  It would be significantly easier to find  
that
something on 2.4 because there's only one API function that can write to
cyrus.index records (strictly there are two - one handles appends and the
other handles rewrites - but they both use the same supporting function to
format the record)

Now as for what did it?  That's going to be harder to track down.  How
comfortable are you with patching and building your own Cyrus?

While it's nice to run the distribution package, distributions are
shipping disgracefully old versions of Cyrus.  At least 2.3.16 isn't
too bad!

I'm afraid the next thing is to look for anything interesting in your
syslog, but changes are that there's not enough information being
logged to help.

The problem is, this zeroed record could be caused anywhere, and you
wouldn't find out until you went to repack during an expunge.

Bron.

-- 
Using Opera's revolutionary email client: http://www.opera.com/mail/

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


Re: IOERROR: zero index/expunge record

2011-08-02 Thread Marc Muehlfeld
Does anybody have an idea what cause this problem and how to finally fix it?



Am 22.07.2011 10:19, schrieb Marc Muehlfeld:
 Hi,

 two weeks ago we migrated from Centos 5.6 (cyrus 2.3.7) to Scientific Linux
 6.0 (cyrus 2.3.16). Since that day some users are having problems with their
 mailbox. Thunderbird shows them IOERRORS and some are seeing undeletable
 mails with no content.

 The imapd's logfile contains the following:

 imap[21918]: IOERROR: user.xxx zero index/expunge record 41/47
 imap[16600]: IOERROR: user.yyy zero index/expunge record 16/17

 Also the mailbox (sub-)folder contains *.NEW files when this happens:
 -rw---   1 cyrus mail  13660 22. Jul 09:22 cyrus.cache.NEW
 -rw---   1 cyrus mail800 22. Jul 09:22 cyrus.index.NEW

 Reconstructing the mailbox removes the *.NEW files and it's working for some
 hours or a day. But the problem and the *NEW files are always comming back.
 But reconstructing several mailboxes every day can't be the solution. On
 client side nothing had changed.

 For the migration the database was converted to text on the old system and
 reimported on SL6 using ctl_mboxlist. /etc/imapd.conf and /etc/cyrus.conf are
 copied from the old system.

 Does anybody have an idea what could be wrong and how it could be fixed?


 Regards,
 Marc
 


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


Re: IOERROR: zero index/expunge record

2011-08-02 Thread Simon Matter
 Does anybody have an idea what cause this problem and how to finally fix
 it?



 Am 22.07.2011 10:19, schrieb Marc Muehlfeld:
 Hi,

 two weeks ago we migrated from Centos 5.6 (cyrus 2.3.7) to Scientific
 Linux
 6.0 (cyrus 2.3.16). Since that day some users are having problems with
 their
 mailbox. Thunderbird shows them IOERRORS and some are seeing
 undeletable
 mails with no content.

 The imapd's logfile contains the following:

 imap[21918]: IOERROR: user.xxx zero index/expunge record 41/47
 imap[16600]: IOERROR: user.yyy zero index/expunge record 16/17

 Also the mailbox (sub-)folder contains *.NEW files when this happens:
 -rw---   1 cyrus mail  13660 22. Jul 09:22 cyrus.cache.NEW
 -rw---   1 cyrus mail800 22. Jul 09:22 cyrus.index.NEW

 Reconstructing the mailbox removes the *.NEW files and it's working for
 some
 hours or a day. But the problem and the *NEW files are always comming
 back.
 But reconstructing several mailboxes every day can't be the solution. On
 client side nothing had changed.

 For the migration the database was converted to text on the old system
 and

Something is wrong with the database because Cyrus-imapd uses a number
of databases. So I guess here is a problem.

Do you not see any other errors in the Cyrus logs?

Simon



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


IOERROR: zero index/expunge record

2011-07-22 Thread Marc Muehlfeld
Hi,

two weeks ago we migrated from Centos 5.6 (cyrus 2.3.7) to Scientific Linux 
6.0 (cyrus 2.3.16). Since that day some users are having problems with their 
mailbox. Thunderbird shows them IOERRORS and some are seeing undeletable 
mails with no content.

The imapd's logfile contains the following:

imap[21918]: IOERROR: user.xxx zero index/expunge record 41/47
imap[16600]: IOERROR: user.yyy zero index/expunge record 16/17

Also the mailbox (sub-)folder contains *.NEW files when this happens:
-rw---   1 cyrus mail  13660 22. Jul 09:22 cyrus.cache.NEW
-rw---   1 cyrus mail800 22. Jul 09:22 cyrus.index.NEW

Reconstructing the mailbox removes the *.NEW files and it's working for some 
hours or a day. But the problem and the *NEW files are always comming back. 
But reconstructing several mailboxes every day can't be the solution. On 
client side nothing had changed.

For the migration the database was converted to text on the old system and 
reimported on SL6 using ctl_mboxlist. /etc/imapd.conf and /etc/cyrus.conf are 
copied from the old system.

Does anybody have an idea what could be wrong and how it could be fixed?


Regards,
Marc

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