qingleng01 commented on issue #39084: URL: https://github.com/apache/shardingsphere/issues/39084#issuecomment-5090086161
[Thank](url) you very much for your detailed analysis and suggestions. We have collected as much information as we can for this incident. Please see below. Environment - ShardingSphere-JDBC: 5.5.2 - Mode: Standalone - JDK: 21 - Spring Boot: 3.3.5 - MySQL Server: 8.0.31-baidu-3.2.3.1 - MySQL Connector/J: 8.0.33 - HikariCP: 5.1.0 The actual JDBC driver used by our application is com.mysql:mysql-connector-j:8.0.33. JDBC URL (redacted) jdbc:mysql://<host>:<port>/risk_agent?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8 Maven dependencies The complete Maven dependency tree is attached. [dependency-tree.txt](https://github.com/user-attachments/files/30401675/dependency-tree.txt) The relevant dependencies are: org.apache.shardingsphere:shardingsphere-jdbc:5.5.2 com.mysql:mysql-connector-j:8.0.33 com.zaxxer:HikariCP:5.1.0 Exception stack trace **We have attached the preserved exception stack trace from the incident. Unfortunately, the original application logs are no longer available because the affected production instance was later migrated to another machine. Therefore, we can only provide the exception information that was preserved at that time.** [exception.md](https://github.com/user-attachments/files/30409038/exception.md) During this incident we observed the same TableNotFoundException on multiple SINGLE tables, for example: risk_feed_data risk_feed_result_record The failures occurred during SQL binding before the SQL was sent to MySQL. Both exceptions originated from: org.apache.shardingsphere.infra.binder.engine.segment.dml.from.type.SimpleTableSegmentBinder.checkTableExists(SimpleTableSegmentBinder.java:178) One failure occurred while preparing an INSERT statement, and another occurred while preparing a SELECT statement. Physical tables The physical tables definitely existed in MySQL during the incident. For example, we have attached the DDL of risk_feed_result_record.[ddl.sql](https://github.com/user-attachments/files/30408938/ddl.sql) During the failure, SHOW TABLES also confirmed that both risk_feed_data and risk_feed_result_record existed in the database, together with many other SINGLE tables. Startup logs Unfortunately, we are unable to provide the startup logs for the affected instance. The incident occurred on a production instance that was later migrated to another machine, and the original startup logs are no longer available. Connection#getCatalog(), Connection#getSchema(), and DatabaseMetaData#getTables() Unfortunately, we cannot provide these results for this incident. At the time of the failure, we did not have diagnostic code to capture Connection#getCatalog(), Connection#getSchema(), or DatabaseMetaData#getTables() before restarting the affected instance. If this issue occurs again, we will collect these JDBC metadata results before restarting the application and update this issue. Table existence before startup The affected tables already existed before the application was started. After restarting the affected application instance, without any database changes, configuration changes, or table creation operations, the same application immediately worked correctly. This suggests that the physical tables themselves were not missing. If we encounter this issue again, we will collect the JDBC metadata information you requested before restarting the application and update this issue accordingly. -- 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. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
