Test-More / test-more

Test2, Test::More, Test::Simple and Test::Builder Perl modules for writing tests
Other
140 stars 87 forks source link

IPC Fatal Error: Not all files from hub ... have been collected #956

Open eserte opened 4 years ago

eserte commented 4 years ago

Every now and then the test suite fails like this:

Bailout called.  Further testing stopped:  IPC Fatal Error: Not all files from hub '29990~0~1583658796~12' have been collected! at /opt/perl-5.31.9/lib/5.31.9/Test2/IPC/Driver/Files.pm line 123.
IPC Fatal Error: Not all files from hub '29990~0~1583658796~12' have been collected! at /opt/perl-5.31.9/lib/5.31.9/Test2/IPC/Driver/Files.pm line 123.
    Test2::IPC::Driver::Files::drop_hub(Test2::IPC::Driver::Files=HASH(0x28ecef0), "29990~0~1583658796~12") called at /home/cpansand/.cpan/build/2020030810/Test2-Suite-0.000129-0/blib/lib/Test2/AsyncSubtest.pm line 332
    Test2::AsyncSubtest::finish(Test2::AsyncSubtest=HASH(0x2bd4208)) called at /home/cpansand/.cpan/build/2020030810/Test2-Suite-0.000129-0/blib/lib/Test2/Workflow/Runner.pm line 432
    Test2::Workflow::Runner::cull(Test2::Workflow::Runner=HASH(0x29f1658)) called at /home/cpansand/.cpan/build/2020030810/Test2-Suite-0.000129-0/blib/lib/Test2/Workflow/Runner.pm line 139
    Test2::Workflow::Runner::run(Test2::Workflow::Runner=HASH(0x29f1658)) called at t/acceptance/Workflow-Acceptance.t line 80
Subtest bar did not finish! at /home/cpansand/.cpan/build/2020030810/Test2-Suite-0.000129-0/blib/lib/Test2/AsyncSubtest.pm line 511.
# Test ended with extra hubs on the stack!
Subtest bar did not finish! at /home/cpansand/.cpan/build/2020030810/Test2-Suite-0.000129-0/blib/lib/Test2/AsyncSubtest.pm line 511 during global destruction.
FAILED--Further testing stopped: IPC Fatal Error: Not all files from hub '29990~0~1583658796~12' have been collected! at /opt/perl-5.31.9/lib/5.31.9/Test2/IPC/Driver/Files.pm line 123.
make: *** [test_dynamic] Error 255

Looking at http://fast-matrix.cpantesters.org/?dist=Test2-Suite%200.000129 this might happen everywhere, regardless of OS and perl version.

eserte commented 4 years ago

Sometimes there's leftover data:

IPC Fatal Error: Not all files from hub '7979~0~1590384885~12' have been collected!
Here is the leftover data:
========================
{
   "7979~0~1590384885~122~7983~0~1~Test2~AsyncSubtest~Event~Attach" : {
      "_eid" : "7983~0~1590384885~123",
      "hubs" : [
         {
            "buffered" : 1,
            "details" : "Test2::AsyncSubtest::Hub",
            "hid" : "7979~0~1590384885~122",
            "ipc" : 1,
            "nested" : 3,
            "pid" : 7979,
            "tid" : "0",
            "uuid" : null
         }
      ],
      "id" : "1",
      "trace" : {
         "buffered" : 1,
         "cid" : "AsyncSubtest-13",
         "frame" : [
            "Test2::AsyncSubtest",
            "/home/cpansand/.cpan/build/2020052507/Test2-Suite-0.000129-uJTzcf/blib/lib/Test2/AsyncSubtest.pm",
            428,
            "Test2::AsyncSubtest::attach",
            "1",
            null,
            null,
            null,
            2018,
            "UUUUUUUUUUUUUUUUUU",
            null
         ],
         "hid" : "7979~0~1590384885~122",
         "huuid" : null,
         "nested" : 3,
         "uuid" : null
      }
   }
}

===================
 at /home/cpansand/.cpan/build/2020052507/Test-Simple-1.302175-WYu6XU/blib/lib/Test2/IPC/Driver/Files.pm line 149.
...
exodist commented 4 years ago

uhg, the trace is incorrect, I have to fix that code to do the right trace, then hopefully next time you see this it will give me a more useful message. Will fix the trace as soon as I can then hopefully we can get to the bottom of the real problem.

haarg commented 11 months ago

This has been causing some issues in perl core. Exodist told me:

I would say core should probably just disable that test (or delete it) when the package is pulled in. the test is not one that is necessary to run all the time, it should probably be an author test.

So for now, we're going to exclude the t/acceptance/Workflow-Acceptance.t test from core.

jkeenan commented 11 months ago

This has been causing some issues in perl core. Exodist told me:

I would say core should probably just disable that test (or delete it) when the package is pulled in. the test is not one that is necessary to run all the time, it should probably be an author test.

So for now, we're going to exclude the t/acceptance/Workflow-Acceptance.t test from core.

I concur. This test fails much too often in our smoke-testing rigs.

Has a pull request been submitted upstream for this ... or should we simply exclude this test file from the core distribution via an entry in Porting/Maintainers.pl?

jkeenan commented 11 months ago

This has been causing some issues in perl core. Exodist told me:

I would say core should probably just disable that test (or delete it) when the package is pulled in. the test is not one that is necessary to run all the time, it should probably be an author test.

So for now, we're going to exclude the t/acceptance/Workflow-Acceptance.t test from core.

I concur. This test fails much too often in our smoke-testing rigs.

Has a pull request been submitted upstream for this ... or should we simply exclude this test file from the core distribution via an entry in Porting/Maintainers.pl?

Aha! I see that you've already recommended the latter approach: https://github.com/Perl/perl5/pull/21544/files. Thanks.