amoro icon indicating copy to clipboard operation
amoro copied to clipboard

[Bug]: Table `table_runtime` write failed.

Open zhongqishang opened this issue 1 year ago • 0 comments

What happened?

Table table_runtime write failed.

Affects Versions

0.6.1

What table formats are you seeing the problem on?

Iceberg

What engines are you seeing the problem on?

AMS

How to reproduce

  • Drop table
  • Create table with same name
  • Restart AMS

Relevant log output

2024-07-23 18:19:15,252 ERROR [table-explorer-executor-2] [com.netease.arctic.server.table.DefaultTableService] [] - TableExplorer sync table TableIdentity{database=ods_iceberg_manage_industry_db, tableName=xxx} error
com.netease.arctic.server.exception.PersistenceException: org.apache.ibatis.exceptions.PersistenceException: 
### Error updating database.  Cause: java.sql.SQLIntegrityConstraintViolationException: Duplicate entry 'iceberg-ods_iceberg_manage_industry_db-comp_product_industry_sta' for key 'table_runtime.table_index'
### The error may exist in com/netease/arctic/server/persistence/mapper/TableMetaMapper.java (best guess)
### The error may involve com.netease.arctic.server.persistence.mapper.TableMetaMapper.insertTableRuntime-Inline
### The error occurred while setting parameters
### SQL: INSERT INTO table_runtime (table_id, catalog_name, db_name, table_name, current_snapshot_id, current_change_snapshotId, last_optimized_snapshotId, last_optimized_change_snapshotId, last_major_optimizing_time, last_minor_optimizing_time, last_full_optimizing_time, optimizing_status, optimizing_status_start_time, optimizing_process_id, optimizer_group, table_config, pending_input) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
### Cause: java.sql.SQLIntegrityConstraintViolationException: Duplicate entry 'iceberg-ods_iceberg_manage_industry_db-comp_product_industry_sta' for key 'table_runtime.table_index'
	at com.netease.arctic.server.exception.ArcticRuntimeException.wrap(ArcticRuntimeException.java:122) ~[amoro-ams-server-0.6.1-SNAPSHOT.jar:?]
	at com.netease.arctic.server.persistence.PersistentBase.doAs(PersistentBase.java:52) ~[amoro-ams-server-0.6.1-SNAPSHOT.jar:?]
	at com.netease.arctic.server.table.TableRuntime.persistTableRuntime(TableRuntime.java:319) ~[amoro-ams-server-0.6.1-SNAPSHOT.jar:?]
	at com.netease.arctic.server.table.TableRuntime.<init>(TableRuntime.java:104) ~[amoro-ams-server-0.6.1-SNAPSHOT.jar:?]
	at com.netease.arctic.server.table.DefaultTableService.handleTableRuntimeAdded(DefaultTableService.java:600) ~[amoro-ams-server-0.6.1-SNAPSHOT.jar:?]
	at com.netease.arctic.server.table.DefaultTableService.lambda$syncTable$23(DefaultTableService.java:586) ~[amoro-ams-server-0.6.1-SNAPSHOT.jar:?]
	at com.netease.arctic.server.persistence.PersistentBase.doAsTransaction(PersistentBase.java:61) ~[amoro-ams-server-0.6.1-SNAPSHOT.jar:?]
	at com.netease.arctic.server.table.DefaultTableService.syncTable(DefaultTableService.java:580) ~[amoro-ams-server-0.6.1-SNAPSHOT.jar:?]
	at com.netease.arctic.server.table.DefaultTableService.lambda$null$18(DefaultTableService.java:473) ~[amoro-ams-server-0.6.1-SNAPSHOT.jar:?]
	at java.util.concurrent.CompletableFuture$AsyncRun.run(CompletableFuture.java:1640) [?:1.8.0_402]
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [?:1.8.0_402]
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [?:1.8.0_402]
	at java.lang.Thread.run(Thread.java:750) [?:1.8.0_402]
Caused by: org.apache.ibatis.exceptions.PersistenceException: 
### Error updating database.  Cause: java.sql.SQLIntegrityConstraintViolationException: Duplicate entry 'iceberg-ods_iceberg_manage_industry_db-comp_product_industry_sta' for key 'table_runtime.table_index'
### The error may exist in com/netease/arctic/server/persistence/mapper/TableMetaMapper.java (best guess)
### The error may involve com.netease.arctic.server.persistence.mapper.TableMetaMapper.insertTableRuntime-Inline
### The error occurred while setting parameters
### SQL: INSERT INTO table_runtime (table_id, catalog_name, db_name, table_name, current_snapshot_id, current_change_snapshotId, last_optimized_snapshotId, last_optimized_change_snapshotId, last_major_optimizing_time, last_minor_optimizing_time, last_full_optimizing_time, optimizing_status, optimizing_status_start_time, optimizing_process_id, optimizer_group, table_config, pending_input) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
### Cause: java.sql.SQLIntegrityConstraintViolationException: Duplicate entry 'iceberg-ods_iceberg_manage_industry_db-comp_product_industry_sta' for key 'table_runtime.table_index'
	at org.apache.ibatis.exceptions.ExceptionFactory.wrapException(ExceptionFactory.java:30) ~[mybatis-3.5.6.jar:3.5.6]
	at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:199) ~[mybatis-3.5.6.jar:3.5.6]
	at org.apache.ibatis.session.defaults.DefaultSqlSession.insert(DefaultSqlSession.java:184) ~[mybatis-3.5.6.jar:3.5.6]
	at org.apache.ibatis.binding.MapperMethod.execute(MapperMethod.java:62) ~[mybatis-3.5.6.jar:3.5.6]
	at org.apache.ibatis.binding.MapperProxy$PlainMethodInvoker.invoke(MapperProxy.java:152) ~[mybatis-3.5.6.jar:3.5.6]
	at org.apache.ibatis.binding.MapperProxy.invoke(MapperProxy.java:85) ~[mybatis-3.5.6.jar:3.5.6]
	at com.sun.proxy.$Proxy40.insertTableRuntime(Unknown Source) ~[?:?]
	at com.netease.arctic.server.table.TableRuntime.lambda$persistTableRuntime$14(TableRuntime.java:319) ~[amoro-ams-server-0.6.1-SNAPSHOT.jar:?]
	at com.netease.arctic.server.persistence.PersistentBase.doAs(PersistentBase.java:48) ~[amoro-ams-server-0.6.1-SNAPSHOT.jar:?]
	... 11 more
Caused by: java.sql.SQLIntegrityConstraintViolationException: Duplicate entry 'iceberg-ods_iceberg_manage_industry_db-comp_product_industry_sta' for key 'table_runtime.table_index'
	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:117) ~[mysql-connector-java-8.0.30.jar:8.0.30]
	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122) ~[mysql-connector-java-8.0.30.jar:8.0.30]
	at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:916) ~[mysql-connector-java-8.0.30.jar:8.0.30]
	at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:354) ~[mysql-connector-java-8.0.30.jar:8.0.30]
	at org.apache.commons.dbcp2.DelegatingPreparedStatement.execute(DelegatingPreparedStatement.java:94) ~[commons-dbcp2-2.9.0.jar:2.9.0]
	at org.apache.commons.dbcp2.DelegatingPreparedStatement.execute(DelegatingPreparedStatement.java:94) ~[commons-dbcp2-2.9.0.jar:2.9.0]
	at sun.reflect.GeneratedMethodAccessor65.invoke(Unknown Source) ~[?:?]
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_402]
	at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_402]
	at org.apache.ibatis.logging.jdbc.PreparedStatementLogger.invoke(PreparedStatementLogger.java:59) ~[mybatis-3.5.6.jar:3.5.6]
	at com.sun.proxy.$Proxy35.execute(Unknown Source) ~[?:?]
	at org.apache.ibatis.executor.statement.PreparedStatementHandler.update(PreparedStatementHandler.java:47) ~[mybatis-3.5.6.jar:3.5.6]
	at org.apache.ibatis.executor.statement.RoutingStatementHandler.update(RoutingStatementHandler.java:74) ~[mybatis-3.5.6.jar:3.5.6]
	at org.apache.ibatis.executor.SimpleExecutor.doUpdate(SimpleExecutor.java:50) ~[mybatis-3.5.6.jar:3.5.6]
	at org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:117) ~[mybatis-3.5.6.jar:3.5.6]
	at org.apache.ibatis.executor.CachingExecutor.update(CachingExecutor.java:76) ~[mybatis-3.5.6.jar:3.5.6]
	at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:197) ~[mybatis-3.5.6.jar:3.5.6]
	at org.apache.ibatis.session.defaults.DefaultSqlSession.insert(DefaultSqlSession.java:184) ~[mybatis-3.5.6.jar:3.5.6]
	at org.apache.ibatis.binding.MapperMethod.execute(MapperMethod.java:62) ~[mybatis-3.5.6.jar:3.5.6]
	at org.apache.ibatis.binding.MapperProxy$PlainMethodInvoker.invoke(MapperProxy.java:152) ~[mybatis-3.5.6.jar:3.5.6]
	at org.apache.ibatis.binding.MapperProxy.invoke(MapperProxy.java:85) ~[mybatis-3.5.6.jar:3.5.6]
	at com.sun.proxy.$Proxy40.insertTableRuntime(Unknown Source) ~[?:?]
	at com.netease.arctic.server.table.TableRuntime.lambda$persistTableRuntime$14(TableRuntime.java:319) ~[amoro-ams-server-0.6.1-SNAPSHOT.jar:?]
	at com.netease.arctic.server.persistence.PersistentBase.doAs(PersistentBase.java:48) ~[amoro-ams-server-0.6.1-SNAPSHOT.jar:?]
	... 11 more

Anything else

No response

Are you willing to submit a PR?

  • [X] Yes I am willing to submit a PR!

Code of Conduct

  • [X] I agree to follow this project's Code of Conduct

zhongqishang avatar Jul 24 '24 09:07 zhongqishang