Subject: | Occasionally mod_perl cannot (re)load File::Temp. |
Occasionally, mod_perl tries to reload perl modules and when it hits File::Temp, the below error shows up in the apache error log.
The attached patch addresses this issue by fully declaring the constants used to set the $OPENFLAGS variable.
[Mon Jul 25 13:03:06 2016] [error] Bareword "O_CREAT" not allowed while "strict subs" in use at D:/emsng_cms/perl/lib/File/Temp.pm line 102.\nBareword "O_EXCL" not allowed while "strict subs" in use at D:/emsng_cms/perl/lib/File/Temp.pm line 102.\nBareword "O_RDWR" not allowed while "strict subs" in use at D:/emsng_cms/perl/lib/File/Temp.pm line 102.\nCompilation failed in require at D:/emsng_cms/apps/cms_editor/lib/CMS2/Utils/File.pm line 15.\nBEGIN failed--compilation aborted at D:/emsng_cms/apps/cms_editor/lib/CMS2/Utils/File.pm line 15.\nCompilation failed in require at D:/emsng_cms/apps/cms_editor/lib/CMS2/Utils/UtilsMime.pm line 10.\nBEGIN failed--compilation aborted at D:/emsng_cms/apps/cms_editor/lib/CMS2/Utils/UtilsMime.pm line 10.\nCompilation failed in require at D:/emsng_cms/apps/cms_editor/cgi-bin/cms.pl line 34.\nBEGIN failed--compilation aborted at D:/emsng_cms/apps/cms_editor/cgi-bin/cms.pl line 34.\n
--
Dez.
Subject: | fix_File_Temp.patch |
*** Temp.pm.orig 2014-12-27 06:48:37.000000000 -0500
--- Temp.pm 2016-06-29 09:57:49.652115000 -0400
***************
*** 99,105 ****
# OPENFLAGS. If we defined the flag to use with Sysopen here this gives
# us an optimisation when many temporary files are requested
! my $OPENFLAGS = O_CREAT | O_EXCL | O_RDWR;
my $LOCKFLAG;
unless ($^O eq 'MacOS') {
--- 99,105 ----
# OPENFLAGS. If we defined the flag to use with Sysopen here this gives
# us an optimisation when many temporary files are requested
! my $OPENFLAGS = &Fcntl::O_CREAT() | &Fcntl::O_EXCL() | &Fcntl::O_RDWR();
my $LOCKFLAG;
unless ($^O eq 'MacOS') {