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

        Julian Reschke created issue -
        Julian Reschke made changes -
        Field Original Value New Value
        Status Open [ 1 ] In Progress [ 3 ]
        Hide
        Julian Reschke added a comment -

        Proposed patch.

        Show
        Julian Reschke added a comment - Proposed patch.
        Julian Reschke made changes -
        Attachment JCR-3298.patch [ 12523180 ]
        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 ]
        Alex Parvulescu made changes -
        Status Resolved [ 5 ] Closed [ 6 ]
        Jukka Zitting made changes -
        Fix Version/s 2.5 [ 12319280 ]
        Fix Version/s 2.6 [ 12319480 ]
        Transition Time In Source Status Execution Times Last Executer Last Execution Date
        Open Open In Progress In Progress
        2h 19m 1 Julian Reschke 18/Apr/12 13:06
        In Progress In Progress Resolved Resolved
        1d 1h 3m 1 Julian Reschke 19/Apr/12 14:10
        Resolved Resolved Closed Closed
        3d 20h 44m 1 Alex Parvulescu 23/Apr/12 10:54

          People

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

            Dates

            • Created:
              Updated:
              Resolved:

              Development