| Summary: | Perl module Number::Fraction dumps core when loaded. | ||
|---|---|---|---|
| Product: | [Fedora] Fedora | Reporter: | George Sicherman <colonel> |
| Component: | perl-Number-Fraction | Assignee: | Jitka Plesnikova <jplesnik> |
| Status: | CLOSED NOTABUG | QA Contact: | Fedora Extras Quality Assurance <extras-qa> |
| Severity: | low | Docs Contact: | |
| Priority: | unspecified | ||
| Version: | 23 | CC: | colonel, jplesnik, perl-devel, ppisar |
| Target Milestone: | --- | ||
| Target Release: | --- | ||
| Hardware: | x86_64 | ||
| OS: | Linux | ||
| Whiteboard: | |||
| Fixed In Version: | Doc Type: | If docs needed, set a value | |
| Doc Text: | Story Points: | --- | |
| Clone Of: | Environment: | ||
| Last Closed: | 2016-09-02 14:13:00 UTC | Type: | Bug |
| Regression: | --- | Mount Type: | --- |
| Documentation: | --- | CRM: | |
| Verified Versions: | Category: | --- | |
| oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |
| Cloudforms Team: | --- | Target Upstream Version: | |
I cannot reproduce it. Does this command fails at your machine?
$ perl -e 'use Number::Fraction;'
It should not print anything. If it fails, I suspect you have some private copy of a binary Perl module installed that was built against older perl and is not compatible with Fedora's perl (e.g. after upgrading from Fedora 22). You can check it with strace command to see where the files are loaded from:
$ strace -e open -- perl -e 'use Number::Fraction;'
open("/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 3
open("/lib64/libperl.so.5.22", O_RDONLY|O_CLOEXEC) = 3
open("/lib64/libpthread.so.0", O_RDONLY|O_CLOEXEC) = 3
open("/lib64/libresolv.so.2", O_RDONLY|O_CLOEXEC) = 3
open("/lib64/libnsl.so.1", O_RDONLY|O_CLOEXEC) = 3
open("/lib64/libdl.so.2", O_RDONLY|O_CLOEXEC) = 3
open("/lib64/libm.so.6", O_RDONLY|O_CLOEXEC) = 3
open("/lib64/libcrypt.so.1", O_RDONLY|O_CLOEXEC) = 3
open("/lib64/libutil.so.1", O_RDONLY|O_CLOEXEC) = 3
open("/lib64/libc.so.6", O_RDONLY|O_CLOEXEC) = 3
open("/lib64/libfreebl3.so", O_RDONLY|O_CLOEXEC) = 3
open("/usr/lib/locale/locale-archive", O_RDONLY|O_CLOEXEC) = 3
open("/dev/urandom", O_RDONLY) = 3
open("/dev/null", O_RDONLY) = 3
open("/usr/share/perl5/vendor_perl/Number/Fraction.pm", O_RDONLY) = 4
open("/usr/share/perl5/strict.pm", O_RDONLY) = 5
open("/usr/share/perl5/warnings.pm", O_RDONLY) = 5
open("/usr/share/perl5/vendor_perl/Carp.pm", O_RDONLY) = 5
open("/usr/share/perl5/vendor_perl/Exporter.pm", O_RDONLY) = 5
[...]
open("/usr/lib64/perl5/vendor_perl/Moose/Meta/Role/Application/ToRole.pm", O_RDONLY) = 6
open("/usr/lib64/perl5/vendor_perl/Moose/Meta/Role/Application/ToInstance.pm", O_RDONLY) = 6
open("/usr/lib64/perl5/vendor_perl/Moose/Meta/Attribute/Native.pm", O_RDONLY) = 6
+++ exited with 0 +++
Especially files that end with ".so" are important as they are binary Perl modules that must match current perl. The wrong location is usually from /usr/local or home user's home directory. My output for the .so file looks like this:
$ strace -e open -- perl -e 'use Number::Fraction;' 2>&1 |grep \\.so
open("/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 3
open("/lib64/libperl.so.5.22", O_RDONLY|O_CLOEXEC) = 3
open("/lib64/libpthread.so.0", O_RDONLY|O_CLOEXEC) = 3
open("/lib64/libresolv.so.2", O_RDONLY|O_CLOEXEC) = 3
open("/lib64/libnsl.so.1", O_RDONLY|O_CLOEXEC) = 3
open("/lib64/libdl.so.2", O_RDONLY|O_CLOEXEC) = 3
open("/lib64/libm.so.6", O_RDONLY|O_CLOEXEC) = 3
open("/lib64/libcrypt.so.1", O_RDONLY|O_CLOEXEC) = 3
open("/lib64/libutil.so.1", O_RDONLY|O_CLOEXEC) = 3
open("/lib64/libc.so.6", O_RDONLY|O_CLOEXEC) = 3
open("/lib64/libfreebl3.so", O_RDONLY|O_CLOEXEC) = 3
open("/usr/lib64/perl5/vendor_perl/auto/List/Util/Util.so", O_RDONLY|O_CLOEXEC) = 6
open("/usr/lib64/perl5/vendor_perl/auto/Params/Util/Util.so", O_RDONLY|O_CLOEXEC) = 8
open("/usr/lib64/perl5/vendor_perl/auto/Sub/Name/Name.so", O_RDONLY|O_CLOEXEC) = 9
open("/usr/lib64/perl5/vendor_perl/auto/Package/Stash/XS/XS.so", O_RDONLY|O_CLOEXEC) = 8
open("/usr/lib64/perl5/vendor_perl/auto/List/MoreUtils/MoreUtils.so", O_RDONLY|O_CLOEXEC) = 10
open("/usr/lib64/perl5/auto/mro/mro.so", O_RDONLY|O_CLOEXEC) = 9
open("/usr/lib64/perl5/vendor_perl/auto/Sub/Identify/Identify.so", O_RDONLY|O_CLOEXEC) = 11
open("/usr/lib64/perl5/vendor_perl/auto/Moose/Moose.so", O_RDONLY|O_CLOEXEC) = 7
open("/usr/lib64/perl5/auto/B/B.so", O_RDONLY|O_CLOEXEC) = 9
open("/usr/lib64/perl5/auto/re/re.so", O_RDONLY|O_CLOEXEC) = 9
Thank you! This was indeed the cause. My Perl takes modules Runtime and Classify from /usr/local/... and is dumping core on Classify.so. I will clean out the local modules and close this bug report. |
Description of problem: This Perl module dumps core when loaded. Version-Release number of selected component (if applicable): 2.00-1.fc23 noarch How reproducible: Create a file with this in it: #!/usr/bin/perl use Number::Fraction; Make it executable and execute it. Actual results: Segmentation fault (core dumped) Expected results: Exit with status 0. Additional info: The computer is an HP workstation with a quad-core Xeon CPU.