Failed to upgrade from 7.4.3 to 7.4.6 (OD-815)
Zhou You opened 4 years ago
java.lang.RuntimeException: java.lang.reflect.InvocationTargetException
	at io.onedev.commons.loader.Listener.notify(Listener.java:21)
	at io.onedev.commons.loader.DefaultListenerRegistry.post(DefaultListenerRegistry.java:72)
	at io.onedev.server.OneDev.postStart(OneDev.java:138)
	at io.onedev.server.persistence.SessionInterceptor$1.call(SessionInterceptor.java:23)
	at io.onedev.server.persistence.DefaultSessionManager.call(DefaultSessionManager.java:79)
	at io.onedev.server.persistence.SessionInterceptor.invoke(SessionInterceptor.java:18)
	at io.onedev.commons.loader.DefaultPluginManager.start(DefaultPluginManager.java:48)
	at io.onedev.commons.loader.AppLoader.start(AppLoader.java:73)
	at io.onedev.commons.bootstrap.Bootstrap.main(Bootstrap.java:189)
Caused by: java.lang.reflect.InvocationTargetException: null
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at io.onedev.commons.loader.Listener.notify(Listener.java:19)
	... 8 common frames omitted
Caused by: org.hibernate.HibernateException: Unable to access lob stream
	at org.hibernate.type.descriptor.java.DataHelper.extractString(DataHelper.java:270)
	at org.hibernate.type.descriptor.java.StringTypeDescriptor.wrap(StringTypeDescriptor.java:75)
	at org.hibernate.type.descriptor.java.StringTypeDescriptor.wrap(StringTypeDescriptor.java:22)
	at org.hibernate.type.descriptor.sql.ClobTypeDescriptor$1.doExtract(ClobTypeDescriptor.java:44)
	at org.hibernate.type.descriptor.sql.BasicExtractor.extract(BasicExtractor.java:47)
	at org.hibernate.type.AbstractStandardBasicType.nullSafeGet(AbstractStandardBasicType.java:257)
	at org.hibernate.type.AbstractStandardBasicType.nullSafeGet(AbstractStandardBasicType.java:253)
	at org.hibernate.type.AbstractStandardBasicType.nullSafeGet(AbstractStandardBasicType.java:243)
	at org.hibernate.type.AbstractStandardBasicType.hydrate(AbstractStandardBasicType.java:329)
	at org.hibernate.persister.entity.AbstractEntityPersister.hydrate(AbstractEntityPersister.java:3134)
	at org.hibernate.loader.Loader.loadFromResultSet(Loader.java:1870)
	at org.hibernate.loader.Loader.hydrateEntityState(Loader.java:1798)
	at org.hibernate.loader.Loader.instanceNotYetLoaded(Loader.java:1771)
	at org.hibernate.loader.Loader.getRow(Loader.java:1623)
	at org.hibernate.loader.Loader.getRowFromResultSet(Loader.java:740)
	at org.hibernate.loader.Loader.getRowsFromResultSet(Loader.java:1039)
	at org.hibernate.loader.Loader.processResultSet(Loader.java:990)
	at org.hibernate.loader.Loader.doQuery(Loader.java:959)
	at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:349)
	at org.hibernate.loader.Loader.doList(Loader.java:2850)
	at org.hibernate.loader.Loader.doList(Loader.java:2832)
	at org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2664)
	at org.hibernate.loader.Loader.list(Loader.java:2659)
	at org.hibernate.loader.criteria.CriteriaLoader.list(CriteriaLoader.java:109)
	at org.hibernate.internal.SessionImpl.list(SessionImpl.java:1877)
	at org.hibernate.internal.CriteriaImpl.list(CriteriaImpl.java:370)
	at io.onedev.server.persistence.dao.DefaultDao.query(DefaultDao.java:72)
	at io.onedev.server.persistence.SessionInterceptor$1.call(SessionInterceptor.java:23)
	at io.onedev.server.persistence.DefaultSessionManager.call(DefaultSessionManager.java:79)
	at io.onedev.server.persistence.SessionInterceptor.invoke(SessionInterceptor.java:18)
	at io.onedev.server.persistence.dao.DefaultDao.query(DefaultDao.java:113)
	at io.onedev.server.persistence.SessionInterceptor$1.call(SessionInterceptor.java:23)
	at io.onedev.server.persistence.DefaultSessionManager.call(DefaultSessionManager.java:79)
	at io.onedev.server.persistence.SessionInterceptor.invoke(SessionInterceptor.java:18)
	at io.onedev.server.persistence.dao.BaseEntityManager.query(BaseEntityManager.java:112)
	at io.onedev.server.persistence.dao.BaseEntityManager.query(BaseEntityManager.java:117)
	at io.onedev.server.entitymanager.impl.DefaultGpgKeyManager.on(DefaultGpgKeyManager.java:46)
	at io.onedev.server.persistence.SessionInterceptor$1.call(SessionInterceptor.java:23)
	at io.onedev.server.persistence.DefaultSessionManager.call(DefaultSessionManager.java:79)
	at io.onedev.server.persistence.SessionInterceptor.invoke(SessionInterceptor.java:18)
	... 13 common frames omitted
Caused by: org.postgresql.util.PSQLException: Large Objects may not be used in auto-commit mode.
	at org.postgresql.largeobject.LargeObjectManager.open(LargeObjectManager.java:249)
	at org.postgresql.largeobject.LargeObjectManager.open(LargeObjectManager.java:235)
	at org.postgresql.jdbc.AbstractBlobClob.getLo(AbstractBlobClob.java:269)
	at org.postgresql.jdbc.AbstractBlobClob.getBinaryStream(AbstractBlobClob.java:114)
	at org.postgresql.jdbc.PgClob.getCharacterStream(PgClob.java:52)
	at org.hibernate.type.descriptor.java.DataHelper.extractString(DataHelper.java:263)
	... 52 common frames omitted
  • OneDev changed state to 'Closed' 4 years ago
    Previous Value Current Value
    Open
    Closed
  • OneDev commented 4 years ago

    State changed as code fixing the issue is committed

  • OneDev changed state to 'Released' 4 years ago
    Previous Value Current Value
    Closed
    Released
  • OneDev commented 4 years ago

    State changed as build #2832 is successful

  • Zhou You changed state to 'Open' 4 years ago
    Previous Value Current Value
    Released
    Open
  • Zhou You commented 4 years ago

    还是有问题,这个应用的版本已经是7.4.6但是数据库版本已经更新上去了,然后执行最新的修复路径是7.4.6 -> 7.4.7

    INFO  - Starting server...
    INFO  - Upgrading /opt/onedev...
    INFO  - >>> INFO  - Launching application from '/opt/onedev'...
    INFO  - >>> INFO  - Cleaning temp directory...
    INFO  - >>> INFO  - Starting server...
    INFO  - Old data version: 93
    INFO  - Backing up old program files as /opt/onedev/site/program-backup/2022-07-17_22-22-27...
    INFO  - Backing up database as /opt/onedev/site/db-backup/2022-07-17_22-22-27.zip...
    INFO  - >>> INFO  - Launching application from '/opt/onedev'...
    INFO  - >>> INFO  - Cleaning temp directory...
    INFO  - >>> INFO  - Starting server...
    INFO  - >>> INFO  - Backing up database to /opt/onedev/site/db-backup/2022-07-17_22-22-27.zip...
    INFO  - >>> INFO  - Exporting table 'CommitQueryPersonalization'...
    INFO  - >>> INFO  - Querying table ids...
    INFO  - >>> INFO  -
    INFO  - >>> INFO  - Exporting table 'GroupAuthorization'...
    INFO  - >>> INFO  - Querying table ids...
    INFO  - >>> INFO  -
    INFO  - >>> INFO  - Exporting table 'ProblemMetric'...
    INFO  - >>> INFO  - Querying table ids...
    INFO  - >>> INFO  -
    INFO  - >>> INFO  - Exporting table 'Membership'...
    INFO  - >>> INFO  - Querying table ids...
    INFO  - >>> INFO  -
    INFO  - >>> INFO  - Exporting table 'CodeCommentReply'...
    INFO  - >>> INFO  - Querying table ids...
    INFO  - >>> INFO  -
    INFO  - >>> INFO  - Exporting table 'GitLfsLock'...
    INFO  - >>> INFO  - Querying table ids...
    INFO  - >>> INFO  -
    INFO  - >>> INFO  - Exporting table 'BuildQueryPersonalization'...
    INFO  - >>> INFO  - Querying table ids...
    INFO  - >>> INFO  -
    INFO  - >>> INFO  - Exporting table 'UnitTestMetric'...
    INFO  - >>> INFO  - Querying table ids...
    INFO  - >>> INFO  -
    INFO  - >>> INFO  - Exporting table 'CodeCommentQueryPersonalization'...
    INFO  - >>> INFO  - Querying table ids...
    INFO  - >>> INFO  -
    INFO  - >>> INFO  - Exporting table 'PullRequestChange'...
    INFO  - >>> INFO  - Querying table ids...
    INFO  - >>> INFO  -
    INFO  - >>> INFO  - Exporting table 'PullRequestAssignment'...
    INFO  - >>> INFO  - Querying table ids...
    INFO  - >>> INFO  -
    INFO  - >>> INFO  - Exporting table 'PendingSuggestionApply'...
    INFO  - >>> INFO  - Querying table ids...
    INFO  - >>> INFO  -
    INFO  - >>> INFO  - Exporting table 'CodeCommentStatusChange'...
    INFO  - >>> INFO  - Querying table ids...
    INFO  - >>> INFO  -
    INFO  - >>> INFO  - Exporting table 'CodeComment'...
    INFO  - >>> INFO  - Querying table ids...
    INFO  - >>> INFO  -
    INFO  - >>> INFO  - Exporting table 'IssueAuthorization'...
    INFO  - >>> INFO  - Querying table ids...
    INFO  - >>> INFO  -
    INFO  - >>> INFO  - Exporting table 'IssueChange'...
    INFO  - >>> INFO  - Querying table ids...
    INFO  - >>> INFO  -
    INFO  - >>> INFO  - Exporting table 'Setting'...
    INFO  - >>> INFO  - Querying table ids...
    INFO  - >>> INFO  - Loading table rows (1->20) from database...
    INFO  - >>> INFO  - Converting table rows to XML...
    INFO  - >>> INFO  - Writing resulting XML to file 'Settings.xml...
    INFO  - >>> INFO  -
    INFO  - >>> INFO  - Exporting table 'BuildParam'...
    INFO  - >>> INFO  - Querying table ids...
    INFO  - >>> INFO  -
    INFO  - >>> INFO  - Exporting table 'PullRequestQueryPersonalization'...
    INFO  - >>> INFO  - Querying table ids...
    INFO  - >>> INFO  -
    INFO  - >>> INFO  - Exporting table 'IssueLink'...
    INFO  - >>> INFO  - Querying table ids...
    INFO  - >>> INFO  -
    INFO  - >>> INFO  - Exporting table 'IssueVote'...
    INFO  - >>> INFO  - Querying table ids...
    INFO  - >>> INFO  -
    INFO  - >>> INFO  - Exporting table 'LinkAuthorization'...
    INFO  - >>> INFO  - Querying table ids...
    INFO  - >>> INFO  -
    INFO  - >>> INFO  - Exporting table 'LinkSpec'...
    INFO  - >>> INFO  - Querying table ids...
    INFO  - >>> INFO  - Loading table rows (1->2) from database...
    INFO  - >>> INFO  - Converting table rows to XML...
    INFO  - >>> INFO  - Writing resulting XML to file 'LinkSpecs.xml...
    INFO  - >>> INFO  -
    INFO  - >>> INFO  - Exporting table 'IssueSchedule'...
    INFO  - >>> INFO  - Querying table ids...
    INFO  - >>> INFO  -
    INFO  - >>> INFO  - Exporting table 'Milestone'...
    INFO  - >>> INFO  - Querying table ids...
    INFO  - >>> INFO  -
    INFO  - >>> INFO  - Exporting table 'PullRequestUpdate'...
    INFO  - >>> INFO  - Querying table ids...
    INFO  - >>> INFO  -
    INFO  - >>> INFO  - Exporting table 'CoverageMetric'...
    INFO  - >>> INFO  - Querying table ids...
    INFO  - >>> INFO  -
    INFO  - >>> INFO  - Exporting table 'IssueField'...
    INFO  - >>> INFO  - Querying table ids...
    INFO  - >>> INFO  -
    INFO  - >>> INFO  - Exporting table 'Group'...
    INFO  - >>> INFO  - Querying table ids...
    INFO  - >>> INFO  -
    INFO  - >>> INFO  - Exporting table 'SshKey'...
    INFO  - >>> INFO  - Querying table ids...
    INFO  - >>> INFO  -
    INFO  - >>> INFO  - Exporting table 'GpgKey'...
    INFO  - >>> INFO  - Querying table ids...
    INFO  - >>> INFO  - Loading table rows (1->1) from database...
    INFO  - >>> INFO  - Converting table rows to XML...
    INFO  - >>> ERROR - Error booting application
    INFO  - >>> javax.persistence.PersistenceException: org.hibernate.HibernateException: Unable to access lob stream
    INFO  - >>> 	at org.hibernate.internal.ExceptionConverterImpl.convert(ExceptionConverterImpl.java:154)
    INFO  - >>> 	at org.hibernate.query.internal.AbstractProducedQuery.list(AbstractProducedQuery.java:1602)
    INFO  - >>> 	at io.onedev.server.persistence.DefaultPersistManager.exportEntity(DefaultPersistManager.java:449)
    INFO  - >>> 	at io.onedev.server.persistence.DefaultPersistManager.exportData(DefaultPersistManager.java:433)
    INFO  - >>> 	at io.onedev.server.persistence.SessionInterceptor$1.call(SessionInterceptor.java:23)
    INFO  - >>> 	at io.onedev.server.persistence.DefaultSessionManager.call(DefaultSessionManager.java:79)
    INFO  - >>> 	at io.onedev.server.persistence.SessionInterceptor.invoke(SessionInterceptor.java:18)
    INFO  - >>> 	at io.onedev.server.persistence.DefaultPersistManager.exportData(DefaultPersistManager.java:405)
    INFO  - >>> 	at io.onedev.server.maintenance.BackupDatabase.start(BackupDatabase.java:69)
    INFO  - >>> 	at io.onedev.server.OneDev.start(OneDev.java:109)
    INFO  - >>> 	at io.onedev.commons.loader.DefaultPluginManager.start(DefaultPluginManager.java:44)
    INFO  - >>> 	at io.onedev.commons.loader.AppLoader.start(AppLoader.java:73)
    INFO  - >>> 	at io.onedev.commons.bootstrap.Bootstrap.main(Bootstrap.java:189)
    INFO  - >>> Caused by: org.hibernate.HibernateException: Unable to access lob stream
    INFO  - >>> 	at org.hibernate.type.descriptor.java.DataHelper.extractString(DataHelper.java:270)
    INFO  - >>> 	at org.hibernate.type.descriptor.java.StringTypeDescriptor.wrap(StringTypeDescriptor.java:75)
    INFO  - >>> 	at org.hibernate.type.descriptor.java.StringTypeDescriptor.wrap(StringTypeDescriptor.java:22)
    INFO  - >>> 	at org.hibernate.type.descriptor.sql.ClobTypeDescriptor$1.doExtract(ClobTypeDescriptor.java:44)
    INFO  - >>> 	at org.hibernate.type.descriptor.sql.BasicExtractor.extract(BasicExtractor.java:47)
    INFO  - >>> 	at org.hibernate.type.AbstractStandardBasicType.nullSafeGet(AbstractStandardBasicType.java:257)
    INFO  - >>> 	at org.hibernate.type.AbstractStandardBasicType.nullSafeGet(AbstractStandardBasicType.java:253)
    INFO  - >>> 	at org.hibernate.type.AbstractStandardBasicType.nullSafeGet(AbstractStandardBasicType.java:243)
    INFO  - >>> 	at org.hibernate.type.AbstractStandardBasicType.hydrate(AbstractStandardBasicType.java:329)
    INFO  - >>> 	at org.hibernate.persister.entity.AbstractEntityPersister.hydrate(AbstractEntityPersister.java:3134)
    INFO  - >>> 	at org.hibernate.loader.Loader.loadFromResultSet(Loader.java:1870)
    INFO  - >>> 	at org.hibernate.loader.Loader.hydrateEntityState(Loader.java:1798)
    INFO  - >>> 	at org.hibernate.loader.Loader.instanceNotYetLoaded(Loader.java:1771)
    INFO  - >>> 	at org.hibernate.loader.Loader.getRow(Loader.java:1623)
    INFO  - >>> 	at org.hibernate.loader.Loader.getRowFromResultSet(Loader.java:740)
    INFO  - >>> 	at org.hibernate.loader.Loader.getRowsFromResultSet(Loader.java:1039)
    INFO  - >>> 	at org.hibernate.loader.Loader.processResultSet(Loader.java:990)
    INFO  - >>> 	at org.hibernate.loader.Loader.doQuery(Loader.java:959)
    INFO  - >>> 	at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:349)
    INFO  - >>> 	at org.hibernate.loader.Loader.doList(Loader.java:2850)
    INFO  - >>> 	at org.hibernate.loader.Loader.doList(Loader.java:2832)
    INFO  - >>> 	at org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2664)
    INFO  - >>> 	at org.hibernate.loader.Loader.list(Loader.java:2659)
    INFO  - >>> 	at org.hibernate.loader.hql.QueryLoader.list(QueryLoader.java:506)
    INFO  - >>> 	at org.hibernate.hql.internal.ast.QueryTranslatorImpl.list(QueryTranslatorImpl.java:400)
    INFO  - >>> 	at org.hibernate.engine.query.spi.HQLQueryPlan.performList(HQLQueryPlan.java:219)
    INFO  - >>> 	at org.hibernate.internal.SessionImpl.list(SessionImpl.java:1414)
    INFO  - >>> 	at org.hibernate.query.internal.AbstractProducedQuery.doList(AbstractProducedQuery.java:1625)
    INFO  - >>> 	at org.hibernate.query.internal.AbstractProducedQuery.list(AbstractProducedQuery.java:1593)
    INFO  - >>> 	... 11 common frames omitted
    INFO  - >>> Caused by: org.postgresql.util.PSQLException: Large Objects may not be used in auto-commit mode.
    INFO  - >>> 	at org.postgresql.largeobject.LargeObjectManager.open(LargeObjectManager.java:249)
    INFO  - >>> 	at org.postgresql.largeobject.LargeObjectManager.open(LargeObjectManager.java:235)
    INFO  - >>> 	at org.postgresql.jdbc.AbstractBlobClob.getLo(AbstractBlobClob.java:269)
    INFO  - >>> 	at org.postgresql.jdbc.AbstractBlobClob.getBinaryStream(AbstractBlobClob.java:114)
    INFO  - >>> 	at org.postgresql.jdbc.PgClob.getCharacterStream(PgClob.java:52)
    INFO  - >>> 	at org.hibernate.type.descriptor.java.DataHelper.extractString(DataHelper.java:263)
    INFO  - >>> 	... 39 common frames omitted
    ERROR - Failed to upgrade /opt/onedev
    INFO  - Restoring old program files due to upgrade failure...
    INFO  - Old program files restored
    WARN  - The database might be in inconsistent state due to upgrade failure. In that case, you need to restore the database by first cleaning it, and then running below command:
    INFO  - /opt/onedev/bin/restore-db.sh /opt/onedev/site/db-backup/2022-07-17_22-22-27.zip
    
  • Zhou You commented 4 years ago

    而且这个备份文件都没有生成CleanShot 2022-07-17 at 22.31.35@2x.png

  • Robin Shen commented 4 years ago

    嗯,确实没考虑到之前升级失败的情况。鉴于已经造成了错误。这种情况再放到通用升级逻辑里处理比较复杂了。建议如下修复路径:

    1. 如果你还可以恢复运行7.4.3版本的话,建议通过 backup/restore 先切换为内置数据库,将内置数据库升级为7.4.7,然后再切换为postgresql。
    2. 或者你也可以将最新的数据备份发送到 [robin AT onedev DOT io],我来手工升级到7.4.7
  • Zhou You commented 4 years ago

    回滚7.4.3会报错

    INFO  - Launching application from '/app'...
    INFO  - Starting server...
    INFO  - Upgrading /opt/onedev...
    INFO  - >>> INFO  - Launching application from '/opt/onedev'...
    INFO  - >>> INFO  - Cleaning temp directory...
    INFO  - >>> INFO  - Starting server...
    INFO  - Old data version: 93
    ERROR - Unable to upgrade as specified installation is more recent
    
  • Robin Shen changed state to 'Closed' 4 years ago
    Previous Value Current Value
    Open
    Closed
  • Robin Shen commented 4 years ago

    Database fix is sent

issue 1/1
Type
Bug
Priority
Normal
Assignee
Affected Versions
Not Found
Issue Votes (0)
Watchers (4)
Reference
OD-815
Please wait...
Connection lost or session expired, reload to recover
Page is in error, reload to recover