Zoltan Martonka has uploaded this change for review. ( 
http://gerrit.cloudera.org:8080/24109


Change subject: Fix TSAN data races in KuduScanner keep-alive callback
......................................................................

Fix TSAN data races in KuduScanner keep-alive callback

The periodic keep-alive timer callback runs on a reactor thread and
was directly accessing proxy_, next_req_, and last_response_ without
synchronization, while the scanner caller thread was concurrently
modifying those fields.

The fix introduces a spinlock-protected pair of mirror fields
(keep_alive_scanner_id_ and keep_alive_proxy_) that the callback
reads instead, kept in sync by OpenTablet(), SendScanRpc(), and
StartKeepAlivePeriodically().

Change-Id: I5b915879f717e6909e2d49b3bfa9360dd428cc89
---
M src/kudu/client/scanner-internal.cc
M src/kudu/client/scanner-internal.h
2 files changed, 43 insertions(+), 14 deletions(-)



  git pull ssh://gerrit.cloudera.org:29418/kudu refs/changes/09/24109/1
--
To view, visit http://gerrit.cloudera.org:8080/24109
To unsubscribe, visit http://gerrit.cloudera.org:8080/settings

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: newchange
Gerrit-Change-Id: I5b915879f717e6909e2d49b3bfa9360dd428cc89
Gerrit-Change-Number: 24109
Gerrit-PatchSet: 1
Gerrit-Owner: Zoltan Martonka <[email protected]>

Reply via email to