You are viewing a plain text version of this content. The canonical link for it is here.
Posted to reviews@iotdb.apache.org by GitBox <gi...@apache.org> on 2021/02/06 03:23:23 UTC

[GitHub] [iotdb] qiaojialin commented on a change in pull request #2623: [IOTDB-1147] Fix the concurrent bug in FlushManager cause NoSuchElementException e…

qiaojialin commented on a change in pull request #2623:
URL: https://github.com/apache/iotdb/pull/2623#discussion_r571349059



##########
File path: server/src/main/java/org/apache/iotdb/db/engine/flush/FlushManager.java
##########
@@ -136,10 +136,8 @@ public void registerTsFileProcessor(TsFileProcessor tsFileProcessor) {
       if (LOGGER.isDebugEnabled()) {
         if (tsFileProcessor.isManagedByFlushManager()) {
           LOGGER.debug(
-              "{} is already in the flushPool, the first one: {}, the given processor flushMemtable number = {}",
+              "{} is already in the flushPool, the given processor flushMemtable number = {}",
               tsFileProcessor.getTsFileResource().getTsFile().getAbsolutePath(),
-              tsFileProcessorQueue.isEmpty() ? "empty now"
-                  : tsFileProcessorQueue.getFirst().getStorageGroupName(),
               tsFileProcessor.getFlushingMemTableSize());

Review comment:
       Thanks for bringing this up. Relook this process may have other problems...
   
   Current thread setManagedByFlushManager(true).
   FlushThread flush a memtable and setManagedByFlushManager(false)
   Current thread check tsfileProcessor.isManagedByFlushManager() return false
   
   So, it's better to put all logs before submit(FlushThread)   line 126.




----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org