summaryrefslogtreecommitdiff
path: root/src
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
commit984c84678df92deab8f175b01381309b744e1d11 (patch)
tree8519bffcd0ca0756207c6711f83765a33432390a /src
parent0a4dc3b24d63895efd469a4b39e96e956c5966b0 (diff)
downloadrabbitmq-server-git-984c84678df92deab8f175b01381309b744e1d11.tar.gz
cope with empty rabbit_serial file
Diffstat (limited to 'src')
-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 6c45deea9a..bec29e597e 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() ->