summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLinus Nordberg <linus@nordu.net>2015-06-12 15:04:02 +0200
committerLinus Nordberg <linus@nordu.net>2015-06-12 15:25:52 +0200
commit97ad4becdbe302f120b598fb84d1bcfcc1a17576 (patch)
treec41e3a836098fdb7ebb1ef54e4b111dd6900bb06
parent4c31a6ff8cb1abd515d1c47d2c9fc7fb1430dfcc (diff)
Allow ht:load_tree() 30 seconds to finish.
Default 5 seconds was not enough on a tree with around 5.2M entries.
-rw-r--r--NEWS.md4
-rw-r--r--src/ht.erl6
-rw-r--r--src/stacktrace.erl9
3 files changed, 13 insertions, 6 deletions
diff --git a/NEWS.md b/NEWS.md
index f578b3f..0bea6ed 100644
--- a/NEWS.md
+++ b/NEWS.md
@@ -4,6 +4,10 @@
- frontend/sendsth now verifies the content of entries received.
+## Bug fixes
+
+- Timeout for generating a tree has been increased to 30 seconds.
+
# Changes in plop 0.7.0 - 2015-04-25
## Features
diff --git a/src/ht.erl b/src/ht.erl
index 0e00440..5d56bad 100644
--- a/src/ht.erl
+++ b/src/ht.erl
@@ -35,7 +35,7 @@
code_change/3]).
-export([testing_get_state/0, print_tree/0, print_tree/1]).
--import(stacktrace, [call/2]).
+-import(stacktrace, [call/2, call/3]).
-include_lib("eunit/include/eunit.hrl").
-import(lists, [foreach/2, foldl/3, reverse/1]).
@@ -55,9 +55,9 @@ start_link() ->
start_link(NEntries) ->
gen_server:start_link({local, ?MODULE}, ?MODULE, [NEntries], []).
reset_tree(Arg) ->
- gen_server:call(?MODULE, {reset_tree, Arg}, infinity).
+ call(?MODULE, {reset_tree, Arg}, infinity).
load_tree(Version) ->
- case call(?MODULE, {load_tree, Version}) of
+ case call(?MODULE, {load_tree, Version}, 30000) of
eagain ->
load_tree(Version);
Result ->
diff --git a/src/stacktrace.erl b/src/stacktrace.erl
index 3de4772..39245e1 100644
--- a/src/stacktrace.erl
+++ b/src/stacktrace.erl
@@ -1,11 +1,14 @@
-%%% Copyright (c) 2014, NORDUnet A/S.
+%%% Copyright (c) 2014-2015, NORDUnet A/S.
%%% See LICENSE for licensing information.
-module(stacktrace).
--export([call/2]).
+-export([call/2, call/3]).
call(Name, Request) ->
- Result = (catch gen_server:call(Name, Request)),
+ call(Name, Request, 5000).
+
+call(Name, Request, Timeout) ->
+ Result = (catch gen_server:call(Name, Request, Timeout)),
case Result of
{'EXIT', {timeout, Details}} ->
{current_stacktrace, Stacktrace} =