Hi, I recently switched the seenstate_db from skiplist to berkeley. It seems that the creation of directories is missing. I'm getting errors like this:
DBERROR: opening /var/lib/cyrus/domain/c/coreboso.de/user/d/demo.seen: cyrusdb error DBERROR: opening /var/lib/cyrus/domain/c/coreboso.de/user/d/demo.seen: No such file or directory If I manually create /var/lib/cyrus/domain/c/coreboso.de/user/d/ everything works as expected. I hacked a (not so nice) patch for lib/cyrusdb_berkeley.c to fix this issue. Feel free to include it. Regards, Thilo Uttendorfer --- lib/cyrusdb_berkeley.c.orig 2012-01-11 15:21:59.000000000 +0100 +++ lib/cyrusdb_berkeley.c 2012-01-11 15:32:56.000000000 +0100 @@ -417,6 +417,16 @@ r = (db->open)(db, fname, NULL, type, dbflags, 0664); #endif + if (r == ENOENT && (flags & CYRUSDB_CREATE)) { + if (cyrus_mkdir(fname, 0755) != -1) { +#if ((DB_VERSION_MAJOR > 4) || ((DB_VERSION_MAJOR == 4) && (DB_VERSION_MINOR >= 1))) + r = (db->open)(db, NULL, fname, NULL, type, dbflags | DB_AUTO_COMMIT, 0664); +#else + r = (db->open)(db, fname, NULL, type, dbflags, 0664); + } +#endif + } + if (r != 0) { int level = (flags & CYRUSDB_CREATE) ? LOG_ERR : LOG_DEBUG; syslog(level, "DBERROR: opening %s: %s", fname, db_strerror(r)); -- Thilo Uttendorfer Linux Information Systems AG Putzbrunner Str. 71, 81739 München Fon: +49 89 993412-11, Fax: +49 89 993412-99 t.uttendor...@linux-ag.com, http://www.linux-ag.com