trashed databases after disk full situation

Simon Matter simon.matter at
Fri Jul 21 09:19:35 EDT 2006

> Hi!
> Recently I switched over to another mail host running the same software
> (cyrus 2.2.12) and there was one broken seen database, too with a
> similar error message.
> I didn't find any possibility to recover this db. I had to delete it, too.


We have also seen skiplist corruption in seen databases.  I don't have a
recovery tool, but I have been able to manually recover seen db's to the
point of corruption so that at least most of the users mails are in the
correct 'read' state.  Typically, you will see errors like:

DBERROR: skiplist recovery /usr/local/imap/user/k/kdelaney.seen: 0D2C
should be ADD or DELETE

If you truncate the file at this point, it should fix the problem, and
the users mail read state will be valid upto the point of corruption.
To do this, convert the hex to decimal (above would be 1372) and use the
dd command:

dd if=kdelaney.seen of=kdelaney.seen.fixed bs=1 count=1372

replace the corrupted .seen file with the fixed one and have user log in
and should be ok.

Seems to work on the couple I have tried it on.

> I think skiplist is one of the most reliable databases, with berkeley db
> I always has locking problems like these as you mentioned, slow service
> startup and a lot of general fuss...
> But can anyone shed light on how to recover a crashed skiplist file?
> @Simon
> I thought about searching the mailing list archives, too, but got major
> problems:
> The link below every mail
> just gives 404.
> The web/http links on
> gives 404 either.
> So there seem to be no archives I know of.
> Is there an archive mirror anywhere?
> It's kinda demoralizing to get an RTFM when the manual is gone for good...

Make it "google and RTFM" :)


> Thanks,
> Daniel
> Rodrigo Ventura schrieb:
>> Hello all,
>> I'm experiencing serious problems whenever there is an accidental disk
>> full
>> situation. I see two kinds of messages in syslog: the first one concerns
>> the
>> seen database, for instance:
>> Jul 21 09:39:54 omni imap[1133]: DBERROR: skiplist
>> recovery /etc/imap/user/m/mflorencio.seen: ADD at 1FB0 exists
>> Jul 21 09:39:54 omni imap[1133]: DBERROR:
>> opening /etc/imap/user/m/mflorencio.seen: cyrusdb error
>> what happens is that all mails become unreadable forever... I have to
>> delete
>> rge seen database.
>> the second one is, for instance:
>> Jul 21 10:47:07 omni lmtpunix[27618]: DBERROR db3: 5 lockers
>> what does it mean? is it possible to be expurious lock files? Please
>> advise.
>> The cyrus version is 2.2.13 configured with
>> ./configure --prefix=/usr/local/cyrus --with-duplicate-db=skiplist
>> --with-sasl=/usr/local/cyrus --without-snmp
>> Can I switch the database backends to more realiable ones?
>> Cheers,
>> Rodrigo
> ----
> Cyrus Home Page:
> Cyrus Wiki/FAQ:
> List Archives/Info:

More information about the Info-cyrus mailing list