zhoujinsong opened a new issue, #3444:
URL: https://github.com/apache/amoro/issues/3444
### What happened?
Some Iceberg tables no longer generate new self-optimizing processes as
expected.
### Affects Versions
master
### What table formats are you seeing the problem on?
Iceberg
### What engines are you seeing the problem on?
AMS
### How to reproduce
- Create an Iceberg table
- Drop this new Iceberg table
- Create an Iceberg table with the same name
- No new self-optimizing processes are created in the table as expected
### Relevant log output
```shell
2025-02-24 00:01:24,280 ERROR [table-explorer-executor-5]
[org.apache.amoro.server.table.DefaultTableService] [] - TableExplorer sync
table TableIdentity{database=thea_for_govern_277_3, tableName=yuxinghe02} error
org.apache.amoro.exception.PersistenceException:
org.apache.ibatis.exceptions.PersistenceException:
### Error updating database. Cause:
java.sql.SQLIntegrityConstraintViolationException: Duplicate entry
'dlc_1304581893_catalog-thea_for_govern_277_3-yuxinghe02' for key
'table_runtime.table_index'
### The error may exist in
org/apache/amoro/server/persistence/mapper/TableMetaMapper.java (best guess)
### The error may involve
org.apache.amoro.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_code,
optimizing_status_start_time, optimizing_process_id, optimizer_group,
table_config, pending_input, table_summary) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?,
?, ?, ?, ?, ?, ?, ?, ?, ?)
### Cause: java.sql.SQLIntegrityConstraintViolationException: Duplicate
entry 'dlc_1304581893_catalog-thea_for_govern_277_3-yuxinghe02' for key
'table_runtime.table_index'
at
org.apache.amoro.exception.AmoroRuntimeException.wrap(AmoroRuntimeException.java:141)
~[amoro-common-0.8-SNAPSHOT.jar:0.8-SNAPSHOT]
at
org.apache.amoro.server.persistence.PersistentBase.doAs(PersistentBase.java:71)
~[amoro-ams-0.8-SNAPSHOT.jar:0.8-SNAPSHOT]
at
org.apache.amoro.server.table.TableRuntime.persistTableRuntime(TableRuntime.java:446)
~[amoro-ams-0.8-SNAPSHOT.jar:0.8-SNAPSHOT]
at
org.apache.amoro.server.table.TableRuntime.<init>(TableRuntime.java:111)
~[amoro-ams-0.8-SNAPSHOT.jar:0.8-SNAPSHOT]
at
org.apache.amoro.server.table.DefaultTableService.triggerTableAdded(DefaultTableService.java:441)
~[amoro-ams-0.8-SNAPSHOT.jar:0.8-SNAPSHOT]
at
org.apache.amoro.server.table.DefaultTableService.lambda$syncTable$18(DefaultTableService.java:421)
~[amoro-ams-0.8-SNAPSHOT.jar:0.8-SNAPSHOT]
at
java.util.Spliterators$ArraySpliterator.forEachRemaining(Spliterators.java:948)
~[?:1.8.0_392]
at
java.util.stream.ReferencePipeline$Head.forEach(ReferencePipeline.java:647)
~[?:1.8.0_392]
at
org.apache.amoro.server.persistence.PersistentBase.doAsTransaction(PersistentBase.java:91)
~[amoro-ams-0.8-SNAPSHOT.jar:0.8-SNAPSHOT]
at
org.apache.amoro.server.table.DefaultTableService.syncTable(DefaultTableService.java:411)
~[amoro-ams-0.8-SNAPSHOT.jar:0.8-SNAPSHOT]
at
org.apache.amoro.server.table.DefaultTableService.lambda$null$7(DefaultTableService.java:317)
~[amoro-ams-0.8-SNAPSHOT.jar:0.8-SNAPSHOT]
at
java.util.concurrent.CompletableFuture$AsyncRun.run(CompletableFuture.java:1640)
[?:1.8.0_392]
at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
[?:1.8.0_392]
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
[?:1.8.0_392]
at java.lang.Thread.run(Thread.java:750) [?:1.8.0_392]
Caused by: org.apache.ibatis.exceptions.PersistenceException:
### Error updating database. Cause:
java.sql.SQLIntegrityConstraintViolationException: Duplicate entry
'dlc_1304581893_catalog-thea_for_govern_277_3-yuxinghe02' for key
'table_runtime.table_index'
### The error may exist in
org/apache/amoro/server/persistence/mapper/TableMetaMapper.java (best guess)
### The error may involve
org.apache.amoro.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_code,
optimizing_status_start_time, optimizing_process_id, optimizer_group,
table_config, pending_input, table_summary) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?,
?, ?, ?, ?, ?, ?, ?, ?, ?)
### Cause: java.sql.SQLIntegrityConstraintViolationException: Duplicate
entry 'dlc_1304581893_catalog-thea_for_govern_277_3-yuxinghe02' for key
'table_runtime.table_index'
at
org.apache.ibatis.exceptions.ExceptionFactory.wrapException(ExceptionFactory.java:30)
~[mybatis-3.5.15.jar:3.5.15]
at
org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:199)
~[mybatis-3.5.15.jar:3.5.15]
at
org.apache.ibatis.session.defaults.DefaultSqlSession.insert(DefaultSqlSession.java:184)
~[mybatis-3.5.15.jar:3.5.15]
at
org.apache.ibatis.binding.MapperMethod.execute(MapperMethod.java:62)
~[mybatis-3.5.15.jar:3.5.15]
at
org.apache.ibatis.binding.MapperProxy$PlainMethodInvoker.invoke(MapperProxy.java:141)
~[mybatis-3.5.15.jar:3.5.15]
at org.apache.ibatis.binding.MapperProxy.invoke(MapperProxy.java:86)
~[mybatis-3.5.15.jar:3.5.15]
at com.sun.proxy.$Proxy44.insertTableRuntime(Unknown Source) ~[?:?]
at
org.apache.amoro.server.table.TableRuntime.lambda$persistTableRuntime$16(TableRuntime.java:446)
~[amoro-ams-0.8-SNAPSHOT.jar:0.8-SNAPSHOT]
at
org.apache.amoro.server.persistence.PersistentBase.doAs(PersistentBase.java:67)
~[amoro-ams-0.8-SNAPSHOT.jar:0.8-SNAPSHOT]
... 13 more
Caused by: java.sql.SQLIntegrityConstraintViolationException: Duplicate
entry 'dlc_1304581893_catalog-thea_for_govern_277_3-yuxinghe02' 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.GeneratedMethodAccessor8.invoke(Unknown Source) ~[?:?]
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
~[?:1.8.0_392]
at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_392]
at
org.apache.ibatis.logging.jdbc.PreparedStatementLogger.invoke(PreparedStatementLogger.java:58)
~[mybatis-3.5.15.jar:3.5.15]
at com.sun.proxy.$Proxy39.execute(Unknown Source) ~[?:?]
at
org.apache.ibatis.executor.statement.PreparedStatementHandler.update(PreparedStatementHandler.java:48)
~[mybatis-3.5.15.jar:3.5.15]
at
org.apache.ibatis.executor.statement.RoutingStatementHandler.update(RoutingStatementHandler.java:75)
~[mybatis-3.5.15.jar:3.5.15]
at
org.apache.ibatis.executor.SimpleExecutor.doUpdate(SimpleExecutor.java:50)
~[mybatis-3.5.15.jar:3.5.15]
at
org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:117)
~[mybatis-3.5.15.jar:3.5.15]
at
org.apache.ibatis.executor.CachingExecutor.update(CachingExecutor.java:76)
~[mybatis-3.5.15.jar:3.5.15]
at sun.reflect.GeneratedMethodAccessor31.invoke(Unknown Source)
~[?:?]
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
~[?:1.8.0_392]
at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_392]
at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)
~[mybatis-3.5.15.jar:3.5.15]
at com.sun.proxy.$Proxy36.update(Unknown Source) ~[?:?]
at
org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:197)
~[mybatis-3.5.15.jar:3.5.15]
at
org.apache.ibatis.session.defaults.DefaultSqlSession.insert(DefaultSqlSession.java:184)
~[mybatis-3.5.15.jar:3.5.15]
at
org.apache.ibatis.binding.MapperMethod.execute(MapperMethod.java:62)
~[mybatis-3.5.15.jar:3.5.15]
at
org.apache.ibatis.binding.MapperProxy$PlainMethodInvoker.invoke(MapperProxy.java:141)
~[mybatis-3.5.15.jar:3.5.15]
at org.apache.ibatis.binding.MapperProxy.invoke(MapperProxy.java:86)
~[mybatis-3.5.15.jar:3.5.15]
at com.sun.proxy.$Proxy44.insertTableRuntime(Unknown Source) ~[?:?]
at
org.apache.amoro.server.table.TableRuntime.lambda$persistTableRuntime$16(TableRuntime.java:446)
~[amoro-ams-0.8-SNAPSHOT.jar:0.8-SNAPSHOT]
at
org.apache.amoro.server.persistence.PersistentBase.doAs(PersistentBase.java:67)
~[amoro-ams-0.8-SNAPSHOT.jar:0.8-SNAPSHOT]
... 13 more
```
### Anything else
_No response_
### Are you willing to submit a PR?
- [ ] Yes I am willing to submit a PR!
### Code of Conduct
- [x] I agree to follow this project's Code of Conduct
--
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]