Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

Already on GitHub? Sign in to your account

Followup on thread test problems (not #261) #263

Closed
ribasushi opened this Issue Mar 25, 2012 · 11 comments

Comments

Projects
None yet
2 participants

TB _004 is better, but needs to go even better ;) It passes on everything 5.8.9, 5.10.1 or newer. It fails on <= 5.8.8 and more importantly on 5.10.0. Below the 5.10.0 failure when testing current master:

rabbit@Thesaurus:~/devel/test-more$ perl -V
Summary of my perl5 (revision 5 version 10 subversion 0) configuration:
  Platform:
    osname=linux, osvers=3.1.0-1-amd64, archname=x86_64-linux-thread-multi
    uname='linux thesaurus 3.1.0-1-amd64 #1 smp tue jan 10 06:25:07 utc 2012 x86_64 gnulinux '
    config_args='-de -Dprefix=/home/rabbit/perl5/perlbrew/perls/5.10.0_2 -Dusethreads'
    hint=recommended, useposix=true, d_sigaction=define
    useithreads=define, usemultiplicity=define
    useperlio=define, d_sfio=undef, uselargefiles=define, usesocks=undef
    use64bitint=undef, use64bitall=undef, uselongdouble=undef
    usemymalloc=n, bincompat5005=undef
  Compiler:
    cc='cc', ccflags ='-D_REENTRANT -D_GNU_SOURCE -fno-strict-aliasing -pipe -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64',
    optimize='-O2',
    cppflags='-D_REENTRANT -D_GNU_SOURCE -fno-strict-aliasing -pipe -I/usr/local/include'
    ccversion='', gccversion='4.6.2', gccosandvers=''
    intsize=4, longsize=4, ptrsize=4, doublesize=8, byteorder=1234
    d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=12
    ivtype='long', ivsize=4, nvtype='double', nvsize=8, Off_t='off_t', lseeksize=8
    alignbytes=4, prototype=define
  Linker and Libraries:
    ld='cc', ldflags =' -L/usr/local/lib'
    libpth=/usr/local/lib /lib/i386-linux-gnu /lib/../lib /usr/lib/i386-linux-gnu /usr/lib/../lib /lib /usr/lib
    libs=-lnsl -ldb -ldl -lm -lcrypt -lutil -lpthread -lc
    perllibs=-lnsl -ldl -lm -lcrypt -lutil -lpthread -lc
    libc=, so=so, useshrplib=false, libperl=libperl.a
    gnulibc_version='2.13'
  Dynamic Linking:
    dlsrc=dl_dlopen.xs, dlext=so, d_dlsymun=undef, ccdlflags='-Wl,-E'
    cccdlflags='-fPIC', lddlflags='-shared -O2 -L/usr/local/lib'


Characteristics of this binary (from libperl): 
  Compile-time options: MULTIPLICITY PERL_DONT_CREATE_GVSV
                        PERL_IMPLICIT_CONTEXT PERL_MALLOC_WRAP USE_ITHREADS
                        USE_LARGE_FILES USE_PERLIO USE_REENTRANT_API
  Built under linux
  Compiled at Feb  9 2012 09:32:58
  %ENV:
    PERL5LIB="/home/rabbit/devel/utils/perl:/home/rabbit/devel/distar/lib:"
    PERLBREW_HOME="/home/rabbit/.perlbrew"
    PERLBREW_PATH="/home/rabbit/perl5/perlbrew/bin:/home/rabbit/perl5/perlbrew/perls/5.10.0_2/bin"
    PERLBREW_PERL="5.10.0_2"
    PERLBREW_ROOT="/home/rabbit/perl5/perlbrew"
    PERLBREW_VERSION="0.27"
    PERL_AUTOINSTALL_PREFER_CPAN="1"
    PERL_CPANM_OPT="--verbose --no-interactive"
  @INC:
    /home/rabbit/devel/utils/perl
    /home/rabbit/devel/distar/lib
    /home/rabbit/perl5/perlbrew/perls/5.10.0_2/lib/5.10.0/x86_64-linux-thread-multi
    /home/rabbit/perl5/perlbrew/perls/5.10.0_2/lib/5.10.0
    /home/rabbit/perl5/perlbrew/perls/5.10.0_2/lib/site_perl/5.10.0/x86_64-linux-thread-multi
    /home/rabbit/perl5/perlbrew/perls/5.10.0_2/lib/site_perl/5.10.0
    .
rabbit@Thesaurus:~/devel/test-more$ perl -Mthreads\ 999
threads version 999 required--this is only version 1.67.
BEGIN failed--compilation aborted.
rabbit@Thesaurus:~/devel/test-more$ git rev-parse HEAD
dc76a6bf1c356f2479b5204d371fd2a7a69a9584
rabbit@Thesaurus:~/devel/test-more$ make test 2>&1 | xclip
cp lib/TB2/Result/Role/fail.pm blib/lib/TB2/Result/Role/fail.pm
cp lib/Test/Simple.pm blib/lib/Test/Simple.pm
cp lib/TB2/Result/Base.pm blib/lib/TB2/Result/Base.pm
cp lib/TB2/Event/Comment.pm blib/lib/TB2/Event/Comment.pm
cp lib/TB2/CanDupFilehandles.pm blib/lib/TB2/CanDupFilehandles.pm
cp lib/TB2/Formatter/POSIX.pm blib/lib/TB2/Formatter/POSIX.pm
cp lib/Test/Builder/Tee.pm blib/lib/Test/Builder/Tee.pm
cp lib/TB2/Streamer.pm blib/lib/TB2/Streamer.pm
cp lib/Test/Builder.pm blib/lib/Test/Builder.pm
cp lib/TB2/Streamer/Print.pm blib/lib/TB2/Streamer/Print.pm
cp lib/TB2/Formatter/TAP.pm blib/lib/TB2/Formatter/TAP.pm
cp lib/TB2/Event/TestStart.pm blib/lib/TB2/Event/TestStart.pm
cp lib/Test/More.pm blib/lib/Test/More.pm
cp lib/TB2/Event.pm blib/lib/TB2/Event.pm
cp lib/Test/Builder/Tester/Streamer.pm blib/lib/Test/Builder/Tester/Streamer.pm
cp lib/Test/Builder2.pm blib/lib/Test/Builder2.pm
cp lib/TB2/Result/Role/todo.pm blib/lib/TB2/Result/Role/todo.pm
cp lib/TB2/Result/Role/skip.pm blib/lib/TB2/Result/Role/skip.pm
cp lib/TB2/threads/shared/on.pm blib/lib/TB2/threads/shared/on.pm
cp lib/TB2/CanTry.pm blib/lib/TB2/CanTry.pm
cp lib/TB2/Result.pm blib/lib/TB2/Result.pm
cp lib/TB2/Formatter/Null.pm blib/lib/TB2/Formatter/Null.pm
cp lib/TB2/TestState.pm blib/lib/TB2/TestState.pm
cp lib/TB2/Formatter/TAP/Base.pm blib/lib/TB2/Formatter/TAP/Base.pm
cp lib/Test/FAQ.pod blib/lib/Test/FAQ.pod
cp lib/TB2/Module.pm blib/lib/TB2/Module.pm
cp lib/TB2/Formatter/TAP/v12.pm blib/lib/TB2/Formatter/TAP/v12.pm
cp lib/TB2/BlackHole.pm blib/lib/TB2/BlackHole.pm
cp lib/TB2/Event/Log.pm blib/lib/TB2/Event/Log.pm
cp lib/TB2/threads/shared/off.pm blib/lib/TB2/threads/shared/off.pm
cp lib/TB2/Counter.pm blib/lib/TB2/Counter.pm
cp lib/TB2/EventHandler.pm blib/lib/TB2/EventHandler.pm
cp lib/TB2/Stack.pm blib/lib/TB2/Stack.pm
cp lib/TB2/Formatter/TAP/v13.pm blib/lib/TB2/Formatter/TAP/v13.pm
cp lib/TB2/CanLoad.pm blib/lib/TB2/CanLoad.pm
cp lib/TB2/Mouse.pm blib/lib/TB2/Mouse.pm
cp lib/TB2/HasObjectID.pm blib/lib/TB2/HasObjectID.pm
cp lib/TB2/StackBuilder.pm blib/lib/TB2/StackBuilder.pm
cp lib/TB2/Event/TestMetadata.pm blib/lib/TB2/Event/TestMetadata.pm
cp lib/TB2/Event/SubtestEnd.pm blib/lib/TB2/Event/SubtestEnd.pm
cp lib/TB2/Event/SetPlan.pm blib/lib/TB2/Event/SetPlan.pm
cp lib/TB2/Formatter/PlusMinus.pm blib/lib/TB2/Formatter/PlusMinus.pm
cp lib/TB2/Event/TestEnd.pm blib/lib/TB2/Event/TestEnd.pm
cp lib/TB2/History.pm blib/lib/TB2/History.pm
cp lib/TB2/threads/shared.pm blib/lib/TB2/threads/shared.pm
cp lib/TB2/Result/Role/unknown.pm blib/lib/TB2/Result/Role/unknown.pm
cp lib/Test/Builder/Formatter/TAP.pm blib/lib/Test/Builder/Formatter/TAP.pm
cp lib/Test/Builder/Tester/Color.pm blib/lib/Test/Builder/Tester/Color.pm
cp lib/TB2/HasDefault.pm blib/lib/TB2/HasDefault.pm
cp lib/Test/Builder/Module.pm blib/lib/Test/Builder/Module.pm
cp lib/TB2/Event/SubtestStart.pm blib/lib/TB2/Event/SubtestStart.pm
cp lib/TB2/Formatter/TAP/TB1.pm blib/lib/TB2/Formatter/TAP/TB1.pm
cp lib/TB2/Streamer/Debug.pm blib/lib/TB2/Streamer/Debug.pm
cp lib/TB2/Tester.pm blib/lib/TB2/Tester.pm
cp lib/Test/Builder/Tester.pm blib/lib/Test/Builder/Tester.pm
cp lib/TB2/AssertRecord.pm blib/lib/TB2/AssertRecord.pm
cp lib/TB2/EventCoordinator.pm blib/lib/TB2/EventCoordinator.pm
cp lib/TB2/Result/Role/pass.pm blib/lib/TB2/Result/Role/pass.pm
cp lib/Test/Tutorial.pod blib/lib/Test/Tutorial.pod
cp lib/TB2/Types.pm blib/lib/TB2/Types.pm
cp lib/TB2/Events.pm blib/lib/TB2/Events.pm
cp lib/TB2/Event/Abort.pm blib/lib/TB2/Event/Abort.pm
cp lib/TB2/Formatter.pm blib/lib/TB2/Formatter.pm
cp lib/TB2/AssertStack.pm blib/lib/TB2/AssertStack.pm
cp lib/TB2/OnlyOnePlan.pm blib/lib/TB2/OnlyOnePlan.pm
cp lib/TB2/Formatter/Multi.pm blib/lib/TB2/Formatter/Multi.pm
cp lib/TB2/Design.pod blib/lib/TB2/Design.pod
cp lib/TB2/ThreadSafeFilehandleAccessor.pm blib/lib/TB2/ThreadSafeFilehandleAccessor.pm
PERL_DL_NONLAZY=1 /home/rabbit/perl5/perlbrew/perls/5.10.0_2/bin/perl "-MExtUtils::Command::MM" "-e" "test_harness(0, 'blib/lib', 'blib/arch')" t/*.t t/*/*.t t/*/*/*.t
t/00compile.t .............................. ok
t/00test_harness_check.t ................... ok
t/bad_plan.t ............................... ok
t/BEGIN_require_ok.t ....................... ok
t/BEGIN_use_ok.t ........................... ok
t/buffer.t ................................. ok
t/Builder/bail_out.t ....................... ok
t/Builder/Builder.t ........................ ok
t/Builder/carp.t ........................... ok
t/Builder/context.t ........................ ok
t/Builder/create.t ......................... ok
t/Builder/current_test/no_tests.t .......... ok
t/Builder/current_test/test_number.t ....... ok
t/Builder/current_test/without_plan.t ...... ok
t/Builder/details.t ........................ ok
t/Builder/done_testing.t ................... ok
t/Builder/done_testing_double.t ............ ok
t/Builder/done_testing_null_plan.t ......... ok
t/Builder/done_testing_plan_mismatch.t ..... ok
t/Builder/done_testing_with_no_plan.t ...... ok
t/Builder/done_testing_with_number.t ....... ok
t/Builder/done_testing_with_plan.t ......... ok
t/Builder/expected_tests.t ................. ok
t/Builder/fail.t ........................... ok
t/Builder/fork_with_new_stdout.t ........... ok
t/Builder/has_plan.t ....................... ok
t/Builder/has_plan2.t ...................... ok
t/Builder/in_subtest.t ..................... ok
t/Builder/is_fh.t .......................... ok
t/Builder/is_passing.t ..................... ok
t/Builder/last_test_skipped.t .............. ok
t/Builder/maybe_regex.t .................... ok
t/Builder/no_diag.t ........................ ok
t/Builder/no_ending.t ...................... ok
t/Builder/no_formatter.t ................... ok
t/Builder/no_header.t ...................... ok
t/Builder/no_plan.t ........................ ok
t/Builder/no_plan_at_all.t ................. ok
t/Builder/ok_obj.t ......................... ok
t/Builder/output.t ......................... ok
t/Builder/reset.t .......................... ok
t/Builder/reset_outputs.t .................. ok
t/Builder/set_formatter.t .................. ok
t/Builder/skip_all.t ....................... ok
t/Builder/test_start.t ..................... ok
t/Builder/use_numbers.t .................... ok
t/Builder2/assert.t ........................ ok
t/Builder2/assert_dies.t ................... ok
t/Builder2/AssertRecord.t .................. ok
t/Builder2/AssertStack.t ................... ok
t/Builder2/context.t ....................... ok
t/Builder2/Counter.t ....................... ok
t/Builder2/done_testing.t .................. ok
t/Builder2/HasDefault.t .................... ok
t/Builder2/is.t ............................ ok
t/Builder2/Mouse.t ......................... ok
t/Builder2/Mouse_before_TB2.t .............. skipped: Mouse not installed
t/Builder2/NoWarnings.t .................... ok
t/Builder2/ok_starts_a_stream.t ............ ok
t/Builder2/SimpleBuilder2.t ................ ok
t/Builder2/Stack.t ......................... ok
t/Builder2/StackBuilder.t .................. ok
t/Builder2/subtest.t ....................... ok
t/Builder2/TB2_before_Mouse.t .............. skipped: Mouse not installed
t/Builder2/top.t ........................... ok
t/c_flag.t ................................. ok
t/CanDupFilehandles.t ...................... ok
t/CanLoad.t ................................ ok
t/CanTry.t ................................. ok
t/circular_data.t .......................... ok
t/cmp_ok.t ................................. ok
t/dependents.t ............................. skipped: Dependents only tested when releasing
t/diag.t ................................... 
All 7 subtests passed 
t/died.t ................................... ok
t/dont_overwrite_die_handler.t ............. ok
t/eq_set.t ................................. ok
t/Event/Abort.t ............................ ok
t/Event/Comment.t .......................... ok
t/Event/default_formatter_class.t .......... ok
t/Event/Event.t ............................ ok
t/Event/EventCoordinator.t ................. ok
t/Event/EventHandler.t ..................... ok
t/Event/Events.t ........................... ok
t/Event/Log.t .............................. ok
t/Event/post_order.t ....................... ok
t/Event/SetPlan.t .......................... ok
t/Event/subtest_handler.t .................. ok
t/Event/SubtestEnd.t ....................... ok
t/Event/SubtestStart.t ..................... ok
t/Event/TestEnd.t .......................... ok
t/Event/TestMetadata.t ..................... ok
t/Event/TestStart.t ........................ ok
t/Event/TestState.t ........................ ok
t/exit.t ................................... ok
t/explain.t ................................ ok
t/extra.t .................................. ok
t/extra_one.t .............................. ok
t/fail-like.t .............................. ok
t/fail-more.t .............................. ok
t/fail_one.t ............................... ok
# this diagnostic should be seen
t/filehandles.t ............................ ok
t/fork.t ................................... ok
t/Formatter/Formatter.t .................... ok
t/Formatter/Multi.t ........................ ok
t/Formatter/Null.t ......................... ok
t/Formatter/PlusMinus.t .................... ok
t/Formatter/POSIX.t ........................ ok
t/Formatter/POSIX_plus_Builder.t ........... ok
t/Formatter/reset_streamer.t ............... ok
t/Formatter/subtest.t ...................... ok
t/Formatter/TAP/abort.t .................... ok
t/Formatter/TAP/basic.t .................... ok
t/Formatter/TAP/ending_commentary.t ........ ok
t/Formatter/TAP/escapes.t .................. ok
t/Formatter/TAP/indent.t ................... ok
t/Formatter/TAP/log.t ...................... ok
t/Formatter/TAP/subtest.t .................. ok
t/Formatter/TAP/TB1.t ...................... ok
t/Formatter/TAP/v12.t ...................... ok
t/harness_active.t ......................... ok
t/HasObjectID.t ............................ ok
t/History/child_process.t .................. ok
t/History/History.t ........................ ok
t/History/HistoryStats.t ................... ok
t/History/in_test.t ........................ ok
t/History/plan.t ........................... ok
t/History/test_was_successful.t ............ ok
t/import.t ................................. ok
t/is_deeply_dne_bug.t ...................... ok
t/is_deeply_fail.t ......................... ok
t/is_deeply_with_threads.t ................. skipped: many perls have broken threads.  Enable with AUTHOR_TESTING.
t/missing.t ................................ ok
t/Module/doesnt_set_exported_to.t .......... ok
t/Module/formatter.t ....................... ok
t/More.t ................................... ok
t/new_ok.t ................................. ok
t/no_plan.t ................................ ok
t/no_tests.t ............................... ok
t/note.t ................................... ok
t/OnlyOnePlan/basics.t ..................... ok
t/OnlyOnePlan/no_state.t ................... ok
t/overload.t ............................... ok
t/overload_threads.t ....................... 
All 5 subtests passed 
    (less 1 skipped subtest: 4 okay)
t/plan.t ................................... ok
t/plan_bad.t ............................... ok
t/plan_is_noplan.t ......................... ok
t/plan_no_plan.t ........................... ok
t/plan_shouldnt_import.t ................... ok
t/plan_skip_all.t .......................... skipped: Just testing plan & skip_all
t/pod-coverage.t ........................... skipped: set RELEASE_TESTING to test Pod coverage
t/pod.t .................................... skipped: Test::Pod 1.00 required for testing POD
t/require_ok.t ............................. ok
t/Result/accessors.t ....................... ok
t/Result/basics.t .......................... ok
t/shared_test_state.t ...................... ok
t/Simple/builder.t ......................... ok
t/Simple/load.t ............................ ok
t/Simple/no_plan.t ......................... ok
t/Simple/pass.t ............................ ok
t/skip.t ................................... ok
t/skip_before_plan.t ....................... ok
t/skipall.t ................................ ok
t/strays.t ................................. skipped: not completed
t/Streamer/stdout.t ........................ ok
t/Streamer/Streamer.t ...................... ok
Undefined subroutine &main::shared_clone called at t/Streamer/threads.t line 21.
t/Streamer/threads.t ....................... 
Dubious, test returned 29 (wstat 7424, 0x1d00)
No subtests run 
Undefined subroutine &main::shared_clone called at t/Streamer/ThreadSafeFilehandleAccessor.t line 52.
t/Streamer/ThreadSafeFilehandleAccessor.t .. 
Dubious, test returned 9 (wstat 2304, 0x900)
All 3 subtests passed 
t/subtest/args.t ........................... ok
t/subtest/bail_out.t ....................... ok
t/subtest/basic.t .......................... ok
t/subtest/default.t ........................ ok
t/subtest/die.t ............................ ok
t/subtest/do.t ............................. ok
t/subtest/fork.t ........................... ok
t/subtest/implicit_done.t .................. ok
t/subtest/line_numbers.t ................... ok
t/subtest/plan.t ........................... ok
t/subtest/predicate.t ...................... ok
t/subtest/return.t ......................... ok
Can't locate object method "no_plan" via package "TB2::Event::TestEnd" at /home/rabbit/devel/test-more/blib/lib/TB2/History.pm line 359.
t/subtest/threads.t ........................ 
No subtests run 
t/subtest/todo.t ........................... ok
t/subtest/wstat.t .......................... ok
t/TB1vsTB2.t ............................... ok
t/test_pl/can_isa_ok.t ..................... ok
t/Tester/args.t ............................ ok
t/Tester/basic.t ........................... ok
t/Tester/change_formatter.t ................ ok
t/Tester/die.t ............................. ok
t/Tester/errormess.t ....................... ok
t/Tester/faildiag.t ........................ ok
t/Tester/fhrestore.t ....................... ok
t/Tester/import.t .......................... ok
t/Tester/line_num.t ........................ ok
t/Tester/skip.t ............................ ok
t/Tester2/capture.t ........................ ok
t/Tester2/state_untouched.t ................ ok
t/thread_taint.t ........................... ok
t/threads.t ................................ 
All 1011 subtests passed 
t/threads_shared.t ......................... ok
t/todo.t ................................... ok
t/todo_skip_before_plan.t .................. ok
t/todo_warnings.t .......................... ok
t/true_value.t ............................. ok
t/Types/int.t .............................. ok
t/undef.t .................................. ok
t/use_ok.t ................................. ok
t/use_ok_leaking.t ......................... ok
t/useing.t ................................. ok
t/utf8.t ................................... ok
t/versions.t ............................... ok

Test Summary Report
-------------------
t/diag.t                                 (Wstat: 11 Tests: 7 Failed: 0)
  Non-zero wait status: 11
t/overload_threads.t                     (Wstat: 11 Tests: 5 Failed: 0)
  Non-zero wait status: 11
t/Streamer/threads.t                     (Wstat: 7424 Tests: 0 Failed: 0)
  Non-zero exit status: 29
  Parse errors: No plan found in TAP output
t/Streamer/ThreadSafeFilehandleAccessor.t (Wstat: 2304 Tests: 3 Failed: 0)
  Non-zero exit status: 9
  Parse errors: No plan found in TAP output
t/subtest/threads.t                      (Wstat: 11 Tests: 0 Failed: 0)
  Non-zero wait status: 11
  Parse errors: No plan found in TAP output
t/threads.t                              (Wstat: 11 Tests: 1011 Failed: 0)
  Non-zero wait status: 11
Files=210, Tests=3058, 26 wallclock secs ( 1.18 usr  0.26 sys + 21.04 cusr  1.68 csys = 24.16 CPU)
Result: FAIL
Failed 6/210 test programs. 0/3058 subtests failed.
make: *** [test_dynamic] Error 255
prove -vl t/diag.t t/overload_threads.t t/Streamer/threads.t t/Streamer/ThreadSafeFilehandleAccessor.t t/subtest/threads.t t/threads.t 2>&1 |xclip

t/diag.t ................................... 
TAP version 13
1..7
ok 1 - diag() with todo_output set
ok 2 -   multi line
ok 3 - diag returns false
ok 4 - diag() adds \# even if there's one already
ok 5 -   blank lines get escaped
ok 6 -   even at the end
ok 7
All 7 subtests passed 
t/overload_threads.t ....................... 
TAP version 13
1..5
ok 1 - foo
ok 2
ok 3
not ok 4 - Just checking todo as an overloaded value # TODO not really todo, testing overloaded reason
#   Failed (TODO) test 'Just checking todo as an overloaded value'
#   at t/overload_threads.t line 42.
ok 5 # SKIP not really skipped, testing overloaded reason
All 5 subtests passed 
    (less 1 skipped subtest: 4 okay)
Undefined subroutine &main::shared_clone called at t/Streamer/threads.t line 21.
t/Streamer/threads.t ....................... 
# clone a streamer
Dubious, test returned 29 (wstat 7424, 0x1d00)
No subtests run 
Undefined subroutine &main::shared_clone called at t/Streamer/ThreadSafeFilehandleAccessor.t line 52.
t/Streamer/ThreadSafeFilehandleAccessor.t .. 
# construction and accessors
ok 1
ok 2
ok 3 - works with scalar ref filehandles
# with threads
Dubious, test returned 9 (wstat 2304, 0x900)
All 3 subtests passed 
Can't locate object method "no_plan" via package "TB2::Event::TestEnd" at /home/rabbit/devel/test-more/lib/TB2/History.pm line 359.
t/subtest/threads.t ........................ 
TAP version 13
    TAP version 13
    ok 1 - simple test
    ok 2 - another simple test
    1..2
No subtests run 
t/threads.t ................................ 
TAP version 13
1..1011
# Starting thread 1
# thread 1 started
# kid 1 start
# Starting thread 2
ok 1 - kid 1
ok 2 - kid 1
ok 3 - kid 1
ok 4 - kid 1
ok 5 - kid 1
ok 6 - kid 1
ok 7 - kid 1
ok 8 - kid 1
ok 9 - kid 1
ok 10 - kid 1
ok 11 - kid 1
ok 12 - kid 1
ok 13 - kid 1
ok 14 - kid 1
ok 15 - kid 1
ok 16 - kid 1
ok 17 - kid 1
ok 18 - kid 1
ok 19 - kid 1
ok 20 - kid 1
ok 21 - kid 1
ok 22 - kid 1
ok 23 - kid 1
ok 24 - kid 1
ok 25 - kid 1
ok 26 - kid 1
# thread 2 started
# kid 2 start
ok 27 - kid 1
# Starting thread 3
ok 28 - kid 1
ok 29 - kid 1
ok 30 - kid 2
ok 31 - kid 1
ok 32 - kid 2
ok 33 - kid 1
ok 34 - kid 2
ok 35 - kid 1
ok 36 - kid 2
ok 37 - kid 1
ok 38 - kid 2
ok 39 - kid 1
ok 40 - kid 2
ok 41 - kid 1
ok 42 - kid 1
ok 43 - kid 2
ok 44 - kid 1
ok 45 - kid 2
ok 46 - kid 1
ok 47 - kid 2
ok 48 - kid 1
ok 49 - kid 2
ok 50 - kid 1
ok 51 - kid 2
ok 52 - kid 1
ok 53 - kid 2
ok 54 - kid 1
ok 55 - kid 2
ok 56 - kid 1
ok 57 - kid 2
ok 58 - kid 1
ok 59 - kid 2
ok 60 - kid 1
ok 61 - kid 2
ok 62 - kid 1
ok 63 - kid 1
ok 64 - kid 2
ok 65 - kid 1
ok 66 - kid 2
ok 67 - kid 1
# thread 3 started
# kid 3 start
ok 68 - kid 2
# Starting thread 4
ok 69 - kid 1
ok 70 - kid 2
ok 71 - kid 1
ok 72 - kid 3
ok 73 - kid 2
ok 74 - kid 1
ok 75 - kid 3
ok 76 - kid 2
ok 77 - kid 3
ok 78 - kid 1
ok 79 - kid 2
ok 80 - kid 3
ok 81 - kid 1
ok 82 - kid 2
ok 83 - kid 3
ok 84 - kid 2
ok 85 - kid 3
ok 86 - kid 1
ok 87 - kid 2
ok 88 - kid 3
ok 89 - kid 1
ok 90 - kid 2
ok 91 - kid 3
ok 92 - kid 1
ok 93 - kid 2
ok 94 - kid 3
ok 95 - kid 1
ok 96 - kid 2
ok 97 - kid 3
ok 98 - kid 1
ok 99 - kid 2
ok 100 - kid 3
ok 101 - kid 2
ok 102 - kid 1
ok 103 - kid 3
ok 104 - kid 2
ok 105 - kid 1
ok 106 - kid 3
ok 107 - kid 2
ok 108 - kid 1
ok 109 - kid 3
ok 110 - kid 2
ok 111 - kid 1
ok 112 - kid 3
ok 113 - kid 1
# thread 4 started
ok 114 - kid 2
# kid 4 start
ok 115 - kid 3
# Starting thread 5
ok 116 - kid 1
ok 117 - kid 2
ok 118 - kid 3
ok 119 - kid 1
ok 120 - kid 3
ok 121 - kid 2
ok 122 - kid 1
ok 123 - kid 3
ok 124 - kid 4
ok 125 - kid 2
ok 126 - kid 1
ok 127 - kid 3
ok 128 - kid 2
ok 129 - kid 1
ok 130 - kid 3
ok 131 - kid 4
ok 132 - kid 1
ok 133 - kid 3
ok 134 - kid 2
ok 135 - kid 4
ok 136 - kid 1
ok 137 - kid 3
ok 138 - kid 2
ok 139 - kid 1
ok 140 - kid 4
ok 141 - kid 3
ok 142 - kid 2
ok 143 - kid 1
ok 144 - kid 4
ok 145 - kid 3
ok 146 - kid 2
ok 147 - kid 1
ok 148 - kid 3
ok 149 - kid 1
ok 150 - kid 2
ok 151 - kid 4
ok 152 - kid 1
ok 153 - kid 3
ok 154 - kid 2
ok 155 - kid 4
ok 156 - kid 3
ok 157 - kid 2
ok 158 - kid 1
ok 159 - kid 4
ok 160 - kid 3
ok 161 - kid 2
ok 162 - kid 1
ok 163 - kid 4
# thread 5 started
# kid 5 start
ok 164 - kid 3
ok 165 - kid 2
ok 166 - kid 1
# Starting thread 6
ok 167 - kid 4
ok 168 - kid 3
ok 169 - kid 2
ok 170 - kid 1
ok 171 - kid 5
ok 172 - kid 2
ok 173 - kid 4
ok 174 - kid 3
ok 175 - kid 1
ok 176 - kid 5
ok 177 - kid 2
ok 178 - kid 4
ok 179 - kid 3
ok 180 - kid 1
ok 181 - kid 5
ok 182 - kid 2
ok 183 - kid 4
ok 184 - kid 3
ok 185 - kid 1
ok 186 - kid 5
ok 187 - kid 2
ok 188 - kid 4
ok 189 - kid 3
ok 190 - kid 1
ok 191 - kid 5
ok 192 - kid 2
ok 193 - kid 4
ok 194 - kid 3
ok 195 - kid 5
ok 196 - kid 1
ok 197 - kid 2
ok 198 - kid 4
ok 199 - kid 3
ok 200 - kid 5
ok 201 - kid 1
ok 202 - kid 2
ok 203 - kid 4
ok 204 - kid 3
ok 205 - kid 5
ok 206 - kid 1
ok 207 - kid 2
ok 208 - kid 4
ok 209 - kid 3
ok 210 - kid 5
# kid 6 start
# thread 6 started
ok 211 - kid 1
ok 212 - kid 2
# Starting thread 7
ok 213 - kid 4
ok 214 - kid 3
ok 215 - kid 5
ok 216 - kid 1
ok 217 - kid 2
ok 218 - kid 6
ok 219 - kid 1
ok 220 - kid 3
ok 221 - kid 5
ok 222 - kid 2
ok 223 - kid 4
ok 224 - kid 6
ok 225 - kid 1
ok 226 - kid 3
ok 227 - kid 5
ok 228 - kid 2
ok 229 - kid 4
ok 230 - kid 6
ok 231 - kid 1
ok 232 - kid 3
ok 233 - kid 5
ok 234 - kid 2
ok 235 - kid 6
ok 236 - kid 4
ok 237 - kid 1
ok 238 - kid 3
ok 239 - kid 2
ok 240 - kid 5
ok 241 - kid 6
ok 242 - kid 4
ok 243 - kid 1
ok 244 - kid 3
ok 245 - kid 2
ok 246 - kid 5
ok 247 - kid 6
ok 248 - kid 4
ok 249 - kid 1
ok 250 - kid 3
ok 251 - kid 2
ok 252 - kid 5
ok 253 - kid 6
ok 254 - kid 4
# thread 7 started
ok 255 - kid 1
# kid 7 start
ok 256 - kid 3
ok 257 - kid 2
# Starting thread 8
ok 258 - kid 5
ok 259 - kid 6
ok 260 - kid 4
ok 261 - kid 1
ok 262 - kid 3
ok 263 - kid 2
ok 264 - kid 7
ok 265 - kid 5
ok 266 - kid 6
ok 267 - kid 4
ok 268 - kid 1
ok 269 - kid 3
ok 270 - kid 2
ok 271 - kid 7
ok 272 - kid 5
ok 273 - kid 6
ok 274 - kid 4
ok 275 - kid 1
ok 276 - kid 3
ok 277 - kid 5
ok 278 - kid 7
ok 279 - kid 2
ok 280 - kid 4
ok 281 - kid 6
ok 282 - kid 1
ok 283 - kid 3
ok 284 - kid 5
# kid 1 end
ok 285 - kid 7
ok 286 - kid 2
ok 287 - kid 4
ok 288 - kid 6
ok 289 - kid 3
ok 290 - kid 5
# kid 8 start
ok 291 - kid 7
# thread 8 started
ok 292 - kid 2
# Starting thread 9
ok 293 - kid 4
ok 294 - kid 6
ok 295 - kid 3
ok 296 - kid 5
ok 297 - kid 7
ok 298 - kid 8
ok 299 - kid 2
ok 300 - kid 4
ok 301 - kid 6
ok 302 - kid 5
ok 303 - kid 3
ok 304 - kid 7
ok 305 - kid 8
ok 306 - kid 2
ok 307 - kid 4
ok 308 - kid 6
ok 309 - kid 5
ok 310 - kid 3
ok 311 - kid 7
ok 312 - kid 8
ok 313 - kid 2
ok 314 - kid 4
ok 315 - kid 6
ok 316 - kid 5
ok 317 - kid 7
ok 318 - kid 3
ok 319 - kid 8
ok 320 - kid 4
ok 321 - kid 2
ok 322 - kid 5
ok 323 - kid 6
ok 324 - kid 7
ok 325 - kid 3
ok 326 - kid 8
ok 327 - kid 4
ok 328 - kid 2
ok 329 - kid 5
ok 330 - kid 6
ok 331 - kid 7
ok 332 - kid 3
ok 333 - kid 8
ok 334 - kid 4
ok 335 - kid 2
ok 336 - kid 5
ok 337 - kid 6
# kid 9 start
ok 338 - kid 7
# thread 9 started
ok 339 - kid 3
ok 340 - kid 4
# Starting thread 10
ok 341 - kid 8
ok 342 - kid 2
ok 343 - kid 5
ok 344 - kid 6
ok 345 - kid 7
ok 346 - kid 4
ok 347 - kid 3
ok 348 - kid 8
ok 349 - kid 9
ok 350 - kid 4
ok 351 - kid 5
ok 352 - kid 6
ok 353 - kid 2
ok 354 - kid 3
ok 355 - kid 7
ok 356 - kid 8
ok 357 - kid 9
ok 358 - kid 4
ok 359 - kid 5
ok 360 - kid 6
ok 361 - kid 2
ok 362 - kid 3
ok 363 - kid 7
ok 364 - kid 8
ok 365 - kid 9
ok 366 - kid 4
ok 367 - kid 5
ok 368 - kid 6
ok 369 - kid 2
ok 370 - kid 3
ok 371 - kid 7
ok 372 - kid 8
ok 373 - kid 9
ok 374 - kid 4
ok 375 - kid 5
ok 376 - kid 6
ok 377 - kid 2
# thread 10 started
# kid 10 start
ok 378 - kid 3
ok 379 - kid 8
ok 380 - kid 7
ok 381 - kid 9
# parent: waiting for join
ok 382 - kid 4
ok 383 - kid 5
ok 384 - kid 6
ok 385 - kid 2
ok 386 - kid 3
ok 387 - kid 8
ok 388 - kid 7
ok 389 - kid 10
ok 390 - kid 9
ok 391 - kid 4
ok 392 - kid 6
ok 393 - kid 5
ok 394 - kid 2
ok 395 - kid 3
ok 396 - kid 8
ok 397 - kid 7
ok 398 - kid 10
ok 399 - kid 9
ok 400 - kid 4
ok 401 - kid 6
ok 402 - kid 5
ok 403 - kid 2
ok 404 - kid 3
ok 405 - kid 8
ok 406 - kid 7
ok 407 - kid 9
ok 408 - kid 10
ok 409 - kid 4
ok 410 - kid 6
ok 411 - threads exit status is 42
ok 412 - kid 5
ok 413 - kid 2
# parent: waiting for join
ok 414 - kid 3
ok 415 - kid 8
ok 416 - kid 7
ok 417 - kid 9
ok 418 - kid 10
ok 419 - kid 4
ok 420 - kid 6
ok 421 - kid 5
ok 422 - kid 2
ok 423 - kid 3
ok 424 - kid 8
ok 425 - kid 7
ok 426 - kid 9
ok 427 - kid 10
ok 428 - kid 4
ok 429 - kid 6
ok 430 - kid 5
ok 431 - kid 3
ok 432 - kid 8
ok 433 - kid 2
ok 434 - kid 7
ok 435 - kid 9
ok 436 - kid 10
ok 437 - kid 4
ok 438 - kid 6
ok 439 - kid 5
ok 440 - kid 3
ok 441 - kid 8
ok 442 - kid 2
ok 443 - kid 7
ok 444 - kid 9
ok 445 - kid 10
ok 446 - kid 4
ok 447 - kid 6
ok 448 - kid 5
ok 449 - kid 3
ok 450 - kid 8
ok 451 - kid 2
ok 452 - kid 7
ok 453 - kid 3
ok 454 - kid 10
ok 455 - kid 4
ok 456 - kid 6
ok 457 - kid 5
ok 458 - kid 9
ok 459 - kid 8
ok 460 - kid 2
ok 461 - kid 7
ok 462 - kid 3
ok 463 - kid 10
ok 464 - kid 4
ok 465 - kid 6
ok 466 - kid 5
ok 467 - kid 9
ok 468 - kid 8
ok 469 - kid 2
ok 470 - kid 7
ok 471 - kid 10
ok 472 - kid 3
ok 473 - kid 4
ok 474 - kid 6
ok 475 - kid 5
ok 476 - kid 9
ok 477 - kid 8
ok 478 - kid 2
ok 479 - kid 7
ok 480 - kid 10
ok 481 - kid 3
ok 482 - kid 4
ok 483 - kid 6
ok 484 - kid 5
ok 485 - kid 9
ok 486 - kid 8
ok 487 - kid 2
ok 488 - kid 7
ok 489 - kid 10
ok 490 - kid 3
ok 491 - kid 4
ok 492 - kid 6
ok 493 - kid 5
ok 494 - kid 9
ok 495 - kid 8
ok 496 - kid 2
ok 497 - kid 7
ok 498 - kid 10
ok 499 - kid 3
ok 500 - kid 4
ok 501 - kid 6
ok 502 - kid 5
ok 503 - kid 9
ok 504 - kid 8
ok 505 - kid 7
ok 506 - kid 2
ok 507 - kid 10
ok 508 - kid 3
ok 509 - kid 4
ok 510 - kid 6
ok 511 - kid 5
ok 512 - kid 9
ok 513 - kid 8
ok 514 - kid 7
ok 515 - kid 2
ok 516 - kid 10
ok 517 - kid 3
ok 518 - kid 4
ok 519 - kid 6
ok 520 - kid 5
ok 521 - kid 3
ok 522 - kid 9
ok 523 - kid 7
ok 524 - kid 2
ok 525 - kid 10
ok 526 - kid 8
ok 527 - kid 4
ok 528 - kid 6
ok 529 - kid 5
ok 530 - kid 3
ok 531 - kid 9
ok 532 - kid 7
ok 533 - kid 2
ok 534 - kid 10
ok 535 - kid 4
ok 536 - kid 8
ok 537 - kid 6
ok 538 - kid 5
ok 539 - kid 9
ok 540 - kid 3
ok 541 - kid 7
ok 542 - kid 2
ok 543 - kid 10
ok 544 - kid 4
# kid 2 end
ok 545 - kid 6
ok 546 - kid 8
ok 547 - kid 5
ok 548 - kid 9
ok 549 - kid 3
ok 550 - kid 7
ok 551 - kid 10
ok 552 - kid 4
ok 553 - kid 6
ok 554 - kid 7
ok 555 - kid 8
ok 556 - kid 5
ok 557 - kid 3
ok 558 - kid 9
ok 559 - kid 10
ok 560 - kid 4
ok 561 - kid 6
ok 562 - kid 7
ok 563 - kid 8
ok 564 - kid 5
ok 565 - kid 3
ok 566 - kid 9
ok 567 - kid 10
ok 568 - kid 4
ok 569 - threads exit status is 42
ok 570 - kid 6
ok 571 - kid 7
# parent: waiting for join
ok 572 - kid 8
ok 573 - kid 5
ok 574 - kid 3
ok 575 - kid 9
ok 576 - kid 10
ok 577 - kid 4
ok 578 - kid 6
ok 579 - kid 7
ok 580 - kid 8
ok 581 - kid 5
ok 582 - kid 3
ok 583 - kid 9
ok 584 - kid 4
ok 585 - kid 10
ok 586 - kid 6
ok 587 - kid 7
ok 588 - kid 5
ok 589 - kid 8
ok 590 - kid 9
ok 591 - kid 4
ok 592 - kid 10
ok 593 - kid 7
ok 594 - kid 6
ok 595 - kid 3
ok 596 - kid 5
ok 597 - kid 8
ok 598 - kid 9
ok 599 - kid 4
ok 600 - kid 10
ok 601 - kid 6
ok 602 - kid 7
ok 603 - kid 3
ok 604 - kid 5
ok 605 - kid 8
ok 606 - kid 9
ok 607 - kid 4
ok 608 - kid 10
ok 609 - kid 6
ok 610 - kid 7
ok 611 - kid 3
ok 612 - kid 5
ok 613 - kid 8
ok 614 - kid 9
ok 615 - kid 4
ok 616 - kid 10
ok 617 - kid 6
ok 618 - kid 7
ok 619 - kid 3
ok 620 - kid 5
ok 621 - kid 8
ok 622 - kid 4
ok 623 - kid 10
ok 624 - kid 9
ok 625 - kid 6
ok 626 - kid 3
ok 627 - kid 7
ok 628 - kid 5
ok 629 - kid 9
ok 630 - kid 4
ok 631 - kid 10
ok 632 - kid 6
ok 633 - kid 8
ok 634 - kid 7
ok 635 - kid 3
ok 636 - kid 5
ok 637 - kid 9
ok 638 - kid 10
ok 639 - kid 4
ok 640 - kid 6
ok 641 - kid 8
ok 642 - kid 7
ok 643 - kid 5
ok 644 - kid 6
ok 645 - kid 10
ok 646 - kid 9
ok 647 - kid 4
ok 648 - kid 3
ok 649 - kid 8
ok 650 - kid 7
ok 651 - kid 5
ok 652 - kid 10
ok 653 - kid 6
ok 654 - kid 9
ok 655 - kid 4
ok 656 - kid 3
ok 657 - kid 8
ok 658 - kid 7
ok 659 - kid 5
ok 660 - kid 10
ok 661 - kid 6
ok 662 - kid 9
ok 663 - kid 3
ok 664 - kid 4
ok 665 - kid 8
ok 666 - kid 7
ok 667 - kid 5
ok 668 - kid 10
ok 669 - kid 6
ok 670 - kid 3
ok 671 - kid 9
ok 672 - kid 8
ok 673 - kid 4
ok 674 - kid 7
ok 675 - kid 5
ok 676 - kid 8
ok 677 - kid 6
ok 678 - kid 3
ok 679 - kid 9
ok 680 - kid 10
ok 681 - kid 4
ok 682 - kid 7
ok 683 - kid 5
ok 684 - kid 8
ok 685 - kid 6
ok 686 - kid 3
ok 687 - kid 9
ok 688 - kid 10
# kid 3 end
ok 689 - kid 4
ok 690 - kid 7
ok 691 - kid 5
ok 692 - kid 8
ok 693 - kid 6
ok 694 - kid 10
ok 695 - kid 9
ok 696 - kid 4
ok 697 - kid 7
ok 698 - kid 5
ok 699 - kid 8
ok 700 - kid 6
ok 701 - kid 10
ok 702 - kid 9
ok 703 - kid 4
ok 704 - kid 7
ok 705 - kid 5
ok 706 - kid 8
ok 707 - kid 4
ok 708 - kid 10
ok 709 - kid 9
ok 710 - kid 6
ok 711 - kid 7
ok 712 - kid 5
ok 713 - kid 8
ok 714 - kid 4
ok 715 - threads exit status is 42
ok 716 - kid 10
ok 717 - kid 6
# parent: waiting for join
ok 718 - kid 9
ok 719 - kid 7
ok 720 - kid 10
ok 721 - kid 5
ok 722 - kid 4
ok 723 - kid 6
ok 724 - kid 8
ok 725 - kid 7
ok 726 - kid 9
ok 727 - kid 10
ok 728 - kid 5
ok 729 - kid 4
ok 730 - kid 6
ok 731 - kid 8
ok 732 - kid 7
ok 733 - kid 9
ok 734 - kid 10
ok 735 - kid 5
ok 736 - kid 4
ok 737 - kid 6
ok 738 - kid 8
ok 739 - kid 7
ok 740 - kid 9
ok 741 - kid 5
ok 742 - kid 10
ok 743 - kid 4
ok 744 - kid 6
ok 745 - kid 7
ok 746 - kid 8
ok 747 - kid 9
ok 748 - kid 5
ok 749 - kid 10
ok 750 - kid 4
ok 751 - kid 10
ok 752 - kid 7
ok 753 - kid 8
ok 754 - kid 9
ok 755 - kid 5
ok 756 - kid 6
ok 757 - kid 4
ok 758 - kid 10
ok 759 - kid 7
ok 760 - kid 5
ok 761 - kid 9
ok 762 - kid 8
ok 763 - kid 6
ok 764 - kid 4
ok 765 - kid 10
ok 766 - kid 7
ok 767 - kid 5
ok 768 - kid 9
ok 769 - kid 8
ok 770 - kid 6
ok 771 - kid 4
ok 772 - kid 10
ok 773 - kid 7
ok 774 - kid 5
ok 775 - kid 9
ok 776 - kid 8
ok 777 - kid 6
ok 778 - kid 4
ok 779 - kid 10
ok 780 - kid 7
ok 781 - kid 5
ok 782 - kid 9
ok 783 - kid 8
ok 784 - kid 6
ok 785 - kid 4
ok 786 - kid 7
ok 787 - kid 10
ok 788 - kid 5
ok 789 - kid 9
ok 790 - kid 8
ok 791 - kid 6
ok 792 - kid 4
ok 793 - kid 7
ok 794 - kid 10
ok 795 - kid 5
ok 796 - kid 9
ok 797 - kid 6
ok 798 - kid 8
ok 799 - kid 4
ok 800 - kid 6
ok 801 - kid 10
ok 802 - kid 5
ok 803 - kid 9
ok 804 - kid 10
ok 805 - kid 8
ok 806 - kid 6
ok 807 - kid 4
ok 808 - kid 7
ok 809 - kid 5
ok 810 - kid 9
ok 811 - kid 10
ok 812 - kid 5
ok 813 - kid 6
ok 814 - kid 4
ok 815 - kid 7
ok 816 - kid 8
ok 817 - kid 9
ok 818 - kid 4
ok 819 - kid 5
ok 820 - kid 6
ok 821 - kid 10
ok 822 - kid 7
ok 823 - kid 8
ok 824 - kid 9
ok 825 - kid 4
ok 826 - kid 5
ok 827 - kid 6
# kid 4 end
ok 828 - kid 10
ok 829 - kid 7
ok 830 - kid 8
ok 831 - kid 9
ok 832 - kid 5
ok 833 - kid 6
ok 834 - kid 8
ok 835 - kid 7
ok 836 - kid 10
ok 837 - kid 9
ok 838 - kid 5
ok 839 - kid 6
ok 840 - kid 8
ok 841 - kid 7
ok 842 - kid 10
ok 843 - kid 9
ok 844 - kid 5
ok 845 - kid 6
ok 846 - kid 7
ok 847 - kid 8
ok 848 - threads exit status is 42
ok 849 - kid 10
ok 850 - kid 9
# parent: waiting for join
ok 851 - kid 5
ok 852 - kid 6
ok 853 - kid 7
ok 854 - kid 8
ok 855 - kid 10
ok 856 - kid 9
ok 857 - kid 5
ok 858 - kid 6
ok 859 - kid 7
ok 860 - kid 8
ok 861 - kid 9
ok 862 - kid 10
ok 863 - kid 5
ok 864 - kid 6
ok 865 - kid 7
ok 866 - kid 8
ok 867 - kid 9
ok 868 - kid 10
ok 869 - kid 6
ok 870 - kid 5
ok 871 - kid 7
ok 872 - kid 8
ok 873 - kid 9
ok 874 - kid 10
ok 875 - kid 6
ok 876 - kid 5
ok 877 - kid 7
ok 878 - kid 8
ok 879 - kid 9
ok 880 - kid 10
ok 881 - kid 6
ok 882 - kid 5
ok 883 - kid 7
ok 884 - kid 8
# kid 5 end
ok 885 - kid 6
ok 886 - kid 10
ok 887 - kid 7
ok 888 - kid 6
ok 889 - kid 8
ok 890 - kid 9
ok 891 - kid 10
ok 892 - kid 7
ok 893 - kid 6
ok 894 - kid 8
ok 895 - kid 9
ok 896 - kid 10
ok 897 - kid 7
ok 898 - kid 6
ok 899 - kid 8
ok 900 - kid 9
ok 901 - kid 10
ok 902 - kid 7
ok 903 - kid 6
ok 904 - kid 8
ok 905 - kid 10
ok 906 - kid 9
ok 907 - kid 7
ok 908 - kid 6
ok 909 - kid 8
ok 910 - threads exit status is 42
ok 911 - kid 10
ok 912 - kid 9
ok 913 - kid 7
# parent: waiting for join
ok 914 - kid 6
ok 915 - kid 8
ok 916 - kid 10
ok 917 - kid 9
ok 918 - kid 7
ok 919 - kid 6
ok 920 - kid 8
ok 921 - kid 10
ok 922 - kid 9
ok 923 - kid 7
ok 924 - kid 6
ok 925 - kid 8
ok 926 - kid 10
ok 927 - kid 9
ok 928 - kid 6
ok 929 - kid 7
ok 930 - kid 10
# kid 6 end
ok 931 - kid 8
ok 932 - kid 9
ok 933 - kid 10
ok 934 - kid 7
ok 935 - kid 9
ok 936 - kid 8
ok 937 - kid 10
ok 938 - kid 9
ok 939 - kid 7
ok 940 - kid 8
ok 941 - kid 10
ok 942 - kid 9
ok 943 - kid 7
ok 944 - kid 8
ok 945 - kid 10
ok 946 - kid 9
ok 947 - kid 7
ok 948 - kid 9
ok 949 - kid 10
ok 950 - kid 8
ok 951 - threads exit status is 42
ok 952 - kid 7
ok 953 - kid 9
# parent: waiting for join
ok 954 - kid 10
ok 955 - kid 8
ok 956 - kid 9
ok 957 - kid 7
ok 958 - kid 10
ok 959 - kid 8
ok 960 - kid 9
ok 961 - kid 7
ok 962 - kid 10
ok 963 - kid 9
ok 964 - kid 8
ok 965 - kid 7
ok 966 - kid 10
ok 967 - kid 9
ok 968 - kid 8
ok 969 - kid 7
ok 970 - kid 10
ok 971 - kid 9
# kid 7 end
ok 972 - kid 8
ok 973 - kid 10
ok 974 - kid 9
ok 975 - kid 8
ok 976 - kid 10
ok 977 - kid 9
ok 978 - kid 8
ok 979 - kid 10
ok 980 - kid 9
ok 981 - kid 8
ok 982 - kid 10
ok 983 - kid 9
ok 984 - kid 8
ok 985 - kid 10
ok 986 - kid 9
ok 987 - kid 8
ok 988 - kid 10
ok 989 - kid 9
ok 990 - kid 8
ok 991 - kid 10
ok 992 - kid 9
ok 993 - kid 8
# kid 8 end
ok 994 - threads exit status is 42
ok 995 - kid 10
ok 996 - kid 9
# parent: waiting for join
ok 997 - kid 10
ok 998 - kid 9
ok 999 - kid 10
ok 1000 - kid 9
ok 1001 - kid 10
ok 1002 - kid 9
ok 1003 - kid 10
ok 1004 - kid 9
# kid 9 end
ok 1005 - kid 10
ok 1006 - kid 10
ok 1007 - kid 10
# kid 10 end
ok 1008 - threads exit status is 42
# parent: waiting for join
ok 1009 - threads exit status is 42
# parent: waiting for join
ok 1010 - threads exit status is 42
ok 1011 - End of test
All 1011 subtests passed 

Test Summary Report
-------------------
t/diag.t                                 (Wstat: 11 Tests: 7 Failed: 0)
  Non-zero wait status: 11
t/overload_threads.t                     (Wstat: 11 Tests: 5 Failed: 0)
  Non-zero wait status: 11
t/Streamer/threads.t                     (Wstat: 7424 Tests: 0 Failed: 0)
  Non-zero exit status: 29
  Parse errors: No plan found in TAP output
t/Streamer/ThreadSafeFilehandleAccessor.t (Wstat: 2304 Tests: 3 Failed: 0)
  Non-zero exit status: 9
  Parse errors: No plan found in TAP output
t/subtest/threads.t                      (Wstat: 11 Tests: 0 Failed: 0)
  Non-zero wait status: 11
  Parse errors: No plan found in TAP output
t/threads.t                              (Wstat: 11 Tests: 1011 Failed: 0)
  Non-zero wait status: 11
Files=6, Tests=1026,  1 wallclock secs ( 0.26 usr  0.02 sys +  1.94 cusr  0.34 csys =  2.56 CPU)
Result: FAIL
Owner

schwern commented Mar 26, 2012

I'm considering disabling the thread tests on 5.10.0 and lower. Using threads on anything but a very recent Perl is madness. The installation should not fail because of a feature known to be buggy and is probably not in use (that is, serious thread work on older Perls). I'm tired of playing whack-a-mole with threading bugs on different operating systems and configurations.

That's not to say we shouldn't put some effort into figuring out what's wrong here and look for a simple work around.

I disagree, and can think of several examples. For instance DBIx::Class passes all of its thread torture tests on 5.8.5 (and if not for buggy DBDs would probably go all the way to 5.8.1). Can you please not disable these tests until I had a chance to take a stab at this (probably won't happen before Paris).

Cheers

Owner

schwern commented Mar 26, 2012

Sure thing, thanks for taking it on. Even if I do turn it off there will be some environment variable to force them on.

Note that 5.10.0's threads::shared does not contain shared_clone(). It's using a copy of the function in lib/TB2/threads/shared/on.pm, so that might be something to focus on.

BTW this is the return of our friend TB2::TestState->default. This is enough to trigger the bug:

use threads; use TB2::TestState;  $d = TB2::TestState->default;

Change that to my $d and it doesn't segfault.

Just a heads-up - I have not forgotten about any of this, made a little more progress even since, but life keeps intervening. Keep on with development, I will take care of all the 5.8.x compat issues in due course (couple weeks at most).

Owner

schwern commented Apr 9, 2012

As offered at the hackathon, I'm happy to eliminate or rethink the isa/can delegation between TB2::TestState and TB2::EventCoordinator and make users write $state->ec->method.

Michael G. Schwern wrote:

As offered at the hackathon, I'm happy to eliminate or rethink the isa/can delegation between TB2::TestState and TB2::EventCoordinator and make users write $state->ec->method.

This is not the only issue (I solved this one). There are other
completeky unrelated segfaults. I am just not sending a pull req
before I get an all-green, because the root cause may be something
entirely unrelated.

Owner

schwern commented Apr 11, 2012

Could you post a link to the branch so I can have a look over what you're doing? Don't want to risk it all being finished and then OH GOD WHAT DID YOU DO?! ;-)

Owner

schwern commented Apr 24, 2012

@ribasushi I'd like to get an alpha out and it would be nice to eliminate most of the threading bugs. Could you post a pull request with what you have, even if the 5.8 stuff isn't ready? That would mean less sifting through 5.12 and 5.10 test failures. Thanks.

Owner

schwern commented Jun 18, 2012

@ribasushi So, where are we at?

Currently everything from 5.8.9+ passes tests, except for issue #321. I will not be able to work on the 5.8.8 problems and older this week. Please put out an alpha with the state as is, I will find time to bring back 5.8.1 sometime in July.

Cheers

Owner

schwern commented Jun 19, 2012

Some info from my end...

5.8.9 works for me on OS X.

5.8.8 works for me, except t/Streamer/ThreadSafeFilehandleAccessor.t which segfaults.

5.8.5 dumps core on t/threads.t

@schwern schwern closed this Mar 16, 2014

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment