Re: skipstamp db missing errors

Phil Dibowitz <[email protected]>
Newsgroups gmane.mail.imap.cyrus
Message-ID <[email protected]>
Yes, I have that:

```
START {
         # do not delete this entry!
         recover         cmd="/usr/sbin/cyrus ctl_cyrusdb -r"

         # this is only necessary if idlemethod is set to "idled" in 
imapd.conf
         idled           cmd="idled"

         # this is useful on backend nodes of a Murder cluster
         # it causes the backend to syncronize its mailbox list with
         # the mupdate master upon startup
         #mupdatepush   cmd="/usr/sbin/cyrus ctl_mboxlist -m"

         # this is recommended if using duplicate delivery suppression
         delprune        cmd="/usr/sbin/cyrus expire -E 3"
         # this is recommended if caching TLS sessions
         tlsprune        cmd="/usr/sbin/cyrus tls_prune"

         # Expire data older than 28 days.
         deleteprune     cmd="/usr/sbin/cyrus expire -E 4 -D 28" at=0430
         expungeprune    cmd="/usr/sbin/cyrus expire -E 4 -X 28" at=0445

}

```

Most of that is default, I beleive.

I don't know if I'm using skiplist dbs or not. I just know my logs are 
full of those messages.

That said I don't seem to have a skipstamp file anywhere.


On 8/3/23 19:01, ellie timoney wrote:
> Hi again,
> 
> I've dug a bit deeper...
> 
> My previous email was a little off in some of the specifics, but not 
> enough for it to matter, and the big picture remains the same.
> 
> For skiplist specifically, if "ctl_cyrusdb -r" has not been run, and 
> therefore the db/skipstamp file doesn't exist, then "recovery" will 
> happen for every skiplist database every time anything opens it (thus 
> "assuming the worst").  The housekeeping isn't missed though -- it's 
> just maybe overdone.
> 
> The error message could be better!  While I'm in here anyway, I might 
> see about putting together a small patch to improve logging around that 
> condition.  If the problem is just that the skipstamp file is missing, 
> an informational message about needing to run ctl_cyrusdb -r to create 
> it seems appropriate.  I think alarm bells only need to sound when the 
> skipstamp file exists but is unreadable or corrupt.
> 
> Cheers,
> 
> ellie
> 
> On Fri, 4 Aug 2023, at 11:28 AM, ellie timoney wrote:
>> Hi,
>>
>> On Thu, 3 Aug 2023, at 8:33 AM, [email protected] <mailto:[email protected]> 
>> wrote:
>>> My errors are full of logs like:
>>>
>>>> 2023-08-02T22:28:36.469012+00:00 virt cyrus/imaps[3012149]: DBERROR: 
>>>> read failed, assuming the worst: 
>>>> filename=</var/lib/cyrus/db/skipstamp> syserror=<No such file or 
>>>> directory> func=<myinit>
>>>
>>> I can't seem to find anything on this. It appears in lots of people's 
>>> logs, but never seems to be the culprit for whatever they've 
>>> reported. But nonetheless I'd like to either create that DB properly, 
>>> or tell Cyrus not to look for it, or whatever the most appropriate 
>>> remedy is.
>>
>> Hmm.  This happens when initialising the skiplist database backend 
>> during process startup.  It expects that file to contain a timestamp 
>> of the last time skiplist databases had their recovery function 
>> called.  Off the top of my head, I couldn't tell you what exactly 
>> "recovery()" means, or what is being recovered.  When opening a 
>> skiplist database, recovery will be run if the database was last 
>> recovered prior to the time in that timestamp.  Looks like in this 
>> case, you don't have this file, so you don't have a last recovery 
>> timestamp, and it's noisily complaining about it.
>>
>> This file and timestamp is created when the skiplist database backend 
>> is initialised in recovery mode, which happens specifically when you 
>> invoke "ctl_cyrusdb -r".  You usually have Cyrus do this on startup, 
>> with an entry like this in cyrus.conf:
>>
>> START {
>>   # do not delete this entry!
>>   recover       cmd="ctl_cyrusdb -r"
>> }
>>
>>>> Do you have such an entry?  If not, does adding one and restarting 
>> Cyrus make the DBERROR go away?
>>
>> If you don't use the skiplist format for any databases, you will still 
>> see this message each time a Cyrus process starts, because it occurs 
>> when the skiplist backend is initialised, whether or not it's ever 
>> actually used.  Even if you don't use skiplist databases specifically, 
>> you should still have a "ctl_cyrusdb -r" entry like this in your 
>> cyrus.conf, because the other database formats may have similar 
>> housekeeping tasks to perform at restart, and this is how that happens.
>>
>> Cheers,
>>
>> ellie
> 
> *Cyrus <https://cyrus.topicbox.com/latest>* / Info / see discussions 
> <https://cyrus.topicbox.com/groups/info> + participants 
> <https://cyrus.topicbox.com/groups/info/members> + delivery options 
> <https://cyrus.topicbox.com/groups/info/subscription> Permalink 
> <https://cyrus.topicbox.com/groups/info/Tf92f39d4795cc515-Mf974e1b2236230891885494d>

------------------------------------------
Cyrus: Info
Permalink: https://cyrus.topicbox.com/groups/info/Tf92f39d4795cc515-Mc06cef2ae3c420362b9242f8
Delivery options: https://cyrus.topicbox.com/groups/info/subscription
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.