This is an automated email from the ASF dual-hosted git repository. cambyzju pushed a commit to branch branch-2.0 in repository https://gitbox.apache.org/repos/asf/doris.git
The following commit(s) were added to refs/heads/branch-2.0 by this push: new bef4651fb46 branch-2.0: [fix](mem leak) fe non_heap mem leak while use jdbc catalog #45806 (#47626) bef4651fb46 is described below commit bef4651fb465d945ba93babdef7d1db244c58cb0 Author: lw112 <131352377+felixw...@users.noreply.github.com> AuthorDate: Mon Feb 10 19:11:47 2025 +0800 branch-2.0: [fix](mem leak) fe non_heap mem leak while use jdbc catalog #45806 (#47626) --- .../org/apache/doris/datasource/jdbc/client/JdbcClient.java | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/fe/fe-core/src/main/java/org/apache/doris/datasource/jdbc/client/JdbcClient.java b/fe/fe-core/src/main/java/org/apache/doris/datasource/jdbc/client/JdbcClient.java index 455c9bbc4eb..aaae8993fcd 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/datasource/jdbc/client/JdbcClient.java +++ b/fe/fe-core/src/main/java/org/apache/doris/datasource/jdbc/client/JdbcClient.java @@ -53,6 +53,8 @@ public abstract class JdbcClient { private static final int HTTP_TIMEOUT_MS = 10000; protected static final int JDBC_DATETIME_SCALE = 6; + private static final Map<URL, ClassLoader> classLoaderMap = new ConcurrentHashMap<>(); + private String catalog; protected String dbType; protected String jdbcUser; @@ -145,11 +147,16 @@ public abstract class JdbcClient { } } - private void initializeClassLoader(JdbcClientConfig config) { + private synchronized void initializeClassLoader(JdbcClientConfig config) { try { URL[] urls = {new URL(JdbcResource.getFullDriverUrl(config.getDriverUrl()))}; - ClassLoader parent = getClass().getClassLoader(); - this.classLoader = URLClassLoader.newInstance(urls, parent); + if (classLoaderMap.containsKey(urls[0])) { + this.classLoader = classLoaderMap.get(urls[0]); + } else { + ClassLoader parent = getClass().getClassLoader(); + this.classLoader = URLClassLoader.newInstance(urls, parent); + classLoaderMap.put(urls[0], this.classLoader); + } } catch (MalformedURLException e) { throw new RuntimeException("Error loading JDBC driver.", e); } --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@doris.apache.org For additional commands, e-mail: commits-h...@doris.apache.org