Mnesia question

Dan Gudmundsson <>
Mon Jun 27 11:53:49 CEST 2005


Thanks, for sending error report and the files..

The problem is when you have created an index on disc_only_copies tables,
and that info is still in the log when mnesia starts up. 
(which could be seen when using mnesia:set_debug_level(debug)).

Patch mnesia_dumper:

rian:src> diff -u mnesia_dumper.erl mnesia_dumper.erl@@/mnesia_4.2.2
--- mnesia_dumper.erl	Mon Jun 27 11:36:47 2005
+++ mnesia_dumper.erl@@/mnesia_4.2.2	Wed Jan 26 12:02:50 2005
@@ -760,7 +760,6 @@
     Storage = mnesia_lib:cs_to_storage_type(node(), Cs),
     case InitBy of
 	startup when Storage == disc_only_copies ->
-	    true = open_files(Tab, Storage, InPlace, InitBy),
 	    mnesia_index:init_indecies(Tab, Storage, [Pos]);
 	startup ->
 	    ignore; 

/Dan


Dan Gudmundsson writes:
 > 
 > Hi 
 > 
 > That doesn't sound good, can you email me your test, and I'll have a look
 > at it.
 > 
 > /Dan
 > 
 > Mickael Remond writes:
 >  > Hello,
 >  > 
 >  > I have encountered potentially strange behaviour with Mnesia, when the
 >  > changes applied to the database where made in a script-like fashion in a
 >  > short-lived program.
 >  > 
 >  > I had a program that was starting the database, then was inserting a
 >  > record in the database and last was stopping mnesia and the Erlang VM with
 >  > init:stop().
 >  > 
 >  > My record where not found in the database after a restart of the VM and
 >  > Mnesia. It where correctly written by my script however (I put a read and
 >  > print instruction to check).
 >  > 
 >  > I found that the record was in the log file in the database directory, but
 >  > was not replayed by Mnesia when restarted.
 >  > I thought that it might have to do with log threshold options (Dump log is
 >  > not triggered as the size of the transaction or the max time before dump
 >  > is not reached).
 >  > 
 >  > Finally adding a mnesia:dump_log instruction before stopping Mnesia in my
 >  > short lived script solve the problem.
 >  > 
 >  > I was wondering if this was the expected behaviour. I would have guessed
 >  > that Mnesia should have read the log on startup or that shutdown would
 >  > have dump the log.
 >  > 
 >  > I was using Erlang/OTP R10B-3.
 >  > 
 >  > Thank you for your feedback
 >  > 
 >  > -- 
 >  > Mickaël Rémond

-- 
Dan Gudmundsson               Project:    Mnesia, Erlang/OTP
Ericsson Utvecklings AB       Phone:      +46  8 727 5762 
UAB/F/P                       Mobile:     +46 70 519 9469
S-125 25 Stockholm            Visit addr: Armborstv 1 




More information about the erlang-questions mailing list