This issue has been created
 
 
XWiki Platform / cid:jira-generated-image-avatar-fb77bff1-755a-4df7-b067-6c25a76d2ce7 XWIKI-23707 Open

Error when deleting a page minor revision history after deleted major revision

 
View issue   ยท   Add comment
 

Issue created

 
cid:jira-generated-image-avatar-10e76144-d34c-42eb-89ec-72b27cf5809c Nikita Petrenko created this issue on 12/Nov/25 12:13
 
Summary: Error when deleting a page minor revision history after deleted major revision
Issue Type: cid:jira-generated-image-avatar-fb77bff1-755a-4df7-b067-6c25a76d2ce7 Bug
Affects Versions: 16.10.14
Assignee: Unassigned
Attachments: full page history after deleting 1501.1 revision.jpeg, localhost.har, page history after editing.jpeg
Components: Old Core
Created: 12/Nov/25 12:13
Priority: cid:jira-generated-image-static-major-9a145b76-eb55-42c4-ab06-fb6e4de2ee92 Major
Reporter: Nikita Petrenko
Description:

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:

  1. Edit created page (Sandbox.RevisionTest) via realtime editor
  2. Make any changes and save them as minor version via summarized changes
  3. Make any change and save again as minor
  4. Make final change and save page as major version via shortcut page history after editing.jpeglink_attachment_7.gif
  5. Go to page history (default view without minor changes) and start deleting revisions from top
  6. 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.jpeglink_attachment_7.gif
  7. Try to delete 1500.3 and observe the error

Actual result

The deletion can't end, because request

http://172.16.55.167:8080/xwiki/bin/deleteversions/Sandbox/RevisionTest?form_token=LjkK5Zzgnxrwxh7s9Nix3A&rev=1500.3&confirm=1 error

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.harlink_attachment_7.gif

Expected result

The revision 1500.3 is deleted and page uses 1500.2 as current one.