Item10479: Complex searches can fail with deep recursion

Priority: Urgent
Current State: Closed
Released In: 1.1.4
Target Release: patch
Applies To: Engine
Component: SEARCH
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 CopyrightStatement. Creative Commons License