[erlang-bugs] DETS spoils DAT files

Fyodor Ustinov ufm@REDACTED
Fri Sep 4 13:38:48 CEST 2009


The worst thing is that such behavior takes over at DETS Mnesia. Even
more dangerous form. For quite calmly returns (atomic, ok) on the
crowded disc_only_copies base:
(n1@REDACTED)67> mnesia:dirty_write(tab,{tab,"oo","oo"}).
{error,{{bad_object,read_buckets},
        "/home/ufm/src/Mnesia.n1@REDACTED/tab.DAT"}}
(n1@REDACTED)68> mnesia:transaction(fun() ->
mnesia:write(tab,{tab,"oo","oo"},write)end).
{atomic,ok}
(n1@REDACTED)69> 


> Yes, you're right. It's not a bug, but a harsh way to inform the
> client that the table is full.
> 
> Sometimes control is returned to the client before space has actually
> been allocated on disk (insert(), re-hashing, ...). By marking the
> table as corrupt subsequent calls will return the error. This simple
> solution was chosen because it was assumed that no one works with an
> almost full table anyway.





More information about the erlang-bugs mailing list