Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Using this resource with global resources enabled can lead to incorrect information and locking issues #6

Open
jamesmealing opened this issue Mar 3, 2022 · 0 comments

Comments

@jamesmealing
Copy link

When using this resource with global resources enabled, we are running into three issues:

  1. If more than one build references the metadata resource concurrently then it will share the same checking container meaning that the metadata that is reported can only be correct for one build. Any other builds that are also referencing this resource will end up with incorrect metadata from the other, unrelated build, potentially from a different pipeline, potentially from a different team.
  2. Similarly, if another build runs soon after a previous one finishing, Concourse will use the cached version of this resource and will thus report incorrect metadata from a previous build. This can be seen with the following log message on the get step of the metadata resource: INFO: found existing resource cache.
  3. The get step of the metadata resource can get blocked with the following message: INFO: waiting to acquire resource lock if another build is already running which has a lock on the metadata resource.

If my understanding of this from the base resource type is correct, it is possible for resource types to enforce UniqueVersionHistory - In the case of the metadata resource, I believe this should be enabled as we will always want it to be unique to avoid the aforementioned issues occurring if this resource is used across multiple pipelines and/or teams.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant