Exception in the log (BranchNotFoundException) when loading a system dump


#1

Enonic version: 6.13.1, but this also happens with 6.15.4
OS: Manjaro 18.0.0, but Enonic XP is running in a Docker Container

I’m migrating an existing Enonic XP site to Docker. The current maintainers of the site has made a system dump using the Data Toolbox application. I have spun up a fresh instance of Enonic XP 6.13.1, the same version as the system the data was dumped from. I logged in as Super User, installed Data Toolbox, uploaded the system dump and loaded it. It spun for about 2 seconds before a box popped up with “500 Server Error”.

The log is showing this error:

m.enonic.xp.repository.BranchNotFoundException: Branch with id [draft] not found

Here’s the entire log: https://pastebin.com/raw/S6AxSJQb

The site appears to have been loaded correctly in spite of the error, and I don’t see anything missing. I’m not deeply familiar with this website however, so I could be wrong.

Why does this error occur? Is it safe to ignore? Is there anything I can do to prevent it?


#2

Hi,

It is not safe to ignore no. The system dump was not loaded properly.

First, can you confirm the steps/versions under:

  • You have a source installation with
    • Enonic XP 6.13.1 ?
    • Data Toolbox 2.2.3 ?
  • You do a system dump
  • You load this system dump into a target installation with:
    • Enonic XP 6.13.1 ?
    • Data Toolbox 2.2.3 ?

Could I have access to the dump in question?
If not can you look at the dump.json at the root of the dump folder (check that it is present) and send me a message with the content of the file?

Because from the logs it seems that the dump is incomplete/missing files. Something must have happened during the dump or the dump was downloaded while still being in progress. A quick solution to your problem (and it would confirm that it is linked to this dump in particular) would be to generate a new dump and load it.


#3

I can confirm that the Enonic XP versions are both 6.13.1 and that the Data Toolbox version of the importing instance is 2.2.3. I have requested the version of the exporting Data Toolbox instance, but I haven’t received it yet.

We have generated 3 separate dumps over the past 2 weeks and they all trigger the same error.

Here’s the dump.json of one of the dumps: https://pastebin.com/raw/mSDVgAE8

I unfortunately can’t share the dump, but here’s an overview of the contents, with binary and node folders pruned for brevity: https://pastebin.com/raw/f6HYBZQU


#4

The exporting Data Toolbox version was 2.2.1. I have downloaded and installed version 2.2.1 to a fresh local containerized Enonic XP 6.13.1 instance, and it’s still crashing with 500 Server Error.

Here’s the log: pastebin dot com/raw/NRkgHwaT

Any ideas?


#5

We can see that your dump has finished successfully but it is seems to be missing at least one file: /node/bc/c0/e1/bcc0e1e7d0466ff8ef73f04f0d5c8d5de88a959f

I manage to reproduce your error if I manually remove a similar file from a dump. But I don’t manage to generate a dump with a missing file. Even if I remove manually the blob in my $XP_HOME/repo/blob/node/, restart the server and do a dump: the dump simply fails but yours has finished.

  • Is there anything in the source server logs when doing the dump?
  • Is there anything in the source server logs when retrieving the dump?
  • Is the following file present on the source server: $XP_HOME/repo/blob/node/bc/c0/e1/bcc0e1e7d0466ff8ef73f04f0d5c8d5de88a959f (Assuming that your blob folder is located at $XP_HOME/repo/blob)?
  • I assumed it was the case but just for confirmation, check that the following file is missing in your dump: /node/bc/c0/e1/bcc0e1e7d0466ff8ef73f04f0d5c8d5de88a959f
  • And lastly, is the file present in the dump on the source server: $XP_HOME/data/dump/dump-2018-09-25T19-33-35/node/bc/c0/e1/bcc0e1e7d0466ff8ef73f04f0d5c8d5de88a959f

#6

Unfortunately I have no access to the source server.

After deleting a blob, did you dump using Data Toolbox or toolbox.sh? Our dump was generated using the former. Perhaps it’s happy to ignore the missing blob?

I have now switched to importing using toolbox.sh rather than the Data Toolbox application, and now the import succeeds 100% of the time (no crashes), but the result stats shows the missing file you’re referring to:

Output of $ toolbox.sh load
$ /enonic-xp/toolbox/toolbox.sh load -a su:password -y -s dump
Loading dump...
Dump loaded successfully
{
  "repositories" : [ {
    "branches" : [ {
      "branch" : "master",
      "errors" : [ ],
      "successful" : 38
    } ],
    "repository" : "system-repo",
    "versions" : {
      "errors" : [ ],
      "successful" : 124
    }
  }, {
    "branches" : [ {
      "branch" : "master",
      "errors" : [ ],
      "successful" : 1008
    }, {
      "branch" : "draft",
      "errors" : [ ],
      "successful" : 1561
    } ],
    "repository" : "cms-repo",
    "versions" : {
      "errors" : [ {
        "message" : "Failed to load version for node with path /content/website, blobKey bcc0e1e7d0466ff8ef73f04f0d5c8d5de88a959f"
      } ],
      "successful" : 13987
    }
  } ]
}

If this just means that 1/13987th of the cms-repo data is missing, we’re willing to ignore it. Is there any way this can cause problems later on? Mysterious crashes, hangs, etc.?

If this is too dangerous to ignore I suppose we’ll have to ask for a new dump.


#7

Hi,

Yes, it is not critical.
Because from what you sent it is an old version (not the current used version) of the content “/website”.
The only visible impact for you will be that old versions wont be displayed in the widget “Content Studio”/“Version history” and you will not be able to rollback to this old version.
But to my knowledge, no, there will not be any problems linked to this