I'm trying to improve enigmail's test suite coverage in debian, and i've
had difficulties there. This is an attempt to document the problems i'm
running into, in the hopes that someone on-list here can give me
suggestions for new things to try.

To be clear: i can get the tests to pass cleanly when i build the
package myself and when i run its tests.  But i get different failures
when the tests are run on the debian infrastructure.

These errors are blocking me from contributing effective refactoring
work to enigmail, because i want a clean baseline on standardized/common
infrastructure to be able to be sure my changes don't break anything.


Unit tests hang on debian build daemon (buildd) network
-------------------------------------------------------

if i try to run the test suite during the debian build, it hangs on the
debian build daemons (it does not hang when i build it on my own
builders though).  Compare:

   (with test suite)
   
https://buildd.debian.org/status/fetch.php?pkg=enigmail&arch=all&ver=2%3A2.0.7-3&stamp=1529511787&raw=0

   (without test suite)
   
https://buildd.debian.org/status/fetch.php?pkg=enigmail&arch=all&ver=2%3A2.0.7-4&stamp=1529524566&raw=0

Specifically, the hang happens when the unit tests start:  

    make[2]: Leaving directory '/<<PKGBUILDDIR>>'
    make[2]: Entering directory '/<<PKGBUILDDIR>>'
    make -C ipc/tests
    make[3]: Entering directory '/<<PKGBUILDDIR>>/ipc/tests'
    ../../util/run-jsunit /usr/bin/perl "/usr/bin/thunderbird" --profile 
/<<PKGBUILDDIR>>/test-profile -jsunit main.js
    E: Build killed with signal TERM after 150 minutes of inactivity

I don't know why the test fails in this way on the buildd, but my
current work in debian (as of packaging version 2:2.0.7-4) is to just
skip the tests during build :(  Help welcome!



Sqlite.openConnection() fails on debian continuous integration testing
----------------------------------------------------------------------

Having given up for now on running the tests during the build, i figured
i would try to get them to run on the installed package -- so i added a
debian autopkgtest suite to run the tests after installation.

you can see the failing reports here:

    https://ci.debian.net/packages/e/enigmail/unstable/amd64/

on the latest version, which includes all the bugfixes i've made to the
2.0 branch's test suite, i am stumped by the failure found at [1], as
follows:

 [1] 
https://ci.debian.net/data/autopkgtest/unstable/amd64/e/enigmail/545639/log.gz


    […]
    *** Executing sub-test 'autocrypt-test.js' ***
    2018-07-02 13:59:32.928 [DEBUG] autocrypt.jsm: getOpenPGPKeyForEmail: could 
not open database [Error: Could not open connection to 
/tmp/autopkgtest-lxc.nogrphwa/downtmp/build.6Ql/src/test-profile/enigmail.sqlite:
 2153971713]
    AssertionError: "getOpenPGPKeyForEmail1 error Error: Could not open 
connection to /tmp/autopkgtest-lxc.nogrphwa/downtmp/build.6Ql/src/test-profi == 
1 - JS frame :: resource://jsunit/jsunit-main.jsm -> 
file:///tmp/autopkgtest-lxc.nogrphwa/downtmp/build.6Ql/src/package/tests/autocrypt-test.js
 :: processHeader/< :: line 161


I think this failure is happening in Sqlite.jsm's
Sqlite.openConnection() function [2].

    [2] 
https://developer.mozilla.org/en-US/docs/Mozilla/JavaScript_code_modules/Sqlite.jsm

As with the errors during the build, I am currently unable to reproduce
this particular error on my own machinery.  On my own autopkgtest
machine, the test suite completes successfully.

The error code 2153971713 is 0x80630001, aka either
PEER_E_IPV6_NOT_INSTALLED (seems unlikely) or it is (more likely)
NS_ERROR_STORAGE_BUSY, which is defined in a very convoluted way here:

  
https://sources.debian.org/src/thunderbird/1:52.8.0-1/mozilla/xpcom/base/ErrorList.h/#L865

If it's NS_ERROR_STORAGE_BUSY, i note that there are several different
points where thunderbird appears to just wait 10 seconds and retry when
sqlite is complaining that it's busy...

   
https://codesearch.debian.net/search?q=package%3Athunderbird+NS_ERROR_STORAGE_BUSY

Maybe enigmail should adopt the same workarounds?  they're kind of ugly,
but i don't know what else to do.

or, is there some other scenario i should look into?

   --dkg

Attachment: signature.asc
Description: PGP signature

_______________________________________________
enigmail-users mailing list
enigmail-users@enigmail.net
To unsubscribe or make changes to your subscription click here:
https://admin.hostpoint.ch/mailman/listinfo/enigmail-users_enigmail.net

Reply via email to