diff options
| author | Donald Sharp <sharpd@cumulusnetworks.com> | 2017-05-20 08:22:23 -0400 |
|---|---|---|
| committer | Donald Sharp <sharpd@cumulusnetworks.com> | 2017-05-20 08:22:23 -0400 |
| commit | a24dae86e1a03e2809aaaf4c7721e3c3289fc6da (patch) | |
| tree | adf8d4c42234168ab9cb446b8e9f6f2f932f3507 /lib/command.c | |
| parent | 69b174d4ec7d347054761d4ddcddba096c9c4ece (diff) | |
bgpd: Fix crash when going down
When bgp is sent a SIGINT signal with vrf's configured
bgp proceeds to crash on the way down. This is because
the bm->bgp list was deleted( but the pointer was kept around)
and then later in the going down process vrf_terminate is called
which attempts to find any associated processes. Since memory
has been freed and subsuquently used for something else
we get a corrupt bgp pointer and bgp crashes.
Here is the trace:
(gdb) bt
at ../nptl/sysdeps/unix/sysv/linux/raise.c:56
at sigevent.c:255
at thread.c:1315
(gdb)
Multiple protocols besides bgp and zebra running are needed to make
this happen as well. So a weird timing related issue?
Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
Diffstat (limited to 'lib/command.c')
0 files changed, 0 insertions, 0 deletions
