This is an automated email from the ASF dual-hosted git repository. morningman pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/doris.git
The following commit(s) were added to refs/heads/master by this push: new 815ea35578 [fix](multi-catalog) should load datasource before loading cluster (#10330) 815ea35578 is described below commit 815ea35578601e9b6dcde61b39349972f668cdfb Author: Ashin Gau <ashin...@users.noreply.github.com> AuthorDate: Thu Jun 23 10:59:12 2022 +0800 [fix](multi-catalog) should load datasource before loading cluster (#10330) A temp DataSourceMgr is created when catalog intializes, and will be updated in the loadCluster process. However, the loadDatasource process will create a new DataSourceMgr with no cluster updated, and write such DatasourceMgr to image. Finally, when the doris starts to recover, no cluster is available. --- .../main/java/org/apache/doris/catalog/Catalog.java | 19 +++++++------------ .../apache/doris/persist/meta/PersistMetaModules.java | 10 +++++----- 2 files changed, 12 insertions(+), 17 deletions(-) diff --git a/fe/fe-core/src/main/java/org/apache/doris/catalog/Catalog.java b/fe/fe-core/src/main/java/org/apache/doris/catalog/Catalog.java index 8f9660760f..4abd66d200 100755 --- a/fe/fe-core/src/main/java/org/apache/doris/catalog/Catalog.java +++ b/fe/fe-core/src/main/java/org/apache/doris/catalog/Catalog.java @@ -1878,15 +1878,13 @@ public class Catalog { * Load datasource through file. **/ public long loadDatasource(DataInputStream in, long checksum) throws IOException { - if (Config.enable_multi_catalog) { - DataSourceMgr mgr = DataSourceMgr.read(in); - // When enable the multi catalog in the first time, the mgr will be a null value. - // So ignore it to use default datasource manager. - if (mgr != null) { - this.dataSourceMgr = mgr; - } - LOG.info("finished replay datasource from image"); + DataSourceMgr mgr = DataSourceMgr.read(in); + // When enable the multi catalog in the first time, the mgr will be a null value. + // So ignore it to use default datasource manager. + if (mgr != null) { + this.dataSourceMgr = mgr; } + LOG.info("finished replay datasource from image"); return checksum; } @@ -2159,10 +2157,7 @@ public class Catalog { * Save datasource image. */ public long saveDatasource(CountingDataOutputStream out, long checksum) throws IOException { - // Do not write datasource image when enable multi catalog is false. - if (Config.enable_multi_catalog) { - Catalog.getCurrentCatalog().getDataSourceMgr().write(out); - } + Catalog.getCurrentCatalog().getDataSourceMgr().write(out); return checksum; } diff --git a/fe/fe-core/src/main/java/org/apache/doris/persist/meta/PersistMetaModules.java b/fe/fe-core/src/main/java/org/apache/doris/persist/meta/PersistMetaModules.java index 920583bab7..74c56c4d69 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/persist/meta/PersistMetaModules.java +++ b/fe/fe-core/src/main/java/org/apache/doris/persist/meta/PersistMetaModules.java @@ -34,11 +34,11 @@ public class PersistMetaModules { // The write and read of meta modules should be in same order. public static final List<MetaPersistMethod> MODULES_IN_ORDER; - public static final ImmutableList<String> MODULE_NAMES = ImmutableList.copyOf( - new String[] {"masterInfo", "frontends", "backends", "db", "loadJob", "alterJob", "recycleBin", - "globalVariable", "cluster", "broker", "resources", "exportJob", "syncJob", "backupHandler", - "paloAuth", "transactionState", "colocateTableIndex", "routineLoadJobs", "loadJobV2", "smallFiles", - "plugins", "deleteHandler", "sqlBlockRule", "policy", "datasource"}); + public static final ImmutableList<String> MODULE_NAMES = ImmutableList.of( + "masterInfo", "frontends", "backends", "datasource", "db", "loadJob", "alterJob", "recycleBin", + "globalVariable", "cluster", "broker", "resources", "exportJob", "syncJob", "backupHandler", + "paloAuth", "transactionState", "colocateTableIndex", "routineLoadJobs", "loadJobV2", "smallFiles", + "plugins", "deleteHandler", "sqlBlockRule", "policy"); static { MODULES_MAP = Maps.newHashMap(); --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@doris.apache.org For additional commands, e-mail: commits-h...@doris.apache.org