<br><br><div><span class="gmail_quote">On 7/27/07, <b class="gmail_sendername">Simon Matter</b> &lt;<a href="mailto:simon.matter@invoca.ch">simon.matter@invoca.ch</a>&gt; wrote:</span><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
&gt; On 7/27/07, Simon Matter &lt;<a href="mailto:simon.matter@invoca.ch">simon.matter@invoca.ch</a>&gt; wrote:<br>&gt;&gt;<br>&gt;&gt; &gt; I have been holding back updating to cyrus 2.2.13 but this afternoon I<br>&gt;&gt; &gt; went
<br>&gt;&gt; &gt; ahead and made the major update and really tried to follow ALL the<br>&gt;&gt; points<br>&gt;&gt; &gt; and rules in updating but I really think I messed up the whole system<br>&gt;&gt; now.<br>&gt;&gt; &gt; I really hope I have not hosed all the email today and have to go back
<br>&gt;&gt; to<br>&gt;&gt; &gt; an<br>&gt;&gt; &gt; older backup :(.<br>&gt;&gt; &gt;<br>&gt;&gt; &gt; I really do need some help for I am so lost and I think everything I<br>&gt;&gt; have<br>&gt;&gt; &gt; been trying has made it to worse and back again.
<br>&gt;&gt;<br>&gt;&gt; Hi,<br>&gt;&gt;<br>&gt;&gt; I&#39;m really no expert with BDB and I&#39;m&nbsp;&nbsp;avoiding it wherever I can. But<br>&gt;&gt; what comes to mind is this:<br>&gt;&gt; You didn&#39;t tell us what exactly you have updated. It&#39;s cyrus-imap from
<br>&gt;&gt; ???<br>&gt;&gt; to 2.2.13. But what else? My guess is that you also updated BDB from db3<br>&gt;&gt; to db4 and didn&#39;t manage to upgrade you BDB files, can that be? I read<br>&gt;&gt; something like &quot;istoric log version 3&quot; which makes me believe you are
<br>&gt;&gt; trying to access db3 files with cyrus/db4.<br>&gt;&gt; From what I know you have to dump the db3 db&#39;s with db3 and then import<br>&gt;&gt; to<br>&gt;&gt; db4 files with the db4 tools. IIRC this has been discussed on this list
<br>&gt;&gt; several times and you should be able to find the correct command<br>&gt;&gt; sequence<br>&gt;&gt; for it in the archives.<br>&gt;&gt;<br>&gt;&gt; To avoid that kind of problems in future you could convert all BDB
<br>&gt;&gt; databases to skiplist and enjoy beeing free of BDB version conflicts in<br>&gt;&gt; the future. However to fix it now you will for sure need the db3<br>&gt;&gt; libs/tools to get anything usefull out of your db3 files.
<br>&gt;&gt;<br>&gt;&gt; Hope that helps at least a little bit.<br>&gt;&gt; Simon<br>&gt;&gt;<br>&gt;&gt; &gt;<br>&gt;&gt; &gt; Here is the output from syslog.<br>&gt;&gt; &gt;<br>&gt;&gt; &gt; Jul 26 22:37:27 jurassic cyrus/master[10684]: process started
<br>&gt;&gt; &gt; Jul 26 22:37:31 jurassic cyrus/master[10708]: about to exec<br>&gt;&gt; &gt; /usr/sbin/ctl_cyrusdb<br>&gt;&gt; &gt; Jul 26 22:37:32 jurassic cyrus/ctl_cyrusdb[10708]: DBERROR db4:<br>&gt;&gt; Skipping<br>
&gt;&gt; &gt; log<br>&gt;&gt; &gt; file /var/lib/cyrus/db/log.00000000<br>&gt;&gt; &gt; 55: historic log version 3<br>&gt;&gt; &gt; Jul 26 22:37:33 jurassic cyrus/ctl_cyrusdb[10708]: recovering cyrus<br>&gt;&gt; &gt; databases
<br>&gt;&gt; &gt; Jul 26 22:37:33 jurassic cyrus/ctl_cyrusdb[10708]: skiplist: recovered<br>&gt;&gt; &gt; /var/lib/cyrus/mailboxes.db (563 records,<br>&gt;&gt; &gt;&nbsp;&nbsp;84908 bytes) in 0 seconds<br>&gt;&gt; &gt; Jul 26 22:37:33 jurassic cyrus/ctl_cyrusdb[10708]: skiplist: recovered
<br>&gt;&gt; &gt; /var/lib/cyrus/annotations.db (0 records,<br>&gt;&gt; &gt;&nbsp;&nbsp;144 bytes) in 0 seconds<br>&gt;&gt; &gt; Jul 26 22:37:33 jurassic cyrus/ctl_cyrusdb[10708]: DBERROR db4:<br>&gt;&gt; &gt; /var/lib/cyrus/db/log.0000000056: log file open
<br>&gt;&gt; &gt; failed: No such file or directory<br>&gt;&gt; &gt; Jul 26 22:37:33 jurassic cyrus/ctl_cyrusdb[10708]: DBERROR db4: PANIC:<br>&gt;&gt; No<br>&gt;&gt; &gt; such file or directory<br>&gt;&gt; &gt; Jul 26 22:37:33 jurassic cyrus/ctl_cyrusdb[10708]: DBERROR: critical
<br>&gt;&gt; &gt; database situation<br>&gt;&gt; &gt; Jul 26 22:37:34 jurassic cyrus/master[10684]: process 10708 exited,<br>&gt;&gt; status<br>&gt;&gt; &gt; 75<br>&gt;&gt; &gt; Jul 26 22:37:34 jurassic cyrus/master[10754]: about to exec
<br>&gt;&gt; &gt; /usr/sbin/cyr_expire<br>&gt;&gt; &gt; Jul 26 22:37:34 jurassic cyrus/cyr_expire[10754]: DBERROR db4: PANIC:<br>&gt;&gt; &gt; fatal<br>&gt;&gt; &gt; region error detected; run recovery<br>&gt;&gt; &gt; Jul 26 22:37:34 jurassic cyrus/cyr_expire[10754]: DBERROR: critical
<br>&gt;&gt; &gt; database<br>&gt;&gt; &gt; situation<br>&gt;&gt; &gt; Jul 26 22:37:34 jurassic cyrus/master[10684]: process 10754 exited,<br>&gt;&gt; status<br>&gt;&gt; &gt; 75<br>&gt;&gt; &gt; Jul 26 22:37:34 jurassic cyrus/master[10755]: about to exec
<br>&gt;&gt; &gt; /usr/sbin/tls_prune<br>&gt;&gt; &gt; Jul 26 22:37:34 jurassic cyrus/tls_prune[10755]: DBERROR db4: PANIC:<br>&gt;&gt; fatal<br>&gt;&gt; &gt; region error detected; run recovery<br>&gt;&gt; &gt; Jul 26 22:37:34 jurassic cyrus/tls_prune[10755]: DBERROR: critical
<br>&gt;&gt; &gt; database<br>&gt;&gt; &gt; situation<br>&gt;&gt; &gt; Jul 26 22:37:34 jurassic cyrus/master[10684]: process 10755 exited,<br>&gt;&gt; status<br>&gt;&gt; &gt; 75<br>&gt;&gt; &gt; Jul 26 22:37:34 jurassic cyrus/master[10684]: ready for work
<br>&gt;&gt; &gt; Jul 26 22:37:34 jurassic cyrus/master[10766]: about to exec<br>&gt;&gt; &gt; /usr/sbin/ctl_cyrusdb<br>&gt;&gt; &gt; Jul 26 22:37:34 jurassic cyrus/master[10767]: about to exec<br>&gt;&gt; &gt; /usr/lib/cyrus/bin/notifyd
<br>&gt;&gt; &gt; Jul 26 22:37:34 jurassic cyrus/ctl_cyrusdb[10766]: DBERROR db4: PANIC:<br>&gt;&gt; &gt; fatal<br>&gt;&gt; &gt; region error detected; run recovery<br>&gt;&gt; &gt; Jul 26 22:37:34 jurassic cyrus/ctl_cyrusdb[10766]: DBERROR: critical
<br>&gt;&gt; &gt; database situation<br>&gt;&gt; &gt; Jul 26 22:37:34 jurassic cyrus/master[10684]: process 10766 exited,<br>&gt;&gt; status<br>&gt;&gt; &gt; 75<br>&gt;&gt; &gt;<br>&gt;&gt; &gt;<br>&gt;&gt; &gt;<br>&gt;&gt; &gt; No mater what I do I just can not get passed this error.&nbsp;&nbsp; I have
<br>&gt;&gt; &gt; tried...reconstructing, db4.3_recover, bringing in a backup db and<br>&gt;&gt; each<br>&gt;&gt; &gt; one<br>&gt;&gt; &gt; just does not clear the air.&nbsp;&nbsp;Every time I try the error still<br>&gt;&gt; persists.
<br>&gt;&gt; &gt; Is<br>&gt;&gt; &gt; this recoverable?&nbsp;&nbsp;Everything I have read on how to fix it does not<br>&gt;&gt; work.<br>&gt;&gt; &gt; I<br>&gt;&gt; &gt; am wondering if i really missed something here.&nbsp;&nbsp;I really do hope to
<br>&gt;&gt; get<br>&gt;&gt; &gt; some feed back ASAP because I want to get this fixed within the next 7<br>&gt;&gt; &gt; hrs.<br>&gt;&gt; &gt;<br>&gt;&gt; &gt; -Adam<br>&gt;<br>&gt;<br>&gt;<br>&gt;<br>&gt; Simon,<br>&gt;
<br>&gt; Thank you.&nbsp;&nbsp;Yes.. after being very tired and warry from working on this<br>&gt; for<br>&gt; a long while I&nbsp;&nbsp;did forget to mention a few things.<br>&gt;<br>&gt; I started out with cyrus21 and moved to cyrus22 which should have been an
<br>&gt; easy upgrade but wow.. I really got into a mess.&nbsp;&nbsp;This all started because<br>&gt; vacation scripts were not working and trying to get them to work properly.<br>&gt; Aslo I needed the virtual domain function in the new 
2.2 which led me to<br>&gt; this fun trip.<br>&gt;<br>&gt; Yes, I did update DB to 4.3 and had thought I converted everything over to<br>&gt; skiplist but guess I had not.&nbsp;&nbsp;When I used db4.3_update I did not get a<br>&gt; good
<br>&gt; response and the moment I do not remember what it was.&nbsp;&nbsp;I really tried to<br>&gt; do<br>&gt; as much as possible and maybe as much damage before I consulted the mail<br>&gt; list.&nbsp;&nbsp;It looks like now the files are skiplist however the DB files in
<br>&gt; the<br>&gt; db directory, do I need to do anything with those? Or, are all db files I<br>&gt; need to convert are in the /var/lib/cyrus/ proper directory?<br>&gt;<br>&gt; These are the files I have wich are skiplist.
<br>&gt; mailboxes.db<br>&gt; annotations.db<br><br>Usually there are at least four db files:<br>annotations.db<br>deliver.db<br>mailboxes.db<br>tls_sessions.db<br><br>I think only mailboxes.db is really important here, deliver.db
 and<br>tls_sessions.db can be wiped and will be created&nbsp;&nbsp;again, annotations.db is<br>empty if you don&#39;t use annotations.<br>You should also have a look at the db/ directory. IIRC there can be a<br>situation when you moved to skiplist but still have BDB files in db/ it
<br>will still disturb and should be removed while cyrus is stopped.<br><br>The think with hashed directories you mentioned in another mail can be<br>controlled with hashimapspool and fulldirhash in /etc/imapd.conf. I have
<br>no idea how the Debian packages are configured but you should find it in<br>the package description somehow.<br><br>Simon<br></blockquote></div><br>Very nice.. Thank you.&nbsp; It looks like my deliver.db is still a db(x) file. &nbsp; Can the files in db/ just be erased and when cyrus starts up it creats new files or do the __db* files ned to be converted.&nbsp; I am not sure how to tell if those are db(x) or skiplist.&nbsp; 
<br><br>I am looking up the hashimapsool and fulldrihash right now.<br><br>-Adam<br><br>