Community
Participate
Working Groups
I ran into a case where a simulateExit() was called and the next touch(..) call failed. The consequence was that the simulateRestart() was never called. But a new jar file added ended up being added into the waiting jobs and the index manager was in an infinite loop and the number of awaiting jobs was always 1 and since the processing thread was null, that job was never run. So we must make sure that the index manager doesn't accept new jobs if the processing thread is null or if stops the loop when there is an awaiting job but the thread is null. Right now the loop never ends unless the number of awaiting jobs is 0.
Created attachment 185305 [details] Proposed patch Olivier, Please look at the patch and let me know if you are mentioning about the same thing and if so, please review!
This would throw a OperationCanceledException even if the operation was not really canceled. Why not simply adding: && this.processingThread != null inside the while condition ? Since the processingThread is nullify on shutdown, I don't think this is a big difference. Satyam, +1 for this and you can decide how you want to fix it.
(In reply to comment #2) > This would throw a OperationCanceledException even if the operation was not > really canceled. > Why not simply adding: && this.processingThread != null inside the while > condition ? > Since the processingThread is nullify on shutdown, I don't think this is a big > difference. > Satyam, +1 for this and you can decide how you want to fix it. This is to ensure that client gets to know that the operation didn't complete properly for whatever reason.
(In reply to comment #3) > This is to ensure that client gets to know that the operation didn't complete > properly for whatever reason. Fine for me then.
Released in HEAD
Created attachment 187517 [details] Proposed fix I wonder if it is not better to fix it that way. When no progress monitor is given, you can still end up with a hang.
This will be verified once a build with the last fix is available.
Verified.