It's a conflict between the memset to the whole ThreadIdentity in NewThreadIdentity() and the write to the Waiter's futex_ member. The Waiter is a member ofThreadIdentity.
Actually, the ThreadIdentity was just reused from the freelist or allocated from scratch. It's more likely that this race happens when we reuse an instance from the freelist, but the instance in freelist somehow is still active.
Hi, we are seeing a data race in our test https://github.com/grpc/grpc/issues/17175. And it seems an issue in absl.
Below is the tsan log.
It's a conflict between the memset to the whole
ThreadIdentity
inNewThreadIdentity()
and the write to theWaiter
'sfutex_
member. TheWaiter
is a member ofThreadIdentity
.Actually, the
ThreadIdentity
was just reused from the freelist or allocated from scratch. It's more likely that this race happens when we reuse an instance from the freelist, but the instance in freelist somehow is still active.Any idea? Thanks!