Fix: Apply this patch:
--- twiki/branches/Patch04x01/lib/TWiki/Store/RcsFile.pm 2007-02-13 11:42:36 UTC (rev 12854)
+++ twiki/branches/Patch04x01/lib/TWiki/Store/RcsFile.pm 2007-02-13 11:43:06 UTC (rev 12855)
@@ -358,7 +358,7 @@
TOKEN => $searchString,
FILES => \@set);
foreach my $match ( split( /\r?\n/, $matches )) {
- if( $match =~ m/([^\/]*)\.txt(:(.*))?$/ ) {
+ if( $match =~ m/([^\/\\]*)\.txt(:(.*))?$/ ) {
push( @{$seen->{$1}}, $3 );
}
}
See
TWiki:Codev.HowToApplyPatch
I tried to create a wiki group and got this:
| 05 Feb 2007 - 15:13 | Can't use an undefined value as an ARRAY reference at c:/twiki/lib/TWiki.pm line 3616.
at c:/twiki/lib/TWiki.pm line 3616
TWiki::_GROUPS('TWiki=HASH(0x216d18)', 'TWiki::Attrs=HASH(0x2263b7c)', 'TWikiGroups', 'Main') called at c:/twiki/lib/TWiki.pm line 2395
TWiki::_expandTagOnTopicRendering('TWiki=HASH(0x216d18)', 'GROUPS', 'undef', 'TWikiGroups', 'Main') called at c:/twiki/lib/TWiki.pm line 2314
TWiki::_processTags('TWiki=HASH(0x216d18)', '---+ TWiki Groups\x{a}\x{a}These groups can be used to define fine gr...', 'CODE(0x1dbdc50)', 16, 'TWikiGroups', 'Main') called at c:/twiki/lib/TWiki.pm line 2240
TWiki::_expandAllTags('TWiki=HASH(0x216d18)', 'SCALAR(0x21a2a28)', 'TWikiGroups', 'Main') called at c:/twiki/lib/TWiki.pm line 2589
TWiki::handleCommonTags('TWiki=HASH(0x216d18)', '---+ TWiki Groups\x{a}\x{a}These groups can be used to define fine gr...', 'Main', 'TWikiGroups') called at c:/twiki/lib/TWiki/UI/View.pm line 375
TWiki::UI::View::_prepare('---+ TWiki Groups\x{a}\x{a}These groups can be used to define fine gr...', 'TWiki=HASH(0x216d18)', 'Main', 'TWikiGroups', 'TWiki::Meta=HASH(0x215c620)', 0) called at c:/twiki/lib/TWiki/UI/View.pm line 359
TWiki::UI::View::view('TWiki=HASH(0x216d18)') called at c:/twiki/lib/TWiki/UI.pm line 157
TWiki::UI::__ANON__() called at c:/twiki/lib/CPAN/lib//Error.pm line 379
eval {...} called at c:/twiki/lib/CPAN/lib//Error.pm line 371
Error::subs::try('CODE(0x215fc8)', 'HASH(0x21865fc)') called at c:/twiki/lib/TWiki/UI.pm line 197
TWiki::UI::run('CODE(0x1542b7c)', 'view', 1) called
The original history of the problem is stated at
TWiki:Support/FatalErrorCreatingWikiGroup
--
TWiki:Main/MarcioMarchini - 06 Feb 2007
I do not get this error in my Linux boxes.
--
TWiki:Main.KennethLavrsen - 06 Feb 2007
What auth method are you using? Standard TWiki auth? Do you have an alternate user mapping module installed? If not, are there any topics named '*Group' (e.g.
TWikiAdminGroup) in the Main web?
CC
I am using the Apache authentication method.
$TWiki::cfg{LoginManager} = 'TWiki::Client::ApacheLogin';
$TWiki::cfg{Htpasswd}{Encoding} = 'sha1';
$TWiki::cfg{PasswordManager} = 'TWiki::Users::HtPasswdUser';
No alternate user mapping module AFAIK. When I registered users, they got put into .htpasswd in C:\twiki\data
Files with "Group":
Directory of C:\twiki\data\Main
05/02/2007 01:18 AM 483 NobodyGroup.txt
05/02/2007 01:18 AM 1,853 NobodyGroup.txt,v
05/02/2007 05:06 PM 1,573 TWikiAdminGroup.txt
05/02/2007 05:06 PM 6,785 TWikiAdminGroup.txt,v
05/02/2007 01:18 AM 1,583 TWikiGroups.txt
05/02/2007 01:18 AM 7,174 TWikiGroups.txt,v
05/02/2007 01:18 AM 427 TWikiGroupTemplate.txt
05/02/2007 01:18 AM 1,719 TWikiGroupTemplate.txt,v
--
TWiki:Main.MarcioMarchini - 06 Feb 2007
Do you still get the problem if you change the encoding method to
crypt
?
I'm afraid I don't have 4.1.1 installed on Windows, so this could do with some analysis from a developer who does.
--
TWiki:Main.CrawfordCurrie - 08 Feb 2007
sha1 is the one to use on Windows. See the configure script and it will say:
crypt
is the default, and should be used on Linux/Unix.
sha1
is recommended for use on Windows.
I don't think it is an authentication issue, as the login etc is all working fine. I can see and edit other pages fine.
--
TWiki:Main.MarcioMarchini - 08 Feb 2007
I am experiencing same problem. Specifically, when trying to use the
%GROUPS%
variable, either in my own pages or on "system" pages such as TWikiGroups. I've posted details at
TWiki:Support.ErrorWhenLoadingGROUPSVariable.
--
TWiki:Main.BillLay - 11 Feb 2007
--
TWiki:Main.BillLay - 12 Feb 2007
Don't Twiki builds have automated tests for the different platforms? This bug would have been caught automatically by such a test. There are different tools for this - Selenium,
HttpUnit etc. Hopefully when a bug is fixed a regression test is added? I hope to see this one nailed soon. Thanks.
--
TWiki:Main.MarcioMarchini - 12 Feb 2007
Indeed they do. However the release team doesn't have the manpower, or access to the platforms, to run all regressions. And not all developers add regressions when they fix a problem, unfortunately. And in the case of this problem, it appears that no developer has access to a platform where they can reproduce the problem, unfortunately (I have been unable to reproduce it myself)
--
TWiki:Main.CrawfordCurrie - 12 Feb 2007
One of the reporters: Please post the Apache error log.
--
TWiki:Main.PeterThoeny - 12 Feb 2007
tail of C:\Program Files\Apache Group\Apache2\logs\error.log:
[Mon Feb 12 18:05:21 2007] [error] [client 127.0.0.1] Can't use an undefined value as an ARRAY reference at c:/twiki/lib/TWiki.pm line 3616., referer: http://localhost/twiki/bin/view.pl/Main/TWikiGroupTemplate
[Mon Feb 12 18:05:21 2007] [error] [client 127.0.0.1] at c:/twiki/lib/TWiki.pm line 3616, referer: http://localhost/twiki/bin/view.pl/Main/TWikiGroupTemplate
[Mon Feb 12 18:05:21 2007] [error] [client 127.0.0.1] \tTWiki::_GROUPS('TWiki=HASH(0x216dd8)', 'TWiki::Attrs=HASH(0x226235c)', 'TWikiGroups', 'Main') called at c:/twiki/lib/TWiki.pm line 2395, referer: http://localhost/twiki/bin/view.pl/Main/TWikiGroupTemplate
[Mon Feb 12 18:05:21 2007] [error] [client 127.0.0.1] \tTWiki::_expandTagOnTopicRendering('TWiki=HASH(0x216dd8)', 'GROUPS', 'undef', 'TWikiGroups', 'Main') called at c:/twiki/lib/TWiki.pm line 2314, referer: http://localhost/twiki/bin/view.pl/Main/TWikiGroupTemplate
[Mon Feb 12 18:05:21 2007] [error] [client 127.0.0.1] \tTWiki::_processTags('TWiki=HASH(0x216dd8)', '---+ TWiki Groups\\x{a}\\x{a}These groups can be used to define fine gr...', 'CODE(0x1dbdc50)', 16, 'TWikiGroups', 'Main') called at c:/twiki/lib/TWiki.pm line 2240, referer: http://localhost/twiki/bin/view.pl/Main/TWikiGroupTemplate
[Mon Feb 12 18:05:21 2007] [error] [client 127.0.0.1] \tTWiki::_expandAllTags('TWiki=HASH(0x216dd8)', 'SCALAR(0x21b3140)', 'TWikiGroups', 'Main') called at c:/twiki/lib/TWiki.pm line 2589, referer: http://localhost/twiki/bin/view.pl/Main/TWikiGroupTemplate
[Mon Feb 12 18:05:21 2007] [error] [client 127.0.0.1] \tTWiki::handleCommonTags('TWiki=HASH(0x216dd8)', '---+ TWiki Groups\\x{a}\\x{a}These groups can be used to define fine gr...', 'Main', 'TWikiGroups') called at c:/twiki/lib/TWiki/UI/View.pm line 375, referer: http://localhost/twiki/bin/view.pl/Main/TWikiGroupTemplate
[Mon Feb 12 18:05:21 2007] [error] [client 127.0.0.1] \tTWiki::UI::View::_prepare('---+ TWiki Groups\\x{a}\\x{a}These groups can be used to define fine gr...', 'TWiki=HASH(0x216dd8)', 'Main', 'TWikiGroups', 'TWiki::Meta=HASH(0x2172954)', 0) called at c:/twiki/lib/TWiki/UI/View.pm line 359, referer: http://localhost/twiki/bin/view.pl/Main/TWikiGroupTemplate
[Mon Feb 12 18:05:21 2007] [error] [client 127.0.0.1] \tTWiki::UI::View::view('TWiki=HASH(0x216dd8)') called at c:/twiki/lib/TWiki/UI.pm line 157, referer: http://localhost/twiki/bin/view.pl/Main/TWikiGroupTemplate
[Mon Feb 12 18:05:21 2007] [error] [client 127.0.0.1] \tTWiki::UI::__ANON__() called at c:/twiki/lib/CPAN/lib//Error.pm line 379, referer: http://localhost/twiki/bin/view.pl/Main/TWikiGroupTemplate
[Mon Feb 12 18:05:21 2007] [error] [client 127.0.0.1] \teval {...} called at c:/twiki/lib/CPAN/lib//Error.pm line 371, referer: http://localhost/twiki/bin/view.pl/Main/TWikiGroupTemplate
[Mon Feb 12 18:05:21 2007] [error] [client 127.0.0.1] \tError::subs::try('CODE(0x216088)', 'HASH(0x219f560)') called at c:/twiki/lib/TWiki/UI.pm line 197, referer: http://localhost/twiki/bin/view.pl/Main/TWikiGroupTemplate
[Mon Feb 12 18:05:22 2007] [error] [client 127.0.0.1] \tTWiki::UI::run('CODE(0x1542cd4)', 'view', 1) called, referer: http://localhost/twiki/bin/view.pl/Main/TWikiGroupTemplate
--
TWiki:Main.MarcioMarchini - 12 Feb 2007
Sorry that you are having such a problem finding anyone to support you with this problem; it appears that I am the only developer with a Windows platform who is prepared to help you
FYI I have at last been able to reproduce the problem on my Windows box. I can assure you that the issue is resolved in the code currently in the subversion repository, but I don't think the release manager wants to use that code in the next patch (it is part of a much larger suite of changes).
CC
So is there a small safe fix for 4.1.2?
--
TWiki:Main.KennethLavrsen - 13 Feb 2007
Dunno yet
--
TWiki:Main.CrawfordCurrie - 13 Feb 2007
Turns out it is due to a broken search. I didn't see the problem because I was using mod_perl and had grep-based search turned off on Windows.
On line 361 of
lib/TWiki/Store/RcsFile.pm
, you will find the following statement:
if( $match =~ m/([^\/]*)\.txt(:(.*))?$/ ) {
change it to
if( $match =~ m/([^\/\\]*)\.txt(:(.*))?$/ ) {
Thanks to everyone who helped in nailing this down, it was truly obscure.
Note that this same fix should also cure other reported bugs where search is returning windows pathnames
Item3622.
CC
This fix works for both bugs I experienced. Thank you Crawford for the very prompt response!!
--
TWiki:Main.BillLay - 13 Feb 2007
Thanks for fixing this quickly, Crawford. Out of curiosity, how could this bug slip into 4.1? Any suggestions how to improve code refactor work to reduce the chance of introducing new bugs?
--
TWiki:Main.PeterThoeny - 13 Feb 2007
The bug was in 4.0.0. But it only manifests itself when TWiki is used with a grep that returns backslashes in pathnames. Cygwin grep doesn't. I guess nobody noticed, or they simply didn't bother reporting it.
As for protecting refactoring; the only sensible approach is to use unit testcases that are run on all target platforms, and that requires access to the platforms, and a tinderbox strategy, or a release team that is able and willing to run the tests. Note that the existing testcases detect this error if they are run on Windows with
GnuWin32 grep.
--
TWiki:Main.CrawfordCurrie - 13 Feb 2007
The one-line patch worked for me too. Thanks.
--
TWiki:Main.MarcioMarchini - 14 Feb 2007
Closed with release of 4.1.2
KJL
TWiki:Support/ErrorWhenLoadingGROUPSVariable suggests a different cause: Changing
{SuperAdminGroup}
apparently causes this issue.
--
TWiki:Main.PeterThoeny - 15 Apr 2007