LuciferYang opened a new issue, #13106:
URL: https://github.com/apache/gluten/issues/13106

   `TaskResourceRegistry.releaseAll` releases task resources highest-priority 
first (100 → 50 → 30), in reverse registration order. If one resource's 
`release()` throws, the `foreach` aborts: every remaining lower-priority 
resource is skipped, and `priorityToResourcesMapping` / `resources` are never 
cleared. The completion listener also then skips 
`RESOURCE_REGISTRIES.remove(context)`.
   
   A throwing `release()` is reachable on task failure/teardown. Priority-100 
recyclers close native `ColumnarBatch` payloads and priority-50 shuffle readers 
call `jniWrapper.stop`, both of which surface JNI errors as exceptions. When 
one of those throws, the priority-30 `Runtime` (which owns the native memory 
manager and native threads) never releases, so its off-heap memory leaks. 
Across repeatedly-failing tasks on a long-lived executor this compounds into an 
OOM or container kill.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to