[ZODB-Dev] [ zodb-Bugs-555575 ] BTree.keys() failure
noreply@sourceforge.net
noreply@sourceforge.net
Mon, 13 May 2002 11:57:13 -0700
Bugs item #555575, was opened at 2002-05-13 18:48
You can respond by visiting:
http://sourceforge.net/tracker/?func=detail&atid=115628&aid=555575&group_id=15628
Category: None
Group: None
Status: Open
Resolution: None
Priority: 5
Submitted By: Tim Peters (tim_one)
Assigned to: Nobody/Anonymous (nobody)
Summary: BTree.keys() failure
Initial Comment:
Here's a "sharp" test case that fails on my box
(Windows, Python 2.1, Zope TextIndexDS9-branch).
Guido reported failure on Linux too:
. b = IOBTree()
. for i in xrange(29972): # works if 29971
. b[i] = i
. for i in xrange(30): # works if 29
. del b[i]
. b[i+40000] = i
. print 'len(b)', len(b)
. print 'len(b.keys())', len(b.keys())
. print 'b.keys()[0]', b.keys()[0] # IndexError
That does not fail using an IIBTree, but this does:
. b = IIBTree()
. for i in xrange(29972*2):
. b[i] = i
. for i in xrange(30*2):
. del b[i]
. b[i+40000*2] = i
. print 'len(b)', len(b)
. print 'len(b.keys())', len(b.keys())
. print 'b.keys()[0]', b.keys()[0] # IndexError
It's the same thing, except the trip counts have
doubled. I assume, but don't know, that this is
related to that DEFAULT_MAX_BUCKET_SIZE is twice as
large in _IIBTree.c than in _IOBTree.c.
----------------------------------------------------------------------
Comment By: Neil Schemenauer (nascheme)
Date: 2002-05-13 18:57
Message:
Logged In: YES
user_id=35752
Does this happen for OOBTrees as well? We saw a failure
similar to this on our site after a rogue spider
created thousands of sessions (stored in a OOBTree).
----------------------------------------------------------------------
You can respond by visiting:
http://sourceforge.net/tracker/?func=detail&atid=115628&aid=555575&group_id=15628