Public bug reported:
Lua iterators, when traversing entire index range, may in some cases
return 0 records. The error is sporadic.
A test case:
--tarantool.cfg:
slab_alloc_arena = 0.1
pid_file = "box.pid"
logger = "tee tarantool.log"
work_dir = "."
primary_port = 33013
secondary_port = 33014
admin_port = 33015
replication_port = 33016
rows_per_wal = 50000
space[19] = {
enabled = 1
index[0] = {
type = "HASH"
unique = 1
key_field[0] = {fieldno = 0, type = "STR"}
}
index[1] = {
type = "TREE"
unique = 0
key_field[0] = {fieldno = 1, type = "NUM"}
}
}
Test:
lua for i=1, 10000 do box.space[19]:truncate(); for j=1, 30 do box.insert( 19,
j, os.time(), 1 ) end; index = box.space[19].index[1]; count = 0; for k,v in
index.next, index, nil do count = count+1; end; if count ~= 30 then print("bug
at iteration ", i, ", count is ", count); end; end
This may print "bug at iteration 0, count is 0".
** Affects: tarantool
Importance: Critical
Assignee: Kostja Osipov (kostja)
Status: In Progress
** Changed in: tarantool
Milestone: None => 1.4.8
** Changed in: tarantool
Assignee: (unassigned) => Kostja Osipov (kostja)
** Changed in: tarantool
Importance: Undecided => Critical
** Changed in: tarantool
Status: New => In Progress
--
You received this bug notification because you are a member of Tarantool
Development Team, which is subscribed to tarantool.
https://bugs.launchpad.net/bugs/1042738
Title:
Tree iterator over entire range spurious error
Status in Tarantool - an efficient in-memory data store:
In Progress
Bug description:
Lua iterators, when traversing entire index range, may in some cases
return 0 records. The error is sporadic.
A test case:
--tarantool.cfg:
slab_alloc_arena = 0.1
pid_file = "box.pid"
logger = "tee tarantool.log"
work_dir = "."
primary_port = 33013
secondary_port = 33014
admin_port = 33015
replication_port = 33016
rows_per_wal = 50000
space[19] = {
enabled = 1
index[0] = {
type = "HASH"
unique = 1
key_field[0] = {fieldno = 0, type = "STR"}
}
index[1] = {
type = "TREE"
unique = 0
key_field[0] = {fieldno = 1, type = "NUM"}
}
}
Test:
lua for i=1, 10000 do box.space[19]:truncate(); for j=1, 30 do box.insert(
19, j, os.time(), 1 ) end; index = box.space[19].index[1]; count = 0; for k,v
in index.next, index, nil do count = count+1; end; if count ~= 30 then
print("bug at iteration ", i, ", count is ", count); end; end
This may print "bug at iteration 0, count is 0".
To manage notifications about this bug go to:
https://bugs.launchpad.net/tarantool/+bug/1042738/+subscriptions
_______________________________________________
Mailing list: https://launchpad.net/~tarantool-developers
Post to : [email protected]
Unsubscribe : https://launchpad.net/~tarantool-developers
More help : https://help.launchpad.net/ListHelp