Item9311: Installing this contrib breaks foswiki extension update feature
Priority: Urgent
Current State: Closed
Released In: 1.1.0
Target Release: minor
Version: 6305 (2010-02-12)
Installing
StringifierContrib broke my ability to update extensions through bin/configure. When I click "Find More Extensions", I just get a blank page with the words "Consulting Foswiki.org..."
As a workaround, I went into Foswiki::Configure::UIs::EXTENSIONS and put the following line in the _parseRow() subroutine:
if ($data{topic} =~ m/StringifierContrib/) {
return '';
}
Please work to fix this bug. It was difficult to pinpoint what broke the update feature!
--
SteveLin - 12 Jul 2010
Changing
AppliesTo to engine and Component to Configure, as the Foswiki's configure interface should not let a contrib break it.
Also upgrading to Urgent, on the
assumption that this may also affect trunk. We cannot expect admins to have to hack configure code to recover from installing a contrib.
--
MichaelTempest - 18 Jul 2010
I can't reproduce this on trunk. Very difficult to pin down without knowing what the error was i.e. what was reported in the web server error log (if anything)
--
CrawfordCurrie - 19 Jul 2010
Unfortunately, there were no errors in the web server log. That was something that really had me scratching my head. I didn't see any problems in any logs so I started digging through the code.
--
SteveLin - 19 Jul 2010
Changing the string
use Module::Pluggable (require => 1, search_path => [qw/Foswiki::Contrib::StringifierContrib::Plugins/]);
to
use Module::Pluggable (require => 0, search_path => [qw/Foswiki::Contrib::StringifierContrib::Plugins/]);
in
lib/Foswiki/Contrib/StringifierContrib/Base.pm sorts out this problem.. Not sure what it messes up though..
--
PadraigLennon - 19 Jul 2010
configure
can't ever be
totally immune to contribs that disappear up their own backsides.
--
CrawfordCurrie - 19 Jul 2010
Reassigning to
StringifierContrib
--
CrawfordCurrie - 27 Jul 2010
Tried to reproduce it without success
--
OlivierRaginel - 27 Jul 2010
It looks like its trying to compile all the stringifier plugins, and not all the dependencies are installed.
Fixing
Item8634 would probably fix this.
--
AndrewJones - 28 Jul 2010
I'm unable to recreate the hang in configure. But the changes I've committed to Dependency.pm make it a bit more capable of finding the installed version when the code won't eval. Also noticed that the version extraction was too greedy and would pull much more than the VERSION string when parsing the module.
Also changed extender.pl to use Dependency for studying the installation, so that eval handling of modules is in a common location.
--
GeorgeClark - 03 Sep 2010
Changing back to confirmed. Not sure there is much more to do to Dependency.pm to insulate itself from this.
--
GeorgeClark - 13 Sep 2010
Here is a patch to
lib/Foswiki/Configure/Dependency.pm
- it's "brute force" but it will get past the hang and still allow
FindMoreExtensions to show
StringifierContrib as installed:
sub studyInstallation {
my $this = shift;
my $load_errors = '';
# Add this block to bypass the hang issue with StringifierContrib
if ($this->{name} =~ m/StringifierContrib/) {
my $path = "Foswiki/Contrib/StringifierContrib.pm";
return 1 if ( $this->_recover_versions($path) );
return 0;
}
# End of addition
if ( !$this->{module} ) {
--
GeorgeClark - 16 Oct 2010
does fixing
Item8634 help with this?
--
WillNorris - 24 Oct 2010
i get this error message in
error.log
when this (inconsistently) happens:
[Sat Oct 23 21:10:04 2010] [error] [client 189.165.143.250] ModSecurity: Output filter: Failed to read bucket (rc 70007): The timeout specified has expired [hostname "dev.cocomint.org"] [uri "/bin/configure"] [unique_id "TMOxQUWj8jYAAAi@PfMAAAAH"]
--
WillNorris - 24 Oct 2010
SteveLin and
PadraigLennon, please see if v1.12 of
StringifierContrib resolves this issue. you will have to install the 1.12 version manually and then see if FindMoreExtensions still hangs.
--
WillNorris - 25 Oct 2010
The problem still exists with the latest version on
StringifierContrib. I installed manually using wget and the installer.. The problem still persists..
Again this fixes the issue:
Edit
lib/Foswiki/Contrib/StringifierContrib/Base.pm and change
require => 0 on the following line:
use Module::Pluggable (require => 0, search_path => [qw/Foswiki::Contrib::StringifierContrib::Plugins/]);
--
PadraigLennon - 25 Oct 2010
right, thanks. but you didn't see so confident that it wouldn't break anything else. so.... i have read the docs to
CPAN:Module::Pluggable, and it seems as though
require => 1
should be safer than
0
. anyway, as i have not been able to consistently reproduce this, i ask you to try this variation and let me know if it still hangs or not. if it does still hang, we'll probably just have to change the code to what you've said works.
use Module::Pluggable (require => 1, inner=>0, search_path => [qw/Foswiki::Contrib::StringifierContrib::Plugins/]);
also, what is the output of
perl -MModule::Pluggable -e 'print $Module::Pluggable::VERSION'
? i have
3.8
.
--
WillNorris - 25 Oct 2010
No difference I'm afraid Will. I tried your suggestion above. The version of Module::Pluggable I am running is 3.9. Personally I'm not too worried about the side-effects to what i suggested above. I simply thought that it might mess up something else within configure. It does not however seem to have caused any issues on our install here.
--
PadraigLennon - 26 Oct 2010
ok, thanks for the help. i'm now ready to change to
require => 0
. i just wish we knew what was going on. :/
--
WillNorris - 26 Oct 2010
Released this change Will as it was continuing to cause issues. Hope this is ok. I created a new release (1.14) also
--
PadraigLennon - 12 Nov 2010
Outch:
Item10026
--
MichaelDaum - 15 Nov 2010
Reopening to mod
StringifierContrib not to do heavy lifting in the same module storing the VERSION info.
Moving the
stringFor()
call to a Stringifier.pm module of its own. This affects
SolrPlugin and
KinoSearchContrib as well.
--
MichaelDaum - 01 Dec 2010
Released a new
SolrPlugin and
StringifierContrib.
Releasing a new
KinoSearchContrib is still pending.
--
MichaelDaum - 01 Dec 2010
KinoSearchContrib finally released.
--
AndrewJones - 25 Mar 2011