in reply to mod_perl: Where can I find THX_name_key()?

Upgrading from Fedora 35 to Fedora 38 made the following changes:
Apache 2.4.54 -> Apache 2.4.57 mod_perl 2.0.12 -> mod_perl 2.0.12 (no change) Perl 5.34.1 -> Perl 5.36.1
I downgraded back to Apache 2.4.54 and mod_perl was still hanging when multiple mod_perl requests for the same cgi-script came in. mod_perl worked fine when a single cgi-script request came in by itself.

I attempted to roll back to Perl 5.34.1 and the dnf package manager wanted to roll back a huge number of rpms, so I looked for another solution. Perl 5.38.0 was released on July 3, 2023 and there is a Fedora 39 rpm available for that, so I upgraded to Perl 5.38.0 rpms on my test box and now mod_perl is working fine again with the existing codebase.

My guess is there was a defect in the THX_name_key() or THX_ck_rv2xv() routines in my environment that caused an infinite loop when simultaneous mod_perl requests hit the web server. A single mod_perl request worked fine. I have no way to confirm this definitively, it's just my humble opinion. I was unable to identify anything in the release notes for 5.38.0 that might have been the root cause. Maybe a deeper inspection into the source code might reveal the answer, however I am not really qualified to do that.

Thanks to the folks that took the time to respond to my post.

Replies are listed 'Best First'.
Re^2: mod_perl: Where can I find THX_name_key()?
by NERDVANA (Priest) on Aug 30, 2023 at 18:00 UTC
    Take a look at https://metacpan.org/dist/Lexical-Var/changes. There were a huge number of bug fixes in Lexical::Var released on Mar 24, including several mentions of thread safety. If Redhat's packaging for 5.36 ecosystem didn't include that new version, that would explain why.

    BTW, any time you change perl interpreter versions, you *should* see a massive number of packages upgraded or downgraded because every perl module needs re-installed for that version of perl.

    (technically the pure-perl modules don't, but their Makefiles might behave differently depending on what other module versions are available, so even pure-perl ones ought to be re-installed generally)