New submission from Thomas Moreau <[email protected]>:
The fix for the Queue._feeder does not properly handle the size of the Queue.
This can lead to a situation where the Queue is considered as Full when it is
empty. Here is a reproducing script:
```
import multiprocessing as mp
q = mp.Queue(1)
class FailPickle():
def __reduce__(self):
raise ValueError()
q.put(FailPickle())
print("Queue is full:", q.full())
q.put(0)
print(f"Got result: {q.get()}")
```
----------
components: Library (Lib)
messages: 313855
nosy: davin, pitrou, tomMoral
priority: normal
severity: normal
status: open
title: Queue with maxsize can lead to deadlocks
type: behavior
versions: Python 2.7, Python 3.5, Python 3.6, Python 3.7, Python 3.8
_______________________________________
Python tracker <[email protected]>
<https://bugs.python.org/issue33078>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe:
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com