howto: set up a cyrus development environment

ellie timoney ellie at fastmail.com
Mon May 4 02:03:24 EDT 2015


> Will raise a maniphest task for the bug, but in the meantime you can get

Raised and resolved :)

On Mon, May 4, 2015, at 03:42 PM, ellie timoney wrote:
> Another missing dependency, this time a cyrus one:
> 
>   sudo apt-get install uuid-dev
> 
> and then rebuild cyrus from scratch.
> 
> The problem looks like a bug in the lib/util.c:makeuuid(), specifically
> its handling of the case where we don't HAVE_LIBUUID.  The fallback is
> to generate a uuid from random bytes, which at a glance looks like it
> should be okay except that for whatever reason it isn't, and results in
> strings like "t9|ltv0lnout\204z\200\066|~5p2\200ly" (look at all those
> octals!).  This winds up in mailboxes.db as a quoted literal (i.e.
> {24}\r\n.......), and then dlist_parsesax is not happy when it comes
> time to look for those mailboxes later.
> 
> Will raise a maniphest task for the bug, but in the meantime you can get
> running just by installing uuid-dev.  At this point all Cassandane tests
> pass for master and cyrus-imapd-2.5 branches (... with the occasional
> exception of Master.sighup_recycling)
> 
> ellie
> 
> On Mon, May 4, 2015, at 01:15 PM, ellie timoney wrote:
> > > This one:
> > > 
> > > >       4  Perl exception: child process (binary /home/ellie/build/cassandane/utils/annotator.pl pid [pid]) exited with code 255
> > > 
> > > ... is a head scratcher.  I'm digging deeper into it at the moment.
> > 
> > After all that, this one was just missing runtime dependencies:
> > 
> >   sudo apt-get install libnet-server-perl libunix-syslog-perl
> > 
> > 
> > 
> > On Mon, May 4, 2015, at 01:02 PM, ellie timoney wrote:
> > > Okay, here's a summary of the errors I'm currently getting from
> > > Cassandane against the a cyrus built from the master branch on Debian
> > > 8.0
> > > 
> > > > ellie at cyrus-test:~/build/cassandane$ ./testrunner.pl -f pretty -j 8 2>/dev/null | grep -A2 '^[0-9][0-9]*) ' | grep '^ Perl exception:' | sed -e 's/:[0-9][0-9]*$/:[port]/' -e 's/pid [0-9][0-9]*/pid [pid]/' | sort | uniq -c | sort -nrk 1
> > > >      91  Perl exception: Cannot setacl for user.cassandane: IMAP Command : 'setacl' failed. Response was : no - Invalid identifier
> > > >      58  Perl exception: Some process is already listening on 127.0.0.1:[port]
> > > >       6  Perl exception: Cannot setacl for user/cassandane: IMAP Command : 'setacl' failed. Response was : no - Invalid identifier
> > > >       4  Perl exception: child process (binary /home/ellie/build/cassandane/utils/annotator.pl pid [pid]) exited with code 255
> > > >       1  Perl exception: Timed out waiting for lemmings to reach the expected census
> > > >       1  Perl exception: Cannot setmetadata: IMAP Command : 'setmetadata' failed. Response was : no - Mailbox does not exist
> > > >       1  Perl exception: Cannot setacl for user.gastropub: IMAP Command : 'setacl' failed. Response was : no - Invalid identifier
> > > >
> > > 
> > > 
> > > These ones:
> > > 
> > > >      58  Perl exception: Some process is already listening on 127.0.0.1:[port]
> > > 
> > > ... I have seen before, and at the time the problem was a few stray
> > > masters hanging around from a previous cass run that I had ^C'd and not
> > > cleaned up after manually -- cleaning those up at the time fixed the
> > > errors.  This time that isn't the problem though -- when the Cassandane
> > > run completes, there's no cyrus processes left running at all.  So, so
> > > far I dunno.
> > > 
> > > These two:
> > > 
> > > >       1  Perl exception: Cannot setmetadata: IMAP Command : 'setmetadata' failed. Response was : no - Mailbox does not exist
> > > >       1  Perl exception: Cannot setacl for user.gastropub: IMAP Command : 'setacl' failed. Response was : no - Invalid identifier
> > > 
> > > ... seem to be sporadic, they don't seem to occur on every Cassandane
> > > run, but did on this one.
> > > 
> > > This one:
> > > 
> > > >       4  Perl exception: child process (binary /home/ellie/build/cassandane/utils/annotator.pl pid [pid]) exited with code 255
> > > 
> > > ... is a head scratcher.  I'm digging deeper into it at the moment.
> > > 
> > > These ones:
> > > 
> > > >      91  Perl exception: Cannot setacl for user.cassandane: IMAP Command : 'setacl' failed. Response was : no - Invalid identifier
> > > >       6  Perl exception: Cannot setacl for user/cassandane: IMAP Command : 'setacl' failed. Response was : no - Invalid identifier
> > > >       1  Perl exception: Cannot setacl for user.gastropub: IMAP Command : 'setacl' failed. Response was : no - Invalid identifier
> > > 
> > > I thought I had seen something like this (specifically, "Cannot
> > > setacl...") with the master branch on Debian 7.8 a few weeks ago, but
> > > then I didn't look at master much for a while and next time I did it
> > > wasn't happening anymore, so I just assumed it was an actual bug on
> > > master that had gotten fixed.  (IIRC it might have gone away when
> > > Anthony's configure changes were reverted?)
> > > 
> > > So that's where I'm at.  I'll keep digging (specifically into the
> > > annotator.pl problem for now), but if any of this looks familiar to
> > > anyone else on the list I'd appreciate a pointer. :)
> > > 
> > > Cheers,
> > > 
> > > ellie
> > > 
> > > On Mon, May 4, 2015, at 10:30 AM, ellie timoney wrote:
> > > > Hi Conrad,
> > > > 
> > > > I don't know about Debian 8 currently, but if we're not considering it a
> > > > supported platform now, I expect we will once Fastmail upgrades to it. 
> > > > But we don't yet have even a vague timeline on when that will be.
> > > > 
> > > > I don't know much/anything about Docker.  My understanding was that the
> > > > current Docker images were more for testing purposes, and that at some
> > > > point we would start officially releasing Docker images for people who
> > > > want to run Cyrus without having to manage a whole system under it(?). 
> > > > But I don't imagine they'd be useful as development environments.
> > > > 
> > > > I'll keep poking around on my Debian 8 VM as I have time, and see if I
> > > > can find a fix for the errors from Cassandane.
> > > > 
> > > > Cheers,
> > > > 
> > > > ellie
> > > > 
> > > > On Sat, May 2, 2015, at 08:10 PM, Conrad Kleinespel wrote:
> > > > > Hello Ellie,
> > > > > 
> > > > > Thanks for the tip. I just ran the tests on the 2.5 branch. I get a lot
> > > > > less errors and no failure:
> > > > > Run: 252, Failures: 0, Errors: 42
> > > > > 
> > > > > Seeing that you have the same issue is a relief (kinda). Are Debian 8
> > > > > and Ubuntu officially supported platforms ? If not, what I'd do is just
> > > > > setup a Docker container with Debian 7.8 and see if I can run everything
> > > > > in there. I see there is a Docker repository on Phabricator. Would that
> > > > > be a solution or are these Docker containers not to be used for some
> > > > > reason ? Seeing how you took the time to write all of these
> > > > > instructions, I'm unsure.
> > > > > 
> > > > > Thanks for your help,
> > > > > 
> > > > > Best regards.
> > > > > 
> > > > > -- 
> > > > > Conrad Kleinespel
> > > > > conradk at conradk.com
> > > > > +33 6 23 82 42 79
> > > > > 
> > > > > On Sat, May 2, 2015, at 10:17 AM, ellie timoney wrote:
> > > > > > > However, when running the tests with "./testrunner.pl -f pretty -j 8", I
> > > > > > > get 1 failure and 182 errors in 252 tests. That seems odd. I see no
> > > > > > > specific error messages in syslog or elsewhere, so I'm thinking I must
> > > > > > > be missing something. Have any of you experienced this ?
> > > > > > 
> > > > > > Is that against the cyrus master branch?  Do you get less errors with
> > > > > > the cyrus-imapd-2.5 branch?
> > > > > > 
> > > > > > I experienced a lot (don't recall numbers offhand, sorry) of errors
> > > > > > against master, and a lot (but fewer) against cyrus-imapd-2.5, when
> > > > > > running Cassandane on my Debian 8.0 VM, which is probably similar to
> > > > > > recent Ubuntu.  But all tests are fine for me on both branches on Debian
> > > > > > 7.8.  So I don't yet know if something has changed in recent
> > > > > > Debian/Ubuntu to cause this, or if I've just missed a step in the VM
> > > > > > setup (and consequently the instructions).
> > > > > > 
> > > > > > On Sat, May 2, 2015, at 08:20 AM, Conrad Kleinespel wrote:
> > > > > > > Hello guys and girls,
> > > > > > > 
> > > > > > > Ellie, thanks a lot for the instructions. Building Cyrus and Cassandane
> > > > > > > worked just fine on Ubuntu 15.10 :-)
> > > > > > > 
> > > > > > > However, when running the tests with "./testrunner.pl -f pretty -j 8", I
> > > > > > > get 1 failure and 182 errors in 252 tests. That seems odd. I see no
> > > > > > > specific error messages in syslog or elsewhere, so I'm thinking I must
> > > > > > > be missing something. Have any of you experienced this ?
> > > > > > > 
> > > > > > > Installing arcanist on Ubuntu was apparently as easy as "sudo apt-get
> > > > > > > install arcanist". I'll see about actually using it together with
> > > > > > > Phabricator when I make my first commit.
> > > > > > > 
> > > > > > > Best regards,
> > > > > > > 
> > > > > > > Conrad Kleinespel
> > > > > > > conradk at conradk.com


More information about the Cyrus-devel mailing list