Bug 1292177 - Symbol error loading perl module Authen::Krb5.
Summary: Symbol error loading perl module Authen::Krb5.
Keywords:
Status: CLOSED CURRENTRELEASE
Alias: None
Product: Fedora
Classification: Fedora
Component: perl-Authen-Krb5
Version: 23
Hardware: x86_64
OS: Unspecified
unspecified
high
Target Milestone: ---
Assignee: Petr Šabata
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2015-12-16 16:34 UTC by Corey Farrell
Modified: 2016-04-04 11:39 UTC (History)
4 users (show)

Fixed In Version: perl-Authen-Krb5-1.9-15.fc23
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2016-03-07 13:35:26 UTC
Type: Bug
Embargoed:


Attachments (Terms of Use)


Links
System ID Private Priority Status Summary Last Updated
Red Hat Bugzilla 1323662 0 unspecified CLOSED Authen::Krb5 uses internal and no longer existing krb5 functions 2021-02-22 00:41:40 UTC

Internal Links: 1323662

Description Corey Farrell 2015-12-16 16:34:01 UTC
Description of problem:
Loading Authen::Krb5 fails due to a missing symbol.

Version-Release number of selected component (if applicable):
perl-Authen-Krb5-1.9-14.fc23.x86_64

How reproducible:
Every time

Steps to Reproduce:
1. dnf install perl-Authen-Krb5
2. perl -e 'use Authen::Krb5;'

Actual results:
Can't load '/usr/lib64/perl5/vendor_perl/auto/Authen/Krb5/Krb5.so' for module Authen::Krb5: /usr/lib64/perl5/vendor_perl/auto/Authen/Krb5/Krb5.so: undefined symbol: krb5_free_krbhst at /usr/lib64/perl5/DynaLoader.pm line 193.
 at -e line 1.
Compilation failed in require at -e line 1.
BEGIN failed--compilation aborted at -e line 1.


Expected results:
Silence.

Comment 1 Corey Farrell 2015-12-16 16:38:47 UTC
I just verified: rebuilding the Fedora SRPM solves this problem.

Comment 2 Petr Šabata 2015-12-18 15:25:00 UTC
Thanks for the report, Corey.
I'll rebuild the package.

Comment 3 Fedora Update System 2015-12-18 15:52:31 UTC
perl-Authen-Krb5-1.9-15.fc23 has been submitted as an update to Fedora 23. https://bodhi.fedoraproject.org/updates/FEDORA-2015-bfab18906a

Comment 4 Fedora Update System 2015-12-19 20:00:31 UTC
perl-Authen-Krb5-1.9-15.fc23 has been pushed to the Fedora 23 testing repository. If problems still persist, please make note of it in this bug report.
If you want to test the update, you can install it with
$ su -c 'dnf --enablerepo=updates-testing update perl-Authen-Krb5'
You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2015-bfab18906a

Comment 5 Fedora Update System 2015-12-28 22:56:05 UTC
perl-Authen-Krb5-1.9-15.fc23 has been pushed to the Fedora 23 stable repository. If problems still persist, please make note of it in this bug report.

Comment 6 Toby Blake 2016-03-31 14:18:49 UTC
Hello,

I don't currently have access to an FC machine, but on scientific linux 7.2 (based on rhel 7.2) I still get the issue described in this bug when using PERL_DL_NONLAZY=1.  This is how ExtUtils::MakeMaker runs its tests.

[bolt]toby: perl -e 'use Authen::Krb5;'
[bolt]toby: PERL_DL_NONLAZY=1 perl -e 'use Authen::Krb5'
Can't load '/usr/lib64/perl5/vendor_perl/auto/Authen/Krb5/Krb5.so' for module Authen::Krb5: /usr/lib64/perl5/vendor_perl/auto/Authen/Krb5/Krb5.so: undefined symbol: krb5_free_krbhst at /usr/lib64/perl5/DynaLoader.pm line 190.
 at -e line 1.
Compilation failed in require at -e line 1.
BEGIN failed--compilation aborted at -e line 1.
[bolt]toby: 

Cheers
Toby

Comment 7 Petr Šabata 2016-04-01 08:08:23 UTC
Toby,

This module doesn't appear to be a part of neither EL7 nor EPEL7.  I guess it comes from SL's own repositories.  You should report it to them.

Comment 8 Toby Blake 2016-04-01 08:43:27 UTC
Hi Petr,

I built it myself from the SRPM in koji.fedoraproject.org.  I'm reporting it against this bug as I imagine the problem will be the same for FC, e.g. for any MakeMaker test suites with modules which use Authen::Krb5.  I can install a machine to test this if needed?

Cheers
Toby

Comment 9 Petr Šabata 2016-04-01 09:12:22 UTC
Thanks but this bug was fixed in Fedora already -- by rebuilding the perl-Authen-Krb5 package, as mentioned in comment #2.  It works fine for me with perl-Authen-Krb5-1.9-15.fc23.x86_64 on F23.

Comment 10 Toby Blake 2016-04-01 15:45:37 UTC
Hello,

The issue is when using PERL_DL_NONLAZY=1 and can be replicated on FC23 (on a new install from the live CD, with updates)...

[toby@localhost ~]$ cat /etc/redhat-release
Fedora release 23 (Twenty Three)
[toby@localhost ~]$ rpm -q perl-Authen-Krb5
perl-Authen-Krb5-1.9-15.fc23.x86_64
[toby@localhost ~]$ perl -e 'use Authen::Krb5'
[toby@localhost ~]$ PERL_DL_NONLAZY=1 perl -e 'use Authen::Krb5'
Can't load '/usr/lib64/perl5/vendor_perl/auto/Authen/Krb5/Krb5.so' for module Authen::Krb5: /usr/lib64/perl5/vendor_perl/auto/Authen/Krb5/Krb5.so: undefined symbol: krb5_free_krbhst at /usr/lib64/perl5/DynaLoader.pm line 193.
 at -e line 1.
Compilation failed in require at -e line 1.
BEGIN failed--compilation aborted at -e line 1.


This is an issue because PERL_DL_NONLAZY=1 is used by ExtUtils::MakeMaker (and probably other things), e.g. after dnf install perl-ExtUtils-MakeMaker and dnf install perl-Test-Simple...

[toby@localhost ~]$ cd AuthenKrb5Test/
[toby@localhost AuthenKrb5Test]$ cat Makefile.PL
 use ExtUtils::MakeMaker;

WriteMakefile(
    NAME => 'AuthenKrb5Test',
        VERSION => '0.0.1'
	    );
[toby@localhost AuthenKrb5Test]$ cat t/use.t
use Test::More tests => 1;

BEGIN { use_ok("Authen::Krb5"); }

[toby@localhost AuthenKrb5Test]$ perl Makefile.PL
Generating a Unix-style Makefile
Writing Makefile for AuthenKrb5Test
[toby@localhost AuthenKrb5Test]$ make
[toby@localhost AuthenKrb5Test]$ make test
PERL_DL_NONLAZY=1 "/usr/bin/perl" "-MExtUtils::Command::MM" "-MTest::Harness" "-e" "undef *Test::Harness::Switches; test_harness(0, 'blib/lib', 'blib/arch')" t/*.t
t/use.t .. 1/1
#   Failed test 'use Authen::Krb5;'
#   at t/use.t line 3.
#     Tried to use 'Authen::Krb5'.
#     Error:  Can't load '/usr/lib64/perl5/vendor_perl/auto/Authen/Krb5/Krb5.so' for module Authen::Krb5: /usr/lib64/perl5/vendor_perl/auto/Authen/Krb5/Krb5.so: undefined symbol: krb5_free_krbhst at /usr/lib64/perl5/DynaLoader.pm line 193.
#  at t/use.t line 3.
# Compilation failed in require at t/use.t line 3.
# BEGIN failed--compilation aborted at t/use.t line 3.
# Looks like you failed 1 test of 1.
t/use.t .. Dubious, test returned 1 (wstat 256, 0x100)
Failed 1/1 subtests

Test Summary Report
-------------------
t/use.t (Wstat: 256 Tests: 1 Failed: 1)
  Failed test:  1
  Non-zero exit status: 1
Files=1, Tests=1,  0 wallclock secs ( 0.05 usr  0.05 sys +  0.06 cusr  0.05 csys =  0.21 CPU)
Result: FAIL
Failed 1/1 test programs. 1/1 subtests failed.
Makefile:762: recipe for target 'test_dynamic' failed
make: *** [test_dynamic] Error 1
[toby@localhost AuthenKrb5Test]$


Running the command that make test runs by hand with PERL_DL_NONLAZY=0 succeeds.

Cheers
Toby

Comment 11 Petr Šabata 2016-04-04 11:06:06 UTC
Thank you.  I wasn't testing this properly.  I confirm the issue exists and appears to be a design bug in the module.  I'll file a new report for this.


Note You need to log in before you can comment on or make changes to this bug.