Uploaded image for project: 'XWiki Platform'
  1. XWiki Platform
  2. XWIKI-23707

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

    XMLWordPrintable

Details

    • Bug
    • Resolution: Unresolved
    • Major
    • None
    • 16.10.14
    • Old Core
    • None
    • Unknown

    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.8 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.jpeg
      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.jpeg
      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.har

      Expected result

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

      Attachments

        Activity

          People

            Unassigned Unassigned
            npetrenko Nikita Petrenko
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

              Created:
              Updated: