Prerequisites:
- Page with lots of revision.
I used this snippet Create a page with lots of revisions and created page with 1500 revisions, I'm not sure with number of revisions, but at some point, I managed to reproduce on old XWiki 16.10.9 with 150 revisions, but then doing clean tests on new one I didn't hit the issue, only increasing revisions I's able to reproduce it. Steps to reproduce:
- Edit created page (Sandbox.RevisionTest) via realtime editor
- Make any changes and save them as minor version via summarized changes
- Make any change and save again as minor
- Make final change and save page as major version via shortcut page history after editing.jpeg

- Go to page history (default view without minor changes) and start deleting revisions from top
- Try to delete revision 1501.1 (it will succeed, so next actual version will be 1500.3) full page history after deleting 1501.1 revision.jpeg

- Try to delete 1500.3 and observe the error
Actual result The deletion can't end, because request
raises 500 status code with stack trace error
A problem occurred while trying to process your request. Please contact the webmaster if this happens again.
Detailed information:
Error number 3103 in 3: Exception while reading version [1500.2] for document id [-1 859 817 081 112 129 485]
com.xpn.xwiki.XWikiException: Error number 3103 in 3: Exception while reading version [1500.2] for document id [-1 859 817 081 112 129 485]
at com.xpn.xwiki.doc.XWikiDocumentArchive.loadDocument(XWikiDocumentArchive.java:404)
at com.xpn.xwiki.store.XWikiHibernateVersioningStore.loadXWikiDoc(XWikiHibernateVersioningStore.java:252)
at com.xpn.xwiki.internal.doc.DatabaseDocumentRevisionProvider.loadRevision(DatabaseDocumentRevisionProvider.java:95)
at com.xpn.xwiki.internal.doc.DatabaseDocumentRevisionProvider.getRevision(DatabaseDocumentRevisionProvider.java:78)
at com.xpn.xwiki.internal.doc.DatabaseDocumentRevisionProvider.getRevision(DatabaseDocumentRevisionProvider.java:61)
at com.xpn.xwiki.internal.doc.DefaultDocumentRevisionProvider.getRevision(DefaultDocumentRevisionProvider.java:103)
at com.xpn.xwiki.internal.doc.AbstractDocumentRevisionProvider.getRevision(AbstractDocumentRevisionProvider.java:46)
at com.xpn.xwiki.XWiki.rollback(XWiki.java:7651)
at com.xpn.xwiki.XWiki.deleteDocumentVersions(XWiki.java:4816)
at com.xpn.xwiki.web.DeleteVersionsAction.action(DeleteVersionsAction.java:68)
at com.xpn.xwiki.web.XWikiAction.execute(XWikiAction.java:636)
at com.xpn.xwiki.web.XWikiAction.execute(XWikiAction.java:339)
at com.xpn.xwiki.web.LegacyActionServlet.service(LegacyActionServlet.java:108)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:590)
at org.eclipse.jetty.ee8.servlet.ServletHolder$NotAsync.service(ServletHolder.java:1151)
at org.eclipse.jetty.ee8.servlet.ServletHolder.handle(ServletHolder.java:640)
at org.eclipse.jetty.ee8.servlet.ServletHandler$ChainEnd.doFilter(ServletHandler.java:1374)
at com.xpn.xwiki.web.ActionFilter.doFilter(ActionFilter.java:122)
at org.eclipse.jetty.ee8.servlet.FilterHolder.doFilter(FilterHolder.java:171)
at org.eclipse.jetty.ee8.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1348)
at org.xwiki.wysiwyg.filter.ConversionFilter.doFilter(ConversionFilter.java:61)
at org.eclipse.jetty.ee8.servlet.FilterHolder.doFilter(FilterHolder.java:171)
at org.eclipse.jetty.ee8.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1348)
at org.xwiki.container.servlet.filters.internal.SetHTTPHeaderFilter.doFilter(SetHTTPHeaderFilter.java:63)
at org.eclipse.jetty.ee8.servlet.FilterHolder.doFilter(FilterHolder.java:171)
at org.eclipse.jetty.ee8.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1348)
at org.xwiki.resource.servlet.RoutingFilter.doFilter(RoutingFilter.java:132)
at org.eclipse.jetty.ee8.servlet.FilterHolder.doFilter(FilterHolder.java:171)
at org.eclipse.jetty.ee8.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1348)
at org.xwiki.container.servlet.filters.internal.SavedRequestRestorerFilter.doFilter(SavedRequestRestorerFilter.java:209)
at org.eclipse.jetty.ee8.servlet.FilterHolder.doFilter(FilterHolder.java:171)
at org.eclipse.jetty.ee8.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1348)
at org.xwiki.container.servlet.filters.internal.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:117)
at org.eclipse.jetty.ee8.servlet.FilterHolder.doFilter(FilterHolder.java:177)
at org.eclipse.jetty.ee8.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1348)
at org.eclipse.jetty.ee8.websocket.servlet.WebSocketUpgradeFilter.doFilter(WebSocketUpgradeFilter.java:175)
at org.eclipse.jetty.ee8.servlet.FilterHolder.doFilter(FilterHolder.java:171)
at org.eclipse.jetty.ee8.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1348)
at org.eclipse.jetty.ee8.servlet.ServletHandler.doHandle(ServletHandler.java:454)
at org.eclipse.jetty.ee8.nested.ScopedHandler.handle(ScopedHandler.java:119)
at org.eclipse.jetty.ee8.security.SecurityHandler.handle(SecurityHandler.java:497)
at org.eclipse.jetty.ee8.nested.HandlerWrapper.handle(HandlerWrapper.java:108)
at org.eclipse.jetty.ee8.nested.ScopedHandler.nextHandle(ScopedHandler.java:183)
at org.eclipse.jetty.ee8.nested.SessionHandler.doHandle(SessionHandler.java:519)
at org.eclipse.jetty.ee8.nested.ScopedHandler.nextHandle(ScopedHandler.java:181)
at org.eclipse.jetty.ee8.nested.ContextHandler.doHandle(ContextHandler.java:881)
at org.eclipse.jetty.ee8.nested.ScopedHandler.nextScope(ScopedHandler.java:152)
at org.eclipse.jetty.ee8.servlet.ServletHandler.doScope(ServletHandler.java:423)
at org.eclipse.jetty.ee8.nested.ScopedHandler.nextScope(ScopedHandler.java:150)
at org.eclipse.jetty.ee8.nested.SessionHandler.doScope(SessionHandler.java:503)
at org.eclipse.jetty.ee8.nested.ScopedHandler.nextScope(ScopedHandler.java:150)
at org.eclipse.jetty.ee8.nested.ContextHandler.doScope(ContextHandler.java:826)
at org.eclipse.jetty.ee8.nested.ScopedHandler.handle(ScopedHandler.java:117)
at org.eclipse.jetty.ee8.nested.ContextHandler.handle(ContextHandler.java:1424)
at org.eclipse.jetty.ee8.nested.HttpChannel$RequestDispatchable.dispatch(HttpChannel.java:1290)
at org.eclipse.jetty.ee8.nested.HttpChannel.dispatch(HttpChannel.java:623)
at org.eclipse.jetty.ee8.nested.HttpChannel.handle(HttpChannel.java:460)
at org.eclipse.jetty.ee8.nested.ContextHandler$CoreContextHandler$CoreToNestedHandler.handle(ContextHandler.java:2385)
at org.eclipse.jetty.server.handler.ContextHandler.handle(ContextHandler.java:1060)
at org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:181)
at org.eclipse.jetty.server.Server.handle(Server.java:182)
at org.eclipse.jetty.server.internal.HttpChannelState$HandlerInvoker.run(HttpChannelState.java:662)
at org.eclipse.jetty.server.internal.HttpConnection.onFillable(HttpConnection.java:418)
at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:322)
at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:99)
at org.eclipse.jetty.io.SelectableChannelEndPoint$1.run(SelectableChannelEndPoint.java:53)
at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.runTask(AdaptiveExecutionStrategy.java:478)
at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.consumeTask(AdaptiveExecutionStrategy.java:441)
at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.tryProduce(AdaptiveExecutionStrategy.java:293)
at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.run(AdaptiveExecutionStrategy.java:201)
at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:311)
at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:979)
at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.doRunJob(QueuedThreadPool.java:1209)
at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:1164)
at java.base/java.lang.Thread.run(Thread.java:842)
Caused by: com.xpn.xwiki.XWikiException: Error number 0 in 3: Exception while hibernate execute
at com.xpn.xwiki.store.XWikiHibernateBaseStore.execute(XWikiHibernateBaseStore.java:835)
at com.xpn.xwiki.store.XWikiHibernateBaseStore.executeRead(XWikiHibernateBaseStore.java:902)
at com.xpn.xwiki.store.XWikiHibernateVersioningStore.loadRCSNodeContent(XWikiHibernateVersioningStore.java:383)
at com.xpn.xwiki.doc.rcs.XWikiRCSNodeInfo.getContent(XWikiRCSNodeInfo.java:195)
at com.xpn.xwiki.doc.XWikiDocumentArchive.loadRCSNodeContents(XWikiDocumentArchive.java:521)
at com.xpn.xwiki.doc.XWikiDocumentArchive.getVersionXml(XWikiDocumentArchive.java:423)
at com.xpn.xwiki.doc.XWikiDocumentArchive.loadDocument(XWikiDocumentArchive.java:388)
... 74 more
Caused by: org.hibernate.ObjectNotFoundException: No row with the given identifier exists: [com.xpn.xwiki.doc.rcs.XWikiRCSNodeContent#com.xpn.xwiki.doc.rcs.XWikiRCSNodeId@109c096b[docId=-1859817081112129485,version=1501.1,wikiReference=Wiki xwiki]]
at org.hibernate.boot.internal.StandardEntityNotFoundDelegate.handleEntityNotFound(StandardEntityNotFoundDelegate.java:28)
at org.hibernate.event.internal.DefaultLoadEventListener.load(DefaultLoadEventListener.java:216)
at org.hibernate.event.internal.DefaultLoadEventListener.proxyOrLoad(DefaultLoadEventListener.java:327)
at org.hibernate.event.internal.DefaultLoadEventListener.doOnLoad(DefaultLoadEventListener.java:108)
at org.hibernate.event.internal.DefaultLoadEventListener.onLoad(DefaultLoadEventListener.java:74)
at org.hibernate.event.service.internal.EventListenerGroupImpl.fireEventOnEachListener(EventListenerGroupImpl.java:118)
at org.hibernate.internal.SessionImpl.fireLoadNoChecks(SessionImpl.java:1231)
at org.hibernate.internal.SessionImpl.fireLoad(SessionImpl.java:1220)
at org.hibernate.internal.SessionImpl.load(SessionImpl.java:996)
at org.hibernate.engine.spi.SessionDelegatorBaseImpl.load(SessionDelegatorBaseImpl.java:820)
at com.xpn.xwiki.store.XWikiHibernateVersioningStore.lambda$loadRCSNodeContent$5(XWikiHibernateVersioningStore.java:385)
at com.xpn.xwiki.store.XWikiHibernateBaseStore.execute(XWikiHibernateBaseStore.java:826)
... 80 more
More details about requests can be found in localhost.har Expected result The revision 1500.3 is deleted and page uses 1500.2 as current one. |