Skip to content

Crash with multiprocessing_aware #78

@matham

Description

@matham

Describe the bug
I'm using fancylog in some of my scripts. In those scripts, fancylog is the only thing that touches multiprocessing to the best of my knowledge. Running this script seems to intermittently result in the following error as the program finishes up.

I did set multiprocessing_aware to True, even though I'm not actually using multiprocessing or threads in any way in these scripts. Because I do that by default. Setting it to False, fixed the issue!

I think that my last log message may also have been eaten and not printed if it was True. Not 100% sure.

To Reproduce
I don't have a reproducer, because it's happening intermittently.

Log file

Traceback (most recent call last):
Traceback (most recent call last):
  File "C:\Users\CPLab\.conda\envs\brainglobe\Lib\site-packages\multiprocessing_logging.py", line 77, in _receive
    record = self.queue.get(timeout=0.2)
  File "C:\Users\CPLab\.conda\envs\brainglobe\Lib\site-packages\multiprocessing_logging.py", line 77, in _receive
    record = self.queue.get(timeout=0.2)
  File "C:\Users\CPLab\.conda\envs\brainglobe\Lib\multiprocessing\queues.py", line 115, in get
    res = self._recv_bytes()
  File "C:\Users\CPLab\.conda\envs\brainglobe\Lib\multiprocessing\queues.py", line 115, in get
    res = self._recv_bytes()
  File "C:\Users\CPLab\.conda\envs\brainglobe\Lib\multiprocessing\connection.py", line 216, in recv_bytes
    buf = self._recv_bytes(maxlength)
  File "C:\Users\CPLab\.conda\envs\brainglobe\Lib\multiprocessing\connection.py", line 216, in recv_bytes
    buf = self._recv_bytes(maxlength)
  File "C:\Users\CPLab\.conda\envs\brainglobe\Lib\multiprocessing\connection.py", line 334, in _recv_bytes
    return self._get_more_data(ov, maxsize)
           ~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^
  File "C:\Users\CPLab\.conda\envs\brainglobe\Lib\multiprocessing\connection.py", line 334, in _recv_bytes
    return self._get_more_data(ov, maxsize)
           ~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^
  File "C:\Users\CPLab\.conda\envs\brainglobe\Lib\multiprocessing\connection.py", line 352, in _get_more_data
    left = _winapi.PeekNamedPipe(self._handle)[1]
           ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^
  File "C:\Users\CPLab\.conda\envs\brainglobe\Lib\multiprocessing\connection.py", line 352, in _get_more_data
    left = _winapi.PeekNamedPipe(self._handle)[1]
           ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^
TypeError: PeekNamedPipe() argument 1 must be int, not None
TypeError: PeekNamedPipe() argument 1 must be int, not None
Exception in thread mp-handler-1:
Exception in thread mp-handler-0:
Traceback (most recent call last):
Traceback (most recent call last):
  File "C:\Users\CPLab\.conda\envs\brainglobe\Lib\threading.py", line 1041, in _bootstrap_inner
    self.run()
    ~~~~~~~~^^
  File "C:\Users\CPLab\.conda\envs\brainglobe\Lib\threading.py", line 1041, in _bootstrap_inner
    self.run()
    ~~~~~~~~^^
  File "C:\Users\CPLab\.conda\envs\brainglobe\Lib\threading.py", line 992, in run
    self._target(*self._args, **self._kwargs)
    ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\CPLab\.conda\envs\brainglobe\Lib\threading.py", line 992, in run
    self._target(*self._args, **self._kwargs)
    ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\CPLab\.conda\envs\brainglobe\Lib\site-packages\multiprocessing_logging.py", line 77, in _receive
    record = self.queue.get(timeout=0.2)
  File "C:\Users\CPLab\.conda\envs\brainglobe\Lib\site-packages\multiprocessing_logging.py", line 77, in _receive
    record = self.queue.get(timeout=0.2)
  File "C:\Users\CPLab\.conda\envs\brainglobe\Lib\multiprocessing\queues.py", line 115, in get
    res = self._recv_bytes()
  File "C:\Users\CPLab\.conda\envs\brainglobe\Lib\multiprocessing\connection.py", line 216, in recv_bytes
    buf = self._recv_bytes(maxlength)
  File "C:\Users\CPLab\.conda\envs\brainglobe\Lib\multiprocessing\queues.py", line 115, in get
    res = self._recv_bytes()
  File "C:\Users\CPLab\.conda\envs\brainglobe\Lib\multiprocessing\connection.py", line 334, in _recv_bytes
    return self._get_more_data(ov, maxsize)
           ~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^
  File "C:\Users\CPLab\.conda\envs\brainglobe\Lib\multiprocessing\connection.py", line 352, in _get_more_data
    left = _winapi.PeekNamedPipe(self._handle)[1]
           ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^
  File "C:\Users\CPLab\.conda\envs\brainglobe\Lib\multiprocessing\connection.py", line 216, in recv_bytes
    buf = self._recv_bytes(maxlength)
TypeError: PeekNamedPipe() argument 1 must be int, not None
  File "C:\Users\CPLab\.conda\envs\brainglobe\Lib\multiprocessing\connection.py", line 334, in _recv_bytes
    return self._get_more_data(ov, maxsize)
           ~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^
  File "C:\Users\CPLab\.conda\envs\brainglobe\Lib\multiprocessing\connection.py", line 352, in _get_more_data
    left = _winapi.PeekNamedPipe(self._handle)[1]
           ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^
TypeError: PeekNamedPipe() argument 1 must be int, not None

Computer used (please complete the following information):

  • OS: Windows 11

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions