Has anyone had an issue that you have multiple worker processes under application pool which are trying to write the data under the data/index folder and that are colliding with each other?
-
Could you expand upon the fact that they're colliding with each other? How does this issue manifest? Are you sure that it's a deadlocking issue on the worker processes trying to write data? Does the data ever get written to the data folder? What errors are you getting? Do you have virus checking on this machine? Try disabling it for 5 mins and see if that has any effect.– Owen NiblockCommented Oct 4, 2016 at 13:58
-
You have one process which is able to write the data in the index folder, and the other ones are stuck since they are trying to write in the same folder as well but the files are locked by the previous one. Each of the app pools has its own worker process. Each of the sites has it's own data folder. There are no displayed errors in the logs, you notice that something is wrong when the CPU starts to choke.– Una VerhoevenCommented Oct 4, 2016 at 14:07
2 Answers
Your Sitecore application should never use the same Data
folder.
If they do, they will override their indexes every time while index is rebuilt.
I'm guessing that's exactly what's happening in your scenario - one application tries to update its index and another one tries to perform another operation on index files in the same moment. It's not supported.
Your indexes should be kept in separate location for every Sitecore application.
-
1They don't use the same Data folder.Each of the indexes is in a separate location for every SItecore app. Commented Oct 4, 2016 at 13:26
-
They could update the index location. Setting name is
IndexFolder
in the sitecore.config. Remember to patch the config. For each instance and separate it out to two locations. i.e datafolder/indexes/site1 and datafolder/indexes/site2– AnichoCommented Oct 4, 2016 at 13:26
I think we have finally figured out what is happening.
We have scheduled recycle of the application pool at a certain time during the night but what sometimes happens is that indexing of the database is still in progress. When the recycle happens, worker process doesn't shut down and the second worker process gets created.