Closed donaldsharp closed 2 months ago
First one:
WARNING: ThreadSanitizer: data race (pid=84571)
Atomic read of size 4 at 0x7b200000bd18 by thread T1:
#0 seqlock_timedwait lib/seqlock.c:204 (libfrr.so.0+0x515d55)
#1 rcu_main lib/frrcu.c:437 (libfrr.so.0+0x349397)
Previous write of size 8 at 0x7b200000bd18 by main thread:
[failed to restore the stack]
I have no idea what to do here. I'm willing to bet that the access by the main thread is in fact the initialization :disappointed:
Second one & third one seem to be identical:
WARNING: ThreadSanitizer: data race (pid=84571)
Write of size 8 at 0x7b1800000020 by thread T1:
#0 free ../../../../src/libsanitizer/tsan/tsan_interceptors_posix.cpp:706 (libtsan.so.2+0x4a3fe)
#1 qfree lib/memory.c:130 (libfrr.so.0+0x3f5b99)
#2 rcu_do lib/frrcu.c:378 (libfrr.so.0+0x348eff)
#3 rcu_main lib/frrcu.c:448 (libfrr.so.0+0x349581)
Previous atomic write of size 8 at 0x7b1800000020 by main thread:
#0 atomlist_add_tail lib/atomlist.c:76 (libfrr.so.0+0x29caf1)
#1 rcu_heads_add_tail lib/frrcu.c:49 (libfrr.so.0+0x347435)
#2 rcu_bump lib/frrcu.c:255 (libfrr.so.0+0x348233)
#3 rcu_bump_maybe lib/frrcu.c:295 (libfrr.so.0+0x348383)
#4 rcu_read_unlock lib/frrcu.c:320 (libfrr.so.0+0x348795)
#5 fd_poll lib/event.c:894 (libfrr.so.0+0x58d1c3)
#6 event_fetch lib/event.c:1855 (libfrr.so.0+0x59759a)
#7 frr_run lib/libfrr.c:1216 (libfrr.so.0+0x3b36be)
#8 main bgpd/bgp_main.c:551 (bgpd+0x49baa2)
Er… the data structure is being freed and that's detected as a race? I'm randomly guessing but maybe it fails to understand that those bytes are no longer referenced from multiple threads at that point?
Description
Version
How to reproduce
I am running configure with
--enable-thread-sanitizer`` and
--enable-undefined-sanitizer`Expected behavior
FRR should not trigger any issues
Actual behavior
FRR triggers issues
Additional context
No response
Checklist