-
Notifications
You must be signed in to change notification settings - Fork 73
Building twice because of new "touch on recovery" #1710
Comments
maybe also andreys changes mentioned in https://bugs.eclipse.org/bugs/show_bug.cgi?id=549704 are related |
with Xtext 2.26 nightly and eclipse 2021-09 nightly i see Import
open
so there is one real full build only |
@cdietrich Please make sure to import the Xtext project from an archive file into a clean workspace how it is demonstrated with https://drive.google.com/file/d/1N6ax6sTQ7EuvSA5rL537lPddasYXIgUf/view?usp=drivesdk |
interestingly i can see it with the domain model example but i could not see it with a statemachine example
will check next if the problem is zip import |
zip or not does not play a role |
with yet another mydsl i get
=> is build cancelled?!? |
@cdietrich I'm not sure but I suspect that very small (and fast built) models might not trigger the bug simply because it requires some "timely overlap" from the auto build job and the xtext refresh job. As far as I remember, the auto build job itself uses a randomized schedule delay of around 1 second, therefore you probably need models of at least 1 or 2 seconds build time to trigger it. |
The window of opportunity for the autobuild is the time between forgetting the last built state and the touch of the project in its own job. Check if there is a known built state before touching the project again. Signed-off-by: Sebastian Zarnekow <[email protected]>
The window of opportunity for the autobuild is the time between forgetting the last built state and the touch of the project in its own job. Check if there is a known built state before touching the project again. Signed-off-by: Sebastian Zarnekow <[email protected]>
Signed-off-by: Sebastian Zarnekow <[email protected]>
@cdietrich Can you by chance take another look? |
The strategy for the recovery build was changed such that we keep an additional flag on the builder to indicate that the next regular build is supposed to be a full build because the resource deltas cannot be trusted. Signed-off-by: Sebastian Zarnekow <[email protected]>
The strategy for the recovery build was changed such that we keep an additional flag on the builder to indicate that the next regular build is supposed to be a full build because the resource deltas cannot be trusted. Signed-off-by: Sebastian Zarnekow <[email protected]>
The strategy for the recovery build was changed such that we keep an additional flag on the builder to indicate that the next regular build is supposed to be a full build because the resource deltas cannot be trusted. Signed-off-by: Sebastian Zarnekow <[email protected]>
The strategy for the recovery build was changed such that we keep an additional flag on the builder to indicate that the next regular build is supposed to be a full build because the resource deltas cannot be trusted. Signed-off-by: Sebastian Zarnekow <[email protected]>
The strategy for the recovery build was changed such that we keep an additional flag on the builder to indicate that the next regular build is supposed to be a full build because the resource deltas cannot be trusted. Signed-off-by: Sebastian Zarnekow <[email protected]>
#1671 has led to the situation that projects are built twice in certain situations:
(This is on Xtext 2.25 with the BuildStateDiscarder changes being ported back. But I'm quite sure the behaviour is identical on current Xtext).
The technical background is as follows:
I believe the exceptions and deadlocks reported in the early versions of #1671 (when the touch was executed immediately instead of via job) were also caused by the touch happening when the auto build already built the same project.
The most simple fix would be to check again inside the touch job run() method whether touching is actually still needed. However, I did not find any good method to check whether a project has been built (via Xtext BuildManagerAccess). Any advice how that could be checked, or do you imagine another fix eventually?
The text was updated successfully, but these errors were encountered: