Kolab 3.4 on CentOS 6.6 (ptload completely failed)

ellie timoney ellie at fastmail.com
Sun Sep 27 21:24:38 EDT 2015


Hi Paul,

I have no insight into Andrea's original problem; I'm commenting
specifically on the /dev/shm thing.

> >        Aug 24 08:50:25 kolab imap/imaps[7782]: IOERROR: bogus filename "/dev/shm//tls_sessions.db" in proc_foreach
> > [...]
> > The Point to look at is "/dev/shm//tls_sessions.db" which has one / too much it must be "/dev/shm/tls_sessions.db/". The same happens if you link the files/dir to /dev/shm.

This is a red herring.  Duplicated slashes in a path look ugly when
printed, but are treated as a single separator for all standard  file
operations.

In fact, rummaging in the code a bit, the extra "/" isn't even in the
path being examined -- it's being added by the syslog call that produces
the error message.

> >       # $confdir/proc/ will be used if not defined "proc_path"
> >       proc_path: /dev/shm
> >       # $confdir/lock will be used if not defined "mboxname_lockpath"
> >       mboxname_lockpath: /dev/shm
> >        # $confdir/statuscache.db will be used if not defined "statuscache_db_path"
> >       statuscache_db_path: /dev/shm/statuscache.db
> >        # $confdir/tls_sessions.db will be used if not defined "tls_sessions_db_path"
> >       tls_sessions_db_path: /dev/shm/tls_sessions.db
> >        # $confdir/deliver.db will be used if not defined "duplicate_db_path"
> >       duplicate_db_path: /dev/shm/deliver.db

Here's the problem.  

Cyrus (specifically: the proc_foreach function) expects the proc_path
directory to contain only proc files.  But this configuration is also
placing mbox name locks, the statuscache.db, the tls_sessions.db, and
the deliver.db in the same directory.  So proc_foreach is whinging about
these files, because they are not proc files.

I don't think this causes a problem per-se, except for the noise in the
log, but I'm not sure.

The way to fix this is to put the proc_path in its own directory, like
it expects.  Try:

proc_path: /dev/shm/proc

Similarly, mboxname_lockpath is usually its own directory (default:
$confdir/lock), so do the same thing there too:

mboxname_lockpath: /dev/shm/lock

Though for that matter, /dev/shm is used by the whole system.  It's
really not a great idea to just dump everything in there without further
namespacing (you wouldn't stick them in "/", would you?).  I would use
something like:

proc_path: /dev/shm/cyrus/proc
mboxname_lockpath: /dev/shm/cyrus/lock
statuscache_db_path: /dev/shm/cyrus/statuscache.db
tls_sessions_db_path: /dev/shm/cyrus/tls_sessions.db
duplicate_db_path: /dev/shm/cyrus/deliver.db

Please note that I present these configurations as examples of how one
should configure these items to live on /dev/shm, if one wanted to do
so.  I have, and offer, no opinion on whether doing so is a good idea or
not.

> > If you read in cyrus-imap docu there is recommended to point for performance reason some files to tmpfs files System like /dev/shm

This kind of sounds like it maybe said to use the /dev/shm file system
(implication: create the usual directory structure under there...) but
has been misinterpreted as saying to just literally stick this stuff
straight in /dev/shm.  But I don't know what documentation said to do
this.

Hope this helps,

ellie

On Sat, Sep 26, 2015, at 04:17 AM, signaldeveloper at gmail.com wrote:
> Guys,
> 
> Can you shed any light on the below? Andrea I copied in the Cyrus list
> guys. 
> 
> - Paul
> 
> > On Sep 25, 2015, at 11:28 AM, Soliva, Andrea <andrea.soliva at comcept.ch> wrote:
> > 
> > Hi Paul
> > 
> > here another issue I found...nothing to do with the issue. If you read in cyrus-imap docu there is recommended to point for performance reason some files to tmpfs files System like /dev/shm. This is specially also noted for cyrus-imapd v2.5. Actually the config would be:
> > 
> >       # vi /etc/impad.conf
> > 
> >       --------------- /etc/impad.conf ---------------
> > 
> >       configdirectory: /var/lib/imap
> >       # $confdir/proc/ will be used if not defined "proc_path"
> >       proc_path: /dev/shm
> >       # $confdir/lock will be used if not defined "mboxname_lockpath"
> >       mboxname_lockpath: /dev/shm
> >        # $confdir/statuscache.db will be used if not defined "statuscache_db_path"
> >       statuscache_db_path: /dev/shm/statuscache.db
> >        # $confdir/tls_sessions.db will be used if not defined "tls_sessions_db_path"
> >       tls_sessions_db_path: /dev/shm/tls_sessions.db
> >        # $confdir/deliver.db will be used if not defined "duplicate_db_path"
> >       duplicate_db_path: /dev/shm/deliver.db
> > 
> >       --------------- /etc/impad.conf ---------------
> > 
> > This does not work...which means because the Kolab guys patched the stuff from my Point of view there is a mistake in the code because if you use this config it works as Long as cyurs-imapd does not any maintenance or how every they call this because as soon as this happens you will have following error:
> > 
> >        Aug 24 08:50:25 kolab imap/imaps[7782]: Deleted mailbox comcept.ch!user.andrea^soliva
> >        Aug 24 08:50:25 kolab imap/imaps[7782]: IOERROR: bogus filename "/dev/shm//tls_sessions.db" in proc_foreach
> >        Aug 24 08:50:25 kolab imap/imaps[7782]: IOERROR: bogus filename "/dev/shm//deliver.db" in proc_foreach
> >        Aug 24 08:50:25 kolab imap/imaps[7782]: IOERROR: bogus filename "/dev/shm//sem.slapd-kolab.stats" in proc_foreach
> >        Aug 24 08:50:25 kolab imap/imaps[7782]: IOERROR: bogus filename "/dev/shm//q" in proc_foreach
> >        Aug 24 08:50:25 kolab imap/imaps[7782]: IOERROR: bogus filename "/dev/shm//n" in proc_foreach
> >        Aug 24 08:50:25 kolab imap/imaps[7782]: IOERROR: bogus filename "/dev/shm//statuscache.db" in proc_foreach
> >        Aug 24 08:50:25 kolab imap/imaps[7782]: IOERROR: bogus filename "/dev/shm//domain" in proc_foreach
> > 
> > The Point to look at is "/dev/shm//tls_sessions.db" which has one / too much it must be "/dev/shm/tls_sessions.db/". The same happens if you link the files/dir to /dev/shm.
> > 
> > This only for your info :-)
> > 
> > ---
> > Kind regards
> > 
> > Andrea Soliva
> > 
> > Email: andrea.soliva at comcept.ch
> > 


More information about the Info-cyrus mailing list