cyrusimap / cassandane

Other
6 stars 11 forks source link

Cassandane "light" #60

Open hagedose opened 6 years ago

hagedose commented 6 years ago

I would like to get Cassandane to work on my system. Currently it fails because it depends on features that are disabled here:

$ ./configure --build=x86_64-redhat-linux-gnu --host=x86_64-redhat-linux-gnu --program-prefix= --disable-dependency-tracking --prefix=/usr --exec-prefix=/usr --bindir=/usr/bin --sbindir=/usr/sbin --sysconfdir=/etc --datadir=/usr/share --includedir=/usr/include --libdir=/usr/lib64 --libexecdir=/usr/libexec --localstatedir=/var --sharedstatedir=/var/lib --mandir=/usr/share/man --infodir=/usr/share/info --libexecdir=/usr/lib/cyrus-imapd --sbindir=/usr/lib/cyrus-imapd --enable-xapian --enable-backup --enable-idled --enable-murder --enable-replication --with-extraident=1.el7 Fedora --with-ldap=/usr --with-perl=/usr/bin/perl --without-snmp --with-syslogfacility=LOCAL6

This results in:

$ cyr_buildinfo
{
  "component": {
    "event_notification": true,
    "gssapi": true,
    "autocreate": false,
    "idled": true,
    "httpd": false,
    "kerberos_v4": false,
    "murder": true,
    "nntpd": false,
    "replication": true,
    "sieve": true,
    "calalarmd": false,
    "objectstore": false,
    "backup": true
  },
  "dependency": {
    "ldap": true,
    "openssl": true,
    "pcre": true,
    "clamav": true
  },
  "database": {
    "mysql": false,
    "pgsql": false,
    "sqlite": true,
    "lmdb": false
  },
  "search": {
    "squat": true,
    "sphinx": false,
    "xapian": true,
    "xapian_flavor": "vanilla"
  },
  "hardware": {
    "sse42": true
  }
}
hagedose commented 6 years ago

Specifically, it would be great if the tests wouldn't require Mail/JMAPTalk.pm for systems that don't use JMAP. All the tests seem to depend on it:

BEGIN failed--compilation aborted at ./Cassandane/Cyrus/SearchFuzzy.pm line 48.
Can't locate Mail/JMAPTalk.pm in @INC (@INC contains: . /usr/local/lib64/perl5 /usr/local/share/perl5 /usr/lib64/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib64/perl5 /usr/share/perl5) at Cassandane/Cyrus/TestCase.pm line 44.
BEGIN failed--compilation aborted at Cassandane/Cyrus/TestCase.pm line 44.
Compilation failed in require at (eval 28) line 2.
    ...propagated at /usr/share/perl5/base.pm line 84.
elliefm commented 6 years ago

Thanks for this, I'll review your configuration and try to accommodate it as part of PR #57. :)

elliefm commented 6 years ago

Ok, #57 has been merged and I've also updated Cassandane master further to disable the CalDAV, CardDAV, and NNTP tests if those features aren't enabled.

I've tested it based on the following configure call, which is based on yours but with tweaks for my build environment:

CFLAGS="-g -O0 -Wall -Wextra -Werror -Wl,--as-needed $CFLAGS" CXXFLAGS="-g -O0 -Wall -Wextra -Werror $CXXFLAGS" XAPIAN_CONFIG="/usr/local/xapian/bin/xapian-config-1.5" ./configure --enable-xapian --enable-backup --enable-idled --enable-murder --enable-replication --with-extraident="1.el7 Fedora" --with-ldap --without-snmp --prefix="$CYRUSDEFAULT_PREFIX" --enable-unit-tests --enable-silent-rules

I'd be interested to hear how it goes!

hagedose commented 6 years ago

I just updated my copy of Cassandane, but the problem remains:

cassandane]$ make
make[1]: Entering directory `/root/cassandane/utils'
gcc -g -O0 -Wall -Wextra   -c -o lemming.o lemming.c
gcc -g -O0 -Wall -Wextra    -o lemming lemming.o
gcc -g -O0 -Wall -Wextra   -c -o gdbtramp.o gdbtramp.c
gcc -g -O0 -Wall -Wextra    -o gdbtramp gdbtramp.o
gcc -g -O0 -Wall -Wextra   -c -o crash.o crash.c
gcc -g -O0 -Wall -Wextra    -o crash crash.o
make[1]: Leaving directory `/root/cassandane/utils'
./utils/annotator.pl syntax check SKIPPED
./genmail3.pl syntax OK
./imap-append.pl syntax OK
./jenkins-xml-summary.pl syntax OK
./listmail.pl syntax OK
./pop3showafter.pl syntax OK
./split-by-thread.pl syntax OK
./sprinkle.pl syntax OK
./start-instance.pl syntax OK
./testrunner.pl syntax OK
./Cassandane/Address.pm syntax OK
./Cassandane/BuildInfo.pm syntax OK
./Cassandane/Cassini.pm syntax OK
./Cassandane/Config.pm syntax OK
Can't locate Mail/JMAPTalk.pm in @INC (@INC contains: . /usr/local/lib64/perl5 /usr/local/share/perl5 /usr/lib64/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib64/perl5 /usr/share/perl5) at Cassandane/Cyrus/TestCase.pm line 512.
BEGIN failed--compilation aborted at Cassandane/Cyrus/TestCase.pm line 512.
Compilation failed in require at (eval 28) line 2.
    ...propagated at /usr/share/perl5/base.pm line 84.

I think the use is evaluated at compile time, so placing it in a subroutine doesn't help. I believe you need to require the module instead.

hagedose commented 6 years ago

This seems to work:

--- Cassandane/Cyrus/TestCase.pm.orig   2018-06-05 12:26:34.091107705 +0200
+++ Cassandane/Cyrus/TestCase.pm    2018-06-05 12:35:57.058408871 +0200
@@ -509,9 +509,9 @@
 {
     my ($self) = @_;

-    use Mail::JMAPTalk;
-    use Net::CalDAVTalk 0.09;
-    use Net::CardDAVTalk 0.03;
+    require Mail::JMAPTalk;
+    require Net::CalDAVTalk;
+    require Net::CardDAVTalk;

     my $service = $self->{instance}->get_service("http");
     $ENV{DEBUGJMAP} = 1;
hagedose commented 6 years ago

FWIW, I still had to move these modules aside, because they would cause compilation errors that kept testrunner from working at all:

CaldavAlarm.pm Caldav.pm Carddav.pm JMAPCalendars.pm JMAPContacts.pm JMAPCore.pm JMAPMail.pm Nntp.pm TesterCalDAV.pm TesterCardDAV.pm TesterJMAP.pm

hagedose commented 6 years ago

Now testrunner runs, but it just fails without creating reports. I tried to set up cassandane.ini properly, but maybe I overlooked something?

./testrunner.pl --verbose
=====> Cassini[65] Reading /root/cassandane/cassandane.ini
Cyrus::ACL.delete                                                       [ERROR ]
Cyrus::ACL.many_users                                                   [ERROR ]
Cyrus::ACL.move                                                         [ERROR ]
Cyrus::ACL.reconstruct                                                  [ERROR ]
Cyrus::ACL.setacl_addacl                                                [ERROR ]
Cyrus::ACL.setacl_addacl_exists                                         [ERROR ]
Cyrus::ACL.setacl_badacl                                                [ERROR ]
Cyrus::ACL.setacl_badrights                                             [ERROR ]
Cyrus::ACL.setacl_emptyid                                               [ERROR ]
Cyrus::ACL.setacl_rmacl                                                 [ERROR ]
Cyrus::ACL.setacl_rmacl_unexists                                        [ERROR ]
Cyrus::Admin.imap_admins                                                [ERROR ]
Cyrus::Annotator.add_annot_deliver                                      [ERROR ]
Cyrus::Annotator.add_annot_deliver_tomailbox                            [ERROR ]
elliefm commented 6 years ago

Okay, a few notes:

Thanks for the tip/patch about use vs require. Can you dump your whole make output in here, including the suites you had to move aside? I can then work through those and see what other dependency-related improvements can be made.

hagedose commented 6 years ago

Here's the output of make before I moved modules:

$ make
make[1]: Entering directory `/root/cassandane/utils'
make[1]: Für das Ziel »all« ist nichts zu tun.
make[1]: Leaving directory `/root/cassandane/utils'
./utils/annotator.pl syntax check SKIPPED
./genmail3.pl syntax OK
./imap-append.pl syntax OK
./jenkins-xml-summary.pl syntax OK
./listmail.pl syntax OK
./pop3showafter.pl syntax OK
./split-by-thread.pl syntax OK
./sprinkle.pl syntax OK
./start-instance.pl syntax OK
./testrunner.pl syntax OK
./Cassandane/Address.pm syntax OK
./Cassandane/BuildInfo.pm syntax OK
./Cassandane/Cassini.pm syntax OK
./Cassandane/Config.pm syntax OK
./Cassandane/Cyrus/ACL.pm syntax OK
./Cassandane/Cyrus/Admin.pm syntax OK
./Cassandane/Cyrus/Annotator.pm syntax OK
./Cassandane/Cyrus/Archive.pm syntax OK
./Cassandane/Cyrus/Autocreate.pm syntax OK
./Cassandane/Cyrus/Backups.pm syntax OK
./Cassandane/Cyrus/Bug3072.pm syntax OK
./Cassandane/Cyrus/Bug3463.pm syntax OK
./Cassandane/Cyrus/Bug3470.pm syntax OK
./Cassandane/Cyrus/Bug3649.pm syntax OK
./Cassandane/Cyrus/Bug3903.pm syntax OK
Can't locate DateTime/Format/ISO8601.pm in @INC (@INC contains: /usr/local/lib64/perl5 /usr/local/share/perl5 /usr/lib64/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib64/perl5 /usr/share/perl5 .) at ./Cassandane/Cyrus/CaldavAlarm.pm line 44.
BEGIN failed--compilation aborted at ./Cassandane/Cyrus/CaldavAlarm.pm line 44.
Can't locate Net/CalDAVTalk.pm in @INC (@INC contains: /usr/local/lib64/perl5 /usr/local/share/perl5 /usr/lib64/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib64/perl5 /usr/share/perl5 .) at ./Cassandane/Cyrus/Caldav.pm line 45.
BEGIN failed--compilation aborted at ./Cassandane/Cyrus/Caldav.pm line 45.
Can't locate Net/DAVTalk.pm in @INC (@INC contains: /usr/local/lib64/perl5 /usr/local/share/perl5 /usr/lib64/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib64/perl5 /usr/share/perl5 .) at ./Cassandane/Cyrus/Carddav.pm line 45.
BEGIN failed--compilation aborted at ./Cassandane/Cyrus/Carddav.pm line 45.
./Cassandane/Cyrus/ClamAV.pm syntax OK
./Cassandane/Cyrus/Conversations.pm syntax OK
./Cassandane/Cyrus/CyrusDB.pm syntax OK
./Cassandane/Cyrus/Delete.pm syntax OK
./Cassandane/Cyrus/Delivery.pm syntax OK
./Cassandane/Cyrus/Deny.pm syntax OK
./Cassandane/Cyrus/Expunge.pm syntax OK
./Cassandane/Cyrus/Fetch.pm syntax OK
./Cassandane/Cyrus/Flags.pm syntax OK
./Cassandane/Cyrus/Idle.pm syntax OK
./Cassandane/Cyrus/ID.pm syntax OK
./Cassandane/Cyrus/ImapTest.pm syntax OK
./Cassandane/Cyrus/Info.pm syntax OK
Can't locate Net/CalDAVTalk.pm in @INC (@INC contains: /usr/local/lib64/perl5 /usr/local/share/perl5 /usr/lib64/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib64/perl5 /usr/share/perl5 .) at ./Cassandane/Cyrus/JMAPCalendars.pm line 45.
BEGIN failed--compilation aborted at ./Cassandane/Cyrus/JMAPCalendars.pm line 45.
Can't locate Net/CalDAVTalk.pm in @INC (@INC contains: /usr/local/lib64/perl5 /usr/local/share/perl5 /usr/lib64/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib64/perl5 /usr/share/perl5 .) at ./Cassandane/Cyrus/JMAPContacts.pm line 45.
BEGIN failed--compilation aborted at ./Cassandane/Cyrus/JMAPContacts.pm line 45.
Can't locate Net/CalDAVTalk.pm in @INC (@INC contains: /usr/local/lib64/perl5 /usr/local/share/perl5 /usr/lib64/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib64/perl5 /usr/share/perl5 .) at ./Cassandane/Cyrus/JMAPCore.pm line 45.
BEGIN failed--compilation aborted at ./Cassandane/Cyrus/JMAPCore.pm line 45.
Can't locate Net/CalDAVTalk.pm in @INC (@INC contains: /usr/local/lib64/perl5 /usr/local/share/perl5 /usr/lib64/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib64/perl5 /usr/share/perl5 .) at ./Cassandane/Cyrus/JMAPMail.pm line 45.
BEGIN failed--compilation aborted at ./Cassandane/Cyrus/JMAPMail.pm line 45.
./Cassandane/Cyrus/List.pm syntax OK
./Cassandane/Cyrus/Lsub.pm syntax OK
./Cassandane/Cyrus/Master.pm syntax OK
./Cassandane/Cyrus/Metadata.pm syntax OK
./Cassandane/Cyrus/Move.pm syntax OK
./Cassandane/Cyrus/Murder.pm syntax OK
Can't locate News/NNTPClient.pm in @INC (@INC contains: /usr/local/lib64/perl5 /usr/local/share/perl5 /usr/lib64/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib64/perl5 /usr/share/perl5 .) at ./Cassandane/Cyrus/Nntp.pm line 44.
BEGIN failed--compilation aborted at ./Cassandane/Cyrus/Nntp.pm line 44.
./Cassandane/Cyrus/Objectid.pm syntax OK
./Cassandane/Cyrus/Pop3.pm syntax OK
./Cassandane/Cyrus/Prometheus.pm syntax OK
./Cassandane/Cyrus/Quota.pm syntax OK
./Cassandane/Cyrus/Reconstruct.pm syntax OK
./Cassandane/Cyrus/Rename.pm syntax OK
./Cassandane/Cyrus/Replication.pm syntax OK
./Cassandane/Cyrus/SearchFuzzy.pm syntax OK
./Cassandane/Cyrus/Search.pm syntax OK
./Cassandane/Cyrus/Sieve.pm syntax OK
./Cassandane/Cyrus/Simple.pm syntax OK
./Cassandane/Cyrus/Specialuse.pm syntax OK
./Cassandane/Cyrus/T116.pm syntax OK
./Cassandane/Cyrus/TestCase.pm syntax OK
Can't locate Net/CalDAVTalk.pm in @INC (@INC contains: . /usr/local/lib64/perl5 /usr/local/share/perl5 /usr/lib64/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib64/perl5 /usr/share/perl5) at ./Cassandane/Cyrus/TesterCalDAV.pm line 52.
BEGIN failed--compilation aborted at ./Cassandane/Cyrus/TesterCalDAV.pm line 52.
./Cassandane/Cyrus/TesterCardDAV.pm syntax OK
./Cassandane/Cyrus/TesterJMAP.pm syntax OK
./Cassandane/Cyrus/Thread.pm syntax OK
./Cassandane/Cyrus/Userid.pm syntax OK
./Cassandane/Daemon.pm syntax OK
./Cassandane/Generator.pm syntax OK
./Cassandane/IMAPMessageStore.pm syntax OK
./Cassandane/IMAPService.pm syntax OK
./Cassandane/Instance.pm syntax OK
./Cassandane/MaildirMessageStore.pm syntax OK
./Cassandane/MasterEntry.pm syntax OK
./Cassandane/MasterEvent.pm syntax OK
./Cassandane/MasterStart.pm syntax OK
./Cassandane/MboxMessageStore.pm syntax OK
./Cassandane/Mboxname.pm syntax OK
./Cassandane/Message.pm syntax OK
./Cassandane/MessageStoreFactory.pm syntax OK
./Cassandane/MessageStore.pm syntax OK
./Cassandane/Net/SMTPServer.pm syntax OK
./Cassandane/POP3MessageStore.pm syntax OK
./Cassandane/PortManager.pm syntax OK
./Cassandane/SequenceGenerator.pm syntax OK
./Cassandane/ServiceFactory.pm syntax OK
./Cassandane/Service.pm syntax OK
./Cassandane/Test/Address.pm syntax OK
./Cassandane/Test/Cassini.pm syntax OK
./Cassandane/Test/Clone.pm syntax OK
./Cassandane/Test/Config.pm syntax OK
./Cassandane/Test/Core.pm syntax OK
./Cassandane/Test/DateTime.pm syntax OK
./Cassandane/Test/Mboxname.pm syntax OK
./Cassandane/Test/Message.pm syntax OK
./Cassandane/Test/MessageStoreFactory.pm syntax OK
./Cassandane/Test/Metronome.pm syntax OK
./Cassandane/Test/Parameter.pm syntax OK
./Cassandane/Test/Sample.pm syntax OK
./Cassandane/Test/Skip.pm syntax OK
./Cassandane/ThreadedGenerator.pm syntax OK
./Cassandane/Unit/Runner.pm syntax OK
./Cassandane/Unit/RunnerPretty.pm syntax OK
./Cassandane/Unit/RunnerXML.pm syntax OK
./Cassandane/Unit/TestCase.pm syntax OK
./Cassandane/Unit/TestPlan.pm syntax OK
./Cassandane/Util/DateTime.pm syntax OK
./Cassandane/Util/Log.pm syntax OK
./Cassandane/Util/Metronome.pm syntax OK
./Cassandane/Util/NetString.pm syntax OK
./Cassandane/Util/Sample.pm syntax OK
./Cassandane/Util/Setup.pm syntax OK
./Cassandane/Util/SHA.pm syntax OK
./Cassandane/Util/Socket.pm syntax OK
./Cassandane/Util/Wait.pm syntax OK
./Cassandane/Util/Words.pm syntax OK
./Cyrus/CheckReplication.pm syntax OK
./Cyrus/DList.pm syntax OK
./Cyrus/IndexFile.pm syntax OK
./Net/XmtpServer.pm syntax OK
make: *** [all] Fehler 1
hagedose commented 6 years ago

testrunner also failed to run before I moved the modules:

$ ./testrunner.pl
Perl exception: Can't locate Net/CalDAVTalk.pm in @INC (@INC contains: . /usr/local/lib64/perl5 /usr/local/share/perl5 /usr/lib64/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib64/perl5 /usr/share/perl5)
 at Cassandane/Cyrus/Caldav.pm line 45.
    Cassandane::Cyrus::Caldav::BEGIN() called at Cassandane/Cyrus/Caldav.pm line 45
    eval {...} called at Cassandane/Cyrus/Caldav.pm line 45
    require Cassandane/Cyrus/Caldav.pm called at (eval 127) line 2
    eval 'require Cassandane::Cyrus::Caldav
;' called at /usr/share/perl5/vendor_perl/Test/Unit/Loader.pm line 46
    Test::Unit::Loader::compile_class('Cassandane::Cyrus::Caldav') called at /usr/share/perl5/vendor_perl/Test/Unit/Loader.pm line 21
    Test::Unit::Loader::compile('Cassandane::Cyrus::Caldav') called at /usr/share/perl5/vendor_perl/Test/Unit/Loader.pm line 74
    Test::Unit::Loader::load_test('Cassandane::Cyrus::Caldav') called at /usr/share/perl5/vendor_perl/Test/Unit/Loader.pm line 63
    Test::Unit::Loader::load('Cassandane::Cyrus::Caldav') called at Cassandane/Unit/TestPlan.pm line 65
    Cassandane::Unit::TestPlanItem::_get_loaded_suite('Cassandane::Unit::TestPlanItem=HASH(0x2a2b538)') called at Cassandane/Unit/TestPlan.pm line 611
    Cassandane::Unit::TestPlan::_get_schedule('Cassandane::Unit::TestPlan=HASH(0x2a22bb8)') called at Cassandane/Unit/TestPlan.pm line 837
    Cassandane::Unit::TestPlan::run('Cassandane::Unit::TestPlan=HASH(0x2a22bb8)', 'Test::Unit::Result=HASH(0x2a2c3c0)', 'Cassandane::Unit::RunnerPretty=HASH(0x2a2c258)') called at /usr/share/perl5/vendor_perl/Test/Unit/TestRunner.pm line 54
    Test::Unit::TestRunner::do_run('Cassandane::Unit::RunnerPretty=HASH(0x2a2c258)', 'Cassandane::Unit::TestPlan=HASH(0x2a22bb8)', 0) called at ./testrunner.pl line 132
    main::__ANON__('Cassandane::Unit::TestPlan=HASH(0x2a22bb8)', 'GLOB(0x2a2c0f0)') called at ./testrunner.pl line 299
BEGIN failed--compilation aborted at Cassandane/Cyrus/Caldav.pm line 45.
Compilation failed in require at (eval 127) line 2.
hagedose commented 6 years ago

Thanks, you were right! I didn't realize I had to set up the rootdir manually. Now I get different errors, but I'll try to figure things out on my own for now.

hagedose commented 6 years ago

OK, there are multiple issues with the way Red Hat installs Cyrus and the way Cassandane expects them to be installed.

bin sbin libexec libexec/cyrus-imapd lib cyrus/bin

I added '.' to that list.

More later ...

hagedose commented 6 years ago

Now the test is actually running, but it fails for reasons I don't understand ... the problem seems to be that the client tries to SELECT the already selected folder?!

$ ./testrunner.pl -fpretty -vvv ACL.delete
=====> Cassini[65] Reading /root/cassandane/cassandane.ini
Cyrus::ACL.delete                                                       [FAILED]
=====> Cyrus::TestCase[558] ---------- BEGIN test_delete ----------
=====> Instance[1053] start main instance for test test_delete: basedir /var/tmp/cass/10041101
=====> Instance[1036] started smtpd as 36536
2018/06/06-12:04:11 Cassandane::Net::SMTPServer (type Net::Server::PreForkSimple) starting! pid(36536)
Resolved [localhost]:9100 to [127.0.0.1]:9100, IPv4
Binding to TCP port 9100 on host 127.0.0.1 with IPv4
=====> Instance[474] Found binary ctl_cyrusdb in /usr/lib/cyrus-imapd/.
Group Not Defined.  Defaulting to EGID '12 0'
User Not Defined.  Defaulting to EUID '76'
=====> Instance[474] Found binary imapd in /usr/lib/cyrus-imapd/.
=====> Instance[924] started saslauthd for /var/tmp/cass/10041101 as 36539
=====> Instance[951] started notifyd for /var/tmp/cass/10041101 as 36541
=====> Instance[1836] opening socket /var/tmp/cass/10041101/run/mux
=====> Instance[867] _start_master: logging to /var/tmp/cass/10041101/conf/master.log
=====> Instance[474] Found binary cyrus-master in /usr/lib/cyrus-imapd/.
=====> Instance[1573] Running: "/usr/lib/cyrus-imapd/./cyrus-master" "-C" "/var/tmp/cass/10041101/conf/imapd.conf" "-l" "255" "-p" "/var/tmp/cass/10041101/run/master.pid" "-d" "-M" "/var/tmp/cass/10041101/conf/cyrus.conf" "-L" "/var/tmp/cass/10041101/conf/master.log"
=====> Instance[876] _start_master: waiting for PID file
=====> Instance[879] _start_master: PID file present and correct
=====> Instance[891] _start_master: PID waiting for services
=====> Daemon[356] is_listening: service imap is listening on 127.0.0.1:9101
=====> Util::Wait[75] Waited 0.018303 sec for 127.0.0.1:9101 to be in LISTEN state
=====> Instance[902] _start_master: all services listening
=====> Instance[978] create user cassandane
=====> Util::Socket[61] create_client_socket INET host=127.0.0.1 port=9101
C: 1 capability
S: * OK [CAPABILITY IMAP4rev1 LITERAL+ ID ENABLE AUTH=DIGEST-MD5 SASL-IR] cyrus3-staging.rrz.uni-koeln.de Cyrus IMAP 3.0.7-1.el7 Fedora server ready
S: * CAPABILITY IMAP4rev1 LITERAL+ ID ENABLE ACL RIGHTS=kxten QUOTA MAILBOX-REFERRALS NAMESPACE UIDPLUS NO_ATOMIC_RENAME UNSELECT CHILDREN MULTIAPPEND BINARY CATENATE CONDSTORE ESEARCH SEARCH=FUZZY SORT SORT=MODSEQ SORT=DISPLAY SORT=UID THREAD=ORDEREDSUBJECT THREAD=REFERENCES THREAD=REFS ANNOTATEMORE ANNOTATE-EXPERIMENT-1 METADATA LIST-EXTENDED LIST-STATUS LIST-MYRIGHTS LIST-METADATA WITHIN QRESYNC SCAN XLIST XMOVE MOVE SPECIAL-USE CREATE-SPECIAL-USE DIGEST=SHA1 X-REPLICATION URLAUTH URLAUTH=BINARY AUTH=DIGEST-MD5 SASL-IR COMPRESS=DEFLATE X-QUOTA=STORAGE X-QUOTA=MESSAGE X-QUOTA=X-ANNOTATION-STORAGE X-QUOTA=X-NUM-FOLDERS IDLE
S: 1 OK Completed
C: 2 login admin "testpw"
=====> Instance[1851] authdaemon connection: admin testpw imap
S: 2 OK [CAPABILITY IMAP4rev1 LITERAL+ ID ENABLE ACL RIGHTS=kxten QUOTA MAILBOX-REFERRALS NAMESPACE UIDPLUS NO_ATOMIC_RENAME UNSELECT CHILDREN MULTIAPPEND BINARY CATENATE CONDSTORE ESEARCH SEARCH=FUZZY SORT SORT=MODSEQ SORT=DISPLAY SORT=UID THREAD=ORDEREDSUBJECT THREAD=REFERENCES THREAD=REFS ANNOTATEMORE ANNOTATE-EXPERIMENT-1 METADATA LIST-EXTENDED LIST-STATUS LIST-MYRIGHTS LIST-METADATA WITHIN QRESYNC SCAN XLIST XMOVE MOVE SPECIAL-USE CREATE-SPECIAL-USE DIGEST=SHA1 X-REPLICATION URLAUTH URLAUTH=BINARY LOGINDISABLED COMPRESS=DEFLATE X-QUOTA=STORAGE X-QUOTA=MESSAGE X-QUOTA=X-ANNOTATION-STORAGE X-QUOTA=X-NUM-FOLDERS IDLE] User logged in SESSIONID=<10041101-36549-1528279451-1-16782311003282742344>
C: 3 create user.cassandane
S: 3 OK Completed
C: 4 setacl user.cassandane admin lrswipkxtecdan
S: 4 OK Completed
C: 5 setacl user.cassandane cassandane lrswipkxtecdn
S: 5 OK Completed
C: 6 setacl user.cassandane anyone p
S: 6 OK Completed
A: is_open test
A: is_open test received timeout, still open
C: 7 logout
S: * BYE LOGOUT received
S: 7 OK Completed
A: Release socket, fileno=7
=====> Instance[1088] started main instance for test test_delete: cyrus version 3.0.7-1.el7 Fedora
=====> Cyrus::TestCase[565] Calling test function
=====> Util::Socket[61] create_client_socket INET host=127.0.0.1 port=9101
C: 1 capability
S: * OK [CAPABILITY IMAP4rev1 LITERAL+ ID ENABLE AUTH=DIGEST-MD5 SASL-IR] cyrus3-staging.rrz.uni-koeln.de Cyrus IMAP 3.0.7-1.el7 Fedora server ready
S: * CAPABILITY IMAP4rev1 LITERAL+ ID ENABLE ACL RIGHTS=kxten QUOTA MAILBOX-REFERRALS NAMESPACE UIDPLUS NO_ATOMIC_RENAME UNSELECT CHILDREN MULTIAPPEND BINARY CATENATE CONDSTORE ESEARCH SEARCH=FUZZY SORT SORT=MODSEQ SORT=DISPLAY SORT=UID THREAD=ORDEREDSUBJECT THREAD=REFERENCES THREAD=REFS ANNOTATEMORE ANNOTATE-EXPERIMENT-1 METADATA LIST-EXTENDED LIST-STATUS LIST-MYRIGHTS LIST-METADATA WITHIN QRESYNC SCAN XLIST XMOVE MOVE SPECIAL-USE CREATE-SPECIAL-USE DIGEST=SHA1 X-REPLICATION URLAUTH URLAUTH=BINARY AUTH=DIGEST-MD5 SASL-IR COMPRESS=DEFLATE X-QUOTA=STORAGE X-QUOTA=MESSAGE X-QUOTA=X-ANNOTATION-STORAGE X-QUOTA=X-NUM-FOLDERS IDLE
S: 1 OK Completed
C: 2 login admin "testpw"
=====> Instance[1851] authdaemon connection: admin testpw imap
S: 2 OK [CAPABILITY IMAP4rev1 LITERAL+ ID ENABLE ACL RIGHTS=kxten QUOTA MAILBOX-REFERRALS NAMESPACE UIDPLUS NO_ATOMIC_RENAME UNSELECT CHILDREN MULTIAPPEND BINARY CATENATE CONDSTORE ESEARCH SEARCH=FUZZY SORT SORT=MODSEQ SORT=DISPLAY SORT=UID THREAD=ORDEREDSUBJECT THREAD=REFERENCES THREAD=REFS ANNOTATEMORE ANNOTATE-EXPERIMENT-1 METADATA LIST-EXTENDED LIST-STATUS LIST-MYRIGHTS LIST-METADATA WITHIN QRESYNC SCAN XLIST XMOVE MOVE SPECIAL-USE CREATE-SPECIAL-USE DIGEST=SHA1 X-REPLICATION URLAUTH URLAUTH=BINARY LOGINDISABLED COMPRESS=DEFLATE X-QUOTA=STORAGE X-QUOTA=MESSAGE X-QUOTA=X-ANNOTATION-STORAGE X-QUOTA=X-NUM-FOLDERS IDLE] User logged in SESSIONID=<10041101-36549-1528279451-2-13965511090526396048>
=====> Instance[978] create user archive
=====> Util::Socket[61] create_client_socket INET host=127.0.0.1 port=9101
C: 1 capability
S: * OK [CAPABILITY IMAP4rev1 LITERAL+ ID ENABLE AUTH=DIGEST-MD5 SASL-IR] cyrus3-staging.rrz.uni-koeln.de Cyrus IMAP 3.0.7-1.el7 Fedora server ready
S: * CAPABILITY IMAP4rev1 LITERAL+ ID ENABLE ACL RIGHTS=kxten QUOTA MAILBOX-REFERRALS NAMESPACE UIDPLUS NO_ATOMIC_RENAME UNSELECT CHILDREN MULTIAPPEND BINARY CATENATE CONDSTORE ESEARCH SEARCH=FUZZY SORT SORT=MODSEQ SORT=DISPLAY SORT=UID THREAD=ORDEREDSUBJECT THREAD=REFERENCES THREAD=REFS ANNOTATEMORE ANNOTATE-EXPERIMENT-1 METADATA LIST-EXTENDED LIST-STATUS LIST-MYRIGHTS LIST-METADATA WITHIN QRESYNC SCAN XLIST XMOVE MOVE SPECIAL-USE CREATE-SPECIAL-USE DIGEST=SHA1 X-REPLICATION URLAUTH URLAUTH=BINARY AUTH=DIGEST-MD5 SASL-IR COMPRESS=DEFLATE X-QUOTA=STORAGE X-QUOTA=MESSAGE X-QUOTA=X-ANNOTATION-STORAGE X-QUOTA=X-NUM-FOLDERS IDLE
S: 1 OK Completed
C: 2 login admin "testpw"
=====> Instance[1851] authdaemon connection: admin testpw imap
S: 2 OK [CAPABILITY IMAP4rev1 LITERAL+ ID ENABLE ACL RIGHTS=kxten QUOTA MAILBOX-REFERRALS NAMESPACE UIDPLUS NO_ATOMIC_RENAME UNSELECT CHILDREN MULTIAPPEND BINARY CATENATE CONDSTORE ESEARCH SEARCH=FUZZY SORT SORT=MODSEQ SORT=DISPLAY SORT=UID THREAD=ORDEREDSUBJECT THREAD=REFERENCES THREAD=REFS ANNOTATEMORE ANNOTATE-EXPERIMENT-1 METADATA LIST-EXTENDED LIST-STATUS LIST-MYRIGHTS LIST-METADATA WITHIN QRESYNC SCAN XLIST XMOVE MOVE SPECIAL-USE CREATE-SPECIAL-USE DIGEST=SHA1 X-REPLICATION URLAUTH URLAUTH=BINARY LOGINDISABLED COMPRESS=DEFLATE X-QUOTA=STORAGE X-QUOTA=MESSAGE X-QUOTA=X-ANNOTATION-STORAGE X-QUOTA=X-NUM-FOLDERS IDLE] User logged in SESSIONID=<10041101-36550-1528279451-1-5510357125212799471>
C: 3 create user.archive
S: 3 OK Completed
C: 4 setacl user.archive admin lrswipkxtecdan
S: 4 OK Completed
C: 5 setacl user.archive archive lrswipkxtecdn
S: 5 OK Completed
C: 6 setacl user.archive anyone p
S: 6 OK Completed
C: 7 create user.archive.cassandane
S: 7 OK Completed
C: 8 setacl user.archive.cassandane admin lrswipkxtecdan
S: 8 OK Completed
C: 9 setacl user.archive.cassandane archive lrswipkxtecdn
S: 9 OK Completed
C: 10 setacl user.archive.cassandane anyone p
S: 10 OK Completed
C: 11 create user.archive.cassandane.sent
S: 11 OK Completed
C: 12 setacl user.archive.cassandane.sent admin lrswipkxtecdan
S: 12 OK Completed
C: 13 setacl user.archive.cassandane.sent archive lrswipkxtecdn
S: 13 OK Completed
C: 14 setacl user.archive.cassandane.sent anyone p
S: 14 OK Completed
A: is_open test
A: is_open test received timeout, still open
C: 15 logout
S: * BYE LOGOUT received
S: 15 OK Completed
A: Release socket, fileno=8
C: 3 setacl user.archive.cassandane.sent cassandane lrswp
S: 3 OK Completed
=====> Util::Socket[61] create_client_socket INET host=127.0.0.1 port=9101
C: 1 capability
S: * OK [CAPABILITY IMAP4rev1 LITERAL+ ID ENABLE AUTH=DIGEST-MD5 SASL-IR] cyrus3-staging.rrz.uni-koeln.de Cyrus IMAP 3.0.7-1.el7 Fedora server ready
S: * CAPABILITY IMAP4rev1 LITERAL+ ID ENABLE ACL RIGHTS=kxten QUOTA MAILBOX-REFERRALS NAMESPACE UIDPLUS NO_ATOMIC_RENAME UNSELECT CHILDREN MULTIAPPEND BINARY CATENATE CONDSTORE ESEARCH SEARCH=FUZZY SORT SORT=MODSEQ SORT=DISPLAY SORT=UID THREAD=ORDEREDSUBJECT THREAD=REFERENCES THREAD=REFS ANNOTATEMORE ANNOTATE-EXPERIMENT-1 METADATA LIST-EXTENDED LIST-STATUS LIST-MYRIGHTS LIST-METADATA WITHIN QRESYNC SCAN XLIST XMOVE MOVE SPECIAL-USE CREATE-SPECIAL-USE DIGEST=SHA1 X-REPLICATION URLAUTH URLAUTH=BINARY AUTH=DIGEST-MD5 SASL-IR COMPRESS=DEFLATE X-QUOTA=STORAGE X-QUOTA=MESSAGE X-QUOTA=X-ANNOTATION-STORAGE X-QUOTA=X-NUM-FOLDERS IDLE
S: 1 OK Completed
C: 2 login cassandane "testpw"
=====> Instance[1851] authdaemon connection: cassandane testpw imap
S: 2 OK [CAPABILITY IMAP4rev1 LITERAL+ ID ENABLE ACL RIGHTS=kxten QUOTA MAILBOX-REFERRALS NAMESPACE UIDPLUS NO_ATOMIC_RENAME UNSELECT CHILDREN MULTIAPPEND BINARY CATENATE CONDSTORE ESEARCH SEARCH=FUZZY SORT SORT=MODSEQ SORT=DISPLAY SORT=UID THREAD=ORDEREDSUBJECT THREAD=REFERENCES THREAD=REFS ANNOTATEMORE ANNOTATE-EXPERIMENT-1 METADATA LIST-EXTENDED LIST-STATUS LIST-MYRIGHTS LIST-METADATA WITHIN QRESYNC SCAN XLIST XMOVE MOVE SPECIAL-USE CREATE-SPECIAL-USE DIGEST=SHA1 X-REPLICATION URLAUTH URLAUTH=BINARY LOGINDISABLED COMPRESS=DEFLATE X-QUOTA=STORAGE X-QUOTA=MESSAGE X-QUOTA=X-ANNOTATION-STORAGE X-QUOTA=X-NUM-FOLDERS IDLE] User logged in SESSIONID=<10041101-36550-1528279451-2-7916712377052335844>
C: 4 select "user.archive.cassandane.sent"
S: * 0 EXISTS
S: * 0 RECENT
S: * FLAGS (\Answered \Flagged \Draft \Deleted \Seen)
S: * OK [PERMANENTFLAGS (\Answered \Flagged \Draft \Deleted \Seen \*)] Ok
S: * OK [UIDVALIDITY 1528279452] Ok
S: * OK [UIDNEXT 1] Ok
S: * OK [HIGHESTMODSEQ 2] Ok
S: * OK [URLMECH INTERNAL] Ok
S: * OK [ANNOTATIONS 65536] Ok
S: 4 OK [READ-WRITE] Completed
C: 5 append user.archive.cassandane.sent " 6-Jun-2018 12:04:11 +0200" {732}
S: + go ahead
C: Return-Path: <est@hotmail.com>
Received: from gateway (gateway.vmtom.com [10.0.0.1])
    by ahost (ahost.vmtom.com[10.0.0.2]); Wed, 06 Jun 2018 12:04:11 +0200
Received: from mail.hotmail.com (mail.hotmail.com [192.168.0.1])
    by gateway.vmtom.com (gateway.vmtom.com [10.0.0.1]); Wed, 06 Jun 2018 12:04:11 +0200
Mime-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Subject: Message A
From: Emily S. Taylor <est@hotmail.com>
Message-ID: <fake.1528279451.27004@hotmail.com>
Date: Wed, 06 Jun 2018 12:04:11 +0200
To: Test User <test@vmtom.com>
X-Cassandane-Unique: e45b3d89a09ec341475f9f4811d73d7f035832ba

This is a generated test email.  If received, please notify qa@cyrus.works
C:
S: * 1 EXISTS
S: * 1 RECENT
S: 5 OK [APPENDUID 1528279452 1] Completed
C: 3 select "user.archive.cassandane.sent"
S: 3 NO Mailbox does not exist
C: 4 store 1 +flags (\deleted)
S: 4 BAD Please select a mailbox first
=====> Cyrus::TestCase[672] Beginning tear_down
C: 5 logout
S: * BYE LOGOUT received
S: 5 OK Completed
A: Release socket, fileno=8
C: 6 logout
S: * BYE LOGOUT received
S: 6 OK Completed
A: Release socket, fileno=7
=====> Instance[1296] stop
=====> Instance[1258] _stop_pid: sending signal 15 to 36545
=====> Util::Wait[75] Waited 0.010086 sec for unknown condition
=====> Instance[1039] killing smtpd 36536
2018/06/06-12:04:12 Server closing!
=====> Instance[927] killing saslauthd 36539
=====> Instance[1039] killing smtpd 36536
=====> Instance[954] killing notifyd 36541
=====> Instance[1039] killing smtpd 36536
=====> Instance[927] killing saslauthd 36539
=====> Cyrus::TestCase[717] ---------- END test_delete ----------
=====> Daemon[385] checking for stray processes on ports: 9100 9101

Time:  1 wallclock secs ( 0.07 usr  0.02 sys +  0.04 cusr  0.04 csys =  0.17 CPU)

!!!FAILURES!!!
Test Results:
Run: 1, Failures: 1, Errors: 0

There was 1 failure:
1) test_delete(Cassandane::Cyrus::ACL)
 expected 'no', got 'bad' at Cassandane/Cyrus/ACL.pm line 98.
    Cassandane::Cyrus::ACL::test_delete('Cassandane::Cyrus::ACL=HASH(0x3d5c9d8)') called at /usr/share/perl5/vendor_perl/Test/Unit/TestCase.pm line 75
    [...framework calls elided...]

Annotations:
=====> Cyrus::TestCase[558] ---------- BEGIN test_delete ----------
=====> Instance[1053] start main instance for test test_delete: basedir /var/tmp/cass/10041101
=====> Instance[1036] started smtpd as 36536
2018/06/06-12:04:11 Cassandane::Net::SMTPServer (type Net::Server::PreForkSimple) starting! pid(36536)
Resolved [localhost]:9100 to [127.0.0.1]:9100, IPv4
Binding to TCP port 9100 on host 127.0.0.1 with IPv4
=====> Instance[474] Found binary ctl_cyrusdb in /usr/lib/cyrus-imapd/.
Group Not Defined.  Defaulting to EGID '12 0'
User Not Defined.  Defaulting to EUID '76'
=====> Instance[474] Found binary imapd in /usr/lib/cyrus-imapd/.
=====> Instance[924] started saslauthd for /var/tmp/cass/10041101 as 36539
=====> Instance[951] started notifyd for /var/tmp/cass/10041101 as 36541
=====> Instance[1836] opening socket /var/tmp/cass/10041101/run/mux
=====> Instance[867] _start_master: logging to /var/tmp/cass/10041101/conf/master.log
=====> Instance[474] Found binary cyrus-master in /usr/lib/cyrus-imapd/.
=====> Instance[1573] Running: "/usr/lib/cyrus-imapd/./cyrus-master" "-C" "/var/tmp/cass/10041101/conf/imapd.conf" "-l" "255" "-p" "/var/tmp/cass/10041101/run/master.pid" "-d" "-M" "/var/tmp/cass/10041101/conf/cyrus.conf" "-L" "/var/tmp/cass/10041101/conf/master.log"
=====> Instance[876] _start_master: waiting for PID file
=====> Instance[879] _start_master: PID file present and correct
=====> Instance[891] _start_master: PID waiting for services
=====> Daemon[356] is_listening: service imap is listening on 127.0.0.1:9101
=====> Util::Wait[75] Waited 0.018303 sec for 127.0.0.1:9101 to be in LISTEN state
=====> Instance[902] _start_master: all services listening
=====> Instance[978] create user cassandane
=====> Util::Socket[61] create_client_socket INET host=127.0.0.1 port=9101
C: 1 capability
S: * OK [CAPABILITY IMAP4rev1 LITERAL+ ID ENABLE AUTH=DIGEST-MD5 SASL-IR] cyrus3-staging.rrz.uni-koeln.de Cyrus IMAP 3.0.7-1.el7 Fedora server ready
S: * CAPABILITY IMAP4rev1 LITERAL+ ID ENABLE ACL RIGHTS=kxten QUOTA MAILBOX-REFERRALS NAMESPACE UIDPLUS NO_ATOMIC_RENAME UNSELECT CHILDREN MULTIAPPEND BINARY CATENATE CONDSTORE ESEARCH SEARCH=FUZZY SORT SORT=MODSEQ SORT=DISPLAY SORT=UID THREAD=ORDEREDSUBJECT THREAD=REFERENCES THREAD=REFS ANNOTATEMORE ANNOTATE-EXPERIMENT-1 METADATA LIST-EXTENDED LIST-STATUS LIST-MYRIGHTS LIST-METADATA WITHIN QRESYNC SCAN XLIST XMOVE MOVE SPECIAL-USE CREATE-SPECIAL-USE DIGEST=SHA1 X-REPLICATION URLAUTH URLAUTH=BINARY AUTH=DIGEST-MD5 SASL-IR COMPRESS=DEFLATE X-QUOTA=STORAGE X-QUOTA=MESSAGE X-QUOTA=X-ANNOTATION-STORAGE X-QUOTA=X-NUM-FOLDERS IDLE
S: 1 OK Completed
C: 2 login admin "testpw"
=====> Instance[1851] authdaemon connection: admin testpw imap
S: 2 OK [CAPABILITY IMAP4rev1 LITERAL+ ID ENABLE ACL RIGHTS=kxten QUOTA MAILBOX-REFERRALS NAMESPACE UIDPLUS NO_ATOMIC_RENAME UNSELECT CHILDREN MULTIAPPEND BINARY CATENATE CONDSTORE ESEARCH SEARCH=FUZZY SORT SORT=MODSEQ SORT=DISPLAY SORT=UID THREAD=ORDEREDSUBJECT THREAD=REFERENCES THREAD=REFS ANNOTATEMORE ANNOTATE-EXPERIMENT-1 METADATA LIST-EXTENDED LIST-STATUS LIST-MYRIGHTS LIST-METADATA WITHIN QRESYNC SCAN XLIST XMOVE MOVE SPECIAL-USE CREATE-SPECIAL-USE DIGEST=SHA1 X-REPLICATION URLAUTH URLAUTH=BINARY LOGINDISABLED COMPRESS=DEFLATE X-QUOTA=STORAGE X-QUOTA=MESSAGE X-QUOTA=X-ANNOTATION-STORAGE X-QUOTA=X-NUM-FOLDERS IDLE] User logged in SESSIONID=<10041101-36549-1528279451-1-16782311003282742344>
C: 3 create user.cassandane
S: 3 OK Completed
C: 4 setacl user.cassandane admin lrswipkxtecdan
S: 4 OK Completed
C: 5 setacl user.cassandane cassandane lrswipkxtecdn
S: 5 OK Completed
C: 6 setacl user.cassandane anyone p
S: 6 OK Completed
A: is_open test
A: is_open test received timeout, still open
C: 7 logout
S: * BYE LOGOUT received
S: 7 OK Completed
A: Release socket, fileno=7
=====> Instance[1088] started main instance for test test_delete: cyrus version 3.0.7-1.el7 Fedora
=====> Cyrus::TestCase[565] Calling test function
=====> Util::Socket[61] create_client_socket INET host=127.0.0.1 port=9101
C: 1 capability
S: * OK [CAPABILITY IMAP4rev1 LITERAL+ ID ENABLE AUTH=DIGEST-MD5 SASL-IR] cyrus3-staging.rrz.uni-koeln.de Cyrus IMAP 3.0.7-1.el7 Fedora server ready
S: * CAPABILITY IMAP4rev1 LITERAL+ ID ENABLE ACL RIGHTS=kxten QUOTA MAILBOX-REFERRALS NAMESPACE UIDPLUS NO_ATOMIC_RENAME UNSELECT CHILDREN MULTIAPPEND BINARY CATENATE CONDSTORE ESEARCH SEARCH=FUZZY SORT SORT=MODSEQ SORT=DISPLAY SORT=UID THREAD=ORDEREDSUBJECT THREAD=REFERENCES THREAD=REFS ANNOTATEMORE ANNOTATE-EXPERIMENT-1 METADATA LIST-EXTENDED LIST-STATUS LIST-MYRIGHTS LIST-METADATA WITHIN QRESYNC SCAN XLIST XMOVE MOVE SPECIAL-USE CREATE-SPECIAL-USE DIGEST=SHA1 X-REPLICATION URLAUTH URLAUTH=BINARY AUTH=DIGEST-MD5 SASL-IR COMPRESS=DEFLATE X-QUOTA=STORAGE X-QUOTA=MESSAGE X-QUOTA=X-ANNOTATION-STORAGE X-QUOTA=X-NUM-FOLDERS IDLE
S: 1 OK Completed
C: 2 login admin "testpw"
=====> Instance[1851] authdaemon connection: admin testpw imap
S: 2 OK [CAPABILITY IMAP4rev1 LITERAL+ ID ENABLE ACL RIGHTS=kxten QUOTA MAILBOX-REFERRALS NAMESPACE UIDPLUS NO_ATOMIC_RENAME UNSELECT CHILDREN MULTIAPPEND BINARY CATENATE CONDSTORE ESEARCH SEARCH=FUZZY SORT SORT=MODSEQ SORT=DISPLAY SORT=UID THREAD=ORDEREDSUBJECT THREAD=REFERENCES THREAD=REFS ANNOTATEMORE ANNOTATE-EXPERIMENT-1 METADATA LIST-EXTENDED LIST-STATUS LIST-MYRIGHTS LIST-METADATA WITHIN QRESYNC SCAN XLIST XMOVE MOVE SPECIAL-USE CREATE-SPECIAL-USE DIGEST=SHA1 X-REPLICATION URLAUTH URLAUTH=BINARY LOGINDISABLED COMPRESS=DEFLATE X-QUOTA=STORAGE X-QUOTA=MESSAGE X-QUOTA=X-ANNOTATION-STORAGE X-QUOTA=X-NUM-FOLDERS IDLE] User logged in SESSIONID=<10041101-36549-1528279451-2-13965511090526396048>
=====> Instance[978] create user archive
=====> Util::Socket[61] create_client_socket INET host=127.0.0.1 port=9101
C: 1 capability
S: * OK [CAPABILITY IMAP4rev1 LITERAL+ ID ENABLE AUTH=DIGEST-MD5 SASL-IR] cyrus3-staging.rrz.uni-koeln.de Cyrus IMAP 3.0.7-1.el7 Fedora server ready
S: * CAPABILITY IMAP4rev1 LITERAL+ ID ENABLE ACL RIGHTS=kxten QUOTA MAILBOX-REFERRALS NAMESPACE UIDPLUS NO_ATOMIC_RENAME UNSELECT CHILDREN MULTIAPPEND BINARY CATENATE CONDSTORE ESEARCH SEARCH=FUZZY SORT SORT=MODSEQ SORT=DISPLAY SORT=UID THREAD=ORDEREDSUBJECT THREAD=REFERENCES THREAD=REFS ANNOTATEMORE ANNOTATE-EXPERIMENT-1 METADATA LIST-EXTENDED LIST-STATUS LIST-MYRIGHTS LIST-METADATA WITHIN QRESYNC SCAN XLIST XMOVE MOVE SPECIAL-USE CREATE-SPECIAL-USE DIGEST=SHA1 X-REPLICATION URLAUTH URLAUTH=BINARY AUTH=DIGEST-MD5 SASL-IR COMPRESS=DEFLATE X-QUOTA=STORAGE X-QUOTA=MESSAGE X-QUOTA=X-ANNOTATION-STORAGE X-QUOTA=X-NUM-FOLDERS IDLE
S: 1 OK Completed
C: 2 login admin "testpw"
=====> Instance[1851] authdaemon connection: admin testpw imap
S: 2 OK [CAPABILITY IMAP4rev1 LITERAL+ ID ENABLE ACL RIGHTS=kxten QUOTA MAILBOX-REFERRALS NAMESPACE UIDPLUS NO_ATOMIC_RENAME UNSELECT CHILDREN MULTIAPPEND BINARY CATENATE CONDSTORE ESEARCH SEARCH=FUZZY SORT SORT=MODSEQ SORT=DISPLAY SORT=UID THREAD=ORDEREDSUBJECT THREAD=REFERENCES THREAD=REFS ANNOTATEMORE ANNOTATE-EXPERIMENT-1 METADATA LIST-EXTENDED LIST-STATUS LIST-MYRIGHTS LIST-METADATA WITHIN QRESYNC SCAN XLIST XMOVE MOVE SPECIAL-USE CREATE-SPECIAL-USE DIGEST=SHA1 X-REPLICATION URLAUTH URLAUTH=BINARY LOGINDISABLED COMPRESS=DEFLATE X-QUOTA=STORAGE X-QUOTA=MESSAGE X-QUOTA=X-ANNOTATION-STORAGE X-QUOTA=X-NUM-FOLDERS IDLE] User logged in SESSIONID=<10041101-36550-1528279451-1-5510357125212799471>
C: 3 create user.archive
S: 3 OK Completed
C: 4 setacl user.archive admin lrswipkxtecdan
S: 4 OK Completed
C: 5 setacl user.archive archive lrswipkxtecdn
S: 5 OK Completed
C: 6 setacl user.archive anyone p
S: 6 OK Completed
C: 7 create user.archive.cassandane
S: 7 OK Completed
C: 8 setacl user.archive.cassandane admin lrswipkxtecdan
S: 8 OK Completed
C: 9 setacl user.archive.cassandane archive lrswipkxtecdn
S: 9 OK Completed
C: 10 setacl user.archive.cassandane anyone p
S: 10 OK Completed
C: 11 create user.archive.cassandane.sent
S: 11 OK Completed
C: 12 setacl user.archive.cassandane.sent admin lrswipkxtecdan
S: 12 OK Completed
C: 13 setacl user.archive.cassandane.sent archive lrswipkxtecdn
S: 13 OK Completed
C: 14 setacl user.archive.cassandane.sent anyone p
S: 14 OK Completed
A: is_open test
A: is_open test received timeout, still open
C: 15 logout
S: * BYE LOGOUT received
S: 15 OK Completed
A: Release socket, fileno=8
C: 3 setacl user.archive.cassandane.sent cassandane lrswp
S: 3 OK Completed
=====> Util::Socket[61] create_client_socket INET host=127.0.0.1 port=9101
C: 1 capability
S: * OK [CAPABILITY IMAP4rev1 LITERAL+ ID ENABLE AUTH=DIGEST-MD5 SASL-IR] cyrus3-staging.rrz.uni-koeln.de Cyrus IMAP 3.0.7-1.el7 Fedora server ready
S: * CAPABILITY IMAP4rev1 LITERAL+ ID ENABLE ACL RIGHTS=kxten QUOTA MAILBOX-REFERRALS NAMESPACE UIDPLUS NO_ATOMIC_RENAME UNSELECT CHILDREN MULTIAPPEND BINARY CATENATE CONDSTORE ESEARCH SEARCH=FUZZY SORT SORT=MODSEQ SORT=DISPLAY SORT=UID THREAD=ORDEREDSUBJECT THREAD=REFERENCES THREAD=REFS ANNOTATEMORE ANNOTATE-EXPERIMENT-1 METADATA LIST-EXTENDED LIST-STATUS LIST-MYRIGHTS LIST-METADATA WITHIN QRESYNC SCAN XLIST XMOVE MOVE SPECIAL-USE CREATE-SPECIAL-USE DIGEST=SHA1 X-REPLICATION URLAUTH URLAUTH=BINARY AUTH=DIGEST-MD5 SASL-IR COMPRESS=DEFLATE X-QUOTA=STORAGE X-QUOTA=MESSAGE X-QUOTA=X-ANNOTATION-STORAGE X-QUOTA=X-NUM-FOLDERS IDLE
S: 1 OK Completed
C: 2 login cassandane "testpw"
=====> Instance[1851] authdaemon connection: cassandane testpw imap
S: 2 OK [CAPABILITY IMAP4rev1 LITERAL+ ID ENABLE ACL RIGHTS=kxten QUOTA MAILBOX-REFERRALS NAMESPACE UIDPLUS NO_ATOMIC_RENAME UNSELECT CHILDREN MULTIAPPEND BINARY CATENATE CONDSTORE ESEARCH SEARCH=FUZZY SORT SORT=MODSEQ SORT=DISPLAY SORT=UID THREAD=ORDEREDSUBJECT THREAD=REFERENCES THREAD=REFS ANNOTATEMORE ANNOTATE-EXPERIMENT-1 METADATA LIST-EXTENDED LIST-STATUS LIST-MYRIGHTS LIST-METADATA WITHIN QRESYNC SCAN XLIST XMOVE MOVE SPECIAL-USE CREATE-SPECIAL-USE DIGEST=SHA1 X-REPLICATION URLAUTH URLAUTH=BINARY LOGINDISABLED COMPRESS=DEFLATE X-QUOTA=STORAGE X-QUOTA=MESSAGE X-QUOTA=X-ANNOTATION-STORAGE X-QUOTA=X-NUM-FOLDERS IDLE] User logged in SESSIONID=<10041101-36550-1528279451-2-7916712377052335844>
C: 4 select "user.archive.cassandane.sent"
S: * 0 EXISTS
S: * 0 RECENT
S: * FLAGS (\Answered \Flagged \Draft \Deleted \Seen)
S: * OK [PERMANENTFLAGS (\Answered \Flagged \Draft \Deleted \Seen \*)] Ok
S: * OK [UIDVALIDITY 1528279452] Ok
S: * OK [UIDNEXT 1] Ok
S: * OK [HIGHESTMODSEQ 2] Ok
S: * OK [URLMECH INTERNAL] Ok
S: * OK [ANNOTATIONS 65536] Ok
S: 4 OK [READ-WRITE] Completed
C: 5 append user.archive.cassandane.sent " 6-Jun-2018 12:04:11 +0200" {732}
S: + go ahead
C: Return-Path: <est@hotmail.com>
Received: from gateway (gateway.vmtom.com [10.0.0.1])
    by ahost (ahost.vmtom.com[10.0.0.2]); Wed, 06 Jun 2018 12:04:11 +0200
Received: from mail.hotmail.com (mail.hotmail.com [192.168.0.1])
    by gateway.vmtom.com (gateway.vmtom.com [10.0.0.1]); Wed, 06 Jun 2018 12:04:11 +0200
Mime-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Subject: Message A
From: Emily S. Taylor <est@hotmail.com>
Message-ID: <fake.1528279451.27004@hotmail.com>
Date: Wed, 06 Jun 2018 12:04:11 +0200
To: Test User <test@vmtom.com>
X-Cassandane-Unique: e45b3d89a09ec341475f9f4811d73d7f035832ba

This is a generated test email.  If received, please notify qa@cyrus.works
C:
S: * 1 EXISTS
S: * 1 RECENT
S: 5 OK [APPENDUID 1528279452 1] Completed
C: 3 select "user.archive.cassandane.sent"
S: 3 NO Mailbox does not exist
C: 4 store 1 +flags (\deleted)
S: 4 BAD Please select a mailbox first
=====> Cyrus::TestCase[672] Beginning tear_down
C: 5 logout
S: * BYE LOGOUT received
S: 5 OK Completed
A: Release socket, fileno=8
C: 6 logout
S: * BYE LOGOUT received
S: 6 OK Completed
A: Release socket, fileno=7
=====> Instance[1296] stop
=====> Instance[1258] _stop_pid: sending signal 15 to 36545
=====> Util::Wait[75] Waited 0.010086 sec for unknown condition
=====> Instance[1039] killing smtpd 36536
2018/06/06-12:04:12 Server closing!
=====> Instance[927] killing saslauthd 36539
=====> Instance[1039] killing smtpd 36536
=====> Instance[954] killing notifyd 36541
=====> Instance[1039] killing smtpd 36536
=====> Instance[927] killing saslauthd 36539
=====> Cyrus::TestCase[717] ---------- END test_delete ----------
=====> Daemon[385] checking for stray processes on ports: 9100 9101

Test was not successful.
hagedose commented 6 years ago

How do I tell Cassandane to enable xapian for the tests?

$ ./testrunner.pl -fpretty -vvv SearchFuzzy
=====> Cassini[65] Reading /root/cassandane/cassandane.ini
=====> Unit::TestCase[143] search.xapian not enabled, test_cjk_words will be skipped
=====> Unit::TestCase[143] search.xapian not enabled, test_copy_messages will be skipped
=====> Unit::TestCase[143] search.xapian not enabled, test_mix_fuzzy_and_nonfuzzy will be skipped
=====> Unit::TestCase[143] search.xapian not enabled, test_noindex_multipartheaders will be skipped
=====> Unit::TestCase[143] search.xapian not enabled, test_normalize_snippets will be skipped
=====> Unit::TestCase[143] search.xapian not enabled, test_search_exactmatch will be skipped
=====> Unit::TestCase[143] search.xapian not enabled, test_search_subjectsnippet will be skipped
=====> Unit::TestCase[143] search.xapian not enabled, test_skipdiacrit will be skipped
=====> Unit::TestCase[143] search.xapian not enabled, test_snippet_wildcard will be skipped
=====> Unit::TestCase[143] search.xapian not enabled, test_snippets_escapehtml will be skipped
=====> Unit::TestCase[143] search.xapian not enabled, test_snippets_termcover will be skipped
=====> Unit::TestCase[143] search.xapian not enabled, test_stem_any will be skipped
=====> Unit::TestCase[143] search.xapian not enabled, test_stem_verbs will be skipped
=====> Unit::TestCase[143] search.xapian not enabled, test_stopwords will be skipped
=====> Unit::TestCase[143] search.xapian not enabled, test_subject_isutf8 will be skipped
=====> Unit::TestCase[143] search.xapian not enabled, test_weird_crasher will be skipped
=====> Unit::TestCase[143] search.xapian not enabled, test_xapianv2 will be skipped
=====> Unit::TestCase[143] search.xapian not enabled, test_xattachmentname will be skipped

Time:  1 wallclock secs ( 0.04 usr +  0.01 sys =  0.05 CPU)

OK (0 tests)
jasontibbitts commented 6 years ago

I just wanted to add that Red Hat's cyrus-imapd is 2.4.17; when I brought Fedora up to 3.0 I relocated things out of /usr/lib/cyrus-imapd (to either /usr/bin or /usr/libexec/cyrus-imapd as appropriate) because the configure options which the old packages were using to specify the rather odd directory layout no longer exist. But this did involve renaming some commands (like quota) which is probably why the old packages didn't just put the human-executable commands in /usr/bin in the first place. One thing that isn't renamed, however, is master. I never understood why they renamed it in the first place. I'd considered putting in a symlink just in case, but decided it wasn't worth it. So that's why the Fedora packages don't run into this problem.

elliefm commented 6 years ago

How do I tell Cassandane to enable xapian for the tests?

Cassandane thinks your Cyrus install was compiled without Xapian. It determines this by looking at the output from the cyr_buildinfo. If cyr_buildinfo has wound up installed to a weird place where Cassandane couldn't find it, that might also explain why it thinks you have no Xapian support.

Can you run cyr_buildinfo by hand and paste the output here?

I'm not sure what's going on with that ACL.delete test, but I would probably ignore the specific details of it until we know Cassandane itself is working correctly. If you do a full run of just ./testrunner.pl (without verbosity or reports), what sort of OK/FAILED/ERROR numbers do you see now?

elliefm commented 6 years ago

Also, I have thought some more about the perl module dependencies and I think we probably need to leave them as they are. Our automated testing stuff relies on make failure to determine whether there's an infrastructure problem vs a bunch of legitimate test failures, and if we make the modules able to compile successfully when dependencies aren't present/current, it won't be able to detect these cases properly anymore.

All of the perl modules we depend on are in CPAN, and with the exception of the DAV and JMAP ones, I believe most are usually packaged by distro's too. So it might just be easiest to install the modules you don't have? There's a list of (debian) package names here: https://www.cyrusimap.org/dev/imap/developer/developer-testing.html

elliefm commented 6 years ago

I just remembered your cyr_buildinfo output is in the first post, hah. Okay, I bet Cassandane can't find it for some reason, then (and therefore every value is logically "false"). But I thought it logged a warning when it couldn't find it...

elliefm commented 6 years ago

Oh I see, it's now hardcoded to look in sbin for it (since I ripped it out of the Instance module, it can no longer just use _find_bin()).

I've just pushed a commit which will report when it can't find cyr_buildinfo, can you compare what it expects with where cyr_buildinfo actually lives please? Thanks

hagedose commented 6 years ago

Thanks! With that commit testrunner complains as expected:

=====> BuildInfo[73] Cannot execute /usr/lib/cyrus-imapd/sbin/cyr_buildinfo: don't know what features Cyrus supports I created a symlink to get around that. I will look into molding our RPM more into the way @jasontibbitts does it, so those path issues will probably be moot.

For my purposes I find it easier to move aside the tests that cause problems than to install the required Perl modules manually.

I'm running the full testrunner now and will report the results.

hagedose commented 6 years ago

Here is the output:

$ ./testrunner.pl
Cyrus::ACL.delete                                                       [FAILED]
Cyrus::ACL.many_users                                                   [FAILED]
Cyrus::ACL.move                                                         [FAILED]
Cyrus::ACL.reconstruct                                                  [  OK  ]
Cyrus::ACL.setacl_addacl                                                [FAILED]
Cyrus::ACL.setacl_addacl_exists                                         [FAILED]
Cyrus::ACL.setacl_badacl                                                [FAILED]
Cyrus::ACL.setacl_badrights                                             [FAILED]
Cyrus::ACL.setacl_emptyid                                               [  OK  ]
Cyrus::ACL.setacl_rmacl                                                 [FAILED]
Cyrus::ACL.setacl_rmacl_unexists                                        [FAILED]
Cyrus::Admin.imap_admins                                                [FAILED]
Cyrus::Annotator.add_annot_deliver                                      [ERROR ]
Cyrus::Annotator.add_annot_deliver_tomailbox                            [ERROR ]
Cyrus::Annotator.fetch_after_annotate                                   [ERROR ]
Cyrus::Annotator.reconstruct_after_delivery                             [ERROR ]
Cyrus::Annotator.set_system_flag_deliver                                [ERROR ]
Cyrus::Annotator.set_user_flag_deliver                                  [ERROR ]
Cyrus::Archive.archive_messages                                         [  OK  ]
Cyrus::Archive.archivenow_messages                                      [  OK  ]
Cyrus::Backups.aaasetup                                                 [  OK  ]
Cyrus::Backups.basic                                                    [ERROR ]
Cyrus::Backups.messages                                                 [ERROR ]
Cyrus::Bug3072.copy_longset                                             [  OK  ]
Cyrus::Bug3463.thread_crash                                             [FAILED]
Cyrus::Bug3470.list_2011                                                [  OK  ]
Cyrus::Bug3470.list_percent                                             [  OK  ]
Cyrus::Bug3470.lsub                                                     [  OK  ]
Cyrus::Bug3649.delete_subuser                                           [  OK  ]
Cyrus::Bug3903.create_at_top_level                                      [FAILED]
Cyrus::Bug3903.create_under_shared                                      [FAILED]
Cyrus::Bug3903.create_under_user                                        [FAILED]
Cyrus::Bug3903.create_under_wrong_user                                  [FAILED]
Cyrus::ClamAV.aaasetup                                                  [  OK  ]
Cyrus::ClamAV.remove_infected                                           [ERROR ]
Cyrus::Conversations.append                                             [  OK  ]
Cyrus::Conversations.append_reply                                       [  OK  ]
Cyrus::Conversations.xconvfetch                                         [  OK  ]
Cyrus::CyrusDB.alternate_quotadb_path                                   [  OK  ]
Cyrus::Delete.admin_inbox_del                                           [FAILED]
Cyrus::Delete.admin_inbox_imm                                           [FAILED]
Cyrus::Delete.bz3781                                                    [FAILED]
Cyrus::Delete.cyr_expire_delete                                         [FAILED]
Cyrus::Delete.repeated_delete                                           [FAILED]
Cyrus::Delete.self_inbox_del                                            [FAILED]
Cyrus::Delete.self_inbox_imm                                            [FAILED]
Cyrus::Delivery.duplicate_suppression_off                               [ERROR ]
Cyrus::Delivery.duplicate_suppression_on                                [ERROR ]
Cyrus::Delivery.duplicate_suppression_on_badmbox                        [ERROR ]
Cyrus::Delivery.duplicate_suppression_on_delete                         [ERROR ]
Cyrus::Delivery.plus_address_bothupper                                  [ERROR ]
Cyrus::Delivery.plus_address_case                                       [ERROR ]
Cyrus::Delivery.plus_address_case_bogusdomain                           [ERROR ]
Cyrus::Delivery.plus_address_case_defdomain                             [ERROR ]
Cyrus::Delivery.plus_address_exact                                      [ERROR ]
Cyrus::Delivery.plus_address_partial                                    [ERROR ]
Cyrus::Delivery.plus_address_partial_bothupper                          [ERROR ]
Cyrus::Delivery.plus_address_partial_case                               [ERROR ]
Cyrus::Delivery.plus_address_partial_virtdom                            [ERROR ]
Cyrus::Delivery.plus_address_underscore                                 [ERROR ]
Cyrus::Deny.basic                                                       [  OK  ]
Cyrus::Deny.connected                                                   [  OK  ]
Cyrus::Expunge.status_after_expunge                                     [  OK  ]
Cyrus::Fetch.duplicate_headers                                          [  OK  ]
Cyrus::Fetch.fetch_flags_before_exists                                  [  OK  ]
Cyrus::Fetch.fetch_header                                               [  OK  ]
Cyrus::Fetch.fetch_section                                              [  OK  ]
Cyrus::Fetch.fetch_section_multipart                                    [  OK  ]
Cyrus::Fetch.fetch_section_nomultipart                                  [  OK  ]
Cyrus::Fetch.fetch_section_rfc822                                       [  OK  ]
Cyrus::Fetch.fetch_section_rfc822digest                                 [  OK  ]
Cyrus::Fetch.fetch_urlfetch                                             [  OK  ]
Cyrus::Fetch.tell_exists_count_earlier                                  [  OK  ]
Cyrus::Flags.deleted                                                    [  OK  ]
Cyrus::Flags.expunge_removeflag                                         [  OK  ]
Cyrus::Flags.flagged                                                    [  OK  ]
Cyrus::Flags.max_userflags                                              [  OK  ]
Cyrus::Flags.modseq                                                     [  OK  ]
Cyrus::Flags.multi_flags                                                [  OK  ]
Cyrus::Flags.search_allflags                                            [  OK  ]
Cyrus::Flags.seen                                                       [  OK  ]
Cyrus::Flags.seen_otheruser                                             [  OK  ]
Cyrus::Flags.setseen                                                    [  OK  ]
Cyrus::Flags.setseen_after_store                                        [  OK  ]
Cyrus::Flags.unchangedsince                                             [  OK  ]
Cyrus::Flags.unchangedsince_multi                                       [  OK  ]
Cyrus::Flags.userflag                                                   [  OK  ]
Cyrus::ID.cmd_id                                                        [  OK  ]
Cyrus::Idle.basic_abortedidled                                          [ERROR ]
Cyrus::Idle.basic_idled                                                 [ERROR ]
Cyrus::Idle.basic_noidled                                               [ERROR ]
Cyrus::Idle.delivery_abortedidled                                       [ERROR ]
Cyrus::Idle.delivery_idled                                              [ERROR ]
Cyrus::Idle.delivery_noidled                                            [ERROR ]
Cyrus::Idle.disabled                                                    [ERROR ]
Cyrus::Idle.idled_default_timeout                                       [ERROR ]
Cyrus::Idle.shutdownfile_abortedidled                                   [ERROR ]
Cyrus::Idle.shutdownfile_idled                                          [ERROR ]
Cyrus::Idle.shutdownfile_noidled                                        [ERROR ]
Cyrus::Idle.sigterm                                                     [ERROR ]
Cyrus::Idle.sigterm_many                                                [ERROR ]
Cyrus::ImapTest.warning_imaptest_is_not_installed                       [  OK  ]
Cyrus::Info.info_lint                                                   [  OK  ]
Cyrus::Info.info_lint_junk                                              [  OK  ]
Cyrus::List.crossdomains                                                [FAILED]
Cyrus::List.crossdomains_alt                                            [  OK  ]
Cyrus::List.delete_nounsubscribe                                        [  OK  ]
Cyrus::List.delete_unsubscribe                                          [  OK  ]
Cyrus::List.dotuser_gh1875_novirt                                       [  OK  ]
Cyrus::List.dotuser_gh1875_novirt_altns                                 [  OK  ]
Cyrus::List.dotuser_gh1875_virt                                         [  OK  ]
Cyrus::List.dotuser_gh1875_virt_altns                                   [  OK  ]
Cyrus::List.empty_mailbox                                               [  OK  ]
Cyrus::List.folder_at_novirtdomains                                     [  OK  ]
Cyrus::List.inbox_altnamespace                                          [  OK  ]
Cyrus::List.list_return_subscribed                                      [  OK  ]
Cyrus::List.list_special_use_return_subscribed                          [  OK  ]
Cyrus::List.list_subscribed_return_children                             [  OK  ]
Cyrus::List.list_subscribed_return_children_noaltns                     [  OK  ]
Cyrus::List.otherusers_pattern                                          [FAILED]
Cyrus::List.otherusers_pattern_unixhs                                   [FAILED]
Cyrus::List.outlook_compatible_xlist_empty_mailbox                      [  OK  ]
Cyrus::List.percent                                                     [FAILED]
Cyrus::List.percent_altns                                               [  OK  ]
Cyrus::List.recursivematch                                              [  OK  ]
Cyrus::List.recursivematch_percent                                      [  OK  ]
Cyrus::List.rfc5258_ex01_list_all                                       [  OK  ]
Cyrus::List.rfc5258_ex02_list_subscribed                                [  OK  ]
Cyrus::List.rfc5258_ex03_children                                       [  OK  ]
Cyrus::List.rfc5258_ex07_multiple_mailbox_patterns                      [  OK  ]
Cyrus::List.rfc5258_ex08_haschildren_childinfo                          [  OK  ]
Cyrus::List.rfc6154_ex02a_list_return_special_use                       [  OK  ]
Cyrus::List.rfc6154_ex02b_list_special_use                              [  OK  ]
Cyrus::List.virtdomains_return_subscribed_altns                         [  OK  ]
Cyrus::List.virtdomains_return_subscribed_noaltns                       [FAILED]
Cyrus::Lsub.lsub_delete                                                 [  OK  ]
Cyrus::Lsub.lsub_extrachild                                             [FAILED]
Cyrus::Lsub.lsub_toplevel                                               [FAILED]
Cyrus::Master.exit_after_connect                                        [  OK  ]
Cyrus::Master.maxforkrate                                               [  OK  ]
Cyrus::Master.multi_connections                                         [  OK  ]
Cyrus::Master.multi_prefork                                             [  OK  ]
Cyrus::Master.multi_services                                            [  OK  ]
Cyrus::Master.prefork                                                   [  OK  ]
Cyrus::Master.reap_rate                                                 [  OK  ]
Cyrus::Master.service                                                   [  OK  ]
Cyrus::Master.service_associate                                         [  OK  ]
Cyrus::Master.service_bad_name                                          [  OK  ]
Cyrus::Master.service_dup_port                                          [  OK  ]
Cyrus::Master.service_exit_during_start                                 [  OK  ]
Cyrus::Master.service_ipv6                                              [  OK  ]
Cyrus::Master.service_noexe                                             [  OK  ]
Cyrus::Master.service_nohost                                            [  OK  ]
Cyrus::Master.service_unix                                              [ERROR ]
Cyrus::Master.sighup_recycling                                          [  OK  ]
Cyrus::Master.sighup_reloading                                          [  OK  ]
Cyrus::Master.sighup_reloading_listen                                   [  OK  ]
Cyrus::Master.sighup_reloading_proto                                    [  OK  ]
Cyrus::Master.startup                                                   [  OK  ]
Cyrus::Master.startup_exits                                             [  OK  ]
Cyrus::Metadata.capabilities                                            [  OK  ]
Cyrus::Metadata.copy_messages                                           [  OK  ]
Cyrus::Metadata.createspecialuse                                        [ERROR ]
Cyrus::Metadata.cvt_cyrusdb                                             [  OK  ]
Cyrus::Metadata.embedded_nuls                                           [  OK  ]
Cyrus::Metadata.expunge_messages                                        [  OK  ]
Cyrus::Metadata.folder_delete_mboxa_dmdel                               [  OK  ]
Cyrus::Metadata.folder_delete_mboxa_dmimm                               [  OK  ]
Cyrus::Metadata.folder_delete_mboxm_dmdel                               [  OK  ]
Cyrus::Metadata.folder_delete_mboxm_dmimm                               [  OK  ]
Cyrus::Metadata.folder_delete_msg_dmdel                                 [  OK  ]
Cyrus::Metadata.folder_delete_msg_dmimm                                 [  OK  ]
Cyrus::Metadata.getmetadata_depth                                       [  OK  ]
Cyrus::Metadata.getmetadata_maxsize                                     [  OK  ]
Cyrus::Metadata.getmetadata_multiple_folders                            [  OK  ]
Cyrus::Metadata.mbox_replication_new_mas                                [ERROR ]
Cyrus::Metadata.modseq                                                  [  OK  ]
Cyrus::Metadata.motd                                                    [  OK  ]
Cyrus::Metadata.msg_replication_exp_bot                                 [ERROR ]
Cyrus::Metadata.msg_replication_exp_mas                                 [ERROR ]
Cyrus::Metadata.msg_replication_exp_rep                                 [ERROR ]
Cyrus::Metadata.msg_replication_mod_bot_msh                             [ERROR ]
Cyrus::Metadata.msg_replication_mod_bot_msl                             [ERROR ]
Cyrus::Metadata.msg_replication_mod_mas                                 [ERROR ]
Cyrus::Metadata.msg_replication_mod_rep                                 [ERROR ]
Cyrus::Metadata.msg_replication_new_bot_mse_guh                         [ERROR ]
Cyrus::Metadata.msg_replication_new_bot_mse_gul                         [ERROR ]
Cyrus::Metadata.msg_replication_new_mas                                 [ERROR ]
Cyrus::Metadata.msg_replication_new_mas_partial_wwd                     [ERROR ]
Cyrus::Metadata.msg_replication_new_mas_partial_wwsw                    [ERROR ]
Cyrus::Metadata.msg_replication_new_rep                                 [ERROR ]
Cyrus::Metadata.msg_sort_order                                          [  OK  ]
Cyrus::Metadata.msg_sort_search                                         [  OK  ]
Cyrus::Metadata.nonexistant_mailbox                                     [  OK  ]
Cyrus::Metadata.permessage_getset                                       [  OK  ]
Cyrus::Metadata.permessage_unknown                                      [  OK  ]
Cyrus::Metadata.permessage_unknown_allowed                              [  OK  ]
Cyrus::Metadata.private                                                 [  OK  ]
Cyrus::Metadata.set_specialuse_twice                                    [FAILED]
Cyrus::Metadata.shared                                                  [  OK  ]
Cyrus::Metadata.size                                                    [  OK  ]
Cyrus::Metadata.specialuse                                              [  OK  ]
Cyrus::Metadata.unchangedsince                                          [  OK  ]
Cyrus::Metadata.uniqueid                                                [  OK  ]
Cyrus::Move.move_new_user                                               [FAILED]
Cyrus::Murder.aaasetup                                                  [ERROR ]
Cyrus::Murder.frontend_commands                                         [ERROR ]
Cyrus::Murder.list_specialuse                                           [ERROR ]
Cyrus::Murder.move_to_backend_nonexistent                               [ERROR ]
Cyrus::Murder.move_to_nonexistent                                       [ERROR ]
Cyrus::Murder.rename_with_location                                      [ERROR ]
Cyrus::Murder.xlist                                                     [ERROR ]
Cyrus::Pop3.subfolder_login                                             [ERROR ]
Cyrus::Pop3.top_args                                                    [  OK  ]
Cyrus::Quota.bug3735                                                    [  OK  ]
Cyrus::Quota.bz3529                                                     [  OK  ]
Cyrus::Quota.exceeding_message                                          [  OK  ]
Cyrus::Quota.exceeding_storage                                          [  OK  ]
Cyrus::Quota.move_near_limit                                            [  OK  ]
Cyrus::Quota.num_folders_delete_delayed                                 [  OK  ]
Cyrus::Quota.num_folders_delete_immediate                               [  OK  ]
Cyrus::Quota.num_folders_rename                                         [  OK  ]
Cyrus::Quota.overquota                                                  [  OK  ]
Cyrus::Quota.quota_f                                                    [  OK  ]
Cyrus::Quota.quota_f_nested_qr                                          [FAILED]
Cyrus::Quota.quota_f_prefix                                             [  OK  ]
Cyrus::Quota.quota_f_unixhs                                             [  OK  ]
Cyrus::Quota.quota_f_vs_update                                          [ERROR ]
Cyrus::Quota.quotarename                                                [  OK  ]
Cyrus::Quota.reconstruct                                                [  OK  ]
Cyrus::Quota.reconstruct_orphans                                        [  OK  ]
Cyrus::Quota.rename_withannot                                           [  OK  ]
Cyrus::Quota.replication_annotstorage                                   [ERROR ]
Cyrus::Quota.replication_message                                        [ERROR ]
Cyrus::Quota.replication_storage                                        [ERROR ]
Cyrus::Quota.using_annotstorage_mbox                                    [ERROR ]
Cyrus::Quota.using_annotstorage_mbox_late                               [  OK  ]
Cyrus::Quota.using_annotstorage_msg                                     [  OK  ]
Cyrus::Quota.using_annotstorage_msg_copy_dedel                          [  OK  ]
Cyrus::Quota.using_annotstorage_msg_copy_deimm                          [  OK  ]
Cyrus::Quota.using_annotstorage_msg_copy_exdel                          [  OK  ]
Cyrus::Quota.using_annotstorage_msg_copy_eximm                          [  OK  ]
Cyrus::Quota.using_annotstorage_msg_late                                [  OK  ]
Cyrus::Quota.using_message                                              [  OK  ]
Cyrus::Quota.using_message_late                                         [  OK  ]
Cyrus::Quota.using_storage                                              [  OK  ]
Cyrus::Quota.using_storage_late                                         [  OK  ]
Cyrus::Reconstruct.reconstruct_removedfile                              [  OK  ]
Cyrus::Reconstruct.reconstruct_truncated                                [  OK  ]
Cyrus::Reconstruct.reconstruct_zerouid                                  [  OK  ]
Cyrus::Rename.rename_asuser                                             [  OK  ]
Cyrus::Rename.rename_bigconversation                                    [  OK  ]
Cyrus::Rename.rename_conversations                                      [  OK  ]
Cyrus::Rename.rename_deepuser                                           [  OK  ]
Cyrus::Rename.rename_inbox                                              [  OK  ]
Cyrus::Rename.rename_midsizeconversation                                [  OK  ]
Cyrus::Rename.rename_paths                                              [ERROR ]
Cyrus::Rename.rename_subfolder                                          [  OK  ]
Cyrus::Rename.rename_user                                               [  OK  ]
Cyrus::Rename.rename_user_bigconversation                               [  OK  ]
Cyrus::Rename.rename_user_midsizeconversation                           [FAILED]
Cyrus::Rename.rename_withsub                                            [  OK  ]
Cyrus::Rename.rename_withsub_dom                                        [  OK  ]
Cyrus::Replication.alternate_globalannots                               [ERROR ]
Cyrus::Replication.append                                               [ERROR ]
Cyrus::Replication.replication_mailbox_new_enough                       [ERROR ]
Cyrus::Replication.replication_mailbox_too_old                          [ERROR ]
Cyrus::Replication.replication_repair_zero_msgs                         [ERROR ]
Cyrus::Replication.replication_with_modified_seen_flag                  [ERROR ]
Cyrus::Replication.sieve_replication                                    [ERROR ]
Cyrus::Replication.sieve_replication_delete_unactivate                  [ERROR ]
Cyrus::Replication.sieve_replication_different                          [ERROR ]
Cyrus::Replication.sieve_replication_exists                             [ERROR ]
Cyrus::Replication.sieve_replication_stale                              [ERROR ]
Cyrus::Replication.splitbrain                                           [ERROR ]
Cyrus::Replication.splitbrain_bothexpunge                               [ERROR ]
Cyrus::Replication.splitbrain_masterexpunge                             [ERROR ]
Cyrus::Replication.splitbrain_replicaexpunge                            [ERROR ]
Cyrus::Search.from                                                      [  OK  ]
Cyrus::SearchFuzzy.cjk_words                                            [FAILED]
Cyrus::SearchFuzzy.copy_messages                                        [  OK  ]
Cyrus::SearchFuzzy.mix_fuzzy_and_nonfuzzy                               [  OK  ]
Cyrus::SearchFuzzy.noindex_multipartheaders                             [  OK  ]
Cyrus::SearchFuzzy.normalize_snippets                                   [FAILED]
Cyrus::SearchFuzzy.search_exactmatch                                    [  OK  ]
Cyrus::SearchFuzzy.search_subjectsnippet                                [FAILED]
Cyrus::SearchFuzzy.skipdiacrit                                          [  OK  ]
Cyrus::SearchFuzzy.snippet_wildcard                                     [FAILED]
Cyrus::SearchFuzzy.snippets_escapehtml                                  [FAILED]
Cyrus::SearchFuzzy.snippets_termcover                                   [FAILED]
Cyrus::SearchFuzzy.stem_any                                             [  OK  ]
Cyrus::SearchFuzzy.stem_verbs                                           [FAILED]
Cyrus::SearchFuzzy.stopwords                                            [  OK  ]
Cyrus::SearchFuzzy.subject_isutf8                                       [  OK  ]
Cyrus::SearchFuzzy.weird_crasher                                        [  OK  ]
Cyrus::SearchFuzzy.xapianv2                                             [  OK  ]
Cyrus::SearchFuzzy.xattachmentname                                      [  OK  ]
Cyrus::Sieve.badscript_sievec                                           [ERROR ]
Cyrus::Sieve.badscript_timsieved                                        [ERROR ]
Cyrus::Sieve.deliver                                                    [ERROR ]
Cyrus::Sieve.deliver_compile                                            [ERROR ]
Cyrus::Sieve.deliver_fileinto_dot                                       [ERROR ]
Cyrus::Sieve.deliver_specialuse                                         [ERROR ]
Cyrus::Sieve.dup_keep_fileinto                                          [ERROR ]
Cyrus::Sieve.dup_keep_keep                                              [ERROR ]
Cyrus::Sieve.nested_tests_and_discard                                   [ERROR ]
Cyrus::Sieve.rfc5490_create                                             [ERROR ]
Cyrus::Sieve.rfc5490_mailboxexists                                      [ERROR ]
Cyrus::Sieve.rfc5490_mailboxexists_variables                            [ERROR ]
Cyrus::Sieve.rfc5490_metadata                                           [ERROR ]
Cyrus::Sieve.rfc5490_metadata_matches                                   [ERROR ]
Cyrus::Sieve.rfc5490_metadataexists                                     [ERROR ]
Cyrus::Sieve.rfc5490_servermetadata                                     [ERROR ]
Cyrus::Sieve.rfc5490_servermetadataexists                               [ERROR ]
Cyrus::Sieve.sieve_setflag                                              [ERROR ]
Cyrus::Sieve.vacation_with_following_rules                              [ERROR ]
Cyrus::Sieve.variables_basic                                            [ERROR ]
Cyrus::Sieve.variables_regex                                            [ERROR ]
Cyrus::Simple.append                                                    [  OK  ]
Cyrus::Simple.select                                                    [  OK  ]
Cyrus::Specialuse.annot                                                 [  OK  ]
Cyrus::Specialuse.annot_dupe                                            [FAILED]
Cyrus::Specialuse.create_dupe                                           [FAILED]
Cyrus::Specialuse.create_multiple                                       [FAILED]
Cyrus::Specialuse.delete_delay                                          [FAILED]
Cyrus::Specialuse.delete_imm                                            [FAILED]
Cyrus::Specialuse.delete_removed_delay                                  [FAILED]
Cyrus::Specialuse.delete_removed_imm                                    [FAILED]
Cyrus::Specialuse.rename_toplevel                                       [FAILED]
Cyrus::Specialuse.rename_tosub                                          [FAILED]
Cyrus::T116.list_inbox                                                  [  OK  ]
Cyrus::Thread.references_chain                                          [  OK  ]
Cyrus::Thread.references_loop                                           [  OK  ]
Cyrus::Thread.references_missing_parent                                 [  OK  ]
Cyrus::Thread.references_star                                           [  OK  ]
Cyrus::Thread.subjects                                                  [  OK  ]
Cyrus::Thread.unrelated                                                 [  OK  ]
Cyrus::Userid.dots_unix                                                 [  OK  ]
Test::Address.default_ctor                                              [  OK  ]
Test::Address.full_ctor                                                 [  OK  ]
Test::Cassini.basic                                                     [  OK  ]
Test::Cassini.boolval                                                   [  OK  ]
Test::Cassini.override                                                  [  OK  ]
Test::Clone.array                                                       [  OK  ]
Test::Clone.complex                                                     [  OK  ]
Test::Clone.hash                                                        [  OK  ]
Test::Clone.string                                                      [  OK  ]
Test::Clone.undef                                                       [  OK  ]
Test::Config.clone                                                      [  OK  ]
Test::Config.default                                                    [  OK  ]
Test::Config.generate                                                   [  OK  ]
Test::Config.variables                                                  [  OK  ]
Test::Core.core_files_10MB                                              [  OK  ]
Test::Core.core_files_1KB                                               [  OK  ]
Test::Core.core_files_1MB                                               [  OK  ]
Test::Core.core_files_50MB                                              [  OK  ]
Test::Core.core_files_5MB                                               [  OK  ]
Test::DateTime.basic                                                    [  OK  ]
Test::Mboxname.broken_ctor                                              [  OK  ]
Test::Mboxname.default_ctor                                             [  OK  ]
Test::Mboxname.external_ctor                                            [  OK  ]
Test::Mboxname.from_external                                            [  OK  ]
Test::Mboxname.from_internal                                            [  OK  ]
Test::Mboxname.from_username                                            [  OK  ]
Test::Mboxname.internal_ctor                                            [  OK  ]
Test::Mboxname.make_child                                               [  OK  ]
Test::Mboxname.make_parent                                              [  OK  ]
Test::Mboxname.parts_ctor                                               [  OK  ]
Test::Mboxname.username_ctor                                            [  OK  ]
Test::Message.accessors                                                 [  OK  ]
Test::Message.add_body                                                  [  OK  ]
Test::Message.add_empty                                                 [  OK  ]
Test::Message.address_list_stringification                              [  OK  ]
Test::Message.address_stringification                                   [  OK  ]
Test::Message.annotations                                               [  OK  ]
Test::Message.annotations_from_fetch                                    [  OK  ]
Test::Message.attributes                                                [  OK  ]
Test::Message.attributes2                                               [  OK  ]
Test::Message.attributes_from_fetch                                     [  OK  ]
Test::Message.base_subject                                              [  OK  ]
Test::Message.clone                                                     [  OK  ]
Test::Message.deleting_headers                                          [  OK  ]
Test::Message.empty                                                     [  OK  ]
Test::Message.header_case                                               [  OK  ]
Test::Message.header_normalisation                                      [  OK  ]
Test::Message.multiple_headers                                          [  OK  ]
Test::Message.replacing_headers                                         [  OK  ]
Test::Message.setting_lines                                             [  OK  ]
Test::Message.setting_raw                                               [  OK  ]
Test::Message.strange_headers                                           [  OK  ]
Test::MessageStoreFactory.no_args                                       [  OK  ]
Test::MessageStoreFactory.path                                          [  OK  ]
Test::MessageStoreFactory.single_attr                                   [  OK  ]
Test::MessageStoreFactory.uri                                           [  OK  ]
Test::Metronome.basic                                                   [  OK  ]
Test::Parameter.face                                                    [  OK  ]
Test::Parameter.face                                                    [  OK  ]
Test::Parameter.face                                                    [  OK  ]
Test::Parameter.face                                                    [  OK  ]
Test::Parameter.face                                                    [  OK  ]
Test::Parameter.face                                                    [  OK  ]
Test::Sample.ramp                                                       [  OK  ]
Test::Sample.uniform                                                    [  OK  ]
Test::Skip.skip_old_version                                             [  OK  ]

Time: 5857 wallclock secs (34.87 usr 10.50 sys + 31.48 cusr 32.63 csys = 109.48 CPU)

!!!FAILURES!!!
Test Results:
Run: 404, Failures: 49, Errors: 102

Test was not successful.
elliefm commented 6 years ago

That is a weird blend of successes and fails, very curious, and I'm not seeing any particularly obvious pattern to it either. :(

Could do another full run, this time with -fpretty and -vvv, and capture the whole output? Not sure if you'll be able to attach that much output here, but if not you can email it to me directly, and I'll have a skim through and see if anything becomes apparent

elliefm commented 6 years ago

Thanks for sending that through.

I'm noticing a bunch of the tests are timing out waiting out for lmtpd to start. I also notice you seem to be running cassandane as root. I wonder if things are failing to start because they have too much privilege, and then the tests fall apart in various ways depending on what they needed?

testrunner.pl should be dropping privileges to run as the cyrus user (using become_cyrus() from Cassandane/Util/Setup.pm) but I don't see any log output from it doing so, so that's strange.

I run testrunner.pl just as user account, and my user account has the following entry in the sudoers file:

# give ellie access to sudo as cyrus
ellie   ALL=(cyrus) NOPASSWD: ALL

I also have the following my passwd and group file:

$grep cyrus /etc/passwd
cyrus:x:117:123::/home/cyrus:/bin/false

$grep cyrus /etc/group
mail:x:8:cyrus
cyrus:x:123:ellie

(ie, the cyrus user has no login shell and is a member of the cyrus and mail groups, and my own user is also a member of the cyrus group)

So, when testrunner runs here, it uses the sudo codepath in become_cyrus(). Maybe there's something wrong with other codepaths?

How's your perl? At this point I would be lacing the become_cyrus() function with debugging output to get visibility onto what it's doing. Happy to send you a patch if you need one, let me know. :)

hagedose commented 6 years ago

I set up sudo the way you did and ran the script as myself, but that didn't change anything. Here's what's in my passwd and group files:

$ grep cyrus /etc/passwd
cyrus:x:76:12:Cyrus IMAP Server:/var/lib/imap:/sbin/nologin
$ grep cyrus /etc/group
saslauth:x:76:cyrus

Adding my account to the same group as cyrus didn't change anything.

I'll look into debugging output next week. At first glance it should already be there if get_verbose is true.