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

Item10479: Complex searches can fail with deep recursion

pencil
Priority: Urgent
Current State: Closed
Released In: 1.1.4
Target Release: patch
Applies To: Engine
Component: SEARCH
Branches: Release01x01 trunk
Reported By: GeorgeClark
Waiting For:
Last Change By: GeorgeClark
Works fine on 1.1.3beta1

         Could not perform search. Error was: Deep recursion on subroutine "Foswiki::Query::Node::toString" at /usr/home/trunk.foswiki.org/core/lib/Foswiki/Query/Node.pm line 91.
 at /usr/local/lib/perl5/5.10.1/CGI/Carp.pm line 356
   CGI::Carp::realdie('Deep recursion on subroutine "Foswiki::Query::Node::toString"...') called at /usr/local/lib/perl5/5.10.1/CGI/Carp.pm line 437
   CGI::Carp::die('Deep recursion on subroutine "Foswiki::Query::Node::toString"...') called at /usr/home/trunk.foswiki.org/core/lib/Foswiki.pm line 149
   Foswiki::__ANON__('Deep recursion on subroutine "Foswiki::Query::Node::toString"...') called at /usr/home/trunk.foswiki.org/core/lib/Foswiki/Query/Node.pm line 91
   Foswiki::Query::Node::toString('ARRAY(0x1e21210)') called at /usr/home/trunk.foswiki.org/core/lib/Foswiki/Query/Node.pm line 91
   Foswiki::Query::Node::toString('Foswiki::Query::Node=HASH(0x1e211e0)') called at /usr/home/trunk.foswiki.org/core/lib/Foswiki/Query/Node.pm line 95
   Foswiki::Query::Node::toString('ARRAY(0x1e21360)') called at /usr/home/trunk.foswiki.org/core/lib/Foswiki/Query/Node.pm line 91
   Foswiki::Query::Node::toString('Foswiki::Query::Node=HASH(0x1e21270)') called at /usr/home/trunk.foswiki.org/core/lib/Foswiki/Query/Node.pm line 95
   Foswiki::Query::Node::toString('ARRAY(0x1e212e8)') called at /usr/home/trunk.foswiki.org/core/lib/Foswiki/Query/Node.pm line 91
   Foswiki::Query::Node::toString('Foswiki::Query::Node=HASH(0x1e213a8)') called at /usr/home/trunk.foswiki.org/core/lib/Foswiki/Query/Node.pm line 95
   Foswiki::Query::Node::toString('ARRAY(0x1e21498)') called at /usr/home/trunk.foswiki.org/core/lib/Foswiki/Query/Node.pm line 91
   Foswiki::Query::Node::toString('Foswiki::Query::Node=HASH(0x1e215b8)') called at /usr/home/trunk.foswiki.org/core/lib/Foswiki/Query/Node.pm line 95
   Foswiki::Query::Node::toString('ARRAY(0x1e216a8)') called at /usr/home/trunk.foswiki.org/core/lib/Foswiki/Query/Node.pm line 91
   Foswiki::Query::Node::toString('Foswiki::Query::Node=HASH(0x1e217c8)') called at /usr/home/trunk.foswiki.org/core/lib/Foswiki/Query/Node.pm line 95
   Foswiki::Query::Node::toString('ARRAY(0x1e268e0)') called at /usr/home/trunk.foswiki.org/core/lib/Foswiki/Query/Node.pm line 91
   Foswiki::Query::Node::toString('Foswiki::Query::Node=HASH(0x1e26a00)') called at /usr/home/trunk.foswiki.org/core/lib/Foswiki/Query/Node.pm line 95
   Foswiki::Query::Node::toString('ARRAY(0x1e26af0)') called at /usr/home/trunk.foswiki.org/core/lib/Foswiki/Query/Node.pm line 91
   Foswiki::Query::Node::toString('Foswiki::Query::Node=HASH(0x1e26c10)') called at /usr/home/trunk.foswiki.org/core/lib/Foswiki/Query/Node.pm line 95
   Foswiki::Query::Node::toString('ARRAY(0x1e26d00)') called at /usr/home/trunk.foswiki.org/core/lib/Foswiki/Query/Node.pm line 91
   Foswiki::Query::Node::toString('Foswiki::Query::Node=HASH(0x1e26e20)') called at /usr/home/trunk.foswiki.org/core/lib/Foswiki/Query/Node.pm line 95
   Foswiki::Query::Node::toString('ARRAY(0x1e26f10)') called at /usr/home/trunk.foswiki.org/core/lib/Foswiki/Query/Node.pm line 91
   Foswiki::Query::Node::toString('Foswiki::Query::Node=HASH(0x1e27030)') called at /usr/home/trunk.foswiki.org/core/lib/Foswiki/Query/Node.pm line 95
   Foswiki::Query::Node::toString('ARRAY(0x1e27120)') called at /usr/home/trunk.foswiki.org/core/lib/Foswiki/Query/Node.pm line 91
   Foswiki::Query::Node::toString('Foswiki::Query::Node=HASH(0x1e27240)') called at /usr/home/trunk.foswiki.org/core/lib/Foswiki/Query/Node.pm line 95
   Foswiki::Query::Node::toString('ARRAY(0x1e27330)') called at /usr/home/trunk.foswiki.org/core/lib/Foswiki/Query/Node.pm line 91
   Foswiki::Query::Node::toString('Foswiki::Query::Node=HASH(0x1e27450)') called at /usr/home/trunk.foswiki.org/core/lib/Foswiki/Query/Node.pm line 95
   Foswiki::Query::Node::toString('ARRAY(0x1e27540)') called at /usr/home/trunk.foswiki.org/core/lib/Foswiki/Query/Node.pm line 91
   Foswiki::Query::Node::toString('Foswiki::Query::Node=HASH(0x1e27660)') called at /usr/home/trunk.foswiki.org/core/lib/Foswiki/Query/Node.pm line 95
   Foswiki::Query::Node::toString('ARRAY(0x1e27750)') called at /usr/home/trunk.foswiki.org/core/lib/Foswiki/Query/Node.pm line 91
   Foswiki::Query::Node::toString('Foswiki::Query::Node=HASH(0x1e2c098)') called at /usr/home/trunk.foswiki.org/core/lib/Foswiki/Query/Node.pm line 95
   Foswiki::Query::Node::toString('ARRAY(0x1e2c188)') called at /usr/home/trunk.foswiki.org/core/lib/Foswiki/Query/Node.pm line 91
   Foswiki::Query::Node::toString('Foswiki::Query::Node=HASH(0x1e2c2a8)') called at /usr/home/trunk.foswiki.org/core/lib/Foswiki/Query/Node.pm line 95
   Foswiki::Query::Node::toString('ARRAY(0x1e2c398)') called at /usr/home/trunk.foswiki.org/core/lib/Foswiki/Query/Node.pm line 91
   Foswiki::Query::Node::toString('Foswiki::Query::Node=HASH(0x1e2c4b8)') called at /usr/home/trunk.foswiki.org/core/lib/Foswiki/Query/Node.pm line 95
   Foswiki::Query::Node::toString('ARRAY(0x1e2c5a8)') called at /usr/home/trunk.foswiki.org/core/lib/Foswiki/Query/Node.pm line 91
   Foswiki::Query::Node::toString('Foswiki::Query::Node=HASH(0x1e2c6c8)') called at /usr/home/trunk.foswiki.org/core/lib/Foswiki/Query/Node.pm line 95
   Foswiki::Query::Node::toString('ARRAY(0x1e2c7b8)') called at /usr/home/trunk.foswiki.org/core/lib/Foswiki/Query/Node.pm line 91
   Foswiki::Query::Node::toString('Foswiki::Query::Node=HASH(0x1e2c8d8)') called at /usr/home/trunk.foswiki.org/core/lib/Foswiki/Query/Node.pm line 95
   Foswiki::Query::Node::toString('ARRAY(0x1e2c9c8)') called at /usr/home/trunk.foswiki.org/core/lib/Foswiki/Query/Node.pm line 91
   Foswiki::Query::Node::toString('Foswiki::Query::Node=HASH(0x1e2cae8)') called at /usr/home/trunk.foswiki.org/core/lib/Foswiki/Query/Node.pm line 95
   Foswiki::Query::Node::toString('ARRAY(0x1e2cbd8)') called at /usr/home/trunk.foswiki.org/core/lib/Foswiki/Query/Node.pm line 91
   Foswiki::Query::Node::toString('Foswiki::Query::Node=HASH(0x1e2ccf8)') called at /usr/home/trunk.foswiki.org/core/lib/Foswiki/Query/Node.pm line 95
   Foswiki::Query::Node::toString('ARRAY(0x1e2cde8)') called at /usr/home/trunk.foswiki.org/core/lib/Foswiki/Query/Node.pm line 91
   Foswiki::Query::Node::toString('Foswiki::Query::Node=HASH(0x1e2cf08)') called at /usr/home/trunk.foswiki.org/core/lib/Foswiki/Query/Node.pm line 95
   Foswiki::Query::Node::toString('ARRAY(0x1e31820)') called at /usr/home/trunk.foswiki.org/core/lib/Foswiki/Query/Node.pm line 91
   Foswiki::Query::Node::toString('Foswiki::Query::Node=HASH(0x1e31940)') called at /usr/home/trunk.foswiki.org/core/lib/Foswiki/Query/Node.pm line 95
   Foswiki::Query::Node::toString('ARRAY(0x1e31a30)') called at /usr/home/trunk.foswiki.org/core/lib/Foswiki/Query/Node.pm line 91
   Foswiki::Query::Node::toString('Foswiki::Query::Node=HASH(0x1e31b50)') called at /usr/home/trunk.foswiki.org/core/lib/Foswiki/Query/Node.pm line 95
   Foswiki::Query::Node::toString('ARRAY(0x1e31c40)') called at /usr/home/trunk.foswiki.org/core/lib/Foswiki/Query/Node.pm line 91
   Foswiki::Query::Node::toString('Foswiki::Query::Node=HASH(0x1e31d60)') called at /usr/home/trunk.foswiki.org/core/lib/Foswiki/Query/Node.pm line 95
   Foswiki::Query::Node::toString('ARRAY(0x1e31e50)') called at /usr/home/trunk.foswiki.org/core/lib/Foswiki/Query/Node.pm line 91
   Foswiki::Query::Node::toString('Foswiki::Query::Node=HASH(0x1e31f70)') called at /usr/home/trunk.foswiki.org/core/lib/Foswiki/Query/Node.pm line 95
   Foswiki::Query::Node::toString('ARRAY(0x1e32060)') called at /usr/home/trunk.foswiki.org/core/lib/Foswiki/Query/Node.pm line 91
   Foswiki::Query::Node::toString('Foswiki::Query::Node=HASH(0x1e32180)') called at /usr/home/trunk.foswiki.org/core/lib/Foswiki/Query/Node.pm line 95
   Foswiki::Query::Node::toString('ARRAY(0x1e32270)') called at /usr/home/trunk.foswiki.org/core/lib/Foswiki/Query/Node.pm line 91
   Foswiki::Query::Node::toString('Foswiki::Query::Node=HASH(0x1e32390)') called at /usr/home/trunk.foswiki.org/core/lib/Foswiki/Query/Node.pm line 95
   Foswiki::Query::Node::toString('ARRAY(0x1e32480)') called at /usr/home/trunk.foswiki.org/core/lib/Foswiki/Query/Node.pm line 91
   Foswiki::Query::Node::toString('Foswiki::Query::Node=HASH(0x1e325a0)') called at /usr/home/trunk.foswiki.org/core/lib/Foswiki/Query/Node.pm line 95
   Foswiki::Query::Node::toString('ARRAY(0x1e32690)') called at /usr/home/trunk.foswiki.org/core/lib/Foswiki/Query/Node.pm line 91
   Foswiki::Query::Node::toString('Foswiki::Query::Node=HASH(0x1e327b0)') called at /usr/home/trunk.foswiki.org/core/lib/Foswiki/Query/Node.pm line 95
   Foswiki::Query::Node::toString('ARRAY(0x1e378c8)') called at /usr/home/trunk.foswiki.org/core/lib/Foswiki/Query/Node.pm line 91
   Foswiki::Query::Node::toString('Foswiki::Query::Node=HASH(0x1e379e8)') called at /usr/home/trunk.foswiki.org/core/lib/Foswiki/Query/Node.pm line 95
   Foswiki::Query::Node::toString('ARRAY(0x1e37ad8)') called at /usr/home/trunk.foswiki.org/core/lib/Foswiki/Query/Node.pm line 91
   Foswiki::Query::Node::toString('Foswiki::Query::Node=HASH(0x1e37bf8)') called at /usr/home/trunk.foswiki.org/core/lib/Foswiki/Query/Node.pm line 95
   Foswiki::Query::Node::toString('ARRAY(0x1e37ce8)') called at /usr/home/trunk.foswiki.org/core/lib/Foswiki/Query/Node.pm line 91
   Foswiki::Query::Node::toString('Foswiki::Query::Node=HASH(0x1e37e08)') called at /usr/home/trunk.foswiki.org/core/lib/Foswiki/Query/Node.pm line 95
   Foswiki::Query::Node::toString('ARRAY(0x1e37ef8)') called at /usr/home/trunk.foswiki.org/core/lib/Foswiki/Query/Node.pm line 91
   Foswiki::Query::Node::toString('Foswiki::Query::Node=HASH(0x1e38018)') called at /usr/home/trunk.foswiki.org/core/lib/Foswiki/Query/Node.pm line 95
   Foswiki::Query::Node::toString('ARRAY(0x1e38108)') called at /usr/home/trunk.foswiki.org/core/lib/Foswiki/Query/Node.pm line 91
   Foswiki::Query::Node::toString('Foswiki::Query::Node=HASH(0x1e38228)') called at /usr/home/trunk.foswiki.org/core/lib/Foswiki/Query/Node.pm line 95
   Foswiki::Query::Node::toString('ARRAY(0x1e38318)') called at /usr/home/trunk.foswiki.org/core/lib/Foswiki/Query/Node.pm line 91
   Foswiki::Query::Node::toString('Foswiki::Query::Node=HASH(0x1e38438)') called at /usr/home/trunk.foswiki.org/core/lib/Foswiki/Query/Node.pm line 95
   Foswiki::Query::Node::toString('ARRAY(0x1e38528)') called at /usr/home/trunk.foswiki.org/core/lib/Foswiki/Query/Node.pm line 91
   Foswiki::Query::Node::toString('Foswiki::Query::Node=HASH(0x1e38648)') called at /usr/home/trunk.foswiki.org/core/lib/Foswiki/Query/Node.pm line 95
   Foswiki::Query::Node::toString('ARRAY(0x1e38738)') called at /usr/home/trunk.foswiki.org/core/lib/Foswiki/Query/Node.pm line 91
   Foswiki::Query::Node::toString('Foswiki::Query::Node=HASH(0x1e3d080)') called at /usr/home/trunk.foswiki.org/core/lib/Foswiki/Query/Node.pm line 95
   Foswiki::Query::Node::toString('ARRAY(0x1e3d170)') called at /usr/home/trunk.foswiki.org/core/lib/Foswiki/Query/Node.pm line 91
   Foswiki::Query::Node::toString('Foswiki::Query::Node=HASH(0x1e3d290)') called at /usr/home/trunk.foswiki.org/core/lib/Foswiki/Query/Node.pm line 95
   Foswiki::Query::Node::toString('ARRAY(0x1e3d380)') called at /usr/home/trunk.foswiki.org/core/lib/Foswiki/Query/Node.pm line 91
   Foswiki::Query::Node::toString('Foswiki::Query::Node=HASH(0x1e3d4a0)') called at /usr/home/trunk.foswiki.org/core/lib/Foswiki/Query/Node.pm line 95
   Foswiki::Query::Node::toString('ARRAY(0x1e3d590)') called at /usr/home/trunk.foswiki.org/core/lib/Foswiki/Query/Node.pm line 91
   Foswiki::Query::Node::toString('Foswiki::Query::Node=HASH(0x1e3d6b0)') called at /usr/home/trunk.foswiki.org/core/lib/Foswiki/Query/Node.pm line 95
   Foswiki::Query::Node::toString('ARRAY(0x1e3d7a0)') called at /usr/home/trunk.foswiki.org/core/lib/Foswiki/Query/Node.pm line 91
   Foswiki::Query::Node::toString('Foswiki::Query::Node=HASH(0x1e3d8c0)') called at /usr/home/trunk.foswiki.org/core/lib/Foswiki/Query/Node.pm line 95
   Foswiki::Query::Node::toString('ARRAY(0x1e3d9b0)') called at /usr/home/trunk.foswiki.org/core/lib/Foswiki/Query/Node.pm line 91
   Foswiki::Query::Node::toString('Foswiki::Query::Node=HASH(0x1e3dad0)') called at /usr/home/trunk.foswiki.org/core/lib/Foswiki/Query/Node.pm line 95
   Foswiki::Query::Node::toString('ARRAY(0x1e3dbc0)') called at /usr/home/trunk.foswiki.org/core/lib/Foswiki/Query/Node.pm line 91
   Foswiki::Query::Node::toString('Foswiki::Query::Node=HASH(0x1e3dce0)') called at /usr/home/trunk.foswiki.org/core/lib/Foswiki/Query/Node.pm line 95
   Foswiki::Query::Node::toString('ARRAY(0x1e20ad8)') called at /usr/home/trunk.foswiki.org/core/lib/Foswiki/Query/Node.pm line 91
   Foswiki::Query::Node::toString('Foswiki::Query::Node=HASH(0x1e1ec20)') called at /usr/home/trunk.foswiki.org/core/lib/Foswiki/Query/Node.pm line 95
   Foswiki::Query::Node::toString('ARRAY(0x1e20bc8)') called at /usr/home/trunk.foswiki.org/core/lib/Foswiki/Query/Node.pm line 91
   Foswiki::Query::Node::toString('Foswiki::Query::Node=HASH(0x1e20af0)') called at /usr/home/trunk.foswiki.org/core/lib/Foswiki/Query/Node.pm line 95
   Foswiki::Query::Node::toString('ARRAY(0x1e0a968)') called at /usr/home/trunk.foswiki.org/core/lib/Foswiki/Query/Node.pm line 91
   Foswiki::Query::Node::toString('Foswiki::Query::Node=HASH(0x1e1e3b0)') called at /usr/home/trunk.foswiki.org/core/lib/Foswiki/Query/Node.pm line 95
   Foswiki::Query::Node::toString('ARRAY(0x1e1e488)') called at /usr/home/trunk.foswiki.org/core/lib/Foswiki/Query/Node.pm line 91
   Foswiki::Query::Node::toString('Foswiki::Query::Node=HASH(0x1e0a8d8)') called at /usr/home/trunk.foswiki.org/core/lib/Foswiki/Query/Node.pm line 95
   Foswiki::Query::Node::toString('ARRAY(0x1ded800)') called at /usr/home/trunk.foswiki.org/core/lib/Foswiki/Query/Node.pm line 91
   Foswiki::Query::Node::toString('Foswiki::Query::Node=HASH(0x1dff898)') called at /usr/home/trunk.foswiki.org/core/lib/Foswiki/Query/Node.pm line 95
   Foswiki::Query::Node::toString('ARRAY(0x1dffa00)') called at /usr/home/trunk.foswiki.org/core/lib/Foswiki/Query/Node.pm line 91
   Foswiki::Query::Node::toString('Foswiki::Query::Node=HASH(0x1ded7b8)') called at /usr/home/trunk.foswiki.org/core/lib/Foswiki/Query/Node.pm line 95
   Foswiki::Query::Node::toString('ARRAY(0x1e00330)') called at /usr/home/trunk.foswiki.org/core/lib/Foswiki/Query/Node.pm line 91
   Foswiki::Query::Node::toString('Foswiki::Query::Node=HASH(0x1dff9a0)') called at /usr/home/trunk.foswiki.org/core/lib/Foswiki/Query/Node.pm line 95
   Foswiki::Query::Node::toString('ARRAY(0x1e20b50)') called at /usr/home/trunk.foswiki.org/core/lib/Foswiki/Query/Node.pm line 91
   Foswiki::Query::Node::toString('Foswiki::Query::Node=HASH(0x1dffa78)') called at /usr/home/trunk.foswiki.org/core/lib/Foswiki/Store/QueryAlgorithms/BruteForce.pm line 183
   Foswiki::Store::QueryAlgorithms::BruteForce::_webQuery('Foswiki::Query::Node=HASH(0x1dffa78)', 'Tasks', undef, 'Foswiki=HASH(0x6a68f8)', 'HASH(0xcc9710)') called at /usr/home/trunk.foswiki.org/core/lib/Foswiki/Store/QueryAlgorithms/BruteForce.pm line 80
   Foswiki::Store::QueryAlgorithms::BruteForce::query('Foswiki::Query::Node=HASH(0x1dffa78)', undef, 'Foswiki=HASH(0x6a68f8)', 'HASH(0xcc9710)') called at /usr/home/trunk.foswiki.org/core/lib/Foswiki/Store/VC/Store.pm line 508
   Foswiki::Store::VC::Store::query('Foswiki::Store::RcsWrap=HASH(0x9e8380)', 'Foswiki::Query::Node=HASH(0x1dffa78)', undef, 'Foswiki=HASH(0x6a68f8)', 'HASH(0xcc9710)') called at /usr/home/trunk.foswiki.org/core/lib/Foswiki/Meta.pm line 874
   Foswiki::Meta::query('Foswiki::Query::Node=HASH(0x1dffa78)', undef, 'HASH(0xcc9710)') called at /usr/home/trunk.foswiki.org/core/lib/Foswiki/Search.pm line 350
   Foswiki::Search::searchWeb('Foswiki::Search=HASH(0xca0d58)', 'topic', 'Item*', 'search', '(\x{a}        <a href="/Tasks/CurrentState">CurrentState</a> = \'New\'\x{a}        OR <a href="/Tasks/CurrentState">CurrentState</a> = \'...', 'basetopic', 'ReleaseBlocker', 'reverse', 'on', ...) called at /usr/home/trunk.foswiki.org/core/lib/Foswiki/Macros/SEARCH.pm line 32
   Foswiki::__ANON__() called at /usr/local/lib/perl5/site_perl/5.10.1/Error.pm line 415
   eval {...} called at /usr/local/lib/perl5/site_perl/5.10.1/Error.pm line 407
   Error::subs::try('CODE(0xe0a0f8)', 'HASH(0x1cf4068)') called at /usr/home/trunk.foswiki.org/core/lib/Foswiki/Macros/SEARCH.pm line 41
   Foswiki::SEARCH('Foswiki=HASH(0x6a68f8)', 'Foswiki::Attrs=HASH(0xe0a230)', 'Foswiki::Meta=HASH(0xd27b48)') called at /usr/home/trunk.foswiki.org/core/lib/Foswiki.pm line 3041
   Foswiki::_expandMacroOnTopicRendering('Foswiki=HASH(0x6a68f8)', 'SEARCH', '\x{a}    "(\x{a}        <a href="/Tasks/CurrentState">CurrentState</a> = \'New\'\x{a}        OR <span class="foswikiNewLink">CurrentStat<a href="/bin/edit/Tasks/CurrentStat?topicparent=Tasks.ReleaseBlocker" rel="nofollow" title="Create this topic">?</a></span>...', 'Foswiki::Meta=HASH(0xd27b48)') called at /usr/home/trunk.foswiki.org/core/lib/Foswiki.pm line 2920
   Foswiki::_processMacros('Foswiki=HASH(0x6a68f8)', '---+ Release Blockers\x{a}\x{a}All open urgent bugs related to the co...', 'CODE(0x95ea18)', 'Foswiki::Meta=HASH(0xd27b48)', 16) called at /usr/home/trunk.foswiki.org/core/lib/Foswiki.pm line 2717
   Foswiki::innerExpandMacros('Foswiki=HASH(0x6a68f8)', 'SCALAR(0xd600f0)', 'Foswiki::Meta=HASH(0xd27b48)') called at /usr/home/trunk.foswiki.org/core/lib/Foswiki.pm line 3218
   Foswiki::expandMacros('Foswiki=HASH(0x6a68f8)', '---+ Release Blockers\x{a}\x{a}All open urgent bugs related to the co...', 'Foswiki::Meta=HASH(0xd27b48)') called at /usr/home/trunk.foswiki.org/core/lib/Foswiki/Meta.pm line 3183
   Foswiki::Meta::expandMacros('Foswiki::Meta=HASH(0xd27b48)', '---+ Release Blockers\x{a}\x{a}All open urgent bugs related to the co...') called at /usr/home/trunk.foswiki.org/core/lib/Foswiki/UI/View.pm line 406
   Foswiki::UI::View::_prepare('---+ Release Blockers\x{a}\x{a}All open urgent bugs related to the co...', 'Foswiki::Meta=HASH(0xd27b48)', 0) called at /usr/home/trunk.foswiki.org/core/lib/Foswiki/UI/View.pm line 386
   Foswiki::UI::View::view('Foswiki=HASH(0x6a68f8)') called at /usr/home/trunk.foswiki.org/core/lib/Foswiki/UI.pm line 316
   Foswiki::UI::__ANON__() called at /usr/local/lib/perl5/site_perl/5.10.1/Error.pm line 415
   eval {...} called at /usr/local/lib/perl5/site_perl/5.10.1/Error.pm line 407
   Error::subs::try('CODE(0x603c88)', 'HASH(0x9a4480)') called at /usr/home/trunk.foswiki.org/core/lib/Foswiki/UI.pm line 435
   Foswiki::UI::_execute('Foswiki::Request=HASH(0x9872c0)', 'CODE(0x6a0398)', 'view', 1) called at /usr/home/trunk.foswiki.org/core/lib/Foswiki/UI.pm line 277
   Foswiki::UI::handleRequest('Foswiki::Request=HASH(0x9872c0)') called at /usr/home/trunk.foswiki.org/core/lib/Foswiki/Engine/CGI.pm line 37
   Foswiki::Engine::CGI::run('Foswiki::Engine::CGI=HASH(0x791938)') called at /home/trunk.foswiki.org/core/bin/view line 29.
-- GeorgeClark - 12 Mar 2011

There's something terrible about this query search that causes Query::Node::toString to go crazy. I'll leave that for later, and stop trunk from crashing for now.

-- SvenDowideit - 17 Mar 2011

The only error here is in the size of the query. perldiag says:
Deep recursion on subroutine "%s"
(W recursion) This subroutine has called itself (directly or indirectly) 100 times more than it has returned. This probably indicates an infinite recursion,
so if you evaluate a tree of more than 100 levels deep recursively, it will barf - and because we have more than 100 extensions, which are expanded as a tail recursive OR tree, that recursion depth is hit. it can equally be worked around using no warnings 'recursion' around the toString method in Node.pm.

I disabled the recursion warning on that function.

-- CrawfordCurrie - 06 Apr 2011

Shouldn't this just be closed? The bug does not appear in released code does it?

-- GeorgeClark - 11 Apr 2011

This should not have been closed. It should have been a release blocker for 1.1.3.

I have a failing 1.1.3 installation now because of this bug

Why was the fix only checked into trunk?

-- KennethLavrsen - 04 May 2011

The same topic & query ( Tasks/ReleaseBlocker worked fine on 1.1.3 throughout the beta. The problem was never observed on 1.1.3. It still works fine on 1.1.3.

-- GeorgeClark - 04 May 2011

In my actual case someone had written a query with more than 100 nodes (built from a regex search within the search string of a query search).

So the fix is relevant but will only be seen by very long queries and only produces a warning in the log. Search still works without fix. Now fixed so people have a cleaner log when upgrading to 1.1.4.

-- KennethLavrsen - 05 May 2011

This is not completely fixed - the topic ComponentSearch is a nested search that triggers the recursion errors in OP_or and Node.

It appears that the no warnings 'recursion' is needed around the recursive calls., especially the AND, OR, and the evaluatesToConstant routine.

-- GeorgeClark - 31 Oct 2011
 
Topic revision: r22 - 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