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

   ### Version
   
   main branch
   
   ### Describe what's wrong
   
   **error1:**
   ### SQL: DELETE FROM policy_meta WHERE policy_id IN (SELECT policy_id FROM 
policy_meta WHERE deleted_at = 0 AND legacy_timeline < ? LIMIT ?)
   ### Cause: org.postgresql.util.PSQLException: ERROR: column 
"legacy_timeline" does not exist
   
   **error2:**
   ### SQL: DELETE FROM statistic_meta WHERE deleted_at > 0 AND deleted_at < ? 
LIMIT ?
   ### Cause: org.postgresql.util.PSQLException: ERROR: syntax error at or near 
"LIMIT"
   
   ### Error message and/or stacktrace
   
   2025-11-19 22:53:41.735 ERROR [RelationalBackend-Garbage-Collector] 
[org.apache.gravitino.storage.relational.RelationalGarbageCollector.collectAndClean(RelationalGarbageCollector.java:90)]
 - Failed to physically delete type of POLICY's legacy data: 
   org.apache.ibatis.exceptions.PersistenceException: 
   ### Error updating database.  Cause: org.postgresql.util.PSQLException: 
ERROR: column "legacy_timeline" does not exist
     Position: 104
   ### The error may exist in 
org/apache/gravitino/storage/relational/mapper/PolicyMetaMapper.java (best 
guess)
   ### The error may involve 
org.apache.gravitino.storage.relational.mapper.PolicyMetaMapper.deletePolicyMetasByLegacyTimeline-Inline
   ### The error occurred while setting parameters
   ### SQL: DELETE FROM policy_meta WHERE policy_id IN (SELECT policy_id FROM 
policy_meta WHERE deleted_at = 0 AND legacy_timeline < ? LIMIT ?)
   ### Cause: org.postgresql.util.PSQLException: ERROR: column 
"legacy_timeline" does not exist
     Position: 104
           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.delete(DefaultSqlSession.java:212)
 ~[mybatis-3.5.6.jar:3.5.6]
           at 
org.apache.ibatis.binding.MapperMethod.execute(MapperMethod.java:72) 
~[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 
jdk.proxy2/jdk.proxy2.$Proxy104.deletePolicyMetasByLegacyTimeline(Unknown 
Source) ~[?:?]
           at 
org.apache.gravitino.storage.relational.service.PolicyMetaService.lambda$deletePolicyAndVersionMetasByLegacyTimeline$27(PolicyMetaService.java:373)
 ~[gravitino-core-1.0.0-zdh15.8.1-SNAPSHOT.jar:?]
           at 
org.apache.gravitino.storage.relational.utils.SessionUtils.doWithCommitAndFetchResult(SessionUtils.java:56)
 ~[gravitino-core-1.0.0-zdh15.8.1-SNAPSHOT.jar:?]
           at 
org.apache.gravitino.storage.relational.service.PolicyMetaService.deletePolicyAndVersionMetasByLegacyTimeline(PolicyMetaService.java:371)
 ~[gravitino-core-1.0.0-zdh15.8.1-SNAPSHOT.jar:?]
           at 
org.apache.gravitino.storage.relational.JDBCBackend.hardDeleteLegacyData(JDBCBackend.java:375)
 ~[gravitino-core-1.0.0-zdh15.8.1-SNAPSHOT.jar:?]
           at 
org.apache.gravitino.storage.relational.RelationalGarbageCollector.collectAndClean(RelationalGarbageCollector.java:87)
 ~[gravitino-core-1.0.0-zdh15.8.1-SNAPSHOT.jar:?]
           at 
java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:572)
 ~[?:?]
           at 
java.base/java.util.concurrent.FutureTask.runAndReset(FutureTask.java:358) 
~[?:?]
           at 
java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:305)
 ~[?:?]
           at 
java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144)
 ~[?:?]
           at 
java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642)
 ~[?:?]
           at java.base/java.lang.Thread.run(Thread.java:1583) [?:?]
   Caused by: org.postgresql.util.PSQLException: ERROR: column 
"legacy_timeline" does not exist
     Position: 104
           at 
org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:2713)
 ~[postgresql-42.6.0.jar:42.6.0]
           at 
org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:2401)
 ~[postgresql-42.6.0.jar:42.6.0]
           at 
org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:368) 
~[postgresql-42.6.0.jar:42.6.0]
           at 
org.postgresql.jdbc.PgStatement.executeInternal(PgStatement.java:498) 
~[postgresql-42.6.0.jar:42.6.0]
           at org.postgresql.jdbc.PgStatement.execute(PgStatement.java:415) 
~[postgresql-42.6.0.jar:42.6.0]
           at 
org.postgresql.jdbc.PgPreparedStatement.executeWithFlags(PgPreparedStatement.java:190)
 ~[postgresql-42.6.0.jar:42.6.0]
           at 
org.postgresql.jdbc.PgPreparedStatement.execute(PgPreparedStatement.java:177) 
~[postgresql-42.6.0.jar:42.6.0]
           at 
org.apache.commons.dbcp2.DelegatingPreparedStatement.execute(DelegatingPreparedStatement.java:95)
 ~[commons-dbcp2-2.11.0.jar:2.11.0]
           at 
org.apache.commons.dbcp2.DelegatingPreparedStatement.execute(DelegatingPreparedStatement.java:95)
 ~[commons-dbcp2-2.11.0.jar:2.11.0]
           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]
           ... 16 more
   2025-11-19 22:53:41.746 ERROR [RelationalBackend-Garbage-Collector] 
[org.apache.gravitino.storage.relational.RelationalGarbageCollector.collectAndClean(RelationalGarbageCollector.java:90)]
 - Failed to physically delete type of TABLE_STATISTIC's legacy data: 
   org.apache.ibatis.exceptions.PersistenceException: 
   ### Error updating database.  Cause: org.postgresql.util.PSQLException: 
ERROR: syntax error at or near "LIMIT"
     Position: 69
   ### The error may exist in 
org/apache/gravitino/storage/relational/mapper/StatisticMetaMapper.java (best 
guess)
   ### The error may involve 
org.apache.gravitino.storage.relational.mapper.StatisticMetaMapper.deleteStatisticsByLegacyTimeline-Inline
   ### The error occurred while setting parameters
   ### SQL: DELETE FROM statistic_meta WHERE deleted_at > 0 AND deleted_at < ? 
LIMIT ?
   ### Cause: org.postgresql.util.PSQLException: ERROR: syntax error at or near 
"LIMIT"
     Position: 69
           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.delete(DefaultSqlSession.java:212)
 ~[mybatis-3.5.6.jar:3.5.6]
           at 
org.apache.ibatis.binding.MapperMethod.execute(MapperMethod.java:72) 
~[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 
jdk.proxy2/jdk.proxy2.$Proxy105.deleteStatisticsByLegacyTimeline(Unknown 
Source) ~[?:?]
           at 
org.apache.gravitino.storage.relational.service.StatisticMetaService.lambda$deleteStatisticsByLegacyTimeline$3(StatisticMetaService.java:100)
 ~[gravitino-core-1.0.0-zdh15.8.1-SNAPSHOT.jar:?]
           at 
org.apache.gravitino.storage.relational.utils.SessionUtils.doWithCommitAndFetchResult(SessionUtils.java:56)
 ~[gravitino-core-1.0.0-zdh15.8.1-SNAPSHOT.jar:?]
           at 
org.apache.gravitino.storage.relational.service.StatisticMetaService.deleteStatisticsByLegacyTimeline(StatisticMetaService.java:98)
 ~[gravitino-core-1.0.0-zdh15.8.1-SNAPSHOT.jar:?]
           at 
org.apache.gravitino.storage.relational.JDBCBackend.hardDeleteLegacyData(JDBCBackend.java:390)
 ~[gravitino-core-1.0.0-zdh15.8.1-SNAPSHOT.jar:?]
           at 
org.apache.gravitino.storage.relational.RelationalGarbageCollector.collectAndClean(RelationalGarbageCollector.java:87)
 ~[gravitino-core-1.0.0-zdh15.8.1-SNAPSHOT.jar:?]
           at 
java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:572)
 ~[?:?]
           at 
java.base/java.util.concurrent.FutureTask.runAndReset(FutureTask.java:358) 
~[?:?]
           at 
java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:305)
 ~[?:?]
           at 
java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144)
 ~[?:?]
           at 
java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642)
 ~[?:?]
           at java.base/java.lang.Thread.run(Thread.java:1583) [?:?]
   Caused by: org.postgresql.util.PSQLException: ERROR: syntax error at or near 
"LIMIT"
     Position: 69
           at 
org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:2713)
 ~[postgresql-42.6.0.jar:42.6.0]
           at 
org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:2401)
 ~[postgresql-42.6.0.jar:42.6.0]
           at 
org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:368) 
~[postgresql-42.6.0.jar:42.6.0]
           at 
org.postgresql.jdbc.PgStatement.executeInternal(PgStatement.java:498) 
~[postgresql-42.6.0.jar:42.6.0]
           at org.postgresql.jdbc.PgStatement.execute(PgStatement.java:415) 
~[postgresql-42.6.0.jar:42.6.0]
           at 
org.postgresql.jdbc.PgPreparedStatement.executeWithFlags(PgPreparedStatement.java:190)
 ~[postgresql-42.6.0.jar:42.6.0]
           at 
org.postgresql.jdbc.PgPreparedStatement.execute(PgPreparedStatement.java:177) 
~[postgresql-42.6.0.jar:42.6.0]
           at 
org.apache.commons.dbcp2.DelegatingPreparedStatement.execute(DelegatingPreparedStatement.java:95)
 ~[commons-dbcp2-2.11.0.jar:2.11.0]
           at 
org.apache.commons.dbcp2.DelegatingPreparedStatement.execute(DelegatingPreparedStatement.java:95)
 ~[commons-dbcp2-2.11.0.jar:2.11.0]
           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]
           ... 16 more
   2025-11-19 22:53:41.763 INFO [RelationalBackend-Garbage-Collector] 
[org.apache.gravitino.storage.relational.RelationalGarbageCollector.collectAndClean(RelationalGarbageCollector.java:94)]
 - Start to collect and delete old version data by thread 20
   
   ### How to reproduce
   
   1、start the gravition service
   2、wait for RelationalGarbageCollector.collectAndClean
   
   ### 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