-
Notifications
You must be signed in to change notification settings - Fork 9
-
Notifications
You must be signed in to change notification settings - Fork 9
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[0.21] lazy_load_for_storable.t fails on Perl 5.28.1 #11
Comments
Actually it fails not only on 5.28.1, but also on systems with other perl version. Statistical analysis has a somewhat surprising candidate: it breaks if JSON 4.01 is installed (@charsbar FYI):
|
After running the test suite on more smokers it does not look anymore that JSON 4.01 is responsible for the failure. |
@eserte, thanks. I couldn't reproduce the issue with Perl 5.28.1 (built with plenv) or any other Perl versions with JSON 4.01 and various versions of JSON backends. Possible candidates in the Perl 5.28.1 core that may load Storable are Encode and Test2::IPC::Driver::Files, but I'm not sure if they are actually loaded somewhere. |
My ansible playbook installs plenv, Perl::Build, uses that to install 5.28.1, updates all modules from CPAN and then installs this module as a dependency of Catalyst::Runtime. |
It's rather Test-Simple-1.302058-TRIAL where it started to fail for me. |
... but I get PASSes on some of my smokers with Test-Simple-1.302160 |
Test::More may trigger a load of Storable.pm if some prereqs are met. Here's the call stack after running "require Test::More" with a breakpoint on loading Storable.pm:
|
Maybe the test script should be defensive and expect that the other "use" statements in the script could load Storable itself. So a possible workaround could be (completely untested code):
Another question is: shouldn't Test::More be as non-invasive as possible? Using only the minimal set of modules as possible? |
I can reproduce the failure with this command:
|
@eserte thanks, confirmed the failure. |
It tries. It is a balancing act. Storable should only get loaded by Test::More/Builder if you use threads or load Test2::IPC (or something that needs one of these). Storable is used in the new IPC system which makes thread support significantly better than it used to be. If you are encountering a situation where Storable is being loaded, but threads are not in use and you are not loading anything that should need IPC then that is probably a bug, and I would love to have it reported. |
For such a simple test, Test::More is not needed:
|
Any news? I'm trying to install Request Tracker but run into this issue.
|
Per discussion in tokuhirom/HTTP-Headers-Fast#11 and patch in tokuhirom/HTTP-Headers-Fast#12, work around a test failure, at least until the next release of HTTP::Headers::Fast.
Skip lazy_load_for_storable.t if Storable is already loaded (fix #11, patch by Slaven Rezić)
Perl is fresh compiled on Debian 9 x86-64 using plenv and Perl::Build:
The text was updated successfully, but these errors were encountered: