diff options
-rw-r--r-- | src/rabbit_guid.erl | 10 | ||||
-rw-r--r-- | src/rabbit_version.erl | 2 |
2 files changed, 10 insertions, 2 deletions
diff --git a/src/rabbit_guid.erl b/src/rabbit_guid.erl index f4c425ca..ba0cb04f 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 dd1c5a00..ebc0177e 100644 --- a/src/rabbit_version.erl +++ b/src/rabbit_version.erl @@ -96,7 +96,7 @@ record_desired_for_scope(Scope) -> upgrades_required(Scope) -> case recorded_for_scope(Scope) of {error, enoent} -> - case filelib:is_dir(rabbit_mnesia:dir() ++ "/") of + case filelib:is_file(rabbit_guid:filename()) of false -> {ok, []}; %% We're blank, no upgrade needed true -> {error, version_not_available} end; |