diff options
| author | Emile Joubert <emile@rabbitmq.com> | 2012-03-21 16:17:08 +0000 |
|---|---|---|
| committer | Emile Joubert <emile@rabbitmq.com> | 2012-03-21 16:17:08 +0000 |
| commit | 30405c2c5296dd2685ff4bf6d31328b1a935e947 (patch) | |
| tree | d7df10955d3190e8961f54c1ad8724c51acc8087 | |
| parent | a62996f630712470d9c3a91cc86bbc5974ca4ec8 (diff) | |
| parent | 7b71672e6ce6ac0c3d06d8f41020177c71c55d74 (diff) | |
| download | rabbitmq-server-git-30405c2c5296dd2685ff4bf6d31328b1a935e947.tar.gz | |
Merged bug24810 into default
| -rw-r--r-- | src/rabbit_guid.erl | 10 | ||||
| -rw-r--r-- | src/rabbit_version.erl | 5 |
2 files changed, 13 insertions, 2 deletions
diff --git a/src/rabbit_guid.erl b/src/rabbit_guid.erl index f4c425ca20..ba0cb04f71 100644 --- a/src/rabbit_guid.erl +++ b/src/rabbit_guid.erl @@ -19,6 +19,7 @@ -behaviour(gen_server). -export([start_link/0]). +-export([filename/0]). -export([gen/0, gen_secure/0, string/2, binary/2]). -export([init/1, handle_call/3, handle_cast/2, handle_info/2, terminate/2, @@ -38,6 +39,7 @@ -type(guid() :: binary()). -spec(start_link/0 :: () -> rabbit_types:ok_pid_or_error()). +-spec(filename/0 :: () -> string()). -spec(gen/0 :: () -> guid()). -spec(gen_secure/0 :: () -> guid()). -spec(string/2 :: (guid(), any()) -> string()). @@ -51,8 +53,14 @@ start_link() -> gen_server:start_link({local, ?SERVER}, ?MODULE, [update_disk_serial()], []). +%% We use this to detect a (possibly rather old) Mnesia directory, +%% since it has existed since at least 1.7.0 (as far back as I cared +%% to go). +filename() -> + filename:join(rabbit_mnesia:dir(), ?SERIAL_FILENAME). + update_disk_serial() -> - Filename = filename:join(rabbit_mnesia:dir(), ?SERIAL_FILENAME), + Filename = filename(), Serial = case rabbit_file:read_term_file(Filename) of {ok, [Num]} -> Num; {error, enoent} -> 0; diff --git a/src/rabbit_version.erl b/src/rabbit_version.erl index 7545d81362..ebc0177e6e 100644 --- a/src/rabbit_version.erl +++ b/src/rabbit_version.erl @@ -96,7 +96,10 @@ record_desired_for_scope(Scope) -> upgrades_required(Scope) -> case recorded_for_scope(Scope) of {error, enoent} -> - {error, version_not_available}; + case filelib:is_file(rabbit_guid:filename()) of + false -> {ok, []}; %% We're blank, no upgrade needed + true -> {error, version_not_available} + end; {ok, CurrentHeads} -> with_upgrade_graph( fun (G) -> |
