Houliang Qi created IOTDB-1147:
----------------------------------

             Summary: Concurrent bug error in FlushManager may cause 
NoSuchElementException error
                 Key: IOTDB-1147
                 URL: https://issues.apache.org/jira/browse/IOTDB-1147
             Project: Apache IoTDB
          Issue Type: Bug
          Components: Core/Engine
            Reporter: Houliang Qi
             Fix For: 0.12.0
         Attachments: image-2021-02-04-10-57-43-980.png, 
image-2021-02-04-10-57-53-288.png

When we flush one tsfile, we put the TsFileProcessor to the FlushManager, and 
use another thread pool to do the flush task of the memtables in this 
TsFileProcessor.

 

Howerver, the following codes is not thread safe, because when the first code 

_tsFileProcessorQueue.isEmpty()_ is called, it may be return false, but 
instantly it maybe become empty due to consumed by the flush thread pool, so 
when called 

t_sFileProcessorQueue.getFirst().getStorageGroupName()_  it may cause  
NoSuchElementException error.

!image-2021-02-04-10-52-19-911.png!

The error are as follows:

 

!image-2021-02-04-10-56-04-613.png!



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to