summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatthew Sackman <matthew@rabbitmq.com>2010-08-22 18:19:14 +0100
committerMatthew Sackman <matthew@rabbitmq.com>2010-08-22 18:19:14 +0100
commit8c3e7fe272cb84f066ade2906dc8ff453d6f5024 (patch)
tree00f4f9103e76cc9bd8e03f74e82c02787fc51392
parent4283426a36a31919995c76906a2b7c624a4b4935 (diff)
downloadrabbitmq-server-8c3e7fe272cb84f066ade2906dc8ff453d6f5024.tar.gz
If we've obtained permission to open some fds and that turns out not to work out, then we should ensure that we inform the server as soon as we stop that the rest remain closed
-rw-r--r--src/file_handle_cache.erl5
1 files changed, 4 insertions, 1 deletions
diff --git a/src/file_handle_cache.erl b/src/file_handle_cache.erl
index 51b96a68..949cdc5e 100644
--- a/src/file_handle_cache.erl
+++ b/src/file_handle_cache.erl
@@ -567,7 +567,10 @@ reopen([{Ref, NewOrReopen, Handle} | RefNewOrReopenHdls], Tree, RefHdls) ->
reopen(RefNewOrReopenHdls, gb_trees:insert(Now, Ref, Tree),
[{Ref, Handle1} | RefHdls]);
{error, Reason} ->
- age_tree_delete(Handle #handle.last_used_at),
+ put_age_tree(Tree),
+ [age_tree_delete(Handle1 #handle.last_used_at) ||
+ {_Ref1, _NewOrReopen1, Handle1} <-
+ [{Ref, NewOrReopen, Handle} | RefNewOrReopenHdls]],
{error, Reason}
end.