Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

connection disabled when use com.alibaba.druid.pool.DruidDataSource #32765

Closed
HuLaLaGa opened this issue Sep 2, 2024 · 18 comments · May be fixed by alibaba/druid#6143
Closed

connection disabled when use com.alibaba.druid.pool.DruidDataSource #32765

HuLaLaGa opened this issue Sep 2, 2024 · 18 comments · May be fixed by alibaba/druid#6143

Comments

@HuLaLaGa
Copy link

HuLaLaGa commented Sep 2, 2024

Which version of ShardingSphere did you use?

5.2.1

Which project did you use? ShardingSphere-JDBC or ShardingSphere-Proxy?

ShardingSphere-JDBC

Expected behavior

SQL normally run

Actual behavior

SQL throw Exception(connection disabled) when use com.alibaba.druid.pool.DruidDataSource

Reason analyze (If you can)

  1. DruidConnection will disable itself when sql throw fatal exception(like 'java.sql.SQLSyntaxErrorException: INSERT command denied to user 'test_test'@'localhost' for table 'test'')。

com.alibaba.druid.pool.DruidDataSource#handleFatalError

  1. ShardingSphere don't determine if the connection is closed。

org.apache.shardingsphere.driver.jdbc.core.connection.ConnectionManager#getConnections

  1. Reuse this disabled connection will throw Exception(connection disabled)。

com.alibaba.druid.pool.DruidPooledConnection#checkStateInternal

Steps to reproduce the behavior, such as: SQL to execute, sharding rule configuration, when exception occur etc.

<!-- pom.xml -->
<dependency>
    <groupId>org.apache.shardingsphere</groupId>
    <artifactId>shardingsphere-jdbc-core</artifactId>
    <version>5.2.1</version>
</dependency>
<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>druid</artifactId>
    <version>1.1.23</version>
</dependency>
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-jdbc</artifactId>
    <version>2.3.12.RELEASE</version>
</dependency>
# application.yaml
spring:
  datasource:
    druid:
      driver-class-name: org.apache.shardingsphere.driver.ShardingSphereDriver
      url: jdbc:shardingsphere:classpath:shardingsphere.yaml
# shardingsphere.yaml
databaseName: test_test
mode:
  type: Standalone
  repository:
    type: JDBC
dataSources:
  read:
    url: "jdbc:mysql://localhost:3306/test_test?characterEncoding=utf-8&useSSL=false"
    # GRANT SELECT ON test_test.* TO 'test'@'localhost';
    # GRANT SELECT ON test_test.* TO 'test'@'%';
    # test only have SELECT privilege
    username: test
    password: test
rules:
  - !READWRITE_SPLITTING
    dataSources:
      dev:
        staticStrategy:
          writeDataSourceName: read
          readDataSourceNames:
            - read
    loadBalancers:
      random:
        type: RANDOM
// test.java
final ExecutorService threadPool = Executors.newFixedThreadPool(10);
for (int i = 0; i < 100; i++) {
  threadPool.execute(() -> {
      jdbcTemplate.execute("select ''");
      jdbcTemplate.execute("insert into test_test.the_table(name) values('test')");
  });
}
// Exception
Exception in thread "pool-3-thread-12" org.springframework.jdbc.UncategorizedSQLException: StatementCallback; uncategorized SQLException for SQL [select '']; SQL state [null]; error code [0]; connection disabled; nested exception is java.sql.SQLException: connection disabled
	at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:89)
	at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:81)
	at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:81)
	at org.springframework.jdbc.core.JdbcTemplate.translateException(JdbcTemplate.java:1443)
	at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:388)
	at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:418)
	at com.test.controller.Controller.lambda$init2$1(Controller.java:125)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
	at java.lang.Thread.run(Thread.java:748)
Caused by: java.sql.SQLException: connection disabled
	at com.alibaba.druid.pool.DruidPooledConnection.checkStateInternal(DruidPooledConnection.java:1169)
	at com.alibaba.druid.pool.DruidPooledConnection.checkState(DruidPooledConnection.java:1154)
	at com.alibaba.druid.pool.DruidPooledConnection.createStatement(DruidPooledConnection.java:657)
	at org.apache.shardingsphere.driver.jdbc.core.statement.StatementManager.createStorageResource(StatementManager.java:46)
	at org.apache.shardingsphere.driver.jdbc.core.statement.StatementManager.createStorageResource(StatementManager.java:37)
	at org.apache.shardingsphere.infra.executor.sql.prepare.driver.jdbc.builder.StatementExecutionUnitBuilder.createStatement(StatementExecutionUnitBuilder.java:44)
	at org.apache.shardingsphere.infra.executor.sql.prepare.driver.jdbc.builder.StatementExecutionUnitBuilder.build(StatementExecutionUnitBuilder.java:39)
	at org.apache.shardingsphere.infra.executor.sql.prepare.driver.jdbc.builder.StatementExecutionUnitBuilder.build(StatementExecutionUnitBuilder.java:34)
	at org.apache.shardingsphere.infra.executor.sql.prepare.driver.DriverExecutionPrepareEngine.createExecutionGroup(DriverExecutionPrepareEngine.java:103)
	at org.apache.shardingsphere.infra.executor.sql.prepare.driver.DriverExecutionPrepareEngine.group(DriverExecutionPrepareEngine.java:91)
	at org.apache.shardingsphere.infra.executor.sql.prepare.AbstractExecutionPrepareEngine.prepare(AbstractExecutionPrepareEngine.java:62)
	at org.apache.shardingsphere.driver.jdbc.core.statement.ShardingSphereStatement.createExecutionContext(ShardingSphereStatement.java:527)
	at org.apache.shardingsphere.driver.jdbc.core.statement.ShardingSphereStatement.execute0(ShardingSphereStatement.java:473)
	at org.apache.shardingsphere.driver.jdbc.core.statement.ShardingSphereStatement.execute(ShardingSphereStatement.java:384)
	at com.alibaba.druid.pool.DruidPooledStatement.execute(DruidPooledStatement.java:633)
	at org.springframework.jdbc.core.JdbcTemplate$1ExecuteStatementCallback.doInStatement(JdbcTemplate.java:409)
	at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:376)
	... 5 more
Caused by: java.sql.SQLSyntaxErrorException: INSERT command denied to user 'test_test'@'localhost' for table 'the_table'
	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)
	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
	at com.mysql.cj.jdbc.StatementImpl.executeInternal(StatementImpl.java:762)
	at com.mysql.cj.jdbc.StatementImpl.execute(StatementImpl.java:646)
	at com.alibaba.druid.pool.DruidPooledStatement.execute(DruidPooledStatement.java:633)
	at org.apache.shardingsphere.driver.jdbc.core.statement.ShardingSphereStatement.lambda$execute$13(ShardingSphereStatement.java:384)
	at org.apache.shardingsphere.driver.jdbc.core.statement.ShardingSphereStatement$2.executeSQL(ShardingSphereStatement.java:442)
	at org.apache.shardingsphere.driver.jdbc.core.statement.ShardingSphereStatement$2.executeSQL(ShardingSphereStatement.java:438)
	at org.apache.shardingsphere.infra.executor.sql.execute.engine.driver.jdbc.JDBCExecutorCallback.execute(JDBCExecutorCallback.java:95)
	at org.apache.shardingsphere.infra.executor.sql.execute.engine.driver.jdbc.JDBCExecutorCallback.execute(JDBCExecutorCallback.java:75)
	at org.apache.shardingsphere.infra.executor.kernel.ExecutorEngine.syncExecute(ExecutorEngine.java:135)
	at org.apache.shardingsphere.infra.executor.kernel.ExecutorEngine.parallelExecute(ExecutorEngine.java:131)
	at org.apache.shardingsphere.infra.executor.kernel.ExecutorEngine.execute(ExecutorEngine.java:116)
	at org.apache.shardingsphere.infra.executor.sql.execute.engine.driver.jdbc.JDBCExecutor.execute(JDBCExecutor.java:65)
	at org.apache.shardingsphere.infra.executor.sql.execute.engine.driver.jdbc.JDBCExecutor.execute(JDBCExecutor.java:49)
	at org.apache.shardingsphere.driver.executor.DriverJDBCExecutor.doExecute(DriverJDBCExecutor.java:156)
	at org.apache.shardingsphere.driver.executor.DriverJDBCExecutor.execute(DriverJDBCExecutor.java:145)
	at org.apache.shardingsphere.driver.jdbc.core.statement.ShardingSphereStatement.execute(ShardingSphereStatement.java:450)
	at org.apache.shardingsphere.driver.jdbc.core.statement.ShardingSphereStatement.execute0(ShardingSphereStatement.java:475)
	at org.apache.shardingsphere.driver.jdbc.core.statement.ShardingSphereStatement.execute(ShardingSphereStatement.java:384)
	at com.alibaba.druid.pool.DruidPooledStatement.execute(DruidPooledStatement.java:633)
	at org.springframework.jdbc.core.JdbcTemplate$1ExecuteStatementCallback.doInStatement(JdbcTemplate.java:409)
	at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:376)
	at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:418)
	at com.test.controller.Controller.lambda$init2$1(Controller.java:126)
	... 3 more

The Exception SQL[insert into test_test.the_table(name) values('test')] cause normal SQL[select ''] can't work

Example codes for reproduce this issue (such as a github link).

@comecny
Copy link
Contributor

comecny commented Sep 2, 2024

It seems to be a MySQL permission issue ?

@HuLaLaGa
Copy link
Author

HuLaLaGa commented Sep 4, 2024

It seems to be a MySQL permission issue ?

In this case, The Exception SQL[insert into test_test.test(name) values('test')] cause normal SQL[select ''] can't work
@comecny

@linghengqian
Copy link
Member

  • I introduced how to use Alibaba Druid's StatViewServlet, WebStatFilter, and custom Filter to monitor the logical data source and real data source of ShardingSphere JDBC at [Article Contribution] Welcome to Leave Your Article Link Here #12258 (comment) and https://www.yuque.com/linghengqian/meve2v/zoy35sivtf6nzp90 .
  • In the relevant example, I used some virtual threads to execute the inevitable insert SQL with the H2database database instance managed by Alibaba Druid at a frequency of once per second, and I was completely unable to reproduce your problem. All connections pooled by Druid can continue to be used.
  • I have noticed at least 3 Alibaba Druid bugs, and these bugs have existed for at least 8 years. But these bugs are actually irrelevant to your description.
  1. According to Set the default value of testWhileIdle to false to prevent Error Log alibaba/druid#6128, alibaba/druid should not set the default value of testWhileIdle to true.
  2. According to druid监控 302重定向问题 alibaba/druid#5158, alibaba/druid mistakenly hard-coded /druid/login.html.
  3. According to Configuring DefaultAdvisorAutoProxyCreator when proxying via cglib alibaba/druid#6132, when Spring AOP is configured to use CGLib proxy, alibaba/druid's Spring Boot Starter does not actively create the Spring Bean of DefaultAdvisorAutoProxyCreator.
  • The master branch of shardingsphere contains unit tests for transactions on mysql managed by hikaricp, which cannot be reproduced from hotspot jdk or graalvm native image.
  • @HuLaLaGa I now suspect that there is a bug in the mysql jdbc driver you are using. Or there is a bug in the mysql server. I think it's necessary for you to provide a git containing unit tests, where the database should be initialized via testcontainers-java and junit5 .

@HuLaLaGa
Copy link
Author

https://github.com/HuLaLaGa/shardingsphere-test
This project reproduce 'connection disabled' Exception when use both ShardingSphere and Druid @linghengqian

@terrymanu
Copy link
Member

terrymanu commented Sep 24, 2024

Can not support Druid, the connection pool supported list please see: shardingsphere-infra-data-source-pool-type

@linghengqian
Copy link
Member

  • alibaba/druid has changed in 加个兼容来规避JavaBeanBinder获取属性信息的问题 #5785 alibaba/druid#5796 , which makes the behavior of com.alibaba:druid-spring-boot-starter:1.2.23 actually close to brettwooldridge/HikariCP, although I am sure that due to the deliberate design of apache/hive, you can't actually use alibaba/druid to connect to HiveServer2 using the configuration file in ShardingSphere.
  • I am observing whether it is because org.apache.shardingsphere.infra.datasource.pool.destroyer.DataSourcePoolActiveDetector is not implemented. By the way, the version of com.alibaba:druid-spring-boot-starter you are using in https://github.com/HuLaLaGa/shardingsphere-test is too old. It registers multiple problematic Spring Beans.

@linghengqian
Copy link
Member

linghengqian commented Sep 25, 2024

  • I would say that alibaba/druid is weaker than I thought. The JDBC Driver parsing method of alibaba/druid is hard-coded, which makes it impossible for alibaba/druid to use the testcontainers-java style JDBC URL. Based on this alone, I would never support adding integration tests for alibaba/druid in the master branch of shardingsphere, because this absolutely breaks the best practices defined by testcontainers-java. 🫠
11:28:57.213 [main] ERROR com.alibaba.druid.pool.DruidDataSource - {dataSource-1} init error
java.sql.SQLException: unknown jdbc driver : jdbc:tc:mysql:5.7.34://test-databases-mysql/the_database&TC_INITSCRIPT=init-schema.sql
	at com.alibaba.druid.util.JdbcUtils.getDriverClassName(JdbcUtils.java:545)
	at com.alibaba.druid.pool.DruidDataSource.resolveDriver(DruidDataSource.java:1255)
	at com.alibaba.druid.pool.DruidDataSource.init(DruidDataSource.java:885)
	at com.alibaba.druid.pool.DruidDataSource.getConnection(DruidDataSource.java:1471)
	at com.alibaba.druid.pool.DruidDataSource.getConnection(DruidDataSource.java:1463)
	at com.alibaba.druid.pool.DruidDataSource.getConnection(DruidDataSource.java:83)
	at org.apache.shardingsphere.infra.datasource.pool.CatalogSwitchableDataSource.getConnection(CatalogSwitchableDataSource.java:46)
sdk install java 8.0.422-tem
git clone git@github.com:linghengqian/shardingsphere-test.git
cd ./shardingsphere-test/
sdk use java 8.0.422-tem
./mvnw -T 1C clean test 
IntStream.range(0, 50).forEachOrdered(i -> {
            assertDoesNotThrow(() -> JDBC_TEMPLATE.execute("select ''"));
            assertDoesNotThrow(() -> JDBC_TEMPLATE.execute("insert into the_table(id) values(1)"));
        });
  • The unit tests execute fine.
[INFO] Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 14.55 s -- in com.hulalaga.ShardingSphereTest
[INFO] 
[INFO] Results:
[INFO] 
[INFO] Tests run: 1, Failures: 0, Errors: 0, Skipped: 0
[INFO] 
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  16.956 s
[INFO] Finished at: 2024-09-25T12:06:17+08:00
[INFO] ------------------------------------------------------------------------

@linghengqian
Copy link
Member

  • We can certainly put aside MySQL permissions to narrow the scope of discussion. I deliberately executed the problematic insert SQL INSERT INTO t_order_item_does_not_exist (test_id_does_not_exist) VALUES (2024) in linghengqian-scratches/shardingsphere-test@aa2365a. The t_order_item_does_not_exist table does not exist at all.
  • The unit tests still work fine.
[INFO] Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 13.55 s -- in com.hulalaga.ShardingSphereTest
[INFO] 
[INFO] Results:
[INFO] 
[INFO] Tests run: 1, Failures: 0, Errors: 0, Skipped: 0
[INFO] 
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  16.236 s (Wall Clock)
[INFO] Finished at: 2024-09-25T12:25:36+08:00
[INFO] ------------------------------------------------------------------------

@HuLaLaGa
Copy link
Author

  • We can certainly put aside MySQL permissions to narrow the scope of discussion. I deliberately executed the problematic insert SQL INSERT INTO t_order_item_does_not_exist (test_id_does_not_exist) VALUES (2024) in linghengqian/shardingsphere-test@aa2365a. The t_order_item_does_not_exist table does not exist at all.
  • The unit tests still work fine.
[INFO] Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 13.55 s -- in com.hulalaga.ShardingSphereTest
[INFO] 
[INFO] Results:
[INFO] 
[INFO] Tests run: 1, Failures: 0, Errors: 0, Skipped: 0
[INFO] 
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  16.236 s (Wall Clock)
[INFO] Finished at: 2024-09-25T12:25:36+08:00
[INFO] ------------------------------------------------------------------------

TableNotExist Exception is not regarded as fatal error by Druid,instead of AccessDenied Exception is regarded as fatal error。And only fatal error can trigger 'connection disabled' Exception。

@HuLaLaGa
Copy link
Author

HuLaLaGa commented Sep 25, 2024

  • I would say that alibaba/druid is weaker than I thought. The JDBC Driver parsing method of alibaba/druid is hard-coded, which makes it impossible for alibaba/druid to use the testcontainers-java style JDBC URL. Based on this alone, I would never support adding integration tests for alibaba/druid in the master branch of shardingsphere, because this absolutely breaks the best practices defined by testcontainers-java. 🫠
11:28:57.213 [main] ERROR com.alibaba.druid.pool.DruidDataSource - {dataSource-1} init error
java.sql.SQLException: unknown jdbc driver : jdbc:tc:mysql:5.7.34://test-databases-mysql/the_database&TC_INITSCRIPT=init-schema.sql
	at com.alibaba.druid.util.JdbcUtils.getDriverClassName(JdbcUtils.java:545)
	at com.alibaba.druid.pool.DruidDataSource.resolveDriver(DruidDataSource.java:1255)
	at com.alibaba.druid.pool.DruidDataSource.init(DruidDataSource.java:885)
	at com.alibaba.druid.pool.DruidDataSource.getConnection(DruidDataSource.java:1471)
	at com.alibaba.druid.pool.DruidDataSource.getConnection(DruidDataSource.java:1463)
	at com.alibaba.druid.pool.DruidDataSource.getConnection(DruidDataSource.java:83)
	at org.apache.shardingsphere.infra.datasource.pool.CatalogSwitchableDataSource.getConnection(CatalogSwitchableDataSource.java:46)
sdk install java 8.0.422-tem
git clone git@github.com:linghengqian/shardingsphere-test.git
cd ./shardingsphere-test/
sdk use java 8.0.422-tem
./mvnw -T 1C clean test 
IntStream.range(0, 50).forEachOrdered(i -> {
            assertDoesNotThrow(() -> JDBC_TEMPLATE.execute("select ''"));
            assertDoesNotThrow(() -> JDBC_TEMPLATE.execute("insert into the_table(id) values(1)"));
        });
  • The unit tests execute fine.
[INFO] Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 14.55 s -- in com.hulalaga.ShardingSphereTest
[INFO] 
[INFO] Results:
[INFO] 
[INFO] Tests run: 1, Failures: 0, Errors: 0, Skipped: 0
[INFO] 
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  16.956 s
[INFO] Finished at: 2024-09-25T12:06:17+08:00
[INFO] ------------------------------------------------------------------------
  • Reproduce 'connection disabled' Exception need these steps as listed below
  1. Use DruidConnection to execute 'Fatal Exception' SQL,such as AccessDenied...
  2. Reuse this DruidConnection to execute any SQL, will produce 'connection disabled' Exception

'Fatal Exception' defined in Class com.alibaba.druid.pool.vendor.MySqlExceptionSorter

  • For the last, MySQLContainer will create root user, and use same password like test user。And I run init-schema.sql use root user, not test user。

  • @linghengqian I updated ShardingSphere version to 5.50,and made changes follow your code at HuLaLaGa/shardingsphere-test

@linghengqian
Copy link
Member

  • I have reproduced the current issue at linghengqian-scratches/shardingsphere-test@240dfe7 . I started mysql server directly with root account and empty password, and created readonly user dynamically. I also added unit test without shardingsphere to prove that it was a bug of shardingsphere.
  • After implementing the SPI of org.apache.shardingsphere.infra.datasource.pool.destroyer.DataSourcePoolActiveDetector, I found a very strange thing. According to debugging, org.apache.shardingsphere.infra.datasource.pool.destroyer.DataSourcePoolDestroyer has never been called.🤯
  • image
  • Let me think what happened, it means that org.apache.shardingsphere:shardingsphere-infra-data-source-pool-core is not playing its role at all. Of course I also assume that some friends have prepared PR. I have no idea about this phenomenon.

@linghengqian
Copy link
Member

@linghengqian
Copy link
Member

linghengqian commented Sep 25, 2024

if ((!conn.closed) && !conn.disable) {
                conn.disable(error);
                requireDiscard = true;
}

@linghengqian
Copy link
Member

linghengqian commented Sep 25, 2024

sdk install java 8.0.422-tem
sdk install java 22.0.2-graalce
git clone git@github.com:linghengqian/druid.git -b re-mysql
cd ./druid/
sdk use java 22.0.2-graalce
./mvnw clean install -T1C -DskipTests
cd ../

git clone git@github.com:linghengqian/shardingsphere-test.git -b fail-test
cd ./shardingsphere-test/
sdk use java 8.0.422-tem
./mvnw -T 1C clean test
  • Have fun with closeConnOnFatalError and don't let the 7-year wait be a waste of time.
[INFO] Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 14.44 s -- in com.hulalaga.ShardingSphereTest
[INFO] 
[INFO] Results:
[INFO] 
[INFO] Tests run: 1, Failures: 0, Errors: 0, Skipped: 0
[INFO] 
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  18.278 s (Wall Clock)
[INFO] Finished at: 2024-09-26T00:20:09+08:00
[INFO] ------------------------------------------------------------------------

@linghengqian linghengqian self-assigned this Sep 25, 2024
@linghengqian
Copy link
Member

  • Once alibaba druid approves the PR and releases a new version, I will update the shardingsphere documentation.

@linghengqian
Copy link
Member

Since no druid committer has reviewed the corresponding PR for more than two weeks, I believe this is a bug that is intentionally buried in druid. I will not update the shardingsphere document for the current issue because it will take longer to wait.

@linghengqian linghengqian removed their assignment Oct 16, 2024
@linghengqian linghengqian added type: question and removed type: dependencies Pull requests that update a dependency file labels Oct 16, 2024
Copy link

There hasn't been any activity on this issue recently, and in order to prioritize active issues, it will be marked as stale.

@github-actions github-actions bot added the stale label Oct 23, 2024
@linghengqian
Copy link
Member

This is actually 6 known issues on the druid side, no point trying to track it on the shardingsphere side.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging a pull request may close this issue.

4 participants