This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

classification
Title: multiprocessing pool + subprocess ValueError: empty range for randrange
Type: behavior Stage: resolved
Components: Library (Lib) Versions: Python 3.6
process
Status: closed Resolution: not a bug
Dependencies: Superseder:
Assigned To: Nosy List: SilentGhost, 孑影
Priority: normal Keywords:

Created on 2019-04-09 15:54 by 孑影, last changed 2022-04-11 14:59 by admin. This issue is now closed.

Files
File name Uploaded Description Edit
demo.py 孑影, 2019-04-09 16:03
Messages (3)
msg339767 - (view) Author: 孑影 (孑影) Date: 2019-04-09 15:54
== output ==
python2 /tmp/demo.py 
31749 task#1 result:(False, 'ls: cannot access alksdfjalkdsfadsfk: No such file or directoryn') 
31751 task#2 result:(False, 'ls: cannot access alksdfjalkdsfadsfk: No such file or directoryn') 
31752 task#3 result:(False, '3n') 
31750 task#4 result:(False, '4n') 
31749 task#6 result:(False, '6n') 
31752 task#7 result:(False, '7n') 
31750 task#8 result:(False, '8n') 
31751 task#9 result:(False, '9n') 
Traceback (most recent call last):
  File "/tmp/demo.py", line 74, in <module>
    runner()
  File "/tmp/demo.py", line 64, in runner
    rc_orig = value.get()
  File "/usr/lib64/python2.7/multiprocessing/pool.py", line 554, in get
    raise self._value
ValueError: empty range for randrange() (1,1, 0)

== The python2.7 demo ==
http://paste.ubuntu.org.cn/4379593

== More ==
The interesting thing is if you modify demo.py like this .

http://paste.ubuntu.org.cn/4379595

Almost the code can be run normal.
msg339769 - (view) Author: 孑影 (孑影) Date: 2019-04-09 16:07
My python version info:

Python 2.7.13 (default, Sep 26 2018, 18:42:22) 
[GCC 6.3.0 20170516] on linux2

Python 3.5.3 (default, Sep 27 2018, 17:25:39) 
[GCC 6.3.0 20170516] on linux
msg339770 - (view) Author: SilentGhost (SilentGhost) * (Python triager) Date: 2019-04-09 16:11
The error you're seeing stems from this bit of code:

random.randint(1, 0)

With zero resulting from `taskid % 5` operation for values of taskid divisible by 5. Obviously, when you comment out this line you're not seeing the error.
History
Date User Action Args
2022-04-11 14:59:13adminsetgithub: 80759
2019-04-09 16:11:03SilentGhostsetstatus: open -> closed

type: behavior

nosy: + SilentGhost
messages: + msg339770
resolution: not a bug
stage: resolved
2019-04-09 16:07:12孑影setmessages: + msg339769
2019-04-09 16:03:55孑影setfiles: + demo.py
2019-04-09 16:03:46孑影setfiles: - demo.py
2019-04-09 15:59:38孑影setfiles: - demo.py
2019-04-09 15:59:27孑影setfiles: + demo.py
2019-04-09 15:56:26孑影setfiles: + demo.py
2019-04-09 15:56:16孑影setfiles: - demo.py
2019-04-09 15:54:39孑影create