You are here: Foswiki>Tasks Web>Item10789 (17 Dec 2011, GeorgeClark)Edit Attach

Item10789: foswiki.org/Extensions/WebChanges can be crashed by a topic that fails to load completely

pencil
Priority: Urgent
Current State: Closed
Released In: 1.1.4
Target Release: patch
Applies To: Engine
Component: FoswikiSearchInfoCache, SEARCH
Branches:
Reported By: ModAcOst
Waiting For:
Last Change By: GeorgeClark
http://foswiki.org/Extensions/WebChanges will fail with a lenghty message.

-- ModAcOst - 25 May 2011

In trying to see what might be causing the issue, I was comparing bin/changes script with WebRss and WebChanges. Item8570 contained an ampersand in the Summary and had broken WebRss, After editing that topic and substituting "and", WebChanges seems to be working. I have no idea if this is actually related, and unfortunately I didn't record the traceback first. Failure was calling InfoCache with an unblessed reference.

-- GeorgeClark - 25 May 2011

Raised to urgent, if we're getting it on foswiki.org, others probably are too. I saw an error like this on trunk and found that we weren't handling bad/missing topicinfo metadata very well.

-- PaulHarvey - 26 May 2011

Found the following error repeatedly in the error_log from the 25th.
[Wed May 25 21:29:50 2011] [error] [client 62.243.208.118] [Wed May 25 21:29:50 2011] view: Deep recursion on subroutine "Foswiki::Query::Node::toString" at /usr/home/foswiki.org/public_html/lib/Foswiki/Query/Node.pm line 94., referer: http://foswiki.org/Tasks/WebChanges

However I can't correlate this with the save of this task, so may be unrelated.

-- GeorgeClark - 27 May 2011

WARNING: this is temporarily hacked on foswiki.org. refer to http://trunk.foswiki.org/Extensions/WebChanges to see the evil disease!

I can confirm that without the hack, it fails on f.o as well.

Index: InfoCache.pm
===================================================================
--- InfoCache.pm   (revision 11876)
+++ InfoCache.pm   (working copy)
@@ -325,6 +325,7 @@
             my $info = $metacache->get($webtopic);
             if ( !defined( $info->{$sortfield} ) ) {
                 if ( $sortfield eq 'modified' ) {
+$info = $info->{tom} unless UNIVERSAL::can($info, "getRevisionInfo");
                     my $ri = $info->getRevisionInfo();
                     $info->{$sortfield} = $ri->{date};
                 }
Same hack worked on t.f.o. Really needs Sven to look at this, as he understands InfoCache.

-- CrawfordCurrie - 08 Jun 2011

thankyou for the hack diff here.

I am looking into this, though only as I find brain time - InfoCache was written by a crazy person, and every time i touch it, weird things happen :/

-- SvenDowideit - 09 Jun 2011

really fascinating. - its still only the VarNEXUSTREES topic - so I need to make a unit test that mimics that case.

-- SvenDowideit - 09 Jun 2011

fixed in 1.1 - i think.

-- SvenDowideit - 12 Jun 2011

 
Topic revision: r16 - 17 Dec 2011, GeorgeClark
The copyright of the content on this website is held by the contributing authors, except where stated elsewhere. See Copyright Statement. Creative Commons License    Legal Imprint    Privacy Policy