Closed
Bug 171674
Opened 22 years ago
Closed 22 years ago
File::Temp (required by TT 2.08) is broken in Perl 5.6.0
Categories
(Bugzilla :: Documentation, defect)
Tracking
()
RESOLVED
FIXED
Bugzilla 2.18
People
(Reporter: ashokk, Assigned: jacob)
References
Details
HI ,
i am facing the following problem .Please check it from ur side
i installed bugzilla 2.14 version and it runs fine .
when i am installing bugzilla 2.16 on RH7.2 machine after updating all the perl
modules
the checksetup.pl worked fine and database was created
after that i configured apache 2.19 and i am getting normal html files, sample
cgi programs i am able to run
but when i am trying to run index.cgi file i am getting premature end of script
header in log file and in browser it is showing internal error 500
i had done perl index.cgi >>temp.html and when i viewed the html file
it showed the following error and i am able to get the bugzilla home page below
that.Is it a problem in u r version or from my side
if u want more questions about the setup i had done shoot some questions here
i will get abck to it
Your vendor has not defined Fcntl macro O_NOINHERIT, used
at /usr/lib/perl5/site_perl/5.6.0/File/Temp.pm line 208.
For help, please send mail to this site's webmaster, giving this error message
and the time and date of the error.
Content-type: text/html
Software error:
Your vendor has not defined Fcntl macro O_TEMPORARY, used
at /usr/lib/perl5/site_perl/5.6.0/File/Temp.pm line 229.
For help, please send mail to this site's webmaster, giving this error message
and the time and date of the error.
Thankx in advance
regards
ashok
bugzilla product?
Assignee: asa → justdave
Component: Bugzilla: Keyword & Component → Bugzilla-General
Product: mozilla.org → Bugzilla
QA Contact: timeless → matty
Version: other → 2.14
Comment 2•22 years ago
|
||
This sounds like you have suexec enabled in Apache for the Bugzilla directory,
and something in the path to the Bugzilla scripts is group- or world-writable.
Apache's suexec mechanism will fail to execute a script if anything in the path
to it is writable by anyone other than the owner.
This also sounds like a support issue rather than a bug... you might try
posting to the mozilla-webtools list (see http://www.bugzilla.org/discussion.html)
suexec was not enabled in apache for the bugzilla directory
when i run the same thing for bugzilla 2.14 product it is running fine
but only for 2.16 version i am facing the problem
One more thing
Apache is serving sample cgi files but it is not serving only bugzilla cgi
files .i am able to view normal html files and sample cgi files are being
executed fine .
is it still a problem from my side or from the product side .
regards
ashok
Comment 4•22 years ago
|
||
Other things to check:
Are you running mod_perl? Bugzilla doesn't work with mod_perl yet.
Have you checked the #! line at the top of the cgi files and make sure they
point at a live Perl install?
Question: Are you running mod_perl? Bugzilla doesn't work with mod_perl yet.
Ans:i am not running mod_perl .
Question : Have you checked the #! line at the top of the cgi files and make
sure they point at a live Perl install?
Ans :It is pointed to #!usr/bonsaitools/bin/perl -wT
In my linux system the perl executable was there in that particular directory.
i am being working on this for the past 5 days but not able to figure it out.
any help would be greatful
regards
ashok
Comment 6•22 years ago
|
||
What version of the CGI module are you running? (and CGI::Carp).
What version of File::Temp?
Comment 7•22 years ago
|
||
I think that this is happening because CGI::Carp doesn't check that its inside
an eval for $DIG{__DIE__}, and File::Temp tried to import those flags inside an
eval, versions < 0.12 don't localise SIG{__DIE__} to an empty sub first
TT2.08 is the first version to use File::Temp (although bugzilla HEAD does),
which is probbaly why noone saw this until recently.
Does upgrading File::Temp help this?
after upgrading the perl i am able to run bugzilla .
atlast i am left with a small configuratio issue .
when i am creating a bug and assigning to mailid's it is not sendingmails
the option i had set to send mail to all the people and all check boxes i
clicked in preferences .
why it is not sendingmail .
when i create account it is sendingmail but when i am submitting a new bug it
is not sending mail .
can i know what may be the problem .
i am very thankful to u people for solving the problems and bringing my
bugzilla up .
regards
ashok
Comment 9•22 years ago
|
||
I have thesame problem on:
Sparc SunOS 5.6 (Solaris 2.6)
Perl 5.6.0
File::Temp -- 0.13
CGI -- 2.89
Apache 1.3.12
DBI/DBD works fine.
Your vendor has not defined Fcntl macro O_EXLOCK, used
at /usr/local/lib/perl5/site_perl/5.6.0/File/Temp.pm line 210.
Your vendor has not defined Fcntl macro O_NOINHERIT, used
at /usr/local/lib/perl5/site_perl/5.6.0/File/Temp.pm line 210.
Your vendor has not defined Fcntl macro O_TEMPORARY, used
at /usr/local/lib/perl5/site_perl/5.6.0/File/Temp.pm line 233.
Please, help!!
Comment 10•22 years ago
|
||
People have reported that upgrading to perl 5.6.1 fixis this.
Alternately, you might want to try adding
local *CORE::GLOBAL::die = sub {};
just above teh line which generates those error messages (inside the eval). I
don't know if that will fix it, though.
Reporter | ||
Comment 11•22 years ago
|
||
Upgrading to perl and installing all the perl modules will solve the problem.
i fixed it by upgrading to perl 5.8 and reinstalling all the modules and also
File::Temp
regards
ashok
Comment 12•22 years ago
|
||
Yeah, but we're trying to find a less involved fix :)
Comment 13•22 years ago
|
||
I ran into this on Syndicomm's system, and adding the line Bradley suggested,
both at line 208 and at line 230 in File/Temp.pm did solve the problem. Since
this is something that's sort of beyond our control, does that make this a
documentation issue?
Since this is obviously a bug in File/Temp.pm which has been fixed in the
current version (which is included in Perl 5.6.1), who do we need to bug to get
the current version of File::Temp put up on CPAN as a standalone so it can be
installed on Perl 5.6.0 systems?
Comment 14•22 years ago
|
||
OK, I have another system with Perl 5.6.1 on it, and it has the same version of
File::Temp, and File/Temp.pm is identical. Does Perl 5.6.1 internally treat
$::SIG{__DIE__} the same as *CORE::GLOBAL::die?
Guess this isn't a CPAN issue after all...
Comment 15•22 years ago
|
||
tjenness@cpan.org is in charge of File::Temp (search.cpan.org comes in handy
sometimes).
I was thinking (on irc) that we might be able to workaround this (since we can't
really require people to use 5.6.1, not with some of redhat 7.x still using it).
What if we wrote a wrapper around File::Temp and had Bugzilla::File::Temp, which
did a 'use base "File::Temp' and included our custom fixes.
I don't know enough about the module to know if this is possible, but if not, we
can always copy File::Temp into Bugzilla/. The license would be an issue, but if
we email tjennes, we might be able to get special permission to MPL it. Gerv:
does this sound anything close to reality? (IANAL FOR SURE ;)
bbaetz, any ideas on this?
Comment 16•22 years ago
|
||
No, we are _not_ going to put File:Temp into Bugzilla.
Besides, thats not the issue - its a perl core thing, AFAICS. dave: I think that
CORE::die stuff wasn't being caught by the eval, which would be a bug (since
thats sort of the point of CORE::die vs SIG{__DIE__}
Why can't we require 5.6.1? mod_perl support will, for a variety of reasons,
strongly recommend 5.6.1 if it doesn't outright require it.
myk: This bug will mean that you need to update perl before the next bmo update,
which is likly to require TT 2.08
Updated•22 years ago
|
Summary: premature end of script headers → File::Temp (required by TT 2.08) is broken in Perl 5.6.0
Comment 17•22 years ago
|
||
strictly speaking, its actually the interaction of CGI.pm using
CORE::GLOBAL::die, and File::Temp using Fnctl in an eval block and expecting
the result to fail, and perl 5.6.0 ignoring the eval block
A quick glance through 5.6.1's CHANGES didn't come up with anything glaringly
obvious, but it was just a quick glance.
Comment 18•22 years ago
|
||
I defer to bbaetz' superior knowledge :-)
Gerv
Comment 19•22 years ago
|
||
Here's the patch for 5.6.0's File::Temp, in case bbaetz's directions in the
above comment are too hard to follow :)
--- File/Temp.pm.orig Thu Feb 6 16:26:00 2003
+++ File/Temp.pm Thu Feb 6 16:26:23 2003
@@ -205,6 +205,7 @@
# eg CGI::Carp
local $SIG{__DIE__} = sub {};
local $SIG{__WARN__} = sub {};
+ local *CORE::GLOBAL::die = sub {};
$bit = &$func();
1;
};
@@ -226,6 +227,7 @@
# eg CGI::Carp
local $SIG{__DIE__} = sub {};
local $SIG{__WARN__} = sub {};
+ local *CORE::GLOBAL::die = sub {};
$bit = &$func();
1;
};
Comment 20•22 years ago
|
||
Maybe we should add a test to checksetup for 5.6.0 that informs users that they
need to upgrade perl or patch File::Temp. I'll do this in newinstall as well.
Comment 21•22 years ago
|
||
Other than Zach's idea to test for it, this is somewhat out of the scope of
something we can fix, so this really needs to go in the installation documentation.
Assignee: justdave → jake
Component: Bugzilla-General → Documentation
Assignee | ||
Comment 22•22 years ago
|
||
Fixed in the 2.16 and tip docs.
Status: NEW → RESOLVED
Closed: 22 years ago
Resolution: --- → FIXED
Target Milestone: --- → Bugzilla 2.18
Updated•12 years ago
|
QA Contact: matty_is_a_geek → default-qa
You need to log in
before you can comment on or make changes to this bug.
Description
•