Community
Participate
Working Groups
Re-indexing is run from time to time and that in itself may not be an issue, but it is so extreemly slow that it makes using egit a pain. Can we turn it off? Do we even need it?
Has anyone considered setting the priority to DECORATE ? Does https://bugs.eclipse.org/bugs/show_bug.cgi?id=333204 have anything to do with this? I have also noted that there sometimes is a ton of Re-indexing operations running for the same repository. Most (or all) have the comment "Cancel Requested" attached to the name. The blocking I mentioned may not be a "hard" block like locking, but in practice the workspaces is unusable until the re-index jobs are done and this may take a minute or two. I have the refresh on startup enabled, so a refresh, often followed by a build frequently happens when I launch Eclipse. How can we stop the re-indexing from running during builds and delay it until nothing heavy is going on?
Created attachment 211965 [details] Multiple re-indexing jobs Not sure why the blank parts appear here, but it's the same job re-appearing many times.
In IndexDiffCacheEntry there is this code. private void scheduleReloadJob(final String trigger) { if (reloadJob != null) reloadJob.cancel(); I'm missing reloadJob.join() here.
merged as 6bff046874e3b51dcef78a65fe8a2631bdd7e3d8
(In reply to comment #3) > In IndexDiffCacheEntry there is this code. > > private void scheduleReloadJob(final String trigger) { > if (reloadJob != null) > reloadJob.cancel(); > > I'm missing reloadJob.join() here. You can't join here because this would make the method synchronous. Synchronous execution would cause dead locks. There was a bug in the cancellation handling. I proposed a fix for this: https://git.eclipse.org/r/5522
(In reply to comment #0) > Re-indexing is run from time to time and that in itself may not be an issue, > but it is so extreemly slow that it makes using egit a pain. > > Can we turn it off? > > Do we even need it? Yes we need it :-) IndexDiffCacheEntry caches the IndexDiff for a given repository. This cached IndexDiff is e.g. used for decoration and for staging view and improved decoration performance drastically. Behaviour of IndexDiffCacheEntry: The IndexDiff is recalculated completely on refsChanged events. The IndexDiff is recalculated partly on resourceChanged events.
Just a heads up: I think the fix for this bug triggered a bug in the jobs framework (bug 378156), which causes auto-builds to be delayed forever after certain EGit operations (reset, revert commit). The EGit fix looks correct, but if the platform bug can't be fixed promptly, then this problem will hurt EGit users, probably also in maintenance builds (3.6.x, 3.7.x).