call stack info:
It points the code of "reference_linehistory.pop()" in reference_line_provider.cc -> ReferenceLineProvider::Reset().
I checked this class and find there may be a race condition here:
1、In function UpdateReferenceLine(), if reference_linehistory.size() > kMaxHistoryNum, do reference_linehistory.pop(). And this function is called by a thread function.
2、In function Reset(), if !reference_linehistory.empty(), do reference_linehistory.pop(). And Reset() will be called by OnLanePlanning::RunOnce(), which running in main thread.
So what is the truth? many thanks for your reply.
call stack info: It points the code of "reference_linehistory.pop()" in reference_line_provider.cc -> ReferenceLineProvider::Reset(). I checked this class and find there may be a race condition here: 1、In function UpdateReferenceLine(), if reference_linehistory.size() > kMaxHistoryNum, do reference_linehistory.pop(). And this function is called by a thread function. 2、In function Reset(), if !reference_linehistory.empty(), do reference_linehistory.pop(). And Reset() will be called by OnLanePlanning::RunOnce(), which running in main thread. So what is the truth? many thanks for your reply.