jerryshao opened a new issue, #7110:
URL: https://github.com/apache/gravitino/issues/7110

   ### Version
   
   main branch
   
   ### Describe what's wrong
   
   ```
   TestOwnerMetaService > testDeleteMetadataObject() FAILED
       org.apache.ibatis.exceptions.PersistenceException:
       ### Error updating database.  Cause: 
org.h2.jdbc.JdbcSQLIntegrityConstraintViolationException: Unique index or 
primary key violation: "PUBLIC.UK_OW_ME_DEL_INDEX_3 ON 
PUBLIC.OWNER_META(OWNER_ID, METADATA_OBJECT_ID, METADATA_OBJECT_TYPE, 
DELETED_AT) VALUES 25"; SQL statement:
       UPDATE owner_meta SET deleted_at = (UNIX_TIMESTAMP() * 1000.0) + 
EXTRACT(MICROSECOND FROM CURRENT_TIMESTAMP(3)) / 1000 WHERE owner_id = ? AND 
owner_type = ? AND deleted_at = 0 [23505-200]
       ### The error may exist in 
org/apache/gravitino/storage/relational/mapper/OwnerMetaMapper.java (best guess)
       ### The error may involve 
org.apache.gravitino.storage.relational.mapper.OwnerMetaMapper.softDeleteOwnerRelByOwnerIdAndType-Inline
       ### The error occurred while setting parameters
       ### SQL: UPDATE owner_meta SET deleted_at = (UNIX_TIMESTAMP() * 1000.0) 
+ EXTRACT(MICROSECOND FROM CURRENT_TIMESTAMP(3)) / 1000 WHERE owner_id = ? AND 
owner_type = ? AND deleted_at = 0
       ### Cause: org.h2.jdbc.JdbcSQLIntegrityConstraintViolationException: 
Unique index or primary key violation: "PUBLIC.UK_OW_ME_DEL_INDEX_3 ON 
PUBLIC.OWNER_META(OWNER_ID, METADATA_OBJECT_ID, METADATA_OBJECT_TYPE, 
DELETED_AT) VALUES 25"; SQL statement:
       UPDATE owner_meta SET deleted_at = (UNIX_TIMESTAMP() * 1000.0) + 
EXTRACT(MICROSECOND FROM CURRENT_TIMESTAMP(3)) / 1000 WHERE owner_id = ? AND 
owner_type = ? AND deleted_at = 0 [23505-200]
           at 
org.apache.ibatis.exceptions.ExceptionFactory.wrapException(ExceptionFactory.java:30)
           at 
org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:199)
           at 
org.apache.ibatis.binding.MapperMethod.execute(MapperMethod.java:67)
           at 
org.apache.ibatis.binding.MapperProxy$PlainMethodInvoker.invoke(MapperProxy.java:152)
           at org.apache.ibatis.binding.MapperProxy.invoke(MapperProxy.java:85)
           at jdk.proxy3.$Proxy116.softDeleteOwnerRelByOwnerIdAndType(Unknown 
Source)
           at 
org.apache.gravitino.storage.relational.service.UserMetaService.lambda$deleteUser$12(UserMetaService.java:178)
           at 
org.apache.gravitino.storage.relational.utils.SessionUtils.doWithoutCommit(SessionUtils.java:105)
           at 
org.apache.gravitino.storage.relational.service.UserMetaService.lambda$deleteUser$13(UserMetaService.java:175)
           at 
java.util.Spliterators$ArraySpliterator.forEachRemaining(Spliterators.java:992)
           at 
java.util.stream.ReferencePipeline$Head.forEach(ReferencePipeline.java:762)
           at 
org.apache.gravitino.storage.relational.utils.SessionUtils.doMultipleWithCommit(SessionUtils.java:140)
           at 
org.apache.gravitino.storage.relational.service.UserMetaService.deleteUser(UserMetaService.java:167)
           at 
org.apache.gravitino.storage.relational.service.TestOwnerMetaService.testDeleteMetadataObject(TestOwnerMetaService.java:516)
   
           Caused by:
           org.h2.jdbc.JdbcSQLIntegrityConstraintViolationException: Unique 
index or primary key violation: "PUBLIC.UK_OW_ME_DEL_INDEX_3 ON 
PUBLIC.OWNER_META(OWNER_ID, METADATA_OBJECT_ID, METADATA_OBJECT_TYPE, 
DELETED_AT) VALUES 25"; SQL statement:
           UPDATE owner_meta SET deleted_at = (UNIX_TIMESTAMP() * 1000.0) + 
EXTRACT(MICROSECOND FROM CURRENT_TIMESTAMP(3)) / 1000 WHERE owner_id = ? AND 
owner_type = ? AND deleted_at = 0 [23505-200]
               at 
org.h2.message.DbException.getJdbcSQLException(DbException.java:459)
               at 
org.h2.message.DbException.getJdbcSQLException(DbException.java:429)
               at org.h2.message.DbException.get(DbException.java:205)
               at org.h2.message.DbException.get(DbException.java:181)
               at 
org.h2.index.BaseIndex.getDuplicateKeyException(BaseIndex.java:103)
               at 
org.h2.mvstore.db.MVSecondaryIndex.checkUnique(MVSecondaryIndex.java:221)
               at 
org.h2.mvstore.db.MVSecondaryIndex.add(MVSecondaryIndex.java:196)
               at org.h2.mvstore.db.MVTable.addRow(MVTable.java:531)
               at org.h2.table.Table.updateRows(Table.java:523)
               at org.h2.command.dml.Update.update(Update.java:225)
               at 
org.h2.command.CommandContainer.update(CommandContainer.java:198)
               at org.h2.command.Command.executeUpdate(Command.java:251)
               at 
org.h2.jdbc.JdbcPreparedStatement.execute(JdbcPreparedStatement.java:240)
               at 
org.apache.commons.dbcp2.DelegatingPreparedStatement.execute(DelegatingPreparedStatement.java:95)
               at 
org.apache.commons.dbcp2.DelegatingPreparedStatement.execute(DelegatingPreparedStatement.java:95)
               at jdk.internal.reflect.GeneratedMethodAccessor53.invoke(Unknown 
Source)
               at 
jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
               at java.lang.reflect.Method.invoke(Method.java:568)
               at 
org.apache.ibatis.logging.jdbc.PreparedStatementLogger.invoke(PreparedStatementLogger.java:59)
               at jdk.proxy4.$Proxy103.execute(Unknown Source)
               at 
org.apache.ibatis.executor.statement.PreparedStatementHandler.update(PreparedStatementHandler.java:47)
               at 
org.apache.ibatis.executor.statement.RoutingStatementHandler.update(RoutingStatementHandler.java:74)
               at 
org.apache.ibatis.executor.SimpleExecutor.doUpdate(SimpleExecutor.java:50)
               at 
org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:117)
               at 
org.apache.ibatis.executor.CachingExecutor.update(CachingExecutor.java:76)
               at 
org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:197)
               ... 12 more
   ```
   
   This might be due to the time variation is not enough for embedded H2 DB.
   
   ### Error message and/or stacktrace
   
   Above
   
   ### How to reproduce
   
   Just run this UT will reproduce this issue.
   
   ### Additional context
   
   _No response_


-- 
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]

Reply via email to