This is an automated email from the ASF dual-hosted git repository.
lta pushed a commit to branch reimpl_sync_V2
in repository https://gitbox.apache.org/repos/asf/incubator-iotdb.git
The following commit(s) were added to refs/heads/reimpl_sync_V2 by this push:
new f8bdccb fix a bug
f8bdccb is described below
commit f8bdccb839405ba8c485557b2b5b451cfd61caf2
Author: lta <[email protected]>
AuthorDate: Tue Oct 22 21:05:45 2019 +0800
fix a bug
---
.../iotdb/db/engine/storagegroup/StorageGroupProcessor.java | 8 ++++----
.../org/apache/iotdb/db/sync/receiver/load/FileLoader.java | 11 ++++++-----
.../db/sync/receiver/recover/SyncReceiverLogAnalyzer.java | 8 +++++++-
3 files changed, 17 insertions(+), 10 deletions(-)
diff --git
a/server/src/main/java/org/apache/iotdb/db/engine/storagegroup/StorageGroupProcessor.java
b/server/src/main/java/org/apache/iotdb/db/engine/storagegroup/StorageGroupProcessor.java
index 9ed03df..3e9dda9 100755
---
a/server/src/main/java/org/apache/iotdb/db/engine/storagegroup/StorageGroupProcessor.java
+++
b/server/src/main/java/org/apache/iotdb/db/engine/storagegroup/StorageGroupProcessor.java
@@ -1266,8 +1266,8 @@ public class StorageGroupProcessor {
FileUtils.moveFile(syncedTsFile, targetFile);
} catch (IOException e) {
throw new TsFileProcessorException(String.format(
- "File renaming failed when loading tsfile. Origin: %s, Target: %s",
- syncedTsFile.getAbsolutePath(), targetFile.getAbsolutePath()));
+ "File renaming failed when loading tsfile. Origin: %s, Target: %s,
because %s",
+ syncedTsFile.getAbsolutePath(), targetFile.getAbsolutePath(),
e.getMessage()));
}
}
try {
@@ -1275,9 +1275,9 @@ public class StorageGroupProcessor {
new File(targetFile.getAbsolutePath() +
TsFileResource.RESOURCE_SUFFIX));
} catch (IOException e) {
throw new TsFileProcessorException(String.format(
- "File renaming failed when loading .resource file. Origin: %s,
Target: %s",
+ "File renaming failed when loading .resource file. Origin: %s,
Target: %s, because %s",
new File(syncedTsFile +
TsFileResource.RESOURCE_SUFFIX).getAbsolutePath(),
- new File(targetFile +
TsFileResource.RESOURCE_SUFFIX).getAbsolutePath()));
+ new File(targetFile +
TsFileResource.RESOURCE_SUFFIX).getAbsolutePath(), e.getMessage()));
}
}
diff --git
a/server/src/main/java/org/apache/iotdb/db/sync/receiver/load/FileLoader.java
b/server/src/main/java/org/apache/iotdb/db/sync/receiver/load/FileLoader.java
index 20b2801..bf202cb 100644
---
a/server/src/main/java/org/apache/iotdb/db/sync/receiver/load/FileLoader.java
+++
b/server/src/main/java/org/apache/iotdb/db/sync/receiver/load/FileLoader.java
@@ -44,7 +44,7 @@ public class FileLoader implements IFileLoader {
private static final Logger LOGGER =
LoggerFactory.getLogger(FileLoader.class);
- private static final int WAIT_TIME = 100;
+ public static final int WAIT_TIME = 100;
private String syncFolderPath;
@@ -62,18 +62,19 @@ public class FileLoader implements IFileLoader {
this.senderName = senderName;
this.syncFolderPath = syncFolderPath;
this.loadLog = new LoadLogger(new File(syncFolderPath,
SyncConstant.LOAD_LOG_NAME));
- FileLoaderManager.getInstance().addFileLoader(senderName, this);
- FileLoaderManager.getInstance().addLoadTaskRunner(loadTaskRunner);
}
public static FileLoader createFileLoader(String senderName, String
syncFolderPath)
throws IOException {
- return new FileLoader(senderName, syncFolderPath);
+ FileLoader fileLoader = new FileLoader(senderName, syncFolderPath);
+ FileLoaderManager.getInstance().addFileLoader(senderName, fileLoader);
+
FileLoaderManager.getInstance().addLoadTaskRunner(fileLoader.loadTaskRunner);
+ return fileLoader;
}
public static FileLoader createFileLoader(File syncFolder)
throws IOException {
- return new FileLoader(syncFolder.getName(), syncFolder.getAbsolutePath());
+ return createFileLoader(syncFolder.getName(),
syncFolder.getAbsolutePath());
}
private Runnable loadTaskRunner = () -> {
diff --git
a/server/src/main/java/org/apache/iotdb/db/sync/receiver/recover/SyncReceiverLogAnalyzer.java
b/server/src/main/java/org/apache/iotdb/db/sync/receiver/recover/SyncReceiverLogAnalyzer.java
index 7a85570..af5b504 100644
---
a/server/src/main/java/org/apache/iotdb/db/sync/receiver/recover/SyncReceiverLogAnalyzer.java
+++
b/server/src/main/java/org/apache/iotdb/db/sync/receiver/recover/SyncReceiverLogAnalyzer.java
@@ -72,12 +72,18 @@ public class SyncReceiverLogAnalyzer implements
ISyncReceiverLogAnalyzer {
}
if
(FileLoaderManager.getInstance().containsFileLoader(senderFolder.getName())) {
FileLoaderManager.getInstance().getFileLoader(senderFolder.getName()).endSync();
+ try {
+ Thread.sleep(FileLoader.WAIT_TIME << 1);
+ } catch (InterruptedException e) {
+ LOGGER.error("Thread is interrupted from waiting for ending sync in
recovery.");
+ }
} else {
+ // TODO 有问题!!!
scanLogger(FileLoader.createFileLoader(senderFolder),
new File(senderFolder, SyncConstant.SYNC_LOG_NAME),
new File(senderFolder, SyncConstant.LOAD_LOG_NAME));
}
- return
FileLoaderManager.getInstance().containsFileLoader(senderFolder.getName());
+ return
!FileLoaderManager.getInstance().containsFileLoader(senderFolder.getName());
}
@Override