This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

classification
Title: Segfault in test_6_daemon_threads() of test_threading, on Mac OS X Lion
Type: crash Stage: resolved
Components: Interpreter Core, macOS Versions: Python 3.2, Python 3.3
process
Status: closed Resolution: out of date
Dependencies: Superseder:
Assigned To: ronaldoussoren Nosy List: ronaldoussoren, vstinner
Priority: normal Keywords:

Created on 2012-08-04 00:54 by vstinner, last changed 2022-04-11 14:57 by admin. This issue is now closed.

Messages (3)
msg167391 - (view) Author: STINNER Victor (vstinner) * (Python committer) Date: 2012-08-04 00:54
http://buildbot.python.org/all/builders/AMD64%20Lion%203.2/builds/80/steps/test/logs/stdio

[ 54/355/1] test_threading
test_acquire_contended (test.test_threading.LockTests) ... ok
test_acquire_destroy (test.test_threading.LockTests) ... ok
test_acquire_release (test.test_threading.LockTests) ... ok
test_constructor (test.test_threading.LockTests) ... ok
test_different_thread (test.test_threading.LockTests) ... ok
test_reacquire (test.test_threading.LockTests) ... ok
test_state_after_timeout (test.test_threading.LockTests) ... ok
test_thread_leak (test.test_threading.LockTests) ... ok
test_timeout (test.test_threading.LockTests) ... ok
test_try_acquire (test.test_threading.LockTests) ... ok
test_try_acquire_contended (test.test_threading.LockTests) ... ok
test_with (test.test_threading.LockTests) ... ok
test__is_owned (test.test_threading.PyRLockTests) ... ok
test_acquire_contended (test.test_threading.PyRLockTests) ... ok
test_acquire_destroy (test.test_threading.PyRLockTests) ... ok
test_acquire_release (test.test_threading.PyRLockTests) ... ok
test_constructor (test.test_threading.PyRLockTests) ... ok
test_different_thread (test.test_threading.PyRLockTests) ... ok
test_reacquire (test.test_threading.PyRLockTests) ... ok
test_release_unacquired (test.test_threading.PyRLockTests) ... ok
test_thread_leak (test.test_threading.PyRLockTests) ... ok
test_timeout (test.test_threading.PyRLockTests) ... ok
test_try_acquire (test.test_threading.PyRLockTests) ... ok
test_try_acquire_contended (test.test_threading.PyRLockTests) ... ok
test_with (test.test_threading.PyRLockTests) ... ok
test__is_owned (test.test_threading.CRLockTests) ... ok
test_acquire_contended (test.test_threading.CRLockTests) ... ok
test_acquire_destroy (test.test_threading.CRLockTests) ... ok
test_acquire_release (test.test_threading.CRLockTests) ... ok
test_constructor (test.test_threading.CRLockTests) ... ok
test_different_thread (test.test_threading.CRLockTests) ... ok
test_reacquire (test.test_threading.CRLockTests) ... ok
test_release_unacquired (test.test_threading.CRLockTests) ... ok
test_thread_leak (test.test_threading.CRLockTests) ... ok
test_timeout (test.test_threading.CRLockTests) ... ok
test_try_acquire (test.test_threading.CRLockTests) ... ok
test_try_acquire_contended (test.test_threading.CRLockTests) ... ok
test_with (test.test_threading.CRLockTests) ... ok
test_is_set (test.test_threading.EventTests) ... ok
test_notify (test.test_threading.EventTests) ... ok
test_set_and_clear (test.test_threading.EventTests) ... ok
test_timeout (test.test_threading.EventTests) ... ok
test__is_owned (test.test_threading.ConditionAsRLockTests) ... ok
test_acquire_contended (test.test_threading.ConditionAsRLockTests) ... ok
test_acquire_destroy (test.test_threading.ConditionAsRLockTests) ... ok
test_acquire_release (test.test_threading.ConditionAsRLockTests) ... ok
test_constructor (test.test_threading.ConditionAsRLockTests) ... ok
test_different_thread (test.test_threading.ConditionAsRLockTests) ... ok
test_reacquire (test.test_threading.ConditionAsRLockTests) ... ok
test_release_unacquired (test.test_threading.ConditionAsRLockTests) ... ok
test_thread_leak (test.test_threading.ConditionAsRLockTests) ... ok
test_timeout (test.test_threading.ConditionAsRLockTests) ... ok
test_try_acquire (test.test_threading.ConditionAsRLockTests) ... ok
test_try_acquire_contended (test.test_threading.ConditionAsRLockTests) ... ok
test_with (test.test_threading.ConditionAsRLockTests) ... ok
test_acquire (test.test_threading.ConditionTests) ... ok
test_notify (test.test_threading.ConditionTests) ... ok
test_timeout (test.test_threading.ConditionTests) ... ok
test_unacquired_notify (test.test_threading.ConditionTests) ... ok
test_unacquired_wait (test.test_threading.ConditionTests) ... ok
test_waitfor (test.test_threading.ConditionTests) ... ok
test_waitfor_timeout (test.test_threading.ConditionTests) ... ok
test_acquire (test.test_threading.SemaphoreTests) ... ok
test_acquire_contended (test.test_threading.SemaphoreTests) ... ok
test_acquire_destroy (test.test_threading.SemaphoreTests) ... ok
test_acquire_timeout (test.test_threading.SemaphoreTests) ... ok
test_constructor (test.test_threading.SemaphoreTests) ... ok
test_default_value (test.test_threading.SemaphoreTests) ... ok
test_release_unacquired (test.test_threading.SemaphoreTests) ... ok
test_try_acquire (test.test_threading.SemaphoreTests) ... ok
test_try_acquire_contended (test.test_threading.SemaphoreTests) ... ok
test_with (test.test_threading.SemaphoreTests) ... ok
test_acquire (test.test_threading.BoundedSemaphoreTests) ... ok
test_acquire_contended (test.test_threading.BoundedSemaphoreTests) ... ok
test_acquire_destroy (test.test_threading.BoundedSemaphoreTests) ... ok
test_acquire_timeout (test.test_threading.BoundedSemaphoreTests) ... ok
test_constructor (test.test_threading.BoundedSemaphoreTests) ... ok
test_default_value (test.test_threading.BoundedSemaphoreTests) ... ok
test_release_unacquired (test.test_threading.BoundedSemaphoreTests) ... ok
test_try_acquire (test.test_threading.BoundedSemaphoreTests) ... ok
test_try_acquire_contended (test.test_threading.BoundedSemaphoreTests) ... ok
test_with (test.test_threading.BoundedSemaphoreTests) ... ok
test_PyThreadState_SetAsyncExc (test.test_threading.ThreadTests) ...     started worker thread
    trying nonsensical thread id
    waiting for worker thread to get started
    verifying worker hasn't exited
    attempting to raise asynch exception in worker
    waiting for worker to say it caught the exception
    all OK -- joining worker
ok
test_dummy_thread_after_fork (test.test_threading.ThreadTests) ... ok
test_enumerate_after_join (test.test_threading.ThreadTests) ... ok
test_finalize_runnning_thread (test.test_threading.ThreadTests) ... ok
test_finalize_with_trace (test.test_threading.ThreadTests) ... ok
test_foreign_thread (test.test_threading.ThreadTests) ... ok
test_ident_of_no_threading_threads (test.test_threading.ThreadTests) ... ok
test_join_nondaemon_on_shutdown (test.test_threading.ThreadTests) ... ok
test_limbo_cleanup (test.test_threading.ThreadTests) ... ok
test_no_refcycle_through_target (test.test_threading.ThreadTests) ... ok
test_old_threading_api (test.test_threading.ThreadTests) ... ok
test_repr_daemon (test.test_threading.ThreadTests) ... ok
test_various_ops (test.test_threading.ThreadTests) ... task <thread 0> will run for 24.7 usec
1 tasks are running
task <thread 1> will run for 90.2 usec
2 tasks are running
task <thread 0> done
<thread 0> is finished. 1 tasks are running
task <thread 2> will run for 95.2 usec
2 tasks are running
task <thread 1> done
<thread 1> is finished. 1 tasks are running
task <thread 3> will run for 40.1 usec
2 tasks are running
task <thread 2> done
<thread 2> is finished. 1 tasks are running
task <thread 4> will run for 56.5 usec
2 tasks are running
task <thread 3> done
<thread 3> is finished. 1 tasks are running
task <thread 5> will run for 13.6 usec
2 tasks are running
task <thread 4> done
<thread 4> is finished. 1 tasks are running
task <thread 6> will run for 32.9 usec
2 tasks are running
task <thread 5> done
<thread 5> is finished. 1 tasks are running
task <thread 6> done
<thread 6> is finished. 0 tasks are running
task <thread 7> will run for 26.2 usec
1 tasks are running
task <thread 8> will run for 62.7 usec
2 tasks are running
task <thread 7> done
<thread 7> is finished. 1 tasks are running
task <thread 8> done
<thread 8> is finished. 0 tasks are running
task <thread 9> will run for 31.9 usec
1 tasks are running
waiting for all tasks to complete
task <thread 9> done
<thread 9> is finished. 0 tasks are running
all tasks done
ok
test_various_ops_large_stack (test.test_threading.ThreadTests) ... with 1MB thread stack size...
task <thread 0> will run for 44.6 usec
1 tasks are running
task <thread 0> done
<thread 0> is finished. 0 tasks are running
task <thread 1> will run for 38.3 usec
1 tasks are running
task <thread 2> will run for 85.7 usec
2 tasks are running
task <thread 3> will run for 98.3 usec
3 tasks are running
task <thread 1> done
<thread 1> is finished. 2 tasks are running
task <thread 2> done
<thread 2> is finished. 1 tasks are running
task <thread 4> will run for 22.0 usec
2 tasks are running
task <thread 5> will run for 49.5 usec
3 tasks are running
task <thread 6> will run for 60.1 usec
task <thread 3> done
<thread 3> is finished. 2 tasks are running
task <thread 4> done
<thread 4> is finished. 1 tasks are running
task <thread 5> done
<thread 5> is finished. 0 tasks are running
1 tasks are running
task <thread 7> will run for 63.6 usec
2 tasks are running
task <thread 8> will run for 92.0 usec
3 tasks are running
task <thread 9> will run for 60.7 usec
task <thread 6> done
<thread 6> is finished. 2 tasks are running
task <thread 7> done
<thread 7> is finished. 1 tasks are running
task <thread 8> done
<thread 8> is finished. 0 tasks are running
1 tasks are running
task <thread 9> done
<thread 9> is finished. 0 tasks are running
waiting for all tasks to complete
all tasks done
ok
test_various_ops_small_stack (test.test_threading.ThreadTests) ... with 256kB thread stack size...
task <thread 0> will run for 27.1 usec
1 tasks are running
task <thread 1> will run for 23.9 usec
2 tasks are running
task <thread 2> will run for 33.1 usec
3 tasks are running
task <thread 0> done
<thread 0> is finished. 2 tasks are running
task <thread 1> done
<thread 1> is finished. 1 tasks are running
task <thread 3> will run for 34.7 usec
2 tasks are running
task <thread 4> will run for 73.9 usec
3 tasks are running
task <thread 5> will run for 80.9 usec
task <thread 2> done
<thread 2> is finished. 2 tasks are running
task <thread 3> done
<thread 3> is finished. 1 tasks are running
task <thread 4> done
<thread 4> is finished. 0 tasks are running
1 tasks are running
task <thread 6> will run for 97.1 usec
2 tasks are running
task <thread 7> will run for 99.2 usec
3 tasks are running
task <thread 5> done
<thread 5> is finished. 2 tasks are running
task <thread 6> done
<thread 6> is finished. 1 tasks are running
task <thread 8> will run for 29.3 usec
2 tasks are running
task <thread 9> will run for 70.3 usec
3 tasks are running
waiting for all tasks to complete
task <thread 7> done
<thread 7> is finished. 2 tasks are running
task <thread 8> done
<thread 8> is finished. 1 tasks are running
task <thread 9> done
<thread 9> is finished. 0 tasks are running
all tasks done
ok
test_1_join_on_shutdown (test.test_threading.ThreadJoinOnShutdown) ... ok
test_2_join_in_forked_process (test.test_threading.ThreadJoinOnShutdown) ... ok
test_3_join_in_forked_from_thread (test.test_threading.ThreadJoinOnShutdown) ... ok
test_4_joining_across_fork_in_worker_thread (test.test_threading.ThreadJoinOnShutdown) ... ok
test_5_clear_waiter_locks_to_avoid_crash (test.test_threading.ThreadJoinOnShutdown) ... ok
test_6_daemon_threads (test.test_threading.ThreadJoinOnShutdown) ... FAIL
test_reinit_tls_after_fork (test.test_threading.ThreadJoinOnShutdown) ... ok
test_daemonize_active_thread (test.test_threading.ThreadingExceptionTests) ... ok
test_joining_current_thread (test.test_threading.ThreadingExceptionTests) ... ok
test_joining_inactive_thread (test.test_threading.ThreadingExceptionTests) ... ok
test_recursion_limit (test.test_threading.ThreadingExceptionTests) ... ok
test_start_thread_again (test.test_threading.ThreadingExceptionTests) ... ok
test_abort (test.test_threading.BarrierTests) ... ok
test_abort_and_reset (test.test_threading.BarrierTests) ... ok
test_action (test.test_threading.BarrierTests) ... ok
test_barrier (test.test_threading.BarrierTests) ... ok
test_barrier_10 (test.test_threading.BarrierTests) ... ok
test_default_timeout (test.test_threading.BarrierTests) ... ok
test_reset (test.test_threading.BarrierTests) ... ok
test_single_thread (test.test_threading.BarrierTests) ... ok
test_timeout (test.test_threading.BarrierTests) ... ok
test_wait_return (test.test_threading.BarrierTests) ... ok

======================================================================
FAIL: test_6_daemon_threads (test.test_threading.ThreadJoinOnShutdown)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/Users/ambv/Buildbot/3.2.langa-lion/build/Lib/test/test_threading.py", line 696, in test_6_daemon_threads
    rc, out, err = assert_python_ok('-c', script)
  File "/Users/ambv/Buildbot/3.2.langa-lion/build/Lib/test/script_helper.py", line 53, in assert_python_ok
    return _assert_python(True, *args, **env_vars)
  File "/Users/ambv/Buildbot/3.2.langa-lion/build/Lib/test/script_helper.py", line 45, in _assert_python
    "stderr follows:\n%s" % (rc, err.decode('ascii', 'ignore')))
AssertionError: Process return code is -11, stderr follows:


----------------------------------------------------------------------
Ran 119 tests in 19.978s

FAILED (failures=1)
test test_threading failed
msg167568 - (view) Author: Ronald Oussoren (ronaldoussoren) * (Python committer) Date: 2012-08-06 16:50
The test passes fine on OSX 10.8 (even when running the threading test in a loop). This might be because a platform bug is fixed in OSX 10.8, or because the crash happens due to a race condition of some sort (either in Python itself or the system).

This could be related to #3863 (this test is skipped on a number of platforms because of that issue)
msg192522 - (view) Author: Ronald Oussoren (ronaldoussoren) * (Python committer) Date: 2013-07-07 08:21
I'm closing this issue because I haven't been able to reproduce and the issue doesn't contain enough information to determine the cause of the crash (the buildbot logs are gone by now, and probably wouldn't have contained the required information anyway).
History
Date User Action Args
2022-04-11 14:57:33adminsetgithub: 59758
2013-07-07 08:21:05ronaldoussorensetstatus: open -> closed
type: crash
messages: + msg192522

resolution: out of date
stage: resolved
2012-08-06 16:50:34ronaldoussorensetmessages: + msg167568
2012-08-04 00:54:09vstinnercreate