- Issued:
- 2011-12-06
- Updated:
- 2011-12-06
RHBA-2011:1564 - python bug fix and enhancement update
Synopsis
python bug fix and enhancement update
Type/Severity
Bug Fix Advisory (none)
Topic
Updated python packages that fix several bugs and add an enhancement are now available for Red Hat Enterprise Linux 6.
Description
Python is an interpreted, interactive, object-oriented programming language.
This update fixes the following bugs:
-
The Python standard library contains numerous APIs that handle the uid_t and gid_t attributes, which contain unsigned 32-bit values. Previously, the existing code often passed the values as C language long values, which are signed 32-bit values on 32-bit architectures. Consequently, negative integer objects occurred when a uid_t/gid_t value was equal or larger than 2^31 on 32-bit architectures. With this update, the standard library has been updated throughout to accept the full range of uid_t/gid_t values (0 through 2^32-1), using "int" objects for small values, but using "long" objects where needed to avoid integer overflow. As a special case, "-1" is also supported, as this value has special meaning for the os.chown() function and other related functions. (BZ#697470)
-
Previously, the multiprocessing module used the "select" system call to communicate with subprocesses, limiting the number of file descriptors to the value of the FD_SETSIZE variable (1024). With this update, the multiprocessing module has been ported to use the "poll" system call, instead of "select", thus fixing this bug. (BZ#713082)
-
Previously, a race condition sometimes caused the forking.Popen.poll() method of the multiprocessing module to terminate with the "OSError: [Errno 10] No child processes" error message when starting subprocesses. This bug has been fixed and the crashes no longer occur in the described scenario. (BZ#685234)
-
Previously, the getpass.getpass() method discarded Ctrl-C and Ctrl-Z input, requiring the user to press Ctrl-D to exit the password entry prompt and then returning traceback error messages. With this update, the described user input is processed properly by the getpass.getpass() method. (BZ#689794)
-
Due to a bug, the readline.get_history_length() and readline.get_history_item() methods leaked memory when executed. This bug has been fixed and no longer occurs. (BZ#699740)
-
When building the C extension modules, if a value for the CFLAGS variable is defined in the environment, it is appended to the compilation flags from Python's Makefile. Due to a bug, only flags stored in the OPT variable were supplied from the Makefile. Consequently, the "-fno-strict-aliasing" flag was missing and build errors occurred. This bug has been fixed, CFLAGS are properly appended to the original Python build string, and no build errors are now returned in the described scenario. (BZ#727364)
-
When feeding data to the standard input of short-lived processes, the subprocess.Popen.communicate() method sometimes terminated with the "OSError: [Errno 32] Broken pipe" error message. This bug has been fixed and the crashes no longer occur in the described scenario. (BZ#667431)
This update adds the following enhancement:
- The gdb (GNU Debugger) Python hooks for debugging Python itself (via the python-debuginfo package) have been enhanced. The hooks now report if a thread is waiting on a lock, such as the GIL (Global Interpreter Lock), and call to appropriate C functions, methods, and garbage collections. In addition, the hooks have been optimized to provide at least file and function names, when line numbers and locals are not available. (BZ#711818)
All users of python are advised to upgrade to these updated packages, which fix these bugs and add this enhancement.
Solution
Before applying this update, make sure all previously-released errata relevant to your system have been applied.
This update is available via the Red Hat Network. Details on how to use the Red Hat Network to apply this update are available at This content is not included.http://kbase.redhat.com/faq/docs/DOC-11259
Affected Products
| Product | Version | Arch |
|---|---|---|
| Red Hat Enterprise Linux for Scientific Computing | 6 | x86_64 |
| Red Hat Enterprise Linux for Power, big endian | 6 | ppc64 |
| Red Hat Enterprise Linux for IBM z Systems | 6 | s390x |
| Red Hat Enterprise Linux Workstation | 6 | x86_64 |
| Red Hat Enterprise Linux Workstation | 6 | i386 |
| Red Hat Enterprise Linux Server | 6 | x86_64 |
| Red Hat Enterprise Linux Server | 6 | i386 |
| Red Hat Enterprise Linux Server from RHUI | 6 | x86_64 |
| Red Hat Enterprise Linux Server from RHUI | 6 | i386 |
| Red Hat Enterprise Linux Server - Retired Extended Life Cycle Support | 6 | x86_64 |
| Red Hat Enterprise Linux Server - Extended Life Cycle Support | 6 | x86_64 |
| Red Hat Enterprise Linux Server - Extended Life Cycle Support | 6 | i386 |
| Red Hat Enterprise Linux Server - Extended Life Cycle Support Extension | 6 | x86_64 |
| Red Hat Enterprise Linux Server - Extended Life Cycle Support Extension | 6 | i386 |
| Red Hat Enterprise Linux Server - Extended Life Cycle Support Extension (for IBM z Systems) | 6 | s390x |
| Red Hat Enterprise Linux Server - Extended Life Cycle Support (for IBM z Systems) | 6 | s390x |
| Red Hat Enterprise Linux Desktop | 6 | x86_64 |
| Red Hat Enterprise Linux Desktop | 6 | i386 |
Updated Packages
- python-test-2.6.6-29.el6.x86_64.rpm
- python-tools-2.6.6-29.el6.s390x.rpm
- python-test-2.6.6-29.el6.s390x.rpm
- python-tools-2.6.6-29.el6.i686.rpm
- python-test-2.6.6-29.el6.i686.rpm
- tkinter-2.6.6-29.el6.i686.rpm
- python-debuginfo-2.6.6-29.el6.x86_64.rpm
- python-debuginfo-2.6.6-29.el6.s390x.rpm
- python-2.6.6-29.el6.s390x.rpm
- python-2.6.6-29.el6.src.rpm
- python-devel-2.6.6-29.el6.i686.rpm
- python-libs-2.6.6-29.el6.i686.rpm
- python-libs-2.6.6-29.el6.x86_64.rpm
- python-tools-2.6.6-29.el6.x86_64.rpm
- python-tools-2.6.6-29.el6.ppc64.rpm
- python-2.6.6-29.el6.x86_64.rpm
- python-debuginfo-2.6.6-29.el6.i686.rpm
- tkinter-2.6.6-29.el6.ppc64.rpm
- python-devel-2.6.6-29.el6.s390x.rpm
- tkinter-2.6.6-29.el6.s390x.rpm
- python-debuginfo-2.6.6-29.el6.ppc64.rpm
- python-libs-2.6.6-29.el6.s390x.rpm
- python-devel-2.6.6-29.el6.x86_64.rpm
- tkinter-2.6.6-29.el6.x86_64.rpm
- python-devel-2.6.6-29.el6.ppc64.rpm
- python-2.6.6-29.el6.ppc64.rpm
- python-test-2.6.6-29.el6.ppc64.rpm
- python-libs-2.6.6-29.el6.ppc64.rpm
- python-2.6.6-29.el6.i686.rpm
Fixes
- This content is not included.BZ - 667431
- This content is not included.BZ - 685234
- This content is not included.BZ - 689794
- This content is not included.BZ - 697470
- This content is not included.BZ - 713082
- This content is not included.BZ - 727364
CVEs
(none)
References
(none)
Additional information
- The Red Hat security contact is This content is not included.secalert@redhat.com. More contact details at https://access.redhat.com/security/team/contact/.
- Offline Security Data data is available for integration with other systems. See Offline Security Data API to get started.