Move item with children

Enonic version: 6.7.3
OS: Linux

I’m working on portal that has more than 100 thousands of objects (or content). And, I’m dealing with a situation: when I try to move a content (popup “Move item with children” in content studio) sometimes enonic server goes down. I have run reindex to try to fix some problem in cluster, but that didn’t solve the problem of moving object. I also updgraded to 6.8 version, but it also didn’t solve the problem. Any suggestion?

A little more info on that:
When we run the reindex command (from the toolbox), some data is defective in branch Master. After upgrading to 6.8, a error message pops up from the bottom saying that “Each data element must implement a unique ‘id’ property”.

And the error that is happening is as follow:
We select a content (with a dozen children objects or something) and move it elsewhere in the admin (using the Move Item with children, as Bruno mentioned above). Immediately after, we lose connection to the server. Upon inspection of the server, we see it eats up all available RAM, and some of the cores of cpu are stressed out to a max. We have isolated the entire server and let only enonic run, still the same happens.

This is pretty critical, as any of our customers can wreak havoc on the entire application by doing something that should be standard. Can you guys help us out here? Thanks!

How much memory are you running with?

Server has 16GB of memory and 4 CPUs. Site usually consumes 10G of memory, but when we try to move any content, it consumes about 13G of memory.

Hmmm, sounds strange.

I would very much like to test this here, if its possible for you to create an archive and upload somewhere I could get it? I guess it will be pretty large, but its a bit difficult to be able to assist you without actually beeing able to do some tests.

Usually, dealing with that amount of content should be ok, but it will hog a lot of memory for large bulk-operation… Is it hundred of thousand content that needs the content-domain properties, or could it be stored in the upcoming node-api which is a lower level way to store data that is more performant?

I understand, we’re talking to our customer to see if they would allow us to give access to our dev server with the project running, would that work?

We have a lot of processes and services all dealing with the content-domain properties, and I’m really not sure if the node-api would suffice or how much of a change that would require. Even trying to move small amounts of data between locations seems to break the server, so perhaps there’s a chance our data integrity might be compromised?

We are getting the message “Lost connection…” when we try to move content (look image below).

We have observed that whenever we click on the dropdown icon, the whole application crashes, because it tries to load everything into the memory, timeouts and keeps a thread alive in the background that ends up consuming all available resources.
If we search for something, the impact is lower, but in some cases, when we try to select a folder with a dozen objects inside it, that has the same name as another folder with a couple thousand objects, it breaks the application as well.

Some things that would really help, if we select an object and click on move, assume that we want to move that object, instead of displaying the blank combobox for us to search. And pagination. Trying to load everything at once seems to be the cause of error around here. Like we said, we have a bit more than a hundred thousand objects around.

1 Like

We have found the problem and we will release a fix for it in 6.9, and also in 6.8.1 as soon as possible.

Please let us know as soon as it is completed. Thanks!

F.Y.I. : We have looked into the issue, and hope we can fix it tomorrow, which means release of 6.8.1 on Thursday. However, that is an ideal situation. Friday is a more likely release date. :wink:

3 Likes

You guys rocks. Thanks!

2 Likes