[issue6721] Locks in python standard library should be sanitized on fork
Charles-François Natali neolo...@free.fr added the comment: Oops, for liunxthreads, you should of course read different PIDs, not same PID. -- ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue6721 ___ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue11987] queue.Queue.put should acquire mutex for unfinished_tasks
patrick vrijlandt patrick.vrijla...@gmail.com added the comment: I agree. Please close the ticket. Thanks, Patrick 2011/5/3 Raymond Hettinger rep...@bugs.python.org Raymond Hettinger raymond.hettin...@gmail.com added the comment: This line should be protected by acquiring the all_tasks_done lock. All of three of the condition variables share the same underlying lock. The increment occurs only with the lock has been acquired. Theoretically, the increment could occur somewhere during task_done()! I don't understand what you mean. The semantics of task_done() method implies that the count gets decremented. Personally, I would like the increment to occur *before* instead of *after* _put(). There may be some merit to this but I don't see how it matters much since both occur within the context of the same lock being held. A user defined method can still add or subtract any number it wants from the unfinished task count. The result of +1 -5 is the same as -5 +1. I'm reluctant to change the order though because the code is already published and some user's _put code may be inspecting the unfinished tasks count. I wouldn't want to break that code without good reason. -- ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue11987 ___ -- Added file: http://bugs.python.org/file21877/unnamed ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue11987 ___I agree. Please close the ticket.divbr/divdivThanks,/divdivbr/divdivPatrickbrbrdiv class=gmail_quote2011/5/3 Raymond Hettinger span dir=ltrlt;a href=mailto:rep...@bugs.python.org;rep...@bugs.python.org/agt;/spanbr blockquote class=gmail_quote style=margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;br Raymond Hettinger lt;a href=mailto:raymond.hettin...@gmail.com;raymond.hettin...@gmail.com/agt; added the comment:br div class=imbr gt; This line should be protected by acquiring the all_tasks_done lock.br br /divAll of three of the condition variables share the same underlying lock. Â The increment occurs only with the lock has been acquired.br div class=imbr gt; Theoretically, the increment could occur somewhere during task_done()!br br /divI don#39;t understand what you mean. Â The semantics of task_done() method implies that the count gets decremented.br div class=imbr gt; Personally, I would like the increment to occur *before*br gt; instead of *after* _put().br br /divThere may be some merit to this but I don#39;t see how it matters much since both occur within the context of the same lock being held. Â A user defined method can still add or subtract any number it wants from the unfinished task count. Â The result of +1 -5 is the same as -5 +1.br br I#39;m reluctant to change the order though because the code is already published and some user#39;s _put code may be inspecting the unfinished tasks count. Â I wouldn#39;t want to break that code without good reason.br br --br divdiv/divdiv class=h5br ___br Python tracker lt;a href=mailto:rep...@bugs.python.org;rep...@bugs.python.org/agt;br lt;a href=http://bugs.python.org/issue11987; target=_blankhttp://bugs.python.org/issue11987/agt;br ___br /div/div/blockquote/divbr/div ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue11987] queue.Queue.put should acquire mutex for unfinished_tasks
Changes by Raymond Hettinger raymond.hettin...@gmail.com: -- resolution: - invalid status: open - closed ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue11987 ___ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue11994] [2.7/gcc-4.4.3] Segfault under valgrind in string.split()
New submission from Stefan Krah stefan-use...@bytereef.org: I can reproduce this only with gcc-4.4.3, so it could also be a compiler bug. Also, the segfault only occurs when python is compiled with optimizations and run under valgrind. hg up 2.7 make distclean ./configure make valgrind --suppressions=Misc/valgrind-python.supp ./python s = -- -- -- s.split('--') ==29273== Invalid read of size 4 ==29273==at 0x456C73: PyObject_Free (obmalloc.c:969) ==29273==by 0x4AD3BD: compiler_unit_free (compile.c:424) ==29273==by 0x4B6785: compiler_mod (compile.c:521) ==29273==by 0x4B69B5: PyAST_Compile (compile.c:289) ==29273==by 0x4CD564: PyRun_InteractiveOneFlags (pythonrun.c:1343) ==29273==by 0x4CD80D: PyRun_InteractiveLoopFlags (pythonrun.c:765) ==29273==by 0x4CDFFA: PyRun_AnyFileExFlags (pythonrun.c:734) ==29273==by 0x4172E9: Py_Main (main.c:599) ==29273==by 0x56F2C4C: (below main) (libc-start.c:226) ==29273== Address 0x61d3020 is not stack'd, malloc'd or (recently) free'd ==29273== ==29273== Invalid read of size 4 ==29273==at 0x456C73: PyObject_Free (obmalloc.c:969) ==29273==by 0x4B6785: compiler_mod (compile.c:521) ==29273==by 0x4B69B5: PyAST_Compile (compile.c:289) ==29273==by 0x4CD564: PyRun_InteractiveOneFlags (pythonrun.c:1343) ==29273==by 0x4CD80D: PyRun_InteractiveLoopFlags (pythonrun.c:765) ==29273==by 0x4CDFFA: PyRun_AnyFileExFlags (pythonrun.c:734) ==29273==by 0x4172E9: Py_Main (main.c:599) ==29273==by 0x56F2C4C: (below main) (libc-start.c:226) ==29273== Address 0x61d3020 is not stack'd, malloc'd or (recently) free'd ==29273== ==29273== Invalid read of size 8 ==29273==at 0x43E5A8: list_print (listobject.c:341) ==29273==by 0x454CAF: internal_print (object.c:315) ==29273==by 0x432128: PyFile_WriteObject (fileobject.c:110) ==29273==by 0x4D3857: sys_displayhook (sysmodule.c:115) ==29273==by 0x41BD66: PyObject_Call (abstract.c:2529) ==29273==by 0x4A4CB2: PyEval_CallObjectWithKeywords (ceval.c:3882) ==29273==by 0x4AA568: PyEval_EvalFrameEx (ceval.c:1739) ==29273==by 0x4ACE90: PyEval_EvalCodeEx (ceval.c:3253) ==29273==by 0x4ACFA1: PyEval_EvalCode (ceval.c:667) ==29273==by 0x4CD57E: PyRun_InteractiveOneFlags (pythonrun.c:1346) ==29273==by 0x4CD80D: PyRun_InteractiveLoopFlags (pythonrun.c:765) ==29273==by 0x4CDFFA: PyRun_AnyFileExFlags (pythonrun.c:734) ==29273== Address 0x0 is not stack'd, malloc'd or (recently) free'd ==29273== ==29273== ==29273== Process terminating with default action of signal 11 (SIGSEGV) ==29273== Access not within mapped region at address 0x0 ==29273==at 0x43E5A8: list_print (listobject.c:341) ==29273==by 0x454CAF: internal_print (object.c:315) ==29273==by 0x432128: PyFile_WriteObject (fileobject.c:110) ==29273==by 0x4D3857: sys_displayhook (sysmodule.c:115) ==29273==by 0x41BD66: PyObject_Call (abstract.c:2529) ==29273==by 0x4A4CB2: PyEval_CallObjectWithKeywords (ceval.c:3882) ==29273==by 0x4AA568: PyEval_EvalFrameEx (ceval.c:1739) ==29273==by 0x4ACE90: PyEval_EvalCodeEx (ceval.c:3253) ==29273==by 0x4ACFA1: PyEval_EvalCode (ceval.c:667) ==29273==by 0x4CD57E: PyRun_InteractiveOneFlags (pythonrun.c:1346) ==29273==by 0x4CD80D: PyRun_InteractiveLoopFlags (pythonrun.c:765) ==29273==by 0x4CDFFA: PyRun_AnyFileExFlags (pythonrun.c:734) ==29273== If you believe this happened as a result of a stack ==29273== overflow in your program's main thread (unlikely but ==29273== possible), you can try to increase the size of the ==29273== main thread stack using the --main-stacksize= flag. ==29273== The main thread stack size used in this run was 8388608. [''==29273== ==29273== HEAP SUMMARY: ==29273== in use at exit: 2,198,606 bytes in 1,256 blocks ==29273== total heap usage: 7,315 allocs, 6,059 frees, 7,364,086 bytes allocated ==29273== ==29273== LEAK SUMMARY: ==29273==definitely lost: 0 bytes in 0 blocks ==29273==indirectly lost: 0 bytes in 0 blocks ==29273== possibly lost: 641,033 bytes in 353 blocks ==29273==still reachable: 1,557,541 bytes in 902 blocks ==29273== suppressed: 32 bytes in 1 blocks ==29273== Rerun with --leak-check=full to see details of leaked memory ==29273== ==29273== For counts of detected and suppressed errors, rerun with: -v ==29273== Use --track-origins=yes to see where uninitialised values come from ==29273== ERROR SUMMARY: 416 errors from 28 contexts (suppressed: 13 from 7) Segmentation fault -- components: Interpreter Core messages: 135098 nosy: skrah priority: normal severity: normal status: open title: [2.7/gcc-4.4.3] Segfault under valgrind in string.split() type: crash versions: Python 2.7 ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue11994 ___ ___ Python-bugs-list mailing list Unsubscribe:
[issue11994] [2.7/gcc-4.4.3] Segfault under valgrind in string.split()
STINNER Victor victor.stin...@haypocalc.com added the comment: I can reproduce this only with gcc-4.4.3, so it could also be a compiler bug. You should try to disable compiler optimization: pass -O0 to gcc. E.g. use ./configure --with-pydebug CFLAGS=-O0. -- nosy: +haypo ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue11994 ___ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue6721] Locks in python standard library should be sanitized on fork
Changes by STINNER Victor victor.stin...@haypocalc.com: -- nosy: +haypo ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue6721 ___ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue11995] test_pydoc loads all Python modules
New submission from STINNER Victor victor.stin...@haypocalc.com: PydocUrlHandlerTest.test_url_requests() of test_doc checks search?key=pydoc URL. This operation has to load all Python modules to get their documentation. The problem is that loading all modules can have border effects with other tests. The most recent example: test_signal fails if it runs after test_pydoc. test_pydoc imports _tkinter and _tkinter loads the Tcl library which creates a thread waiting events in select(). The problem is that test_signal supposes that there is only one running thread. Can we run tests loading all modules in a subprocess? I have a fix to test_signal, so this bug is not really blocker, but it's better if a test doesn't touch the environment too much. --- To see which modules are imported by pydoc, you can use: import pydoc; pydoc.ModuleScanner().run(lambda *args: 0, 'XXX') Result on my host (using python -v): __future__ _ast _bz2 _compat_pickle _ctypes _curses _datetime _hashlib _json _multiprocessing _pickle _posixsubprocess _random _socket _sqlite3 _struct _symtable _tkinter array atexit bdb binascii bz2 cmd code codeop concurrent concurrent concurrent.futures concurrent.futures concurrent.futures._base concurrent.futures.process concurrent.futures.thread contextlib copy ctypes ctypes ctypes._endian ctypes.macholib ctypes.macholib ctypes.test ctypes.test curses curses curses.wrapper datetime dbm dbm difflib distutils distutils distutils.command distutils.command distutils.tests distutils.tests doctest email email email.mime email.mime encodings.cp1252 encodings.idna encodings.koi8_r faulthandler fcntl fnmatch gc getopt gettext grp hashlib html html http http idlelib idlelib importlib importlib importlib._bootstrap importlib.test importlib.test importlib.test.builtin importlib.test.builtin importlib.test.extension importlib.test.extension importlib.test.frozen importlib.test.frozen importlib.test.import_ importlib.test.import_ importlib.test.source importlib.test.source json json json.decoder json.encoder json.scanner lib2to3 lib2to3 lib2to3.btm_matcher lib2to3.btm_utils lib2to3.fixer_base lib2to3.fixer_util lib2to3.fixes lib2to3.fixes lib2to3.fixes.fix_imports lib2to3.fixes.fix_imports2 lib2to3.fixes.fix_urllib lib2to3.main lib2to3.patcomp lib2to3.pgen2 lib2to3.pgen2 lib2to3.pgen2.driver lib2to3.pgen2.grammar lib2to3.pgen2.literals lib2to3.pgen2.parse lib2to3.pgen2.pgen lib2to3.pgen2.token lib2to3.pgen2.tokenize lib2to3.pygram lib2to3.pytree lib2to3.refactor lib2to3.tests lib2to3.tests lib2to3.tests.support lib2to3.tests.test_all_fixers lib2to3.tests.test_fixers lib2to3.tests.test_main lib2to3.tests.test_parser lib2to3.tests.test_pytree lib2to3.tests.test_refactor lib2to3.tests.test_util logging logging logging.handlers marshal math msilib msilib multiprocessing multiprocessing multiprocessing.dummy multiprocessing.dummy multiprocessing.dummy.connection multiprocessing.forking multiprocessing.process multiprocessing.queues multiprocessing.synchronize multiprocessing.util myfixes myfixes optparse pdb pickle pprint pwd pydoc_data pydoc_data queue random select shutil socket sqlite3 sqlite3 sqlite3.dbapi2 sqlite3.test sqlite3.test stringprep struct subprocess tarfile tempfile test test test.encoded_modules test.encoded_modules test.json_tests test.json_tests test.leakers test.leakers test.support test.test_email test.test_email test.tracedmodules test.tracedmodules textwrap threading tkinter tkinter tkinter.constants tkinter.test tkinter.test tkinter.test.test_tkinter tkinter.test.test_tkinter tkinter.test.test_ttk tkinter.test.test_ttk turtledemo turtledemo unicodedata unittest unittest unittest.case unittest.loader unittest.main unittest.result unittest.runner unittest.signals unittest.suite unittest.test unittest.test unittest.util urllib urllib wsgiref wsgiref xml xml xml.dom xml.dom xml.dom.domreg xml.dom.minicompat xml.etree xml.etree xml.parsers xml.parsers xml.sax xml.sax xml.sax._exceptions xml.sax.handler xml.sax.xmlreader xmlrpc xmlrpc xxsubtype -- components: Tests messages: 135100 nosy: haypo priority: normal severity: normal status: open title: test_pydoc loads all Python modules versions: Python 3.3 ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue11995 ___ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue11995] test_pydoc loads all Python modules
STINNER Victor victor.stin...@haypocalc.com added the comment: By the way, it is NOT POSSIBLE TO UNLOAD modules implemented in C, even if there is no more Python reference to the module. -- ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue11995 ___ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue11996] libpython.py: nicer py-bt output
New submission from STINNER Victor victor.stin...@haypocalc.com: py-bt is too much verbose, I'm unable to read it. Example: $ gdb -args ./python -c 'import time, threading; threading.Thread(target=lambda:time.sleep(3)).start()' ... [New Thread 0x769d9700 (LWP 17193)] ^C Program received signal SIGINT, Interrupt. sem_wait () at ../nptl/sysdeps/unix/sysv/linux/x86_64/sem_wait.S:86 86 ../nptl/sysdeps/unix/sysv/linux/x86_64/sem_wait.S: Aucun fichier ou dossier de ce type. in ../nptl/sysdeps/unix/sysv/linux/x86_64/sem_wait.S (gdb) py-bt #6 Frame 0xc52620, for file /home/haypo/prog/HG/cpython/Lib/threading.py, line 237, in wait (self=_Condition(release=built-in method release of _thread.lock object at remote 0xc1f1e0, acquire=built-in method acquire of _thread.lock object at remote 0xc1f1e0, _lock=_thread.lock at remote 0xc1f1e0, _waiters=[_thread.lock at remote 0xafb590], _verbose=False) at remote 0xc1cbe0, timeout=None, waiter=_thread.lock at remote 0xafb590, saved_state=None) waiter.acquire() #10 Frame 0xbbb580, for file /home/haypo/prog/HG/cpython/Lib/threading.py, line 851, in join (self=Thread(_target=function at remote 0xbb5d30, _block=_Condition(release=built-in method release of _thread.lock object at remote 0xc1f1e0, acquire=built-in method acquire of _thread.lock object at remote 0xc1f1e0, _lock=_thread.lock at remote 0xc1f1e0, _waiters=[_thread.lock at remote 0xafb590], _verbose=False) at remote 0xc1cbe0, _args=(), _initialized=True, _name='Thread-1', _daemonic=False, _kwargs={}, _stderr=_io.TextIOWrapper at remote 0xac15a0, _ident=140737330910976, _started=_Event(_flag=True, _cond=_Condition(release=built-in method release of _thread.lock object at remote 0xad7e00, acquire=built-in method acquire of _thread.lock object at remote 0xad7e00, _lock=_thread.lock at remote 0xad7e00, _waiters=[], _verbose=False) at remote 0xc1ce40, _verbose=False) at remote 0xaec980, _stopped=False, _verbose=False) at remote 0xc2fb70, timeout=None) self._block.wait() #14 Frame 0xc42eb0, for file /home/haypo/prog/HG/cpython/Lib/threading.py, line 965, in _exitfunc (self=_MainThread(_target=None, _block=_Condition(release=built-in method release of _thread.lock object at remote 0xc66290, acquire=built-in method acquire of _thread.lock object at remote 0xc66290, _lock=_thread.lock at remote 0xc66290, _waiters=[], _verbose=False) at remote 0xc66110, _args=(), _initialized=True, _name='MainThread', _daemonic=False, _kwargs={}, _stderr=_io.TextIOWrapper at remote 0xac15a0, _ident=140737353987840, _started=_Event(_flag=True, _cond=_Condition(release=built-in method release of _thread.lock object at remote 0xc62fe0, acquire=built-in method acquire of _thread.lock object at remote 0xc62fe0, _lock=_thread.lock at remote 0xc62fe0, _waiters=[], _verbose=False) at remote 0xc65d20, _verbose=False) at remote 0xc65840, _stopped=True, _verbose=False) at remote 0xc64c90, t=Thread(_target=function at remote 0xbb5d30, _block=_Condit ion(release=built-in method release o...(truncated) t.join() Attached patch uses a syntax closer to classic Python tracebacks: $ gdb -args ./python -c 'import time, threading; (gdb) run ... [New Thread 0x769d9700 (LWP 17193)] ^C Program received signal SIGINT, Interrupt. sem_wait () at ../nptl/sysdeps/unix/sysv/linux/x86_64/sem_wait.S:86 86 ../nptl/sysdeps/unix/sysv/linux/x86_64/sem_wait.S: Aucun fichier ou dossier de ce type. in ../nptl/sysdeps/unix/sysv/linux/x86_64/sem_wait.S (gdb) py-bt Traceback (most recent call first): File /home/haypo/prog/HG/cpython/Lib/threading.py, line 237, in wait File /home/haypo/prog/HG/cpython/Lib/threading.py, line 851, in join File /home/haypo/prog/HG/cpython/Lib/threading.py, line 965, in _exitfunc (gdb) info threads 2 Thread 0x769d9700 (LWP 17193) 0x772a0c73 in select () at ../sysdeps/unix/syscall-template.S:82 * 1 Thread 0x77fdb700 (LWP 17190) sem_wait () at ../nptl/sysdeps/unix/sysv/linux/x86_64/sem_wait.S:86 (gdb) thread 2 [Switching to thread 2 (Thread 0x769d9700 (LWP 17193))]#0 0x772a0c73 in select () at ../sysdeps/unix/syscall-template.S:82 82 ../sysdeps/unix/syscall-template.S: Aucun fichier ou dossier de ce type. in ../sysdeps/unix/syscall-template.S (gdb) py-bt Traceback (most recent call first): File string, line 1, in lambda File /home/haypo/prog/HG/cpython/Lib/threading.py, line 690, in run File /home/haypo/prog/HG/cpython/Lib/threading.py, line 737, in _bootstrap_inner File /home/haypo/prog/HG/cpython/Lib/threading.py, line 710, in _bootstrap -- components: Demos and Tools files: gdb.patch keywords: patch messages: 135102 nosy: dmalcolm, haypo priority: normal severity: normal status: open title: libpython.py: nicer py-bt output versions: Python 3.3 Added file:
[issue11996] libpython.py: nicer py-bt output
STINNER Victor victor.stin...@haypocalc.com added the comment: I would also like a less verbose output for where, especially be able to hidden the value of the globals argument of PyEval_EvalCodeEx. Example of where output: --- (gdb) where #0 sem_wait () at ../nptl/sysdeps/unix/sysv/linux/x86_64/sem_wait.S:86 #1 0x004d5ff5 in PyThread_acquire_lock_timed (lock=0xc3bc50, microseconds=-1, intr_flag=1) at Python/thread_pthread.h:333 #2 0x004db97e in acquire_timed (lock=0xc3bc50, microseconds=-1) at ./Modules/_threadmodule.c:66 #3 0x004dbbc5 in lock_PyThread_acquire_lock (self=0xafb590, args=(), kwds=0x0) at ./Modules/_threadmodule.c:133 #4 0x005931d6 in PyCFunction_Call (func=built-in method acquire of _thread.lock object at remote 0xafb590, arg=(), kw=0x0) at Objects/methodobject.c:84 #5 0x00489c6d in call_function (pp_stack=0x7fffb738, oparg=0) at Python/ceval.c:3859 #6 0x00484791 in PyEval_EvalFrameEx (f= Frame 0xc52620, for file /home/haypo/prog/HG/cpython/Lib/threading.py, line 237, in wait (self=_Condition(release=built-in method release of _thread.lock object at remote 0xc1f1e0, acquire=built-in method acquire of _thread.lock object at remote 0xc1f1e0, _lock=_thread.lock at remote 0xc1f1e0, _waiters=[_thread.lock at remote 0xafb590], _verbose=False) at remote 0xc1cbe0, timeout=None, waiter=_thread.lock at remote 0xafb590, saved_state=None), throwflag=0) at Python/ceval.c:2657 #7 0x00487db4 in PyEval_EvalCodeEx (_co=code at remote 0xc32cd0, globals= {'current_thread': function at remote 0xc64170, '_BoundedSemaphore': type at remote 0xc503d0, '_Semaphore': type at remote 0xc4fc50, '_Timer': type at remote 0xc62a90, '_format_exc': function at remote 0xb7ca70, 'Semaphore': function at remote 0xc553a0, 'activeCount': function at remote 0xc64a30, '_profile_hook': None, '_sleep': built-in method sleep of module object at remote 0xc25e70, '_trace_hook': None, 'ThreadError': type at remote 0x865c00, '_enumerate': function at remote 0xc64ad0, '_start_new_thread': built-in method start_new_thread of module object at remote 0xa97150, '_CRLock': type at remote 0x83df80, 'BoundedSemaphore': function at remote 0xc4e710, 'currentThread': function at remote 0xc64170, '__all__': ['active_count', 'Condition', 'current_thread', 'enumerate', 'Event', 'Lock', 'RLock', 'Semaphore', 'BoundedSemaphore', 'Thread', 'Barrier', 'Timer', 'setprofile', 'settrace', 'local', 'stack_size'], '_Event': type at remote 0xc43 300, '_PyRLock': type at remote 0xc4...(truncated), locals=0x0, args=0xbbb728, argcount=1, kws=0xbbb730, kwcount=0, defs=0xc4ec28, defcount=1, kwdefs=0x0, closure=0x0) at Python/ceval.c:3295 #8 0x0048a26b in fast_function (func=function at remote 0xc4eb60, pp_stack=0x7fffc418, n=1, na=1, nk=0) at Python/ceval.c:3957 #9 0x00489e43 in call_function (pp_stack=0x7fffc418, oparg=0) at Python/ceval.c:3880 #10 0x00484791 in PyEval_EvalFrameEx (f= Frame 0xbbb580, for file /home/haypo/prog/HG/cpython/Lib/threading.py, line 851, in join (self=Thread(_target=function at remote 0xbb5d30, _block=_Condition(release=built-in method release of _thread.lock object at remote 0xc1f1e0, acquire=built-in method acquire of _thread.lock object at remote 0xc1f1e0, _lock=_thread.lock at remote 0xc1f1e0, _waiters=[_thread.lock at remote 0xafb590], _verbose=False) at remote 0xc1cbe0, _args=(), _initialized=True, _name='Thread-1', _daemonic=False, _kwargs={}, _stderr=_io.TextIOWrapper at remote 0xac15a0, _ident=140737330910976, _started=_Event(_flag=True, _cond=_Condition(release=built-in method release of _thread.lock object at remote 0xad7e00, acquire=built-in method acquire of _thread.lock object at remote 0xad7e00, _lock=_thread.lock at remote 0xad7e00, _waiters=[], _verbose=False) at remote 0xc1ce40, _verbose=False) at remote 0xaec980, _stopped=False, _verbose=False) at remote 0xc2fb70, timeout=None), th rowflag=0) at Python/ceval.c:2657 #11 0x00487db4 in PyEval_EvalCodeEx (_co=code at remote 0xc282d0, globals= {'current_thread': function at remote 0xc64170, '_BoundedSemaphore': type at remote 0xc503d0, '_Semaphore': type at remote 0xc4fc50, '_Timer': type at remote 0xc62a90, '_format_exc': function at remote 0xb7ca70, 'Semaphore': function at remote 0xc553a0, 'activeCount': function at remote 0xc64a30, '_profile_hook': None, '_sleep': built-in method sleep of module object at remote 0xc25e70, '_trace_hook': None, 'ThreadError': type at remote 0x865c00, '_enumerate': function at remote 0xc64ad0, '_start_new_thread': built-in method start_new_thread of module object at remote 0xa97150, '_CRLock': type at remote 0x83df80, 'BoundedSemaphore': function at remote 0xc4e710, 'currentThread': function at remote 0xc64170, '__all__': ['active_count', 'Condition', 'current_thread', 'enumerate', 'Event', 'Lock', 'RLock', 'Semaphore',
[issue11990] redirected output - stdout writes newline as \n in windows
Amaury Forgeot d'Arc amaur...@gmail.com added the comment: Do you have a test scipt for us to reproduce the issues? -- nosy: +amaury.forgeotdarc ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue11990 ___ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue8498] Cannot use backlog = 0 for sockets
Daniel Evers derm...@googlemail.com added the comment: Thanks for the tip. I added the unit test and uploaded my final patch (which includes all changes). Is it ok to remove the files I uploaded previously? -- Added file: http://bugs.python.org/file21879/backlog0_complete.patch ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue8498 ___ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue4106] multiprocessing occasionally spits out exception during shutdown
Miquel Torres tob...@gmail.com added the comment: I can confirm this but with Python 2.7.1 on Ubuntu 11.04 64bit My code was working with a queue that was being fed a two-string tuple. When i changed it to contain my custom Objects, it still worked correctly, but the main program doesn't end until it raises the exception in QueueFeederThread -- nosy: +tobami versions: +Python 2.7 ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue4106 ___ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue11997] One typo in Doc/c-api/init.rst
New submission from Steffen Daode Nurpmeso sdao...@googlemail.com: Yes, i really found a typo. I'll send two patches, one with the typo fixed, and one with the typo fixed and one for which i've :setlocal tw=80:{gq} -- assignee: docs@python components: Documentation messages: 135107 nosy: docs@python, sdaoden priority: normal severity: normal status: open title: One typo in Doc/c-api/init.rst versions: Python 2.7, Python 3.1, Python 3.2, Python 3.3 ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue11997 ___ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue11997] One typo in Doc/c-api/init.rst
Steffen Daode Nurpmeso sdao...@googlemail.com added the comment: 11997.1.diff only corrects the typo, 11997.2.diff does also reformat. (Note that all of init.rst is hard to read on a 80 column terminal.) -- keywords: +patch Added file: http://bugs.python.org/file21880/11997.1.diff Added file: http://bugs.python.org/file21881/11997.2.diff ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue11997 ___diff --git a/Doc/c-api/init.rst b/Doc/c-api/init.rst --- a/Doc/c-api/init.rst +++ b/Doc/c-api/init.rst @@ -883,7 +883,7 @@ modules. Also note that combining this functionality with :c:func:`PyGILState_\*` APIs -is delicate, become these APIs assume a bijection between Python thread states +is delicate, because these APIs assume a bijection between Python thread states and OS-level threads, an assumption broken by the presence of sub-interpreters. It is highly recommended that you don't switch sub-interpreters between a pair of matching :c:func:`PyGILState_Ensure` and :c:func:`PyGILState_Release` calls. diff --git a/Doc/c-api/init.rst b/Doc/c-api/init.rst --- a/Doc/c-api/init.rst +++ b/Doc/c-api/init.rst @@ -882,14 +882,14 @@ by such objects may affect the wrong (sub-)interpreter's dictionary of loaded modules. -Also note that combining this functionality with :c:func:`PyGILState_\*` APIs -is delicate, become these APIs assume a bijection between Python thread states -and OS-level threads, an assumption broken by the presence of sub-interpreters. -It is highly recommended that you don't switch sub-interpreters between a pair -of matching :c:func:`PyGILState_Ensure` and :c:func:`PyGILState_Release` calls. -Furthermore, extensions (such as :mod:`ctypes`) using these APIs to allow calling -of Python code from non-Python created threads will probably be broken when using -sub-interpreters. +Also note that combining this functionality with :c:func:`PyGILState_\*` APIs is +delicate, because these APIs assume a bijection between Python thread states and +OS-level threads, an assumption broken by the presence of sub-interpreters. It +is highly recommended that you don't switch sub-interpreters between a pair of +matching :c:func:`PyGILState_Ensure` and :c:func:`PyGILState_Release` calls. +Furthermore, extensions (such as :mod:`ctypes`) using these APIs to allow +calling of Python code from non-Python created threads will probably be broken +when using sub-interpreters. Asynchronous Notifications ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue11998] test_signal cannot test blocked signals if _tkinter is loaded
New submission from STINNER Victor victor.stin...@haypocalc.com: I'm working on signals, especially on pthread_sigmask(), and I'm trying to understand test_signal failures. test_signal fails if the _tkinter module is loaded, because _tkinter loads the Tcl library which create a thread waiting events in select(). For example, python -m test test_pydoc test_signal fails, because test_pydoc loads ALL Python modules. I opened an issue for test_pydoc: http://bugs.python.org/issue11995 _tkinter.c contains the following code: #if 0 /* This was not a good idea; through Destroy bindings, Tcl_Finalize() may invoke Python code but at that point the interpreter and thread state have already been destroyed! */ Py_AtExit(Tcl_Finalize); #endif Tcl_Finalize() exits the thread, but this function is never called in Python. Anyway, it is not possible to unload a module implemented in C. I would like to know if it would be possible to mask all signals in the Tcl thread, or if Tcl supports/uses signals. It is possible to mask all signals in the Tcl thread using: -- allsignals = range(1, signal.NSIG) oldmask = signal.pthread_sigmask(signal.SIG_BLOCK, allsignals) import _tkinter signal.pthread_sigmask(signal.SIG_SETMASK, oldmask) -- I'm not asking the question for test_signal: I have a patch fixing test_signal, even if the Tcl zombi thread is present (use pthread_kill() to send the signal directly to the main thread). (I wrote zombi thread because I was not aware that Tcl uses a thread, nor that test_pydoc loads all modules. The thread is valid, alive, and it's just a joke. The threads is more hidden than zombi.) (Message copied/pasted from python-dev) -- components: Tests, Tkinter messages: 135109 nosy: haypo priority: normal severity: normal status: open title: test_signal cannot test blocked signals if _tkinter is loaded versions: Python 3.3 ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue11998 ___ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue11995] test_pydoc loads all Python modules
STINNER Victor victor.stin...@haypocalc.com added the comment: See also #11998 for test_signal and _tkinter issue (test_pydoc + test_signal). -- ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue11995 ___ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue11998] test_signal cannot test blocked signals if _tkinter is loaded
Roundup Robot devnull@devnull added the comment: New changeset 88dca05ed468 by Victor Stinner in branch 'default': Issue #11998, issue #8407: workaround _tkinter issue in test_signal http://hg.python.org/cpython/rev/88dca05ed468 -- nosy: +python-dev ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue11998 ___ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue8407] expose signalfd(2) and pthread_sigmask in the signal module
STINNER Victor victor.stin...@haypocalc.com added the comment: c) Skip the test if the _tkinter thread is present (...) I opened issue #11998 for the problem with test_signal and the _tkinter module. To get back green buildbots, I commited a workaround: New changeset 88dca05ed468 by Victor Stinner in branch 'default': Issue #11998, issue #8407: workaround _tkinter issue in test_signal http://hg.python.org/cpython/rev/88dca05ed468 a) Use pthread_kill() to send the signal directly to the right thread (...) I'm still working on this solution to test blocked signals even if _tkinter is loaded. -- ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue8407 ___ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue11998] test_signal cannot test blocked signals if _tkinter is loaded
STINNER Victor victor.stin...@haypocalc.com added the comment: As suggested by Antoine, here is a patch to call Tcl_Finalize() in test_signal. You can call create a Tcl/Tk window, destroy it, call _tkinter._finalize(), and then create a new Tcl/Tk window. But call _tkinter._finalize() crashes if there is still a running Tcl/Tk window. We should add a safety test checking that there is no more running widget. If it is not possible to implement this, the function should only be compiled in debug mode. If it is possible, it would be nice to call _tkinter._finalize() when the last widget is destroyed and/or at Python exit. -- keywords: +patch nosy: +gpolo Added file: http://bugs.python.org/file21882/tkinter_finalize.patch ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue11998 ___ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue11873] test_regexp() of test_compileall fails occassionally
Nick Coghlan ncogh...@gmail.com added the comment: A quick eyeball of the test doesn't reveal anything obvious: - if the subprocess is failing, it is doing so in such a way that it is still returning a 0 error code and isn't writing anything to stdout (as those assertions are before the check that the expected compiled file exists) - the invocation of script_helper looks sensible - if the directory creation fails, it won't get as far as running the subprocess To instrument this, I would suggest starting by adding an assertion message on the failing assertion that includes fn. My guess is that with the random directory name in there, the regex is triggering on the directory name and hence excluding the __init__.py file as well. -- nosy: +ncoghlan ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue11873 ___ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue11834] wrong module installation dir on Windows
anatoly techtonik techto...@gmail.com added the comment: It's always a pleasure. ;) -- ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue11834 ___ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue11873] test_regexp() of test_compileall fails occassionally
Nick Coghlan ncogh...@gmail.com added the comment: Hmm, I probably should have revised the first half of my comment after I had the thought about simple regex + random directory name being potentially problematic. I don't think that theory really counts as obvious, though... -- ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue11873 ___ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue11999] sporadic failure in test_mailbox on FreeBSD
New submission from STINNER Victor victor.stin...@haypocalc.com: test_mailbox fails sometimes on FreeBSD. Recent example on AMD FreeBSD 8.2 3.x: --- [200/354] test_mailbox test test_mailbox failed -- Traceback (most recent call last): File /usr/home/buildbot/buildarea/3.x.krah-freebsd/build/Lib/test/test_mailbox.py, line 905, in test_reread assert refreshed() AssertionError --- http://www.python.org/dev/buildbot/all/builders/AMD64%20FreeBSD%208.2%203.x/builds/180/steps/test/logs/stdio -- components: Library (Lib), Tests messages: 135117 nosy: haypo priority: normal severity: normal status: open title: sporadic failure in test_mailbox on FreeBSD versions: Python 3.3 ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue11999 ___ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue8407] expose signalfd(2) and pthread_sigmask in the signal module
Roundup Robot devnull@devnull added the comment: New changeset a5890ff5e3d5 by Victor Stinner in branch 'default': Issue #8407: signal.pthread_sigmask() returns a set instead of a list http://hg.python.org/cpython/rev/a5890ff5e3d5 -- ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue8407 ___ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue12000] SSL certificate verification failed if no dNSName entry in subjectAltName
New submission from Nicolas Bareil n...@chdir.org: When connecting to a SSL server, the certificate verification failed if it has a subjectAltName extension without any dNSName entry inside: it should fallback to the Common Name. Example: cert = conn.getpeercert() cert {'notAfter': 'May 15 14:31:42 2011 GMT', 'subject': ((('countryName', u'FR'),), (('stateOrProvinceName', u'Ile-de-France'),), (('localityName', u'Paris'),), (('organizationName', 'xxx'),), (('organizationalUnitName', 'xxx'),), (('commonName', 'foobar.corp'),), (('emailAddress', u't...@test.net'),)), 'subjectAltName': (('email', t...@test.net'),)} This certificate is valid according to RFC 2818: If a subjectAltName extension of type dNSName is present, that MUST be used as the identity. Otherwise, the (most specific) Common Name field in the Subject field of the certificate MUST be used. Although the use of the Common Name is existing practice, it is deprecated and Certification Authorities are encouraged to use the dNSName instead. Even if the use of CommonName is deprecated, we should not break existing systems. Current revision of Lib/ssl.py : 108 def match_hostname(cert, hostname): ... 119 san = cert.get('subjectAltName', ()) 120 for key, value in san: 121 if key == 'DNS': 122 if _dnsname_to_pat(value).match(hostname): 123 return 124 dnsnames.append(value) 125 if not san: 126 # The subject is only checked when subjectAltName is empty 127 for sub in cert.get('subject', ()): 128 for key, value in sub: 129 # XXX according to RFC 2818, the most specific Common Name 130 # must be used. 131 if key == 'commonName': 132 if _dnsname_to_pat(value).match(hostname): 133 return 134 dnsnames.append(value) ... Proposed patch is: diff -r 513f6dfd3173 Lib/ssl.py --- a/Lib/ssl.pySun May 01 20:24:59 2011 -0500 +++ b/Lib/ssl.pyMon May 02 11:16:46 2011 +0200 @@ -122,8 +122,9 @@ if _dnsname_to_pat(value).match(hostname): return dnsnames.append(value) - if not san: - # The subject is only checked when subjectAltName is empty + if not san and not dnsnames: + # The subject is only checked when there is no dNSName entry + # in subjectAltName for sub in cert.get('subject', ()): for key, value in sub: # XXX according to RFC 2818, the most specific Common Name -- components: Library (Lib) messages: 135119 nosy: nbareil priority: normal severity: normal status: open title: SSL certificate verification failed if no dNSName entry in subjectAltName type: behavior versions: Python 3.2, Python 3.3, Python 3.4 ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue12000 ___ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue11982] json.loads() returns str instead of unicode for empty strings
Roundup Robot devnull@devnull added the comment: New changeset 9d5a50e5d8a2 by Ezio Melotti in branch '2.7': #11982: fix json.loads('') to return u'' rather than ''. http://hg.python.org/cpython/rev/9d5a50e5d8a2 -- nosy: +python-dev ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue11982 ___ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue11982] json.loads() returns str instead of unicode for empty strings
Ezio Melotti ezio.melo...@gmail.com added the comment: Fixed, thanks for the report! -- resolution: accepted - fixed stage: - committed/rejected status: open - closed ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue11982 ___ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue8407] expose signalfd(2) and pthread_sigmask in the signal module
STINNER Victor victor.stin...@haypocalc.com added the comment: pending_signals.patch: add pthread_kill(), sigpending() and sigwait() functions with doc and tests. I added many See also in the doc, e.g. os.kill() gives a link to signal.pthread_kill(). Note: the patch renames also BasicSignalTests to PosixTests, it's not related to the other changes. -- Added file: http://bugs.python.org/file21883/pending_signals.patch ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue8407 ___ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue11998] test_signal cannot test blocked signals if _tkinter is loaded; Tcl_Finalize()
Changes by STINNER Victor victor.stin...@haypocalc.com: -- title: test_signal cannot test blocked signals if _tkinter is loaded - test_signal cannot test blocked signals if _tkinter is loaded; Tcl_Finalize() ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue11998 ___ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue11277] Crash with mmap and sparse files on Mac OS X
STINNER Victor victor.stin...@haypocalc.com added the comment: Reopen, test_zlib fails with Python 2.7 on Windows: == ERROR: test_big_buffer (test.test_zlib.ChecksumBigBufferTestCase) -- Traceback (most recent call last): File D:\cygwin\home\db3l\buildarea\2.7.bolen-windows\build\lib\test\test_zlib.py, line 91, in test_big_buffer m = mmap.mmap(f.fileno(), 0, access=mmap.ACCESS_READ) WindowsError: [Error 87] The parameter is incorrect http://www.python.org/dev/buildbot/all/builders/x86%20XP-4%202.7/builds/854/steps/test/logs/stdio -- resolution: fixed - status: closed - open ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue11277 ___ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue11277] Crash with mmap and sparse files on Mac OS X
Roundup Robot devnull@devnull added the comment: New changeset 1ef2a7319849 by Victor Stinner in branch '2.7': Issue #11277: fix issue number in a test_zlib comment http://hg.python.org/cpython/rev/1ef2a7319849 -- ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue11277 ___ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue11277] Crash with mmap and sparse files on Mac OS X
STINNER Victor victor.stin...@haypocalc.com added the comment: x86 debian parallel 2.7, x86 Ubuntu Shared 2.7 and x86 Tiger 2.7 fail with mmap.error('[Errno 12] Cannot allocate memory'). http://www.python.org/dev/buildbot/all/builders/x86%20Ubuntu%20Shared%202.7/builds/866/steps/test/logs/stdio http://www.python.org/dev/buildbot/all/builders/x86%20Tiger%202.7/builds/776/steps/test/logs/stdio http://www.python.org/dev/buildbot/all/builders/x86%20debian%20parallel%202.7/builds/739/steps/test/logs/stdio == ERROR: test_big_buffer (test.test_zlib.ChecksumBigBufferTestCase) -- Traceback (most recent call last): File /srv/buildbot/buildarea/2.7.bolen-ubuntu/build/Lib/test/test_zlib.py, line 91, in test_big_buffer m = mmap.mmap(f.fileno(), 0, access=mmap.ACCESS_READ) error: [Errno 12] Cannot allocate memory -- ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue11277 ___ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue11999] sporadic failure in test_mailbox on FreeBSD
Steffen Daode Nurpmeso sdao...@googlemail.com added the comment: I think this relates #6896. Maybe a two second resolution should be tried? -- keywords: +patch nosy: +sdaoden Added file: http://bugs.python.org/file21884/11999.1.diff ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue11999 ___diff --git a/Lib/mailbox.py b/Lib/mailbox.py --- a/Lib/mailbox.py +++ b/Lib/mailbox.py @@ -514,13 +514,11 @@ else: return -# We record the current time - 1sec so that, if _refresh() is called -# again in the same second, we will always re-read the mailbox -# just in case it's been modified. (os.path.mtime() only has -# 1sec resolution.) This results in a few unnecessary re-reads -# when _refresh() is called multiple times in the same second, -# but once the clock ticks over, we will only re-read as needed. -now = time.time() - 1 +# Try to be fancy by using a date in the past for our _last_read mtime +# checks (see issues #6896, #11999) +# Using a two second resolution should be enough to overcome all +# fuzziness which may be introduced along the different filesystems. +now = time.time() - 2 self._toc = {} def update_dir (subdir): ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue10946] bdist doesn’t pass --skip-build on to subcommands
Changes by Senthil Kumaran sent...@uthcode.com: -- nosy: +orsenthil ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue10946 ___ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue11982] json.loads() returns str instead of unicode for empty strings
Roundup Robot devnull@devnull added the comment: New changeset d3bd384df8ca by Ezio Melotti in branch '2.7': #11982: remove now unused function. http://hg.python.org/cpython/rev/d3bd384df8ca -- ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue11982 ___ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue11999] sporadic failure in test_mailbox on FreeBSD
Changes by R. David Murray rdmur...@bitdance.com: -- nosy: +r.david.murray ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue11999 ___ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue11834] wrong module installation dir on Windows
Changes by Brian Curtin br...@python.org: -- status: open - closed ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue11834 ___ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue5755] -Wstrict-prototypes is valid for Ada/C/ObjC but not for C++
Peter Le Bek pe...@hyperplex.net added the comment: distutils reuses whatever flags Python was built with, covered here: http://bugs.python.org/issue1222585 (and here http://bugs.python.org/issue9031). -- nosy: +vokoda ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue5755 ___ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue11277] Crash with mmap and sparse files on Mac OS X
Steffen Daode Nurpmeso sdao...@googlemail.com added the comment: error: [Errno 12] Cannot allocate memory @haypo: Well i told you i have no idea. These bots are 32 bit? I'll attach 11277-27.3.diff which does @skipUnless(not 32 bit). Note i'll test against _4G - does this work (on 32 bit and in Python)? A pity that Python does not offer a 'condition is always true due to datatype storage restriction' check?! And i don't think it makes sense to test a _1GB mmap on 32 bit at all (but at least address space shouldn't exhaust for that). So, sorry, also for the two bugs in that two-liner, but very especially the 'm' case. -- Added file: http://bugs.python.org/file21885/11277-27.3.diff ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue11277 ___diff --git a/Lib/test/test_zlib.py b/Lib/test/test_zlib.py --- a/Lib/test/test_zlib.py +++ b/Lib/test/test_zlib.py @@ -2,7 +2,7 @@ from test.test_support import TESTFN, run_unittest, import_module, unlink, requires import binascii import random -from test.test_support import precisionbigmemtest, _1G +from test.test_support import precisionbigmemtest, _1G, _2G, _4G import sys try: @@ -75,17 +75,16 @@ # Issue #11277 - check that inputs of 2 GB are handled correctly. # Be aware of issues #1202, #8650, #8651 and #10276 class ChecksumBigBufferTestCase(unittest.TestCase): -int_max = 0x7FFF - +@unittest.skipUnless(sys.maxsize _4G, Can't run on a 32-bit system.) @unittest.skipUnless(mmap, mmap() is not available.) def test_big_buffer(self): if sys.platform[:3] == 'win' or sys.platform == 'darwin': requires('largefile', 'test requires %s bytes and a long time to run' % - str(self.int_max)) + str(_2G -1)) try: with open(TESTFN, wb+) as f: -f.seek(self.int_max-4) +f.seek(_2G -1-4) f.write(asdf) f.flush() m = mmap.mmap(f.fileno(), 0, access=mmap.ACCESS_READ) ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue3526] Customized malloc implementation on SunOS and AIX
Sébastien Sablé sa...@users.sourceforge.net added the comment: Another reason why you should not force dlmalloc for all applications linked with libpython is because dlmalloc is (by default) not thread safe, while the system malloc is (generally) thread-safe. It is possible to define a constant in dlmalloc to make it thread-safe (using locks) but it will be slower and it is not needed in Python since the GIL must be held when using PyMem_ functions. If a thread-safe implementation was needed, it would be better to switch to ptmalloc2. Also that addresses the issue of two threads inside different malloc implementations at the same time: it is currently not allowed with PyMem_Malloc. Most of the allocations come from the heap - through sbrk Most python objects will be allocated in pymalloc arenas (if they are smaller than 256 bytes) which (if compiled with --with-pymalloc-mmap) will be directly allocated by calling mmap, or (without --with-pymalloc-mmap) will be allocated in dlmalloc by calling mmap (because arenas are 256KB). So most of the python objects will end up in mmap segments separate from the heap. The only allocations that will end up in the heap are for the medium python objects (256 bytes and 256KB) or for allocations directly by calling PyMem_Malloc (and for a size 256KB). Also dlmalloc will not call sbrk for each of those allocations: dlmalloc allocates some large memory pools and manage the smaller allocations within those pools in a very efficient way. So the heap fragmentation should be indeed reduced by using dlmalloc. Most modern malloc implementations are also using pools/arenas anyway, so the heap will mostly contain a mix of native malloc arenas and dlmalloc pools. So the fragmentation should not be too much of a concern if you mix 2 malloc implementations. Here is OpenSolaris malloc implementation for example: http://src.opensolaris.org/source/xref/onnv/onnv-gate/usr/src/lib/libmalloc/common/malloc.c#514 Concerning trimming: the reason why I am proposing to use dlmalloc on AIX and Solaris is that the native malloc/free do not correctly trim the heap in the first place on those platforms! If malloc/free correctly worked on those platforms and the heap was trimmed when possible, I would not have taken the trouble of proposing this patch and using dlmalloc, I would happily use the native malloc/free. So mixing 2 malloc implementations should not be a problem as long as you keep track of the right 'free' implementation to use for each pointer (which should already be the case when you call PyMem_Malloc/PyMem_Free instead of malloc/free). If you are really concerned about mixing 2 malloc implementations in the heap, you can define HAVE_MORECORE 0 in dlmalloc and that way dlmalloc will always use mmap and not use the heap at all. My application uses the provided patch so that dlmalloc is used for Python objects and the native malloc for all the rest (much less consuming than the Python part) on AIX and SunOS. It has been in production for years and we never experienced any crash related to memory problems. -- ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue3526 ___ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue12001] Extend json.dumps to handle N-triples strings
New submission from Glenn Ammons glenn.amm...@gmail.com: The string format used in N-triples is very similar to that used in JSON (see http://www.w3.org/TR/rdf-testcases/#ntrip_strings). It would be handy if json.dumps could (optionally) follow the N-triples format. The differences are 1) In \u escapes, the hexadecimal digits must be capitalized. 2) N-triples uses \u escapes instead of \b and \f -- components: Extension Modules messages: 135131 nosy: Glenn.Ammons priority: normal severity: normal status: open title: Extend json.dumps to handle N-triples strings type: feature request versions: Python 2.7, Python 3.4 ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue12001 ___ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue11949] Make float('nan') unorderable
Alexander Belopolsky belopol...@users.sourceforge.net added the comment: On Tue, May 3, 2011 at 12:05 PM, Mark Dickinson rep...@bugs.python.org wrote: .. I was thinking of something like the rAssertAlmostEqual method in test_cmath. This one is good. I wonder if it would be appropriate to move rAssertAlmostEqual() up to unitetest.case possibly replacing assertAlmostEqual()? If replacing assertAlmostEqual() is not an option, I would call it assertFloatAlmostEqual(). -- ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue11949 ___ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue12001] Extend json.dumps to handle N-triples strings
Changes by Ezio Melotti ezio.melo...@gmail.com: -- components: +Library (Lib) nosy: +ezio.melotti versions: +Python 3.3 -Python 2.7, Python 3.4 ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue12001 ___ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue11985] Document that platform.python_implementation supports PyPy
Éric Araujo mer...@netwok.org added the comment: Could you update the docstring as well? -- ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue11985 ___ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue11985] Document that platform.python_implementation supports PyPy
Roundup Robot devnull@devnull added the comment: New changeset affec521b330 by Ezio Melotti in branch '2.7': #11985: update docstring of platform.python_implementation. http://hg.python.org/cpython/rev/affec521b330 New changeset 7bf9d7ae6c94 by Ezio Melotti in branch '3.1': #11985: update docstring of platform.python_implementation. http://hg.python.org/cpython/rev/7bf9d7ae6c94 New changeset cc7342b4e59d by Ezio Melotti in branch '3.2': #11985: merge with 3.1. http://hg.python.org/cpython/rev/cc7342b4e59d New changeset 6b95bf39842f by Ezio Melotti in branch 'default': #11985: merge with 3.2. http://hg.python.org/cpython/rev/6b95bf39842f -- ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue11985 ___ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue11985] Document that platform.python_implementation supports PyPy
Éric Araujo mer...@netwok.org added the comment: Thanks! -- ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue11985 ___ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue11993] Use sub-second resolution to determine if a file is newer
Éric Araujo mer...@netwok.org added the comment: To quote the initial message: If it were desired to determine which file was newer using sub-second values, perhaps that would make a reasonable change in distutils2, but files created with a few microseconds would have to be considered equivalent due to the reduced precision available in python floats (53 bits on my platform, if I understand correctly) as compared to the 64 bit precision used by some operating systems and file systems. -- title: Is it desired to distinguish new files from old with sub-second resolution? - Use sub-second resolution to determine if a file is newer versions: +Python 3.3 -Python 2.7 ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue11993 ___ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue11991] test_distutils fails because of bad filename match
Éric Araujo mer...@netwok.org added the comment: Closing as duplicate. Please join the discussion at #11340 if you have feedback or a patch :) -- resolution: - duplicate stage: - committed/rejected status: open - closed superseder: - test_distutils fails because of borked compress program ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue11991 ___ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue11970] distutils command 'upload' crashes when --show-response is selected
Éric Araujo mer...@netwok.org added the comment: Are you sure? This looks like #10367 (unsolved yet), not #9199 (fixed). -- ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue11970 ___ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue11970] distutils command 'upload' crashes when --show-response is selected
Chris Rose off...@offby1.net added the comment: No, not 100% sure, but my read of the 2.7 branch code certainly seemed to suggest that it was fixed. in distutil/commands/upload.py: Line 193 gets the response unconditionally as 'r' from the http object Line 201 uses 'r' to show the response. I might be missing a form that the 'r' object can take that isn't going to have a read() method, but I doubt it. -- ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue11970 ___ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue11970] distutils command 'upload' crashes when --show-response is selected
Chris Rose off...@offby1.net added the comment: ... oh, except I'm an idiot, and I think I'm reading tip code there. Yep, I'm an idiot. Okay, but this is still a dupe of #10367 -- resolution: invalid - duplicate ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue11970 ___ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue11970] distutils command 'upload' crashes when --show-response is selected
Changes by Éric Araujo mer...@netwok.org: -- stage: - committed/rejected superseder: - python setup.py sdist upload --show-response can fail with UnboundLocalError: local variable 'result' referenced before assignment ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue11970 ___ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue11990] redirected output - stdout writes newline as \n in windows
James Hutchison jamesghutchi...@gmail.com added the comment: Yes and no, I can give you a single process single child example that just shows that python 3.2 uses binary output while python 3.1 used system default when piping, but trying to reproduce the multiprocessing output inconsistencies would be... difficult. Unfortunately the software I used to spot the \n, \r\n inconsistency with is proprietary. After creating a sample case in only python I couldn't reproduce the inconsistent \r\n issue in python 3.2 so I cannot say for certain that it wasn't caused by my C# program. I wouldn't worry about the inconsistent endlines for now. Note that I don't see in the what's new documentation it mentioning that 3.2 changed the behavior of piped output. Kind of a big deal. Sample code to compare 3.1 and 3.2 piped output: import sys; import os; import subprocess; from time import sleep; python31loc = rC:\python31\python.exe; python32loc = rC:\python32\python.exe; myname = IOPipetest.py; def main(args): if(len(args) == 1): # main code print(Testing python 3.1 endlines., end='\r\n'); output = subprocess.check_output(%s %s -output % (python31loc, myname)); print(output); print(Testing python 3.2 endlines., end='\r\n'); output = subprocess.check_output(%s %s -output % (python32loc, myname)); print(output); sleep(7); else: for i in range(4): print(TESTING DEFAULT); # endline is supposed to be automatic print(TESTING SLASH-EN\n, end=''); print(TESTING WINDOW-RETURN\r\n, end=''); if __name__ == __main__: main(sys.argv); -- sample output: Testing python 3.1 endlines. b'TESTING DEFAULT\r\nTESTING SLASH-EN\r\nTESTING WINDOW-RETURN\r\r\nTESTING DEFAULT\r\nTESTING SLASH-EN\r\nTESTING WINDOW-RETURN\r\r\nTESTING DEFAULT\r\nTESTING SLASH-EN\r\nTESTING WINDOW-RETURN\r\r\nTESTING DEFAULT\r\nTESTING SLASH-EN\r\nTESTING WINDOW-RETURN\r\r\n' Testing python 3.2 endlines. b'TESTING DEFAULT\nTESTING SLASH-EN\nTESTING WINDOW-RETURN\r\nTESTING DEFAULT\nTESTING SLASH-EN\nTESTING WINDOW-RETURN\r\nTESTING DEFAULT\nTESTING SLASH-EN\nTESTING WINDOW-RETURN\r\nTESTING DEFAULT\nTESTING SLASH-EN\nTESTING WINDOW-RETURN\r\n' -- ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue11990 ___ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue11994] [2.7/gcc-4.4.3] Segfault under valgrind in string.split()
Changes by Daniel Stutzbach stutzb...@google.com: -- nosy: +stutzbach ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue11994 ___ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue11994] [2.7/gcc-4.4.3] Segfault under valgrind in string.split()
Stefan Krah stefan-use...@bytereef.org added the comment: STINNER Victor rep...@bugs.python.org wrote: You should try to disable compiler optimization: pass -O0 to gcc. E.g. use ./configure --with-pydebug CFLAGS=-O0. I did, see only occurs when python is compiled with optimizations. :) -- ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue11994 ___ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue11995] test_pydoc loads all Python modules
Changes by Arfrever Frehtes Taifersar Arahesis arfrever@gmail.com: -- nosy: +Arfrever ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue11995 ___ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue6721] Locks in python standard library should be sanitized on fork
Antoine Pitrou pit...@free.fr added the comment: - what's current_thread_id ? If it's thread_get_ident (pthread_self), since TID is not guaranteed to be inherited across fork, this won't work Ouch, then the approach I'm proposing is probably doomed. And it's true with every lock in the library code: they're only held in short critical sections (typically acquired when entering a function and released when leaving), and since it's not the threads inside those libraries that fork, all those locks can simply be reinitialized on fork, without having the reacquire them. Well, this means indeed that *some* locks can be handled, but not all of them and not automatically, right? Also, how would you propose they be dealt with in practice? How do they get registered, and how does the reinitialization happen? (do note that library code can call arbitrary third-party code, by the way: for example through encodings in the text I/O layer) -- ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue6721 ___ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue1856] shutdown (exit) can hang or segfault with daemon threads running
Roundup Robot devnull@devnull added the comment: New changeset 2a19d09b08f8 by Antoine Pitrou in branch '3.2': Issue #1856: Avoid crashes and lockups when daemon threads run while the http://hg.python.org/cpython/rev/2a19d09b08f8 New changeset c892b0321d23 by Antoine Pitrou in branch 'default': Issue #1856: Avoid crashes and lockups when daemon threads run while the http://hg.python.org/cpython/rev/c892b0321d23 -- nosy: +python-dev ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue1856 ___ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue11072] Add MLSD command support to ftplib
Giampaolo Rodola' g.rod...@gmail.com added the comment: Eric, any further comments about the patch? Can we go on and commit it? -- ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue11072 ___ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue1856] shutdown (exit) can hang or segfault with daemon threads running
Antoine Pitrou pit...@free.fr added the comment: Should be fixed in 3.2 and 3.3 now. I don't really want to bother with 2.7 and 3.1 (the GIL implementation is different), but someone can backport the patch if they want to :) -- resolution: - fixed stage: patch review - committed/rejected status: open - closed versions: -Python 2.7, Python 3.1 ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue1856 ___ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue11995] test_pydoc loads all Python modules
Arfrever Frehtes Taifersar Arahesis arfrever@gmail.com added the comment: It might be possible to use a part of patch for issue #1674555. A newer version of that patch can be found in: http://overlays.gentoo.org/svn/proj/python/overlays/python/dev-lang/python/files/3.3-20110417/23_all_tests_environment.patch -- ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue11995 ___ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue3526] Customized malloc implementation on SunOS and AIX
Charles-François Natali neolo...@free.fr added the comment: Also that addresses the issue of two threads inside different malloc implementations at the same time: it is currently not allowed with PyMem_Malloc. That's not true. You can perfectly have one thread inside PyMem_Malloc while another one is inside libc's malloc. For example, posix_listdir does: Py_BEGIN_ALLOW_THREADS dirp = opendir(name); Py_END_ALLOW_THREADS Where opendir calls malloc internally. Since the GIL is released, you can have another thread inside PyMem_Malloc at the same time. This is perfectly safe, as long as the libc's malloc version is thread-safe. But with your patch, such code wouldn't be thread-safe anymore. This patch implies that a thread can't call malloc directly or indirectly (printf, opendir, and many others) while it doesn't hold the GIL. This is going to break a lot of existing code. This thread-safety issue is not theoretical: I wrote up a small program with two threads, one allocating/freeing memory in loop with glibc's malloc and the other one with dlmalloc: it crashes immediately on a Linux box. Most python objects will be allocated in pymalloc arenas (if they are smaller than 256 bytes) which (if compiled with --with-pymalloc-mmap) will be directly allocated by calling mmap, or (without --with-pymalloc-mmap) will be allocated in dlmalloc by calling mmap (because arenas are 256KB). So most of the python objects will end up in mmap segments separate from the heap. The only allocations that will end up in the heap are for the medium python objects (256 bytes and 256KB) or for allocations directly by calling PyMem_Malloc (and for a size 256KB). Note that there are actually many objects falling into this category: for example, on 64-bit, a dictionary exceeds 256B, and is thus allocated directly from the heap (well, it changed really recently actually), the same holds for medium-sized lists and strings. So, depending on your workload, the heap can extend and shrink quite a bit. If you are really concerned about mixing 2 malloc implementations in the heap, you can define HAVE_MORECORE 0 in dlmalloc and that way dlmalloc will always use mmap and not use the heap at all. It will also be slower, and consume more memory. -- ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue3526 ___ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue11954] 3.3 - 'make test' fails
Stefan Krah stefan-use...@bytereef.org added the comment: I just ran into this with test_httpserver/Python2.7, which fails if run as root. If I understand correctly this is the main problem here. Jason, do you agree to change the issue title to reflect this? -- nosy: +skrah versions: +Python 2.7, Python 3.1, Python 3.2 ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue11954 ___ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue11049] add tests for test.support
Changes by Sandro Tosi sandro.t...@gmail.com: -- nosy: +sandro.tosi ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue11049 ___ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue11015] Bring test.support docs up to date
Changes by Sandro Tosi sandro.t...@gmail.com: -- nosy: +sandro.tosi ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue11015 ___ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue11277] Crash with mmap and sparse files on Mac OS X
Roundup Robot devnull@devnull added the comment: New changeset 7f3cab59ef3e by Victor Stinner in branch '2.7': Issue #11277: test_zlib tests a buffer of 1 GB on 32 bits http://hg.python.org/cpython/rev/7f3cab59ef3e -- ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue11277 ___ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue11277] Crash with mmap and sparse files on Mac OS X
Roundup Robot devnull@devnull added the comment: New changeset e6a4deb84e47 by Victor Stinner in branch '2.7': Issue #11277: oops, fix checksum values of test_zlib on 32 bits http://hg.python.org/cpython/rev/e6a4deb84e47 -- ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue11277 ___ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue11277] Crash with mmap and sparse files on Mac OS X
Steffen Daode Nurpmeso sdao...@googlemail.com added the comment: @haypo: Oh. Not: if sys.maxsize _4G: # (64 bits system) crc32() and adler32() stores the buffer size into an # int, the maximum filesize is INT_MAX (0x7FFF) filesize = 0x7FFF crc_res = 0x709418e7 adler_res = -2072837729 else: # (32 bits system) On a 32 bits OS, a process cannot usually address # more than 2 GB, so test only 1 GB filesize = _1G crc_res = 0x2b09ee11 adler_res = -1002962529 self.assertEqual(zlib.crc32(m), self.crc_res) self.assertEqual(zlib.adler32(m), self.adler_res) I'm not that fast. -- ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue11277 ___ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue1516897] Use dynload_shlib on newer HP-UX versions
Oren Held o...@held.org.il added the comment: ajaksu2: the ticket you referred to fixed it for Darwin only, afaik. HP-UX, regardless of versions, still use the old dynload_hpux.c. -- nosy: +Oren_Held ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue1516897 ___ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue1487481] Could BIND_FIRST be removed on HP-UX?
Changes by Oren Held o...@held.org.il: -- nosy: +Oren_Held ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue1487481 ___ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue665194] datetime-RFC2822 roundtripping
R. David Murray rdmur...@bitdance.com added the comment: Here is a patch that adds datetime support to email.utils.formatdate. Ultimately the email package will give programs access to datetime+timezone representations of the dates in various headers, so this provides the output end of the round trip. Alexander, if you could review this that would be great. There may be bugs in the logic of formatdate, but my hope is that I haven't added any new ones. -- nosy: +r.david.murray stage: needs patch - patch review versions: +Python 3.3 -Python 3.2 Added file: http://bugs.python.org/file21886/formatdate_datetime_support.patch ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue665194 ___ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue11335] Memory leak after key function failure in sort
Roundup Robot devnull@devnull added the comment: New changeset 52fb7dc721ed by Daniel Stutzbach in branch '3.2': #11335: Fix memory leak after key function failure in sort http://hg.python.org/cpython/rev/52fb7dc721ed New changeset 18e43c6acfff by Daniel Stutzbach in branch 'default': #11335: Merge from 3.2: Fix memory leak after key function failure in sort http://hg.python.org/cpython/rev/18e43c6acfff -- nosy: +python-dev ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue11335 ___ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue11335] Memory leak after key function failure in sort
Changes by Daniel Stutzbach stutzb...@google.com: -- resolution: - fixed stage: patch review - committed/rejected status: open - closed ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue11335 ___ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue11994] [2.7/gcc-4.4.3] Segfault under valgrind in string.split()
STINNER Victor victor.stin...@haypocalc.com added the comment: GCC 4.4.3 is not the last stable version of the 4.4 branch: try maybe GCC 4.4.6... Changes of GCC 4.4.4, 4.4.5 and 4.4.6: http://gcc.gnu.org/gcc-4.4/changes.html#4.4.6 Or try maybe another major version. -- ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue11994 ___ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue6721] Locks in python standard library should be sanitized on fork
Charles-François Natali neolo...@free.fr added the comment: - what's current_thread_id ? If it's thread_get_ident (pthread_self), since TID is not guaranteed to be inherited across fork, this won't work Ouch, then the approach I'm proposing is probably doomed. Well, it works on Linux with NPTL, but I'm not sure at all it holds for other implementations (pthread_t it's only meaningful within the same process). But I'm not sure it's really the killer point: PID with linuxthreads and lock being acquired by a second thread before the main thread releases it in the child process also look like serious problems. Well, this means indeed that *some* locks can be handled, but not all of them and not automatically, right? Also, how would you propose they be dealt with in practice? How do they get registered, and how does the reinitialization happen? When a lock object is allocated in Modules/threadmodule.c (PyThread_allocate_lock/newlockobject), add the underlying lock (self-lock_lock) to a linked list (since it's called with the GIL held, we don't need to protect the linked list from concurrent access). Each thread implementation (thread_pthread.h, thread_nt.h) would provide a new PyThread_reinit_lock function that would do the right thing (pthread_mutex_destroy/init, sem_destroy/init, etc). Modules/threadmodule.c would provide a new PyThread_ReInitLocks that would walk through the linked list and call PyThread_reinit_lock for each lock. PyOS_AfterFork would call this PyThread_ReInitLocks right after fork. This would have the advantage of being consistent with what's already done to reinit the TLS key and the import lock. So, we guarantee to be in a consistent and usable state when PyOS_AfterFork returns. Also, it's somewhat simpler because we're sure that at that point only one thread is running (once again, no need to protect the linked-list walk). I don't think that the performance impact would be noticable (I know it's O(N) where N is the number of locks), and contrarily to the automatic approach, this wouldn't penalize every acquire/release. Of course, this would solve the problem of threading's module locks, so PyEval_ReInitThreads could be removed, along with threading.py's _after_fork and _reset_internal_locks. In short, this would reset every lock held so that they're usable in the child process, even locks allocated e.g. from Modules/_io/bufferedio.c. But this wouldn't allow a lock's state to be inherited across fork for the main thread (but like I said, I don't think that this makes much sense anyway, and to my knowledge no implementation makes such a guarantee - and definitely not POSIX). -- ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue6721 ___ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue12002] ftplib.FTP.abort fails with TypeError on Python 3.x
New submission from Robert Xiao nneon...@gmail.com: On Python 3.2, calling abort() on an ftplib.FTP object will cause an exception: ftp = ftplib.FTP('localhost') ftp.abort() Traceback (most recent call last): File stdin, line 1, in module File /usr/lib/python3.2/ftplib.py, line 246, in abort self.sock.sendall(line, MSG_OOB) TypeError: 'str' does not support the buffer interface The offending line, ftplib.py:246, should be replaced by self.sock.sendall(line.encode(self.encoding), MSG_OOB) -- components: Library (Lib) messages: 135158 nosy: nneonneo priority: normal severity: normal status: open title: ftplib.FTP.abort fails with TypeError on Python 3.x type: crash versions: Python 3.1, Python 3.2, Python 3.3, Python 3.4 ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue12002 ___ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue12003] documentation: alternate version of xrange seems to fail.
New submission from alejandro david weil ten...@gmail.com: Python's documentation includes 2 source codes for alternate xrange implementations, which, at least in my tests, give unexpected results. # from file:///usr/share/doc/python2.6-doc/html/library/functions.html#xrange takewhile(lambda x:xstop, (start+i*step for i in count())) and: # from: http://docs.python.org/library/functions.html?highlight=xrange#xrange islice(count(start, step), (stop-start+step-1)//step) I'll attach a file with source code showing that, and propose 3 different versions which seems to work fine. (I've prefer the first one, but python lacks of sign() function). -- assignee: docs@python components: Documentation files: test_xrange.py messages: 135159 nosy: docs@python, tenuki priority: normal severity: normal status: open title: documentation: alternate version of xrange seems to fail. versions: Python 2.6, Python 2.7 Added file: http://bugs.python.org/file21887/test_xrange.py ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue12003 ___ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue11015] Bring test.support docs up to date
Sandro Tosi sandro.t...@gmail.com added the comment: Hi all, IIUIC we are left with issue11015.py3k.testdoc.1.patch) since issue11015.py3k.remove_fcmp.{1,2}.patch has been already applied on default. I just gave a look to the doc patch and it seems fine (it also applies without any warning on default). Eli, do you want to expand this patch further (and how :) or do you think it's still the version you want to commit? Can a core devel, then, give this patch a deeper look? -- ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue11015 ___ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue9971] Optimize BufferedReader.readinto
John O'Connor tehj...@gmail.com added the comment: I am new to the community but hoping to start contributing or at least following issues and learning :) I'm looking at bufferediobase_readinto(). What I haven't yet figured out is why .readinto() is (currently) implemented at this layer of the hierarchy. You have to have a raw read buffer available to read from and I'm not sure how one would acquire that from here (without calling .read() or something that has been overridden and knows about the raw buffer). I feel like bufferediobase_readinto() should return unsupported. Also readinto(), in theory, is lower level than read. if read isn't implemented at this layer why is readinto()? With a little direction, I would be interested in helping w/a patch. -- nosy: +jcon ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue9971 ___ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue9971] Optimize BufferedReader.readinto
Benjamin Peterson benja...@python.org added the comment: 2011/5/4 John O'Connor rep...@bugs.python.org: John O'Connor tehj...@gmail.com added the comment: I am new to the community but hoping to start contributing or at least following issues and learning :) I'm looking at bufferediobase_readinto(). What I haven't yet figured out is why .readinto() is (currently) implemented at this layer of the hierarchy. You have to have a raw read buffer available to read from and I'm not sure how one would acquire that from here (without calling .read() or something that has been overridden and knows about the raw buffer). Why is that? You can, as the BufferedIOBase implementation does, just call read() and stick it into the buffer. I feel like bufferediobase_readinto() should return unsupported. Also readinto(), in theory, is lower level than read. if read isn't implemented at this layer why is readinto()? To provide a simple implementation for unsophisticated subclasses. -- ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue9971 ___ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue8158] Docstring of optparse.OptionParser incomplete
Bryce Verdier bryceverd...@gmail.com added the comment: Applied patch cleanly. Also the description reads clearly and makes sense. -- nosy: +louiscipher ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue8158 ___ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue11943] Add TLS-SRP (RFC 5054) support to ssl, _ssl, http, and urllib
Quinn Slack s...@cs.stanford.edu added the comment: I have updated the patch in hg to address the sections marked TODO (after I submitted a patch to OpenSSL that they depended on). I'll resubmit a patch here in a ~week addressing that issue and those below, to continue pushing this issue along. pitrou: Thanks for your feedback. - the OpenSSL functions you are using (SSL_get_srp_username etc.) don't seem documented on openssl.org; this makes it harder to do a proper review Yes...I'll submit some docs to OpenSSL on these functions. - what is an SRP vbase? is it something standardized, or OpenSSL-specific? - if server-side support needs a callback, I think it would be better to let users write their callback in Python, rather than force a hardwired implementation An SRP vbase is OpenSSL's name for the SRP password (verifier) database. I will generalize this interface so that Python callbacks can be provided (in addition to using an OpenSSL verifier database). - no need to fill Misc/ACKS and Misc/NEWS by yourself, we can take care of that - ssl.wrap_socket() is the legacy API, I would rather add new features only to the SSLContext API Got it. -- ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue11943 ___ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue11015] Bring test.support docs up to date
Terry J. Reedy tjre...@udel.edu added the comment: This is an improvement that I think should be committed before 3.2.1. Some comments: +.. function:: run_doctest(module, verbosity=None) + Run :mod:`doctest` on the given *module*. should be, I believe, + Run :func:`doctest.testmod` on the given *module*. as that is what the function actually does (I check the code). + If *verbosity* is :const:`None`, :meth:`doctest` is run with verbosity set + to :data:`verbose`. Otherwise, it is run with verbosity set to + :const:`None`. Should :meth:`doctest` be :func:`testmod` ? Otherwise the proposed text rewrites If optional argument verbosity is not specified (or is None), pass support's belief about verbosity on to doctest. Else doctest's usual behavior is used (it searches sys.argv for -v). The problem with the rewrite is that the keyword param of testmod is 'verbose', not 'verbosity'. 'Verbosity' is a dummy name used to either pass support.verbose to verbose, or not. So testmod is, in net effect, run with verbose=verbose or verbose=None. My attempt to explain a bad design (with probable markup errors): If *verbosity* is :const:`None`, :func:`testmod` is run with verbose set to :data:`support.verbose`, which is set by :func:`regrtest`. Otherwise, it is run with verbose set to :const:`None` and subsequently replaced by :code:`'-v' in sys.argv`. +.. function:: temp_umask(umask) + + A context manager that temporarily sets the process umask to the + given value. sets the process umask to *umask*. ? +.. function:: find_unused_port(family=socket.AF_INET, socktype=socket.SOCK_STREAM) + Either this method or :func:`bind_port` should be used for any tests + where a server socket needs to be bound to a particular port for the + duration of the test. + Which one to use depends on whether the calling code is creating a python + socket, or if an unused port needs to be provided in a constructor + or passed to an external program (i.e. the ``-accept`` argument to + openssl's s_server mode). This is copied from the doc string but does really tell me which to use in which of the two situations. Other additions look OK to me. Some copied docstrings (or comments). Some are new. Support.py could also use a patch to add missing docstings (and turn a couple of comments into docstrings). -- ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue11015 ___ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue9971] Optimize BufferedReader.readinto
Daniel Stutzbach stutzb...@google.com added the comment: Looking at this again, I agree with John. For BufferedIOBase, read() is abstract while readinto() is concrete. That seems backward, and, indeed, it's the opposite of RawIOBase, where readinto() is abstract and read() is concrete. Unfortunately, this code has shipped, so changing which methods are abstract may not be practical. On the other hand, the documentation doesn't mention which methods are abstract versus concrete. All of that said, we can freely change the C implementation of BufferedReader which is a concrete class. That would allow us to cut out the extra allocoations/deallocations, even if we can't clean up the abstract vs concrete method issue. Basically, this would require greatly expanding buffered_readinto() in bufferedio.c to use _bufferedreader_raw_read() and related functions. As I think about this more... I'm not sure how much performance there is to gain here in practice. It seems like any time I'd want to use readinto(), it's because I want to do my own buffering, in which case why would I use a BufferedReader? I'm thinking that BufferedIOBase only provides a readinto() method for completeness, so it can be used as a drop-in replacement for an unbuffered file object. -- ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue9971 ___ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue8158] Docstring of optparse.OptionParser incomplete
Roundup Robot devnull@devnull added the comment: New changeset c13d2552eb51 by R David Murray in branch '2.7': #8158: add missing 'description' description to optparse docstring. http://hg.python.org/cpython/rev/c13d2552eb51 New changeset f559b88bcaa0 by R David Murray in branch '3.1': #8158: add missing 'description' description to optparse docstring. http://hg.python.org/cpython/rev/f559b88bcaa0 New changeset b4b0a1458638 by R David Murray in branch '3.2': Merge #8158: add missing 'description' description to optparse docstring. http://hg.python.org/cpython/rev/b4b0a1458638 New changeset 2a403afc4a76 by R David Murray in branch 'default': Merge #8158: add missing 'description' description to optparse docstring. http://hg.python.org/cpython/rev/2a403afc4a76 -- nosy: +python-dev ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue8158 ___ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue8158] Docstring of optparse.OptionParser incomplete
R. David Murray rdmur...@bitdance.com added the comment: Thanks everyone. -- resolution: - fixed stage: needs patch - committed/rejected status: open - closed versions: +Python 3.3 ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue8158 ___ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue11935] MMDF/MBOX mailbox need utime
R. David Murray rdmur...@bitdance.com added the comment: Not all system mail spools are mode 1777. Mutt needs to be setgid mail on systems that aren't, if I understand correctly. Making a python program setgid mail is a bit more of security issue than making a well-tested C program setgid, since it is easier to break out of the box in a python program. I'm pretty sure that the shell does not parse the mbox when it produces its 'you have new mail' message. I believe it just looks at the mtime/atime. mailbox is an mbox manipulation program, not a mail delivery agent. If you are using it to write a mail delivery agent, I think perhaps the mtime setting code belongs in your application, not the mailbox module. -- ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue11935 ___ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue12004] PyZipFile.writepy gives internal error on syntax errors
New submission from Ben Morgan benpmor...@gmail.com: PyZipFile.writepy gives internal error on syntax errors in files it processes. For example, in the attached test case: Traceback (most recent call last): File C:\tfs\SDKS\python\Python32\lib\py_compile.py, line 119, in compile optimize=optimize) File test_zipfile_error_bad_syntax.py, line 1 syntax error ^ SyntaxError: invalid syntax During handling of the above exception, another exception occurred: Traceback (most recent call last): File C:\tfs\SDKS\python\Python32\lib\zipfile.py, line 1393, in _compile py_compile.compile(file, doraise=True, optimize=optimize) File C:\tfs\SDKS\python\Python32\lib\py_compile.py, line 123, in compile raise py_exc py_compile.PyCompileError: File test_zipfile_error_bad_syntax.py, line 1 syntax error ^ SyntaxError: invalid syntax During handling of the above exception, another exception occurred: Traceback (most recent call last): File test_zipfile_error.py, line 7, in module pzf.writepy(PYFILE) File C:\tfs\SDKS\python\Python32\lib\zipfile.py, line 1376, in writepy fname, arcname = self._get_codename(pathname[0:-3], basename) File C:\tfs\SDKS\python\Python32\lib\zipfile.py, line 1428, in _get_codename if _compile(file_py): File C:\tfs\SDKS\python\Python32\lib\zipfile.py, line 1395, in _compile print(err.msg) NameError: global name 'err' is not defined Around zipfile.py:1395 in PyZipFile._get_codename _compile try: py_compile.compile(file, doraise=True, optimize=optimize) except py_compile.PyCompileError as error: print(err.msg) return False The print should be printing error.msg not err.msg -- files: test_zipfile_error.py messages: 135170 nosy: Ben.Morgan priority: normal severity: normal status: open title: PyZipFile.writepy gives internal error on syntax errors type: behavior Added file: http://bugs.python.org/file21888/test_zipfile_error.py ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue12004 ___ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue12004] PyZipFile.writepy gives internal error on syntax errors
Changes by Ben Morgan benpmor...@gmail.com: -- keywords: +patch Added file: http://bugs.python.org/file21889/pyzipfile-error.patch ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue12004 ___ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue11015] Bring test.support docs up to date
Eli Bendersky eli...@gmail.com added the comment: Eli, do you want to expand this patch further (and how :) or do you think it's still the version you want to commit? Can a core devel, then, give this patch a deeper look? I will review this again in a couple of days and will commit. -- Added file: http://bugs.python.org/file21890/unnamed ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue11015 ___div dir=ltrbrdiv class=gmail_quoteblockquote class=gmail_quote style=margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex; Eli, do you want to expand this patch further (and how :) or do you think it#39;s still the version you want to commit? Can a core devel, then, give this patch a deeper look?br/blockquote/divbrI will review this again in a couple of days and will commit.br br/div ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue11015] Bring test.support docs up to date
Changes by Terry J. Reedy tjre...@udel.edu: Removed file: http://bugs.python.org/file21890/unnamed ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue11015 ___ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue9971] Optimize BufferedReader.readinto
Benjamin Peterson benja...@python.org added the comment: I don't see the problem. You're free to override readinto() and read() in subclasses. readinto() is just implemented in BufferedIOBase as a convenience. -- ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue9971 ___ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue6721] Locks in python standard library should be sanitized on fork
Charles-François Natali neolo...@free.fr added the comment: Please disregard my comment on PyEval_ReInitThreads and _after_fork: it will of course still be necessary, because it does much more than just reinitializing locks (e.g. stop threads). Also, note that both approaches don't handle synchronization primitives other than bare Lock and RLock. For example, Condition and Event used in the threading module wouldn't be reset automatically: that's maybe something that could be handled by Gregory's atfork mechanism. -- ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue6721 ___ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com