Jackrabbit Content Repository
  1. Jackrabbit Content Repository
  2. JCR-3298

jackrabbit-core RepositoryChecker.fix() can fail with OOM

    Details

    • Type: Bug Bug
    • Status: Closed
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: 2.2.11, 2.4, 2.6
    • Fix Version/s: 2.2.12, 2.4.2, 2.5
    • Component/s: jackrabbit-core
    • Labels:
      None

      Description

      It appears that people are (ab)using the RepositoryChecker to fix the versioning information in their repo after removing the version storage. (It would be good to understand why this happens, but anyway...)

      The RepositoryChecker, as currently implemented, walks the repository, collects changes, and, when done, submits them as a single repository ChangeLog.

      This will not work if the number of affected nodes is big.

      Unfortunately, the checker is currently designed to do things to two steps; we could of course stop collecting changes after a threshold, then apply what we have, then re-run the checker. That would probably work, but would be slow on huge repositories.

      The best alternative I see is to add a checkAndFix() method that is allowed to apply ChangeLogs to the repository on the run (and of course to use that variant from within RepositoryImpl.doVersionRecovery()).

      1. JCR-3298.patch
        5 kB
        Julian Reschke

        Activity

        Jukka Zitting made changes -
        Fix Version/s 2.5 [ 12319280 ]
        Fix Version/s 2.6 [ 12319480 ]
        Alex Parvulescu made changes -
        Status Resolved [ 5 ] Closed [ 6 ]
        Julian Reschke made changes -
        Status In Progress [ 3 ] Resolved [ 5 ]
        Fix Version/s 2.2.12 [ 12319843 ]
        Fix Version/s 2.4.2 [ 12320366 ]
        Fix Version/s 2.6 [ 12319480 ]
        Resolution Fixed [ 1 ]
        Julian Reschke made changes -
        Attachment JCR-3298.patch [ 12523180 ]
        Julian Reschke made changes -
        Field Original Value New Value
        Status Open [ 1 ] In Progress [ 3 ]
        Julian Reschke created issue -

          People

          • Assignee:
            Julian Reschke
            Reporter:
            Julian Reschke
          • Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved:

              Development