summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatthias Radestock <matthias@rabbitmq.com>2013-05-29 08:48:48 +0100
committerMatthias Radestock <matthias@rabbitmq.com>2013-05-29 08:48:48 +0100
commitee8dfa998133c8b13195e5164a25e001fa24ed5e (patch)
tree8519bffcd0ca0756207c6711f83765a33432390a
parent8e222d809d2ae84ca9b70ab180224f62e83234e4 (diff)
downloadrabbitmq-server-bug25575.tar.gz
cope with empty rabbit_serial filebug25575
-rw-r--r--src/rabbit_guid.erl5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/rabbit_guid.erl b/src/rabbit_guid.erl
index 6c45deea..bec29e59 100644
--- a/src/rabbit_guid.erl
+++ b/src/rabbit_guid.erl
@@ -63,6 +63,7 @@ update_disk_serial() ->
Filename = filename(),
Serial = case rabbit_file:read_term_file(Filename) of
{ok, [Num]} -> Num;
+ {ok, []} -> 0; %% [1]
{error, enoent} -> 0;
{error, Reason} ->
throw({error, {cannot_read_serial_file, Filename, Reason}})
@@ -73,6 +74,10 @@ update_disk_serial() ->
throw({error, {cannot_write_serial_file, Filename, Reason1}})
end,
Serial.
+%% [1] a couple of users have reported startup failures due to the
+%% file being empty, presumably as a result of filesystem
+%% corruption. While rabbit doesn't cope with that in general, in this
+%% specific case we can be more accommodating.
%% Generate an un-hashed guid.
fresh() ->