Bug 228470

Summary: LibXML failing under mod_perl (missing initialization code in .xs)
Product: [Fedora] Fedora Reporter: Michal Schwarz <misch>
Component: perl-XML-LibXMLAssignee: Stepan Kasal <kasal>
Status: CLOSED CURRENTRELEASE QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: high Docs Contact:
Priority: medium    
Version: 6CC: jpazdziora, mmaslano, perl-devel, robin.norwood
Target Milestone: ---   
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: perl-XML-LibXML-1.62001-2.fc8.3 Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2008-03-07 11:32:21 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Michal Schwarz 2007-02-13 09:37:54 UTC
Description of problem:


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

perl-XML-LibXML-1.58-2.2.2.1

How reproducible:

Easily.

Steps to Reproduce:
1. run following program under mod_perl or SpeedyCGI or any similar persistent
perl interpreter (not /usr/bin/perl, as it is not persistent):

use XML::Simple;
XMLin('/path/to/any/valid/xml/file.xml') && print "OK"

 
Actual results:

first run prints "OK", second run dies with message:
Couldn't create file parser context for file "/path/to/any/valid/xml/file.xml":
No such file or directory at
/usr/lib/perl5/vendor_perl/5.8.8/i386-linux-thread-multi/XML/LibXML.pm line 427.

Expected results:

"OK"

Additional info:

This bug is already documented in Debian's bug-tracking system, please look
there: http://bugs.donarmstrong.com/cgi-bin/bugreport.cgi?bug=240334
Basicaly, there is missing one initialization block in LibXML library for perl,
which causes it to work correctly when running under non-persistent Perl
interpreter, but fails under persistent Perl (eg. mod_perl, etc.).

I assigned it a "high" level priority, because this bug effectively disables all
functionality of mod_perl modules which are using LibXML, and it is impossible
to get around this bug :(((.

Comment 1 Michal Schwarz 2007-02-13 09:44:53 UTC
I forgot EXACT steps to repdocute this bug:

$ cat - >a.pl
use XML::Simple;
XMLin('file.xml') && print "OK";
^D

$ cat - >file.xml
<?xml version="1.0" encoding="UTF-8"?>
<test></test>
^D

$ perl a.pl
OK
$ perl a.pl
OK

$ /usr/bin/speedy a.pl
OK
$ /usr/bin/speedy a.pl
Couldn't create file parser context for file "file.xml": No such file or 
directory at /usr/lib/perl5/vendor_perl/5.8.8/i386-linux-thread-
multi/XML/LibXML.pm line 427.
 at /usr/lib/perl5/vendor_perl/5.8.8/i386-linux-thread-multi/XML/LibXML/SAX.pm 
line 63


Comment 2 Jan Pazdziora 2008-02-27 14:28:30 UTC
On Fedora 8 with

# rpm -q perl-XML-LibXML
perl-XML-LibXML-1.62001-2.fc8.3.x86_64

the problem does no longer be present, under mod_perl.

I've created the file /var/www/perl/index.html with content

#!/usr/bin/perl

print "Content-Type: text/plain\n\n";

use XML::Simple;

XMLin("/tmp/file.xml");

print "OK ($$).\n";
__END__

I've created the above mentioned file.xml in /tmp, uncommented

Alias /perl /var/www/perl
<Directory /var/www/perl>
    SetHandler perl-script
    PerlResponseHandler ModPerl::Registry
    PerlOptions +ParseHeaders
    Options +ExecCGI
</Directory>

in /etc/httpd/conf.d/perl.conf, restarted httpd, and then run

# GET http://localhost/perl/index.pl

until I hit the same pid again. It went alright the second time as well.

I suggest to mark this bugzilla as resolved with CURRENTRELEASE.