dask / dask-xgboost

BSD 3-Clause "New" or "Revised" License
162 stars 43 forks source link

CI failures #34

Open jrbourbeau opened 5 years ago

jrbourbeau commented 5 years ago

There are a few test failures on master that I came across in #33 and thought it was worth opening up a separate issue.

The test failures are due to a ChildProcessError. For example, the traceback for pytest dask_xgboost/tests/test_core.py::test_classifier on master is

Traceback details ``` [gw0] darwin -- Python 3.6.6 /Users/jbourbeau/miniconda/envs/quansight/bin/python loop = def test_classifier(loop): # noqa > with cluster() as (s, [a, b]): dask_xgboost/tests/test_core.py:38: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ../../miniconda/envs/quansight/lib/python3.6/contextlib.py:81: in __enter__ return next(self.gen) ../../miniconda/envs/quansight/lib/python3.6/site-packages/distributed/utils_test.py:626: in cluster scheduler_q = mp_context.Queue() ../../miniconda/envs/quansight/lib/python3.6/multiprocessing/context.py:102: in Queue return Queue(maxsize, ctx=self.get_context()) ../../miniconda/envs/quansight/lib/python3.6/multiprocessing/queues.py:42: in __init__ self._rlock = ctx.Lock() ../../miniconda/envs/quansight/lib/python3.6/multiprocessing/context.py:67: in Lock return Lock(ctx=self.get_context()) ../../miniconda/envs/quansight/lib/python3.6/multiprocessing/synchronize.py:163: in __init__ SemLock.__init__(self, SEMAPHORE, 1, 1, ctx=ctx) ../../miniconda/envs/quansight/lib/python3.6/multiprocessing/synchronize.py:81: in __init__ register(self._semlock.name) ../../miniconda/envs/quansight/lib/python3.6/multiprocessing/semaphore_tracker.py:83: in register self._send('REGISTER', name) ../../miniconda/envs/quansight/lib/python3.6/multiprocessing/semaphore_tracker.py:90: in _send self.ensure_running() _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def ensure_running(self): '''Make sure that semaphore tracker process is running. This can be run from any process. Usually a child process will use the semaphore created by its parent.''' with self._lock: if self._pid is not None: # semaphore tracker was launched before, is it still running? > pid, status = os.waitpid(self._pid, os.WNOHANG) E ChildProcessError: [Errno 10] No child processes ../../miniconda/envs/quansight/lib/python3.6/multiprocessing/semaphore_tracker.py:46: ChildProcessError ```
mrocklin commented 5 years ago

Unfortunately I don't have much insight to share here. This probably requires some investigation.

quartox commented 5 years ago

@TomAugspurger commented in #31 that it has something to do with a new xgboost update making it incompatible.