aws / aws/aws-cdk

(aws-cdk-lib/pipelines): (muliple s3 sources from same bucket fails)

Open
#19,875 1 comment 1 reaction 0 assignees View on GitHub
@aws-cdk/aws-s3 @aws-cdk/pipelines bug effort/small p2
Dominant language
TypeScript
Stars
12.9k
Forks
4.6k
Avg merge
2d 3h
Merged PRs (30d)
83

Description

### Describe the bug

I add two files from the same s3 bucket as source:

```ts
new pipelines.CodePipeline(this, 'pipeline', {
synth: new pipelines.ShellStep('Build-codepipeline-and-self-update', {
input: pipelines.CodePipelineSource.s3(
artifactsBucket,
'some-artifact.zip', {
trigger: cdk.aws_codepipeline_actions.S3Trigger.NONE,
actionName: 'source-nr-1'
}),
additionalInputs: {
'somewhere': pipelines.CodePipelineSource.s3(
artifactsBucket,
'another-key-same-bucket.zip', {
trigger: cdk.aws_codepipeline_actions.S3Trigger.NONE,
actionName: 'source-nr-2'
}),
},
commands: [
'...',
],
}),
});

```

Fails with:

```sh
Error: Node with duplicate id: c8e9dd64d043805dea2bbc5f5d6ff6c442e1330971
at Graph.add (C:\Kildekode\github\bsf-innsikt\deploy\service\node_modules\aws-cdk-lib\pipelines\lib\helpers-internal\graph.ts:180:15)
at PipelineGraph.addAndRecurse (C:\Kildekode\github\bsf-innsikt\deploy\service\node_modules\aws-cdk-lib\pipelines\lib\helpers-internal\pipeline-graph.ts:266:12)
at PipelineGraph.addAndRecurse (C:\Kildekode\github\bsf-innsikt\deploy\service\node_modules\aws-cdk-lib\pipelines\lib\helpers-internal\pipeline-graph.ts:270:33)
at PipelineGraph.addBuildStep (C:\Kildekode\github\bsf-innsikt\deploy\service\node_modules\aws-cdk-lib\pipelines\lib\helpers-internal\pipeline-graph.ts:114:17)
at new PipelineGraph (C:\Kildekode\github\bsf-innsikt\deploy\service\node_modules\aws-cdk-lib\pipelines\lib\helpers-internal\pipeline-graph.ts:74:29)
at CodePipeline.doBuildPipeline (C:\Kildekode\github\bsf-innsikt\deploy\service\node_modules\aws-cdk-lib\pipelines\lib\codepipeline\codepipeline.ts:371:25)
at CodePipeline.buildPipeline (C:\Kildekode\github\bsf-innsikt\deploy\service\node_modules\aws-cdk-lib\pipelines\lib\main\pipeline-base.ts:120:10)
at new CodePipelineStack (C:\Kildekode\github\bsf-innsikt\deploy\service\lib\deploy-everything\code-pipeline-stack.ts:228:21)
at main (C:\Kildekode\github\bsf-innsikt\deploy\service\bin\pipeline.ts:52:5)
at Object. (C:\Kildekode\github\bsf-innsikt\deploy\service\bin\pipeline.ts:61:1)
```

### Expected Behavior

Should not fail

### Current Behavior

Throws error

### Reproduction Steps

See above

### Possible Solution

_No response_

### Additional Information/Context

_No response_

### CDK CLI Version

2.20.0

### Framework Version

_No response_

### Node.js Version

16.14.2

### OS

Windows 10

### Language

Typescript

### Language Version

_No response_

### Other information

_No response_

Contributor guide

Open the contributing guide

Research direction

Start by reproducing the two-source example, then trace the duplicate ID through pipelines/lib/helpers-internal/graph.ts, pipeline-graph.ts, and codepipeline.ts, as shown in the stack trace. Done means the provided CodePipeline configuration accepts two S3 sources from the same bucket without throwing a duplicate-node error.

Written by the indexing model from the issue text.

Assessment

Tech stack
aws, typescript
Domain
cloud, devops
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Stale
Clarity
Clearly specified
Newbie friendliness
38/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.