diff options
| author | Simon MacMullen <simon@rabbitmq.com> | 2011-01-12 12:54:12 +0000 |
|---|---|---|
| committer | Simon MacMullen <simon@rabbitmq.com> | 2011-01-12 12:54:12 +0000 |
| commit | bc892dbf91c4df178c8319c375317bed343e5783 (patch) | |
| tree | 6b51de67ab034277146928f4d8463a3ea1436053 /src | |
| parent | 7db95ec69b5766c8f38ab5f03d9b42e57cbf6c50 (diff) | |
| download | rabbitmq-server-git-bc892dbf91c4df178c8319c375317bed343e5783.tar.gz | |
Detect old-style versions properly.
Diffstat (limited to 'src')
| -rw-r--r-- | src/rabbit_upgrade.erl | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/src/rabbit_upgrade.erl b/src/rabbit_upgrade.erl index dcbffd03bc..a570df4a4e 100644 --- a/src/rabbit_upgrade.erl +++ b/src/rabbit_upgrade.erl @@ -159,9 +159,9 @@ maybe_upgrade(Scope) -> read_version() -> case rabbit_misc:read_term_file(schema_filename()) of - {ok, [V]} -> case orddict:find(mnesia, V) of - error -> {ok, convert_old_version(V)}; - _ -> {ok, V} + {ok, [V]} -> case is_orddict(V) of + false -> {ok, convert_old_version(V)}; + true -> {ok, V} end; {error, _} = Err -> Err end. @@ -315,3 +315,9 @@ lock_filename(Dir) -> filename:join(Dir, ?LOCK_FILENAME). %% NB: we cannot use rabbit_log here since it may not have been %% started yet info(Msg, Args) -> error_logger:info_msg(Msg, Args). + +%% This doesn't check it's ordered but that's not needed for our purposes +is_orddict(Thing) -> + is_list(Thing) andalso + lists:all(fun(Item) -> is_tuple(Item) andalso size(Item) == 2 end, + Thing). |
