aws / aws/aws-sdk-java-v2

Blocking Call on DigestAlgorithm

Open
#6,590 1 comment 0 reactions 0 assignees View on GitHub
bug p2
Dominant language
Java
Stars
2.6k
Forks
1k
Avg merge
2d 9h
Merged PRs (30d)
51

Description

### Describe the bug

Hello,

While using BlockHound to detect blocking calls on our service, we found out a blocking call on https://github.com/aws/aws-sdk-java-v2/blob/master/core/checksums/src/main/java/software/amazon/awssdk/checksums/internal/DigestAlgorithm.java#L55 . It seems this is related to a recent change in this class (https://github.com/aws/aws-sdk-java-v2/commit/c137348d67e7cfa2d5f3dcd81e187facfed3e2d8) that introduced a LinkedBlockingDeque.

### Regression Issue

- [ ] Select this option if this issue appears to be a regression.

### Expected Behavior

The Async version of the SDK shouldn't block threads.

### Current Behavior

Due to the internal code of LinkedBlockingDeque, the modified DigestAlgorithm blocks.

### Reproduction Steps

Any HTTP request will trigger this issue, example the Async SDK for DynamoDB (GetItem).

### Possible Solution

Use ConcurrentLinkedDeque or ThreadLocal perhaps.

### Additional Information/Context

_No response_

### AWS Java SDK version used

2.33.11

### JDK version used

21

### Operating System and version

Mac

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.