Subject: | SegFault in RedHat 5 when yum update perl overwrites the CPAN installed version of Cwd.so |
I'm reporting this issue here, but at the moment, I think this is a RedHat Bug with where they install INSTALLDIRS files via CPAN versus where their own RPM provides them.
I'm opening this ticket here in the event someone's trying to see if this is a known issue.
Description of problem:
After upgrading a system from RedHat 5.10 to 5.11 (including perl), many perl scripts, including /usr/bin/cpan start failing with:
Attempt to free unreferenced scalar: SV 0x9e01024, Perl interpreter: 0x9ce1008 at /usr/lib/perl5/5.8.8/ExtUtils/Liblist.pm line 6.
Segmentation fault
Version-Release number of selected component (if applicable):
perl-5.8.8-42.el5
How reproducible: Very.
Steps to Reproduce:
1. Start with a fresh 5.10 install, including perl and gcc
2. via /usr/bin/cpan, upgrade PathTools (cpan Cwd)
3. yum -y update perl
4. cpan
Actual results:
Attempt to free unreferenced scalar: SV 0x9e01024, Perl interpreter: 0x9ce1008 at /usr/lib/perl5/5.8.8/ExtUtils/Liblist.pm line 6.
Segmentation fault
Expected results:
Show quoted text
cpan>
Additional info:
The problem:
On 5.10, Installing perl provides Cwd.so (version 3.12) in:
/usr/lib64/perl5/5.8.8/x86_64-linux-thread-multi/auto/Cwd/Cwd.so
or
/usr/lib/perl5/5.8.8/i386-linux-thread-multi/auto/Cwd/Cwd.so
Then if you upgrade Cwd to the CPAN version, it overwrites the Cwd.so file with the 3.47 version
upgrading perl via YUM then downgrades Cwd.so back to 3.12 BUT does not downgrade the
I note in Makefile.PL that they are using 'INSTALLDIRS' => 'perl'. What's problematic is that the arch files are overwritten but not the pure perl code. If both had been overwritten, I'd say this was a bug with PathTools. However, the act of upgrading the perl RPM currently replaces some but not all of the PathTools distro. This seems to be more of a design issue with where the RPM versus the CPAN distro installs INSTALLDIRS => 'perl' files to.