Fixed listener registry to eject listeners only if they indeed exceed the limit.
Change-Id: Ic9453b5b1eabc3d9c92af01e6817612e710bfba8
Showing
2 changed files
with
8 additions
and
3 deletions
... | @@ -30,6 +30,8 @@ import static org.slf4j.LoggerFactory.getLogger; | ... | @@ -30,6 +30,8 @@ import static org.slf4j.LoggerFactory.getLogger; |
30 | public class ListenerRegistry<E extends Event, L extends EventListener<E>> | 30 | public class ListenerRegistry<E extends Event, L extends EventListener<E>> |
31 | implements EventSink<E> { | 31 | implements EventSink<E> { |
32 | 32 | ||
33 | + private static final long LIMIT = 1_800; // ms | ||
34 | + | ||
33 | private final Logger log = getLogger(getClass()); | 35 | private final Logger log = getLogger(getClass()); |
34 | 36 | ||
35 | private long lastStart; | 37 | private long lastStart; |
... | @@ -80,10 +82,13 @@ public class ListenerRegistry<E extends Event, L extends EventListener<E>> | ... | @@ -80,10 +82,13 @@ public class ListenerRegistry<E extends Event, L extends EventListener<E>> |
80 | @Override | 82 | @Override |
81 | public void onProcessLimit() { | 83 | public void onProcessLimit() { |
82 | if (lastStart > 0) { | 84 | if (lastStart > 0) { |
85 | + long duration = System.currentTimeMillis() - lastStart; | ||
86 | + if (duration > LIMIT) { | ||
83 | log.error("Listener {} exceeded execution time limit: {} ms; ejected", | 87 | log.error("Listener {} exceeded execution time limit: {} ms; ejected", |
84 | lastListener.getClass().getName(), | 88 | lastListener.getClass().getName(), |
85 | - System.currentTimeMillis() - lastStart); | 89 | + duration); |
86 | removeListener(lastListener); | 90 | removeListener(lastListener); |
91 | + } | ||
87 | lastStart = 0; | 92 | lastStart = 0; |
88 | } | 93 | } |
89 | } | 94 | } | ... | ... |
... | @@ -19,11 +19,11 @@ | ... | @@ -19,11 +19,11 @@ |
19 | <step name="Ping-1" | 19 | <step name="Ping-1" |
20 | exec="onos-mininet sendAndExpect h1 ping -c1 h4 --expect \ 0% packet loss"/> | 20 | exec="onos-mininet sendAndExpect h1 ping -c1 h4 --expect \ 0% packet loss"/> |
21 | <step name="Link-1-Down" requires="Ping-1" | 21 | <step name="Link-1-Down" requires="Ping-1" |
22 | - exec="onos-mininet sendAndExpect link s4 s5 down --expect ."/> | 22 | + exec="onos-mininet sendAndExpect link s4 s7 down --expect ."/> |
23 | <step name="Ping-2" requires="Link-1-Down" | 23 | <step name="Ping-2" requires="Link-1-Down" |
24 | exec="onos-mininet sendAndExpect h1 ping -c1 h4 --expect \ 0% packet loss"/> | 24 | exec="onos-mininet sendAndExpect h1 ping -c1 h4 --expect \ 0% packet loss"/> |
25 | <step name="Link-2-Down" requires="Ping-2" | 25 | <step name="Link-2-Down" requires="Ping-2" |
26 | - exec="onos-mininet sendAndExpect link s4 s7 down --expect ."/> | 26 | + exec="onos-mininet sendAndExpect link s4 s5 down --expect ."/> |
27 | <step name="Ping-3" requires="Link-2-Down" | 27 | <step name="Ping-3" requires="Link-2-Down" |
28 | exec="onos-mininet sendAndExpect h1 ping -c1 h4 --expect 100% packet loss"/> | 28 | exec="onos-mininet sendAndExpect h1 ping -c1 h4 --expect 100% packet loss"/> |
29 | <step name="Link-1-Up" requires="Ping-3" | 29 | <step name="Link-1-Up" requires="Ping-3" | ... | ... |
-
Please register or login to post a comment