oracle/oci-java-sdk

Race condition in CircuitBreaker leading to NoSuchElementException

rkumarpa opened this issue · 0 comments

We have fixed this issue in version 2.51.2. If you are using any OCI Java SDK version(s) >= 2.47.0 and < 2.51.2, we recommend you to update to version 2.51.2 or later. If you are not using any of the affected OCI Java SDK versions, you can ignore this issue.

If for some reason you are not able to update to a non-affected version at this time, another option is to disable and opt out of the SDK's default support for circuit breakers, in service clients that you use in your code and which have enabled circuit breakers by default (almost all service clients). However, our recommended option is not this, but rather to instead update to version 2.51.2 or later.


If you are using the OCI Java SDK at any version(s) >= 2.47.0 and < 2.51.2, then you may be affected by a bug in the SDK's circuit breaker.

Description

When using OCI Java SDK versions >= 2.47.0 and versions < 2.51.2, CircuitBreaker may fail with NoSuchElementException when trying to remove elements from historyQueue. If this exception is thrown, the connection from the connection pool is not released. This could potentially result in the SDK being unable to make additional requests, because all connections are blocked.

Affected Versions

To help prevent their use, all affected versions are marked pre-release with a label Do not use this version in the SDK's GitHub Releases.

Solution

Update to version 2.51.2 or later.