summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorEmile Joubert <emile@rabbitmq.com>2012-03-21 16:17:08 +0000
committerEmile Joubert <emile@rabbitmq.com>2012-03-21 16:17:08 +0000
commit30405c2c5296dd2685ff4bf6d31328b1a935e947 (patch)
treed7df10955d3190e8961f54c1ad8724c51acc8087 /src
parenta62996f630712470d9c3a91cc86bbc5974ca4ec8 (diff)
parent7b71672e6ce6ac0c3d06d8f41020177c71c55d74 (diff)
downloadrabbitmq-server-git-30405c2c5296dd2685ff4bf6d31328b1a935e947.tar.gz
Merged bug24810 into default
Diffstat (limited to 'src')
-rw-r--r--src/rabbit_guid.erl10
-rw-r--r--src/rabbit_version.erl5
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) ->