diff options
| author | Marcel Röthke <marcel.roethke@haw-hamburg.de> | 2018-07-18 15:41:34 +0200 |
|---|---|---|
| committer | Marcel Röthke <marcel.roethke@haw-hamburg.de> | 2018-08-22 16:50:04 +0200 |
| commit | 4ce826764487b07c2bc3f2bf0f1986001afd93c0 (patch) | |
| tree | 228ca3852b90edafd0961931437fe4e4460a05d5 /lib/command_py.c | |
| parent | 1f063a699b8979d1808673341c5365fed01e9b4a (diff) | |
bgpd: fix deadlock in rpki code
In some situations rtrlib does not release the locks for its internal
data structures before calling a callback. This can lead to deadlocks
when a lot of routes must be revalidated because the sync socket buffer
will fill up and block the rtrlib thread. The bgpd main thread then
waits for rtrlibs internal locks to be released indefinitely.
This is fixed by using nonblocking sockets instead of blocking ones and
setting a flag to revalidate everything, if it would block.
Signed-off-by: Marcel Röthke <marcel.roethke@haw-hamburg.de>
Diffstat (limited to 'lib/command_py.c')
0 files changed, 0 insertions, 0 deletions
