8000 t/op/threads.t: Test can hang after only 9 out of 30 unit tests run · Issue #264 · atoomic/perl · GitHub
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content
t/op/threads.t: Test can hang after only 9 out of 30 unit tests run #264
Open
@jkeenan

Description

@jkeenan

t/op/threads.t appears to be vulnerable to hangs which cause the file to be graded as FAIL.

See this smoke-test report of our simulation in Perl 5: http://perl5.test-smoke.org/report/118070.

I went to the NetBSD VM that generated this smoke testing report. Using the same perl that generated the second of the two FAILS in that report, I first called:

$ ./perl -Ilib -V:config_args
config_args='-des -Dusedevel -Duseithreads -DDEBUGGING';
[perl-reporter-08] $ ./perl -Ilib t/op/threads.t
1..30
ok 1 - delete() under threads
ok 2 - weaken ref under threads
ok 3 - weaken ref \#2 under threads
 # parent 19460: continue
 # kid 1 before sort
 # parent 19460: continue
 # kid 2 before sort
 # parent 19460: waiting for join
 # kid 1 after sort, sleeping 1
 # kid 2 after sort, sleeping 1
 # kid 1 exit
 # parent 19460: thread exited
 # parent 19460: waiting for join
 # kid 2 exit
 # parent 19460: thread exited
ok 4
ok 5 - cloning constant subs
ok 6 - Ensure PL_linestr can be cloned
ok 7 - threads in CHECK block
ok 8 - threads in INIT block
ok 9 - Bug \#41138
ok 10 - [perl \#45053]
ok 11
ok 12
ok 13 - clone seen-evals
ok 14 - undefing a typeglob doesn't cause a crash during cloning
ok 15 - No del_backref panic [perl \#70748]
ok 16 - No del_backref panic [perl \#70748] (2)
ok 17 - returning a closure
ok 18 - Test for 34394ecd06e704e9
ok 19 - RT \#73046
ok 20 - 0 refcnt neither on tmps stack nor in @_
ok 21 - RT \#73086 - clone used to clone active pads
ok 22 - Just special casing lexicals in ?{ ... }
ok 23 - 0 refcnt during CLONE
ok 24 - avoid peephole recursion
ok 25 - Pipes shared between threads do not block when closed
ok 26 - globs cloned and joined are not recloned
ok 27 - no crash when deleting $::{INC} in thread
ok 28 - no crash modifying extended array element
ok 29 - RT \#36664: Strange behavior of shared array
ok 30 - RT \#41121 binmode(STDOUT,":encoding(utf8) does not crash

So far so good. But then I called:

[perl-reporter-08] $ cd t ; ./perl harness -v op/threads.t; cd -

ok 1 - delete() under threads
ok 2 - weaken ref under threads
ok 3 - weaken ref \#2 under threads
ok 4
ok 5 - cloning constant subs
ok 6 - Ensure PL_linestr can be cloned
ok 7 - threads in CHECK block
ok 8 - threads in INIT block
ok 9 - Bug \#41138

The program hung there for several minutes, during which I began typing this report. Then ...

 # Test process timed out - terminating
Failed 21/30 subtests 

Test Summary Report
-------------------
op/threads.t (Wstat: 139 Tests: 9 Failed: 0)
  Non-zero wait status: 139
  Parse errors: Bad plan.  You planned 30 tests but ran 9.
Files=1, Tests=9, 183 wallclock secs ( 0.02 usr  0.05 sys +  2.36 cusr  0.57 csys =  3.00 CPU)
Result: FAIL

ISTR this problem has appeared previously. Granted, this failure occurred in the smoke-me/jkeenan/cumberland-blues branch in Perl 5 -- not in tag alpha-02-MC-4 in our repository. But I know this is not the first time I've seen a hang at this point.

Thank you very much.
Jim Keenan

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't workingthreadsthreads-related problems

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions

      0