DETS spoils DAT files

Fyodor Ustinov ufm@REDACTED
Tue Sep 1 09:01:47 CEST 2009


Hi.


In excess restrictions on 2G to file DETS spoils DAT files. Here's an
example:

ufm@REDACTED:~/src$ erl
Erlang R13B01 (erts-5.7.2) [source] [smp:2:2] [rq:2] [async-threads:0]
[kernel-poll:false]

Eshell V5.7.2  (abort with ^G)
1> BigL = lists:seq(1,2000000).
[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,
 23,24,25,26,27,28,29|...]
2> dets:open_file(tab,[{type,set}]).
{ok,tab}
3> dets:info(tab).
[{type,set},
 {keypos,1},
 {size,0},
 {file_size,5432},
 {filename,"tab"}]
4> lists:foreach(fun(X) -> dets:insert(tab,{X,BigL}) end,
lists:seq(1,50)).
ok
5>
dets:info(tab).                                                         
[{type,set},
 {keypos,1},
 {size,50},
 {file_size,848861394},
 {filename,"tab"}]
6> dets:close(tab).
ok
7>
dets:open_file(tab,[{type,set}]).                                       
{ok,tab}
8>
dets:info(tab).                                                         
[{type,set},
 {keypos,1},
 {size,50},
 {file_size,848861666},
 {filename,"tab"}]
9> lists:foreach(fun(X) -> dets:insert(tab,{X,BigL}) end,
lists:seq(50,200)).
ok
10>
dets:info(tab).                                                           
[{type,set},
 {keypos,1},
 {size,126},
 {file_size,2066820196},
 {filename,"tab"}]
11>
dets:close(tab).                                                          
{error,{{bad_object,read_buckets},"tab"}}
12>
dets:close(tab).                                                          
{error,not_owner}
13>
dets:info(tab).                                                           
undefined
14>
dets:open_file(tab,[{type,set}]).                                         
dets: file "tab" not properly closed, repairing ...
{error,{no_more_space_on_file,"tab.TMP"}}
15> 





More information about the erlang-bugs mailing list