oci-java-sdk icon indicating copy to clipboard operation
oci-java-sdk copied to clipboard

OCI Java SDK 2.66.0 Stream Uploads Buffer Data Unnecessarily and May Cause OutOfMemoryError

Open mricken opened this issue 9 months ago • 1 comments

Upgrade to OCI Java SDK version 2.72.0 if you are currently using 2.66.0.

The OCI Java SDK version 2.66.0 contains a bug that causes it to buffer streams unnecessarily. For example, if you upload a stream of size 1 GiB, this will cause the OCI Java SDK to buffer an additional 1 GiB in the heap. This additional memory demand may cause an OutOfMemoryError.

The latest safe version is 2.65.1.

OCI Java SDK 3.x is not affected.

You are affected if:

  • you use version 2.66.0
  • and you use the Apache Connector (which is the default connector in the OCI Java SDK)
  • and you upload streams (e.g. using Object Storage's putObject or uploadPart operations)

Fix:

  • Upgrade to version 2.72.0: https://github.com/oracle/oci-java-sdk/releases/tag/v2.72.0

Other possible work-arounds (not recommended anymore):

  • downgrade to 2.65.1
  • disable the Apache Connector and use the Jersey Default HttpUrlConnectorProvider instead (see https://github.com/oracle/oci-java-sdk/blob/v2.65.1/ApacheConnector-README.md )

mricken avatar May 17 '24 21:05 mricken