소스 검색

Merge pull request #24235 from markdroth/xds_tsan_fix

Fix use-after-free bug
Mark D. Roth 5 년 전
부모
커밋
b102b8817c
1개의 변경된 파일1개의 추가작업 그리고 1개의 파일을 삭제
  1. 1 1
      src/core/ext/xds/xds_client.cc

+ 1 - 1
src/core/ext/xds/xds_client.cc

@@ -172,6 +172,7 @@ class XdsClient::ChannelState::AdsCallState
         MutexLock lock(&self->ads_calld_->xds_client()->mu_);
         MutexLock lock(&self->ads_calld_->xds_client()->mu_);
         self->OnTimerLocked(GRPC_ERROR_REF(error));
         self->OnTimerLocked(GRPC_ERROR_REF(error));
       }
       }
+      self->ads_calld_.reset();
       self->Unref(DEBUG_LOCATION, "timer");
       self->Unref(DEBUG_LOCATION, "timer");
     }
     }
 
 
@@ -213,7 +214,6 @@ class XdsClient::ChannelState::AdsCallState
         }
         }
         GRPC_ERROR_UNREF(watcher_error);
         GRPC_ERROR_UNREF(watcher_error);
       }
       }
-      ads_calld_.reset();
       GRPC_ERROR_UNREF(error);
       GRPC_ERROR_UNREF(error);
     }
     }