[New-bugs-announce] [issue24550] maxint on 64 bit platforms breaks os.read

Brian Mingus report at bugs.python.org
Thu Jul 2 07:27:49 CEST 2015

New submission from Brian Mingus:

The lower range for this bug may be anything greater than 32 bit maxint. Other modules such as multiprocessing are limited passing objects of size 32 bit maxint, even on 64 bit systems, likely due to this issue. I have demonstrated this by modifying multiprocessing/connection.py to use longs in send and recv, which it surfaces the following error (note that read is os.read).

Traceback (most recent call last):
  File "/usr/lib/python3.4/multiprocessing/process.py", line 254, in _bootstrap
  File "/usr/lib/python3.4/multiprocessing/process.py", line 93, in run
    self._target(*self._args, **self._kwargs)
  File "/usr/lib/python3.4/multiprocessing/pool.py", line 103, in worker
  File "/usr/local/lib/python3.4/dist-packages/gensim-0.11.1_1-py3.4-linux-x86_64.egg/gensim/models/ldamulticore.py", line 266, in worker_e_step
    chunk_no, chunk, worker_lda = input_queue.get()
  File "/usr/lib/python3.4/multiprocessing/queues.py", line 96, in get
    res = self._recv_bytes()
  File "/usr/lib/python3.4/multiprocessing/connection.py", line 216, in recv_bytes
    buf = self._recv_bytes(maxlength)
  File "/usr/lib/python3.4/multiprocessing/connection.py", line 420, in _recv_bytes
    return self._recv(size)
  File "/usr/lib/python3.4/multiprocessing/connection.py", line 383, in _recv
    chunk = read(handle, remaining)
OverflowError: signed integer is greater than maximum

Which can be traced back to this cpython code:


components: IO
messages: 246063
nosy: Brian Mingus
priority: normal
severity: normal
status: open
title: maxint on 64 bit platforms breaks os.read
type: enhancement
versions: Python 3.4

Python tracker <report at bugs.python.org>

More information about the New-bugs-announce mailing list