please icon indicating copy to clipboard operation
please copied to clipboard

Added dependency check after post_build step.

Open cemeceme opened this issue 1 year ago • 1 comments

Fixes the race condition for dependencies created within post_build steps #3168.

The issue is that a target will mark itself complete, even though the post_build step could have added additional dependencies to it. This meant that any dependents would start running, without waiting for the post_build dependencies to complete, resulting in a race.

The added code will now re-check all the dependencies of a target, after its post_build step has completed. This way, additional dependencies will properly get waited on, avoiding the race.

I would like to note, however, that the addition is essentially a copy of some code in queueTargetAsync, where the initial dependency checks occur. In this case, this is somewhat duplicating the dependency checks and also re-checking already resolved dependencies, even if a post_build step doesn't change the dependencies.

cemeceme avatar May 22 '24 13:05 cemeceme

Thanks for this. Im taking a look at it now and while it initially seems reasonable there are a few things I want to check before approving.

goddenrich avatar Sep 19 '24 13:09 goddenrich

Any updates on this? I would love to see the issue this fixes get resolved.

cemeceme avatar Oct 22 '24 14:10 cemeceme