[ 
https://issues.apache.org/jira/browse/CAMEL-24191?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=18097079#comment-18097079
 ] 

Andrea Cosentino commented on CAMEL-24191:
------------------------------------------

Fixed on main via https://github.com/apache/camel/pull/24835. Backported to 
camel-4.18.x via https://github.com/apache/camel/pull/24848 and to camel-4.14.x 
via https://github.com/apache/camel/pull/24849. Fix versions: 4.14.9, 4.18.4, 
4.22.0.

_Claude Code on behalf of oscerd_

> camel-aws2-kinesis: KCL consumer ignores session credentials and mishandles 
> checkpoint/error handling
> -----------------------------------------------------------------------------------------------------
>
>                 Key: CAMEL-24191
>                 URL: https://issues.apache.org/jira/browse/CAMEL-24191
>             Project: Camel
>          Issue Type: Bug
>          Components: camel-aws2-kinesis
>            Reporter: Andrea Cosentino
>            Assignee: Andrea Cosentino
>            Priority: Major
>             Fix For: 4.14.9, 4.18.4, 4.22.0
>
>
> Split out of CAMEL-24156 (deep review of the AWS components). Two defects in 
> the KCL-based Kinesis consumer (KclKinesis2Consumer):
> 1. *Session credentials are silently ignored.* In both the DynamoDB and 
> CloudWatch async-client builders the branch order tests {{accessKey && 
> secretKey}} before {{accessKey && secretKey && sessionToken}}. The first 
> branch always matches when access/secret keys are set, so the session-token 
> branch is unreachable and the DynamoDB/CloudWatch clients never use STS 
> temporary credentials — they fail when only session credentials are valid. 
> Code: KclKinesis2Consumer.java ~lines 94-133.
> 2. *Checkpoint/error handling loses or reprocesses data.* processRecords 
> wraps the per-record processing in {{catch (Throwable t)}} that logs a 
> message *without* the exception (no stack trace) and does not rethrow; the 
> scheduler then proceeds and later checkpoints at shard end / shutdown, so 
> records that failed to process are checkpointed past (data loss). There is no 
> checkpoint after successful processing, so a crash reprocesses the whole 
> lease. Code: KclKinesis2Consumer.java ~lines 193-232.
> Fix direction: reorder the credential branches so the session-token branch is 
> reachable (both builders); log the processing exception with its stack trace 
> and stop swallowing it; checkpoint after a batch is processed successfully 
> and avoid checkpointing past a failed batch.
> Present on camel-4.18.x and camel-4.14.x; backport to both.
> Found during an agent-assisted audit of the AWS components; verified against 
> the cited code.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to