[erlang-questions] Ridiculuous newbie mnesia question.

Kresten Krab Thorup krab@REDACTED
Sun Oct 24 23:57:04 CEST 2010


Looks like your node is called noname@REDACTED (ie you did not specify -name option to the erl command) while your script expects it to be called a@REDACTED?

I'm no expert in mnesia, but what happens if you actually have nodes a@REDACTED and b@REDACTED running? 

Its obvious why the second create fails, but maybe you cannot delete because mnesia cannot find the named nodes?

Kresten

On 24/10/2010, at 23.38, "Jeffrey Rennie" <surferjeff@REDACTED> wrote:

> I seem to be stuck in a state where I can't create a table because it
> exists, but I can't delete the table because it doesn't exist!
> 
> I searched the mnesia documentation, and I couldn't find a definition
> of the "Tab" arg passed to many mnesia functions.
> 
> Here's what I tried:
> 
> Eshell V5.7.5  (abort with ^G)
> 2> c(backgammon).
> {ok,backgammon}
> 5> c(backgammon).
> {ok,backgammon}
> 7> mnesia:start().
> ok
> 8> backgammon:init().
> {atomic,ok}
> 11> c(backgammon).
> {ok,backgammon}
> 12> backgammon:dumpfields().
> [player_turn,dice,board]
> 13> c(backgammon).
> {ok,backgammon}
> 14> backgammon:init().
> {aborted,{already_exists,backgammon_games}}
> 15> mnesia:info().
> ---> Processes holding locks <---
> ---> Processes waiting for locks <---
> ---> Participant transactions <---
> ---> Coordinator transactions <---
> ---> Uncertain transactions <---
> ---> Active tables <---
> schema         : with 2        records occupying 546      words of mem
> ===> System info in version "4.4.13", debug level = none <===
> opt_disc. Directory
> "c:/Users/jeff/code/code/scratch/erlang/Mnesia.nonode@REDACTED" is NOT
> used.
> use fallback at restart = false
> running db nodes   = [nonode@REDACTED]
> stopped db nodes   = []
> master node tables = []
> remote             = [backgammon_games]
> ram_copies         = [schema]
> disc_copies        = []
> disc_only_copies   = []
> [] = [backgammon_games]
> [{nonode@REDACTED,ram_copies}] = [schema]
> 3 transactions committed, 1 aborted, 0 restarted, 0 logged to disc
> 0 held locks, 0 in queue; 0 local transactions, 0 remote
> 0 transactions waits for other nodes: []
> ok
> %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
> %% BEGIN CONFUSING BIT
> 17> mnesia:delete_table(backgammon_games).
> {aborted,{no_exists,backgammon_games}}
> 18> backgammon:init().
> {aborted,{already_exists,backgammon_games}}
> 19>
> %% END CONFUSING BIT
> %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
> 
> 
> Here's my backgammon.erl:
> -module(backgammon).
> 
> -compile(export_all).
> 
> -include("backgammon.hrl").
> 
> create_tables(MnesiaNodes) ->
>    mnesia:create_table(backgammon_games,
>            [{attributes, record_info(fields, game_record)},
>             {ram_copies, MnesiaNodes}]).
> 
> init() ->
>    create_tables([a@REDACTED, b@REDACTED]).
> 
> dumpfields() ->
>    record_info(fields, game_state).
> 
> ________________________________________________________________
> erlang-questions (at) erlang.org mailing list.
> See http://www.erlang.org/faq.html
> To unsubscribe; mailto:erlang-questions-unsubscribe@REDACTED
> 


More information about the erlang-questions mailing list