Anonymous | Login | 2024-11-21 22:43 EST |
Main | My View | View Issues | Change Log | Roadmap |
View Issue Details [ Jump to Notes ] | [ Issue History ] [ Print ] | |||||||
ID | Project | Category | View Status | Date Submitted | Last Update | |||
0001283 | PacketFence | error-handling | public | 2011-09-27 03:19 | 2012-04-23 11:01 | |||
Reporter | psnizek | |||||||
Assigned To | obilodeau | |||||||
Priority | normal | Severity | minor | Reproducibility | always | |||
Status | closed | Resolution | fixed | |||||
Platform | OS | OS Version | ||||||
Product Version | 3.0.0 | |||||||
Target Version | 3.3.2 | Fixed in Version | 3.3.2 | |||||
Summary | 0001283: pfcmd checkup fails anyway if perl produces warnings when checking pf/web/captiveportal_modperl_require.pl | |||||||
Description | Environment: Vanilla, Slackware 13.1, perl 5.10.1, seems to be always reproducible on this Perl version. if this command "perl -c /usr/local/pf/lib/pf/web/captiveportal_modperl_require.pl 2>&1" is executed successfully on the command line, the return value is 0 despite all Perl warnings. Because of checking captive_portal[0] for syntax OK this test will always fail if the contents of the first array space is not 'syntax OK$' but some perl warning instead. In my case the 'syntax OK$' appeard in captive_portal[64]. Rather than grepping for 'syntax OK$' would it make sense to check the return value instead? Please see patch below. The patch may be far from perfect but this way the execution does not fail because of Perl warnings. It still does fail if 'syntax OK' is missing. The perl warnings I had were: Prototype mismatch: sub pf::web::LC_ALL: none vs () at /usr/local/pf/lib/pf/web.pm line 36 Prototype mismatch: sub pf::web::LC_NUMERIC: none vs () at /usr/local/pf/lib/pf/web.pm line 36 Prototype mismatch: sub pf::web::LC_TIME: none vs () at /usr/local/pf/lib/pf/web.pm line 36 Prototype mismatch: sub pf::web::LC_MONETARY: none vs () at /usr/local/pf/lib/pf/web.pm line 36 Prototype mismatch: sub pf::web::LC_CTYPE: none vs () at /usr/local/pf/lib/pf/web.pm line 36 Prototype mismatch: sub pf::web::LC_MESSAGES: none vs () at /usr/local/pf/lib/pf/web.pm line 36 Prototype mismatch: sub pf::web::LC_COLLATE: none vs () at /usr/local/pf/lib/pf/web.pm line 36 Prototype mismatch: sub pf::web::guest::LC_ALL: none vs () at /usr/local/pf/lib/pf/web/guest.pm line 35 Prototype mismatch: sub pf::web::guest::LC_NUMERIC: none vs () at /usr/local/pf/lib/pf/web/guest.pm line 35 Prototype mismatch: sub pf::web::guest::LC_TIME: none vs () at /usr/local/pf/lib/pf/web/guest.pm line 35 Prototype mismatch: sub pf::web::guest::LC_MONETARY: none vs () at /usr/local/pf/lib/pf/web/guest.pm line 35 Prototype mismatch: sub pf::web::guest::LC_CTYPE: none vs () at /usr/local/pf/lib/pf/web/guest.pm line 35 Prototype mismatch: sub pf::web::guest::LC_MESSAGES: none vs () at /usr/local/pf/lib/pf/web/guest.pm line 35 Prototype mismatch: sub pf::web::guest::LC_COLLATE: none vs () at /usr/local/pf/lib/pf/web/guest.pm line 35 Prototype mismatch: sub pf::web::util::LC_ALL: none vs () at /usr/local/pf/lib/pf/web/util.pm line 22 Prototype mismatch: sub pf::web::util::LC_NUMERIC: none vs () at /usr/local/pf/lib/pf/web/util.pm line 22 Prototype mismatch: sub pf::web::util::LC_TIME: none vs () at /usr/local/pf/lib/pf/web/util.pm line 22 Prototype mismatch: sub pf::web::util::LC_MONETARY: none vs () at /usr/local/pf/lib/pf/web/util.pm line 22 Prototype mismatch: sub pf::web::util::LC_CTYPE: none vs () at /usr/local/pf/lib/pf/web/util.pm line 22 Prototype mismatch: sub pf::web::util::LC_MESSAGES: none vs () at /usr/local/pf/lib/pf/web/util.pm line 22 Prototype mismatch: sub pf::web::util::LC_COLLATE: none vs () at /usr/local/pf/lib/pf/web/util.pm line 22 Prototype mismatch: sub pf::sms_activation::LC_ALL: none vs () at /usr/local/pf/lib/pf/sms_activation.pm line 17 Prototype mismatch: sub pf::sms_activation::LC_NUMERIC: none vs () at /usr/local/pf/lib/pf/sms_activation.pm line 17 Prototype mismatch: sub pf::sms_activation::LC_TIME: none vs () at /usr/local/pf/lib/pf/sms_activation.pm line 17 Prototype mismatch: sub pf::sms_activation::LC_MONETARY: none vs () at /usr/local/pf/lib/pf/sms_activation.pm line 17 Prototype mismatch: sub pf::sms_activation::LC_CTYPE: none vs () at /usr/local/pf/lib/pf/sms_activation.pm line 17 Prototype mismatch: sub pf::sms_activation::LC_MESSAGES: none vs () at /usr/local/pf/lib/pf/sms_activation.pm line 17 Prototype mismatch: sub pf::sms_activation::LC_COLLATE: none vs () at /usr/local/pf/lib/pf/sms_activation.pm line 17 Constant subroutine pf::web::custom::LC_CTYPE redefined at /usr/lib/perl5/5.10.1/Exporter.pm line 67, <DATA> line 522 (0000001) (S) You redefined a subroutine which had previously been eligible for inlining. See perlsub/"Constant Functions" for commentary and workarounds. Prototype mismatch: sub pf::web::custom::LC_CTYPE () vs none at /usr/lib/perl5/5.10.1/Exporter.pm line 67, <DATA> line 522 (0000002) (S prototype) The subroutine being declared or defined had previously been declared or defined with a different function prototype. Constant subroutine pf::web::custom::LC_NUMERIC redefined at /usr/lib/perl5/5.10.1/Exporter.pm line 67, <DATA> line 522 (0000001) Prototype mismatch: sub pf::web::custom::LC_NUMERIC () vs none at /usr/lib/perl5/5.10.1/Exporter.pm line 67, <DATA> line 522 (0000002) Constant subroutine pf::web::custom::LC_TIME redefined at /usr/lib/perl5/5.10.1/Exporter.pm line 67, <DATA> line 522 (0000001) Prototype mismatch: sub pf::web::custom::LC_TIME () vs none at /usr/lib/perl5/5.10.1/Exporter.pm line 67, <DATA> line 522 (0000002) Constant subroutine pf::web::custom::LC_COLLATE redefined at /usr/lib/perl5/5.10.1/Exporter.pm line 67, <DATA> line 522 (0000001) According to Dr Google this seems to be a gettext problem with POSIX in Perl 5.10.x. Please see here: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=479803 [^] Also, I would like to draw your attention on a minor logging issue: 2011-09-23 21:18:23 host.domain.com local5.warning packetfence Error trying to run command: perl -c /usr/local/pf/lib/pf/web/captiveportal_modperl_require.pl 2>&1 called from checkup::apache. Child exited with non-zero value 2 (pf::util::pf_run) The syslog level "warning" contradicts to Packetfence's "Error" level. | |||||||
Additional Information | --- checkup.pm.orig 2011-09-23 19:04:15.475226653 +0200 +++ checkup.pm.new 2011-09-23 22:26:12.598194162 +0200 @@ -698,11 +698,11 @@ } # Apache PerlPostConfigRequire scripts *must* compile otherwise apache startup silently fails - my @captive_portal = pf_run("perl -c $lib_dir/pf/web/captiveportal_modperl_require.pl 2>&1"); - if ($captive_portal[0] !~ /syntax OK$/) { - add_problem( - $FATAL, "Apache will fail to start! $lib_dir/pf/web/captiveportal_modperl_require.pl doesn't compile" - ); + my $captive_portal = pf_run("perl -c $lib_dir/pf/web/captiveportal_modperl_require.pl 2>&1"); + if ( $captive_portal !~ /syntax OK$/ ) { + add_problem( + $FATAL, "Apache will fail to start! $lib_dir/pf/web/captiveportal_modperl_require.pl doesn't compile" + ); } my @back_end = pf_run("perl -c $lib_dir/pf/web/backend_modperl_require.pl 2>&1"); if ($back_end[0] !~ /syntax OK$/) { | |||||||
Tags | No tags attached. | |||||||
fixed in git revision | f13a991d8f9cf40896520749bdb961b2413232eb | |||||||
fixed in mtn revision | ||||||||
Attached Files | ||||||||
Notes | |
(0002654) obilodeau (reporter) 2012-04-17 21:53 |
Extended your patch for both captive portal and backend. Agreed that testing exit code would have been an alternative but pf_run already does it and report it in the logs. I reworded Error to Problem under pf_run. It is still logged at the warning level. It's up to the caller to decide if problem should be reported more aggressively. In the current case we report a fatal issue in checkup. I applied the fix to stable so it should be part of our next release. Under what name (and optionally organization) would you like your contribution under? Right now I've put psnizek. |
(0002661) obilodeau (reporter) 2012-04-18 10:02 |
fixed/target version updates. wrongly re-assigned by mistake. |
(0002686) obilodeau (reporter) 2012-04-23 11:01 |
fix released in 3.3.2 |
Issue History | |||
Date Modified | Username | Field | Change |
2011-09-27 03:19 | psnizek | New Issue | |
2012-04-17 21:36 | obilodeau | Status | new => assigned |
2012-04-17 21:36 | obilodeau | Assigned To | => obilodeau |
2012-04-17 21:53 | obilodeau | git revision | => f13a991d8f9cf40896520749bdb961b2413232eb |
2012-04-17 21:53 | obilodeau | Note Added: 0002654 | |
2012-04-17 21:53 | obilodeau | Status | assigned => resolved |
2012-04-17 21:53 | obilodeau | Fixed in Version | => +1 |
2012-04-17 21:53 | obilodeau | Resolution | open => fixed |
2012-04-18 09:51 | obilodeau | Target Version | => 3.3.0 |
2012-04-18 09:51 | obilodeau | Fixed in Version | +1 => 3.3.0 |
2012-04-18 10:02 | obilodeau | Note Added: 0002661 | |
2012-04-18 10:02 | obilodeau | Fixed in Version | 3.3.0 => +1 |
2012-04-18 10:02 | obilodeau | Target Version | 3.3.0 => +1 |
2012-04-23 11:00 | obilodeau | Target Version | +1 => 3.3.2 |
2012-04-23 11:00 | obilodeau | Fixed in Version | +1 => 3.3.2 |
2012-04-23 11:01 | obilodeau | Note Added: 0002686 | |
2012-04-23 11:01 | obilodeau | Status | resolved => closed |
Copyright © 2000 - 2012 MantisBT Group |