[Kolab-devel] Cyrus 2.5 git behaves different on arm and x86

hede kolab983 at der-he.de
Fri Oct 17 17:16:26 CEST 2014


Hi list, 

I've sent this to the users list, but maybe the devel list fits better. 
Now with additional infos.

This mail mostly addresses Jeroen van Meeuwen, I think, because he is 
working on cyrus imapd. 

>>> infos I gathered last friday, i.e. what I've written last friday:

I'm using Kolab 3.x for some time now (updated 3.0->3.1->3.2) on 
a Wandboard (with Freescale i.MX6 ARM SoC).

I'm not using cyrus-imapd-2.5 from kolabsys.com because for me it seems 
broken on arm, so even I'm using Kolab 3.2 i'm running Cyrus 2.4 for now.

But I would like to switch to Kolab 3.3 and cyrus imapd 2.5.

The last days I gave it another try, I've compiled 
cyrus-imapd_2.5~dev2014082101-0~kolab1_armhf.deb
from the kolab sources (http://obs.kolabsys.com:82/Kolab:/...).

(((
dpkg-source -x cyrus-imapd_2.5~dev2014082101-0~kolab1.dsc
cd cyrus-imapd-2.5~dev2014082101
dpkg-buildpackage -us -uc
... results in the deb abobe
)))

I did so with the whole kolab sources. And installed it.
But it doesn't do it's job. Many problems... many...

Then I've created a fresh Debian 7 lxc vm, installed only cyrus-imapd 
with it's dependencies plus sasl2-bin to have a working environment. 

Using cyradm to create a mailbox results in a clear but unwanted behaviour:

###################

root at kolab33test:/var/lib/imap# cyradm -u cyrus localhost
verify error:num=18:self signed certificate
IMAP Password: 
              localhost> 
localhost> lm
localhost> cm mbox1
localhost> cm mbox2
localhost> lm 
localhost> cm mbox1  
createmailbox: System I/O error
localhost> cm mbox2  
createmailbox: System I/O error
localhost> lm
localhost> quit  
root at kolab33test:/var/lib/imap# 

###################

It seems all files got created:

###################
root at kolab33test:/var/lib/imap# find /var/spool/imap/
[...]
/var/spool/imap/m
/var/spool/imap/m/mbox2
/var/spool/imap/m/mbox2/cyrus.header
/var/spool/imap/m/mbox2/cyrus.cache
/var/spool/imap/m/mbox2/cyrus.index
/var/spool/imap/m/mbox1
/var/spool/imap/m/mbox1/cyrus.header
/var/spool/imap/m/mbox1/cyrus.cache
/var/spool/imap/m/mbox1/cyrus.index
/var/spool/imap/.viminfo
/var/spool/imap/j
/var/spool/imap/d
root at kolab33test:/var/lib/imap# 
###################

But even after reconstructing the hole /var/lib/imap directory (deleting and 
recreating a mailbox.db with mbox1 and mbox2 in it) "lm" results in nothing 
and "cm" results in an I/O error and not complaining about an existing mailbox.

I don't know how to solve this problem.

Anybody else using cyrus imapd 2.5 on arm or any other non-Intel environment?

>>> additional infos I gathered this friday, today:

I've created two LXC VMs: one on the ARM and one at my x86 Desktop. 
Both using Debian 7 and cyrus-imapd-2.5-snapshot-autoconf-and-automake-1034-g9704e5d
(git clone git://git.cyrusimap.org/cyrus-imapd/)

I did:
aclocal -I cmulocal
autoheader
autoconf
at the arm machine and copied the source files to the x86 target.
both using the same "./configure"-line, except "--build arm-linux-gnueabihf"
vs. "--build i386-linux-gnu". All configured to use /usr/local/ prefix.
 -> make -> make install. 

Same cyrus.conf and imapd.conf.
Both with cleaned /var/lib/imap and /var/spool/imap.

Then I manually started cyrus:
/usr/local/lib/cyrus-imapd/master -M /usr/local/etc/cyrus.conf \
-C /usr/local/etc/imapd.conf  -l 32 -d

And connected via cyradm:
cyradm -u cyrus localhost

but behaviour differs.

at the x86:
#########
root at kolab33test:~# cyradm -u cyrus localhost
Password: 
localhost> lm
localhost> cm mbox1
localhost> lm
mbox1 (\HasNoChildren)  
localhost> cm mbox1
createmailbox: Mailbox already exists
#########
looks like normal behaviour.

at the arm:
#########
root at kolab33test:~# cyradm -u cyrus localhost
Password:
localhost> lm
localhost> cm mbox1
localhost> lm
localhost> cm mbox1
createmailbox: System I/O error
#########
doesn't look like it's working as it should be.

So even if I compile cyrus-imapd (from git) on a clean Debian 7 the behaviour 
of x86 and arm differs. x86 seems to be fine while arm has some problem/bug.

Any hints on how to debug this? 

(btw: even if it's the same Debian version, both are slightly different. 
On x86 it's using gcc 4.7.2 while on arm it's using gcc 4.6.3. 
Maybe that's the matter?)

regards
hede


More information about the devel mailing list