Repository navigation
Conversation
Contributor
|
@tucker-pw Can you sign your commits? |
tucker-pw
force-pushed
the
fix/job-retry-event-source-mapping-iam-race
branch
from
November 10, 2026 18:19
d95c916 to
38d0cb5
Compare
Author
|
@edersonbrilhante Done, the commit is now signed |
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
aws_lambda_event_source_mapping.job_retryhas no dependency onaws_iam_role_policy.job_retry, the policy that grants the Lambda execution rolesqs:ReceiveMessageon the job-retry queue. Terraform is free to create the two in parallel.Lambda validates the execution role's SQS permissions synchronously when the event source mapping is created (
CreateEventSourceMapping), and IAM changes are eventually consistent. When the mapping is created before the policy has propagated, the apply fails with:Which mappings fail is down to timing, so a re-apply usually succeeds once the policies exist. Adding an explicit
depends_onorders the policy before the mapping and removes the race.The same pattern is present in both job-retry modules, so both are fixed:
modules/runners/job-retry/main.tfmodules/orchestration-providers/webhook/job-retry/job-retry.tfTest Plan
terraform graphonmodules/orchestration-providers/webhook/job-retrybefore vs after: the edgeaws_lambda_event_source_mapping.job_retry -> aws_iam_role_policy.job_retryis absent before this change and present after, confirming the ordering constraint now exists.terraform testformodules/orchestration-providers/webhook/job-retrypasses (5/5) with the change.terraform validatepasses formodules/runners/job-retry.terraform fmt -checkclean on both files.The timing race itself is non-deterministic and cannot be reproduced in a unit test; the graph edge above is the deterministic proof that the dependency is now enforced.
Related Issues