Dear Sage developers,

A colleague of mine (Vincent Neri, in CC) is investigating the usage
of docker to run multiple instances of the sage patchbot within
sandboxes on a cluster here. This works smoothly, except that the
doctesting framework fails mysteriously on three files, and we haven't
been able to debug. So this is a blocker for moving further, and help
would be much appreciated.


Vincent tried the docker centos-based image built by Volker:

        https://github.com/sagemath/docker

He also built his own docker images using several other linux
distributions and various recent versions of Sage (including 6.4.1 and
6.5).

In all cases, all tests pass smoothly, except for three files:

    sage -t --warn-long 19.5 src/sage/interfaces/qsieve.py  # Bad exit: 1
    sage -t --warn-long 19.5 
local/lib/python2.7/site-packages/sagenb-0.11.4-py2.7.egg/sagenb/notebook/worksheet.py
    # Bad exit: 1
    sage -t --warn-long 19.5 
local/lib/python2.7/site-packages/sagenb-0.11.4-py2.7.egg/sagenb/notebook/cell.py
    # Bad exit: 1

In all three cases, it's actually the doctesting framework that fails,
somewhere during the multiprocessing handling:

    Traceback (most recent call last):
      File "/home/sage/sage-6.4.1/local/lib/python/multiprocessing/process.py", 
line 258, in _bootstrap
        self.run()
      File 
"/home/sage/sage-6.4.1/local/lib/python2.7/site-packages/sage/doctest/forker.py",
 line 1839, in run
        task(self.options, self.outtmpfile, msgpipe, self.result_queue)
      File 
"/home/sage/sage-6.4.1/local/lib/python2.7/site-packages/sage/doctest/forker.py",
 line 2159, in __call__
        result_queue.put(result, False)
      File "/home/sage/sage-6.4.1/local/lib/python/multiprocessing/queues.py", 
line 102, in put
        raise Full
    Full
        Bad exit: 1

The failing line in queues.py is doing something like acquiring a semaphore:

        if not self._sem.acquire(block, timeout):

The failure occurs as well when running the tests on a single file
(thus without real need for multiprocessing). Steps to reproduce:

    > docker run -t -i sagemath/sage su - sage
    > cd sage-6.4.1/
    > ./sage -t src/sage/interfaces/qsieve.py 

Occasionally another test file fails similarly. There can also be some
minor unrelated failures in sagedev.py, but we are not worried about those.

As a complement, here is a minimal file that triggers a systematic failure:

    =====8<----------------------- bla.py
    r"""
        sage: from sage.interfaces.qsieve import qsieve
        sage: k = 19; n = next_prime(10^k)*next_prime(10^(k+1))
        sage: v, t = qsieve(n, time=True)   # uses qsieve; optional - time
        sage: q = qsieve(next_prime(10^20)*next_prime(10^21), block=False)
    """
    =====8<-----------------------

Any idea of what might go wrong?

Thanks!

Cheers,
                                Nicolas
--
Nicolas M. ThiƩry "Isil" <nthi...@users.sf.net>
http://Nicolas.Thiery.name/

-- 
You received this message because you are subscribed to the Google Groups 
"sage-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-devel+unsubscr...@googlegroups.com.
To post to this group, send email to sage-devel@googlegroups.com.
Visit this group at http://groups.google.com/group/sage-devel.
For more options, visit https://groups.google.com/d/optout.

Reply via email to