Bug 1981927

Summary: APC::ThreadMutex is not available on x86_64 mod_perl
Product: [Fedora] Fedora EPEL Reporter: Nathan Coulson <nathan>
Component: mod_perlAssignee: Petr Pisar <ppisar>
Status: CLOSED ERRATA QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: epel8CC: jkaluza, jorton, perl-devel, ppisar
Target Milestone: ---   
Target Release: ---   
Hardware: x86_64   
OS: Unspecified   
Whiteboard:
Fixed In Version: mod_perl-2.0.11-9.fc35 mod_perl-2.0.11-8.fc34 mod_perl-2.0.11-7.fc33 mod_perl-2.0.11-4.el8 Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2021-07-23 01:03:21 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:
Embargoed:

Description Nathan Coulson 2021-07-13 17:59:08 UTC
Description of problem:
'use APR::ThreadMutex ();' results in

 [Tue Jul 13 09:19:11.762106 2021] [perl:error] [pid 1065808:tid 140400020277568] Can't locate APR/ThreadMutex.pm in @INC (you may need to install the APR::ThreadMutex module) (@INC contains: /usr/local/lib64/perl5 /usr/local/share/perl5 /usr/lib64/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib64/perl5 /usr/share/perl5 /etc/httpd /usr/share/puh/apache/perl) at /home/Test.pm line 40.\nBEGIN failed--compilation aborted at /home/test.pm line 40.\nCompilation failed in require at /home/startup.pl line 10.\nBEGIN failed--compilation aborted at /home/startup.pl line 10.\nCompilation failed in require at (eval 2) line 1.\n

There is also no /usr/lib64/perl5/vendor_perl/APR/ThreadMutex.pm on x86_64's variant of mod_perl, but I do see this existing in aarch64's variant.


Version-Release number of selected component (if applicable):
2.0.11-1

How reproducible:
always

Steps to Reproduce:
ncoulson@home:~/z/y$ rpm -qpl mod_perl-2.0.11-1.el8.x86_64.rpm | grep ThreadMutex

Actual results:
ncoulson@home:~/z/y$ rpm -qpl mod_perl-2.0.11-1.el8.x86_64.rpm | grep ThreadMutex
/usr/share/doc/mod_perl/docs/api/APR/ThreadMutex.pod
/usr/share/man/man3/APR::ThreadMutex.3pm.gz


Expected results: (Noted this existing in aarch64)
ncoulson@home:~/z/y$ rpm -qpl mod_perl-2.0.11-1.el8.aarch64.rpm  | grep ThreadMutex
/usr/lib64/perl5/vendor_perl/APR/ThreadMutex.pm
/usr/lib64/perl5/vendor_perl/auto/APR/ThreadMutex
/usr/lib64/perl5/vendor_perl/auto/APR/ThreadMutex/ThreadMutex.so
/usr/share/doc/mod_perl/docs/api/APR/ThreadMutex.pod
/usr/share/man/man3/APR::ThreadMutex.3pm.gz

Comment 1 Petr Pisar 2021-07-14 06:59:25 UTC
I confirm this issue.

There are two bugs in mod_perl build script:

(1) APR::ThreadMutex module is built only if APR library was built with threads support.
    mod_perl's build script parses /usr/include/apr-1/apr.h for HAS_THREADS preprocessor
    symbol to decide whether APR library supports threads. But apr-devel package modifies
    /usr/include/apr-1/apr.h in a way which mod_perl's build script does not understand.
    As a result mod_perl does not produce APR::ThreadMutex module.

(2) mod_perl's build script installs APR::ThreadMutex(3pm) manual even if APR::ThreadMutex
    module is disabled.

I will try to adapt mod_perl's build script to the modified apr.h header file.

Comment 2 Fedora Update System 2021-07-14 09:14:03 UTC
FEDORA-2021-765587b9ab has been submitted as an update to Fedora 34. https://bodhi.fedoraproject.org/updates/FEDORA-2021-765587b9ab

Comment 3 Fedora Update System 2021-07-14 09:27:46 UTC
FEDORA-2021-b3da202f28 has been submitted as an update to Fedora 33. https://bodhi.fedoraproject.org/updates/FEDORA-2021-b3da202f28

Comment 4 Fedora Update System 2021-07-14 10:39:39 UTC
FEDORA-EPEL-2021-813118785a has been submitted as an update to Fedora EPEL 8. https://bodhi.fedoraproject.org/updates/FEDORA-EPEL-2021-813118785a

Comment 5 Fedora Update System 2021-07-15 01:13:04 UTC
FEDORA-EPEL-2021-813118785a has been pushed to the Fedora EPEL 8 testing repository.

You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-EPEL-2021-813118785a

See also https://fedoraproject.org/wiki/QA:Updates_Testing for more information on how to test updates.

Comment 6 Fedora Update System 2021-07-15 01:40:30 UTC
FEDORA-2021-765587b9ab has been pushed to the Fedora 34 testing repository.
Soon you'll be able to install the update with the following command:
`sudo dnf upgrade --enablerepo=updates-testing --advisory=FEDORA-2021-765587b9ab`
You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2021-765587b9ab

See also https://fedoraproject.org/wiki/QA:Updates_Testing for more information on how to test updates.

Comment 7 Fedora Update System 2021-07-15 01:45:40 UTC
FEDORA-2021-b3da202f28 has been pushed to the Fedora 33 testing repository.
Soon you'll be able to install the update with the following command:
`sudo dnf upgrade --enablerepo=updates-testing --advisory=FEDORA-2021-b3da202f28`
You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2021-b3da202f28

See also https://fedoraproject.org/wiki/QA:Updates_Testing for more information on how to test updates.

Comment 8 Fedora Update System 2021-07-23 01:03:21 UTC
FEDORA-2021-765587b9ab has been pushed to the Fedora 34 stable repository.
If problem still persists, please make note of it in this bug report.

Comment 9 Fedora Update System 2021-07-23 01:16:35 UTC
FEDORA-2021-b3da202f28 has been pushed to the Fedora 33 stable repository.
If problem still persists, please make note of it in this bug report.

Comment 10 Fedora Update System 2021-07-30 00:33:10 UTC
FEDORA-EPEL-2021-813118785a has been pushed to the Fedora EPEL 8 stable repository.
If problem still persists, please make note of it in this bug report.