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.

Author steven.daprano
Recipients Serge Anuchin, mark.dickinson, r.david.murray, rhettinger, serhiy.storchaka, skrah, steven.daprano, tim.peters, vstinner
Date 2015-07-05.03:03:59
SpamBayes Score -1.0
Marked as misclassified Yes
Message-id <1436065440.76.0.743831142504.issue24567@psf.upfronthosting.co.za>
In-reply-to
Content
While investigating issue 24546, I discovered that at least some versions of Python on 32-bit Linux have a double-rounding bug in multiplication which may lead to an unexpected IndexError in random.choice.

See http://bugs.python.org/issue24546 for additional discussion, but the short version is that due to double-rounding, if random.random returns (1. - 2.**-53), int(i * random.random()) may return 1 for some i >= 2049, and random.choice will then evaluate seq[len(seq)], raising IndexError.
History
Date User Action Args
2015-07-05 03:04:00steven.dapranosetrecipients: + steven.daprano, tim.peters, rhettinger, mark.dickinson, vstinner, r.david.murray, skrah, serhiy.storchaka, Serge Anuchin
2015-07-05 03:04:00steven.dapranosetmessageid: <1436065440.76.0.743831142504.issue24567@psf.upfronthosting.co.za>
2015-07-05 03:04:00steven.dapranolinkissue24567 messages
2015-07-05 03:03:59steven.dapranocreate