jiajunwang commented on issue #767:
URL: https://github.com/apache/helix/issues/767#issuecomment-646915788
There is another concurrent modification issue found.
1. Regular GC task fails due to concurrent list modification and the stale
versions are not removed at all.
2. If, by coincident, there is newer version in the list other then the
current version, then because of the modification of the list inside the loop,
the final element (the newer version) won't be filtered but being left in the
to-be-removed list. Then the GC task removes the most recent version. For
example,
a) Input, current version "2"
b) Children = [1, 2, 3]
c) The task avoids checking "2", so the list for loop is: [1, 3]
d) When check "1", it is removed from the list. So the list becomes [3].
Then the loop ends, because the first item has already been looped from the for
iteration perspective.
e) The version to be removed is "3"!
----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
For queries about this service, please contact Infrastructure at:
[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]