[erlang-bugs] Bad object error in dets in R14B02
John Hughes
john.hughes@REDACTED
Mon May 16 18:23:21 CEST 2011
QuickCheck found another error in dets. The following test case shows how to provoke a bad object error by starting three concurrent match_object traversals, at the same time as data is inserted into the table.
test() ->
dets:close(dets_table),
file:delete(dets_table),
{ok,dets_table} = dets:open_file(dets_table,[{type,bag}]),
ok = dets:insert(dets_table,[{0,0},{0,14},{1,0},{1,1},{39,0}]),
{[{0,14}],Cont} = dets:match_object(dets_table,{'$1',14},0),
ok = dets:insert(dets_table,{2,0}),
{[{0,0},{0,14}],_} = dets:match_object(dets_table,{0,'$2'},0),
ok = dets:insert(dets_table,[{2,1},{39,1}]),
{[{1,0}],_} = dets:match_object(dets_table,{'$1',0},0),
{error,{{bad_object,scan},"dets_table"}} = dets:match_object(Cont).
This is 100% repeatable--and it seems to be a minimal example.
John
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://erlang.org/pipermail/erlang-bugs/attachments/20110516/8bff70e3/attachment.htm>
More information about the erlang-bugs
mailing list