Allocation of 360434219 exceeds 10% of free system memory.
Nobody has claimed this yet.
Assessment
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Newbie friendliness
- 30/100
- Issue type
- Bug
- Clarity
- Needs clarification
- Activity status
- Stale
- Tech stack
- java, tensorflow
- Domain
- backend, machine-learning
Research direction
Start with the Java initialization path in @PostConstruct and the predict method, then review how Session and Graph resources are managed alongside tensors and results. Reproduce the Docker memory warning with the reported TensorFlow, Java, and Python versions if possible; done means identifying whether the session lifecycle causes the crash or documenting the missing reproduction details and correct resource handling.
Written by the indexing model from the issue text.
Description
Please make sure that this is a bug. As per our GitHub Policy, we only address code/doc bugs, performance issues, feature requests and build/installation issues on GitHub. tag:bug_template
System information
- Have I written custom code (as opposed to using a stock example script provided in TensorFlow):
- OS Platform and Distribution (e.g., Linux Ubuntu 16.04 x86_64): Linux x86_64 in a Docker cointainer
- TensorFlow installed from (source or binary):
- TensorFlow version (use command below): 1.0.0-RC.2
- Java version (i.e., the output of
java -version): openjdk version "21.0.4" - Java command line flags (e.g., GC parameters):
- Python version (if transferring a model trained in Python): 3.9
- Bazel version (if compiling from source):
- GCC/Compiler version (if compiling from source):
- CUDA/cuDNN version:
- GPU model and memory:
Describe the current behavior
I am using TensorFlow in a Spring Boot application, which exposes an endpoint for NER processing. The TensorFlow model is trained in Python and loaded into the Java application for inference.
To optimize performance, I initialize the TensorFlow session once during application startup using a @PostConstruct method and store it in a private field:
private Session session;
@PostConstruct
private void initialize() throws IOException {
byte[] bytes = Files.readAllBytes(Paths.get("/path/to/model/"));
Graph graph = new Graph();
graph.importGraphDef(GraphDef.parseFrom(bytes), "PREFIX");
session = new Session(graph);
}
The session is reused in a public method for running predictions:
public Result predict(String input) {
try (Tensor textTensor = Tensor.of(TINT32.class, ...);
Result result = session.runner()
.feed("otherOperationName", textTensor)
.fetch("operationName")
.run()) {
// Process the result here
}
}
During performance testing, I monitored the heap memory and found no significant issues. However, when the application runs in a Docker container, it crashes after a while, regardless of the memory allocated to the container (even with 120GB of memory). The following warning appears in the logs before the crash:
W external/local_tsl//framework/cpu_allocator_impl.cc:83] Allocation of 34891293 exceeds 10% of free system memory.
Is it possible that the memory leak is caused by the session being stored in a private field and never explicitly closed, even though all tensors and intermediate results are properly managed (closed) in the predict method?
Describe the expected behavior
The application should not exhibit memory leaks or crashes when deployed in a Docker container, regardless of memory allocation.
- Dominant language
- Java
- Stars
- 928
- Forks
- 227
- PR merge metrics
- No merged PRs in 30d
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from tensorflow/java
-
Difficulty 2/5 1-3 hours Newbie friendliness 65/100
tensorflow/java#653 · 1 comment · 4 reactions ·
-
Difficulty 5/5 Over a week Newbie friendliness 25/100
tensorflow/java#621 · 4 comments ·
-
Difficulty 5/5 Over a week Newbie friendliness 25/100
tensorflow/java#617 · 3 comments ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 55/100
tensorflow/java#615 · 1 comment ·
-
Difficulty 5/5 Over a week Newbie friendliness 25/100
tensorflow/java#614 · 1 comment ·
Similar issues
-
bug
Difficulty 1/5 Under an hour Newbie friendliness 90/100
apache/cloudstack#14222 ·
-
[BUG]茶杯方块在取茶时会引发崩溃 Open
Difficulty 2/5 1-3 hours Newbie friendliness 88/100
-
1.0.0-alpha2 Type/Improvement
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
wso2/dpdp-accelerator#272 ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 82/100
infinispan/infinispan#18150 ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
puj-course/FIS_2630_1204_G1#294 ·