[
https://issues.apache.org/jira/browse/CASSANDRA-21227?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
C. Scott Andreas updated CASSANDRA-21227:
-----------------------------------------
Resolution: Not A Bug
Status: Resolved (was: Triage Needed)
> Lack of heap quotas and compilation boundaries in Java UDFs leads to severe
> Daemon stability risks
> --------------------------------------------------------------------------------------------------
>
> Key: CASSANDRA-21227
> URL: https://issues.apache.org/jira/browse/CASSANDRA-21227
> Project: Apache Cassandra
> Issue Type: Bug
> Reporter: Cyl
> Priority: Normal
>
> Hi team,
> While user_defined_functions_enabled is disabled by default for security
> reasons, enabling it introduces severe stability risks that are currently
> unguarded, even for authorized users with CREATE FUNCTION permissions:
> 1. Compilation Thread Pool Exhaustion: Synchronous compilation of large Java
> internal bodies via ECJ runs squarely on Dispatcher.requestExecutor.
> Submitting multiple complex UDF creations concurrently stalls the node's
> standard query capabilities (CPU exhaustion).
> 2. Heap Memory Exhaustion (OOM): While execution time is guarded (default
> 500ms), heap usage is not. A UDF that allocates massive arrays (e.g.,
> multi-gigabyte byte[]) can easily force the Cassandra JVM to OOM and crash
> the Daemon entirely in just a few seconds, long before the execution timeout
> is triggered.
> Suggestions for improvement:
> - Introduce a per-invocation UDF heap allocation tracker or quota.
> - Rate-limit CREATE FUNCTION validations and strictly offload compilation
> payloads away from the requestExecutor pool (so malicious multi-thousand line
> submissions won't lock user traffic).
--
This message was sent by Atlassian Jira
(v8.20.10#820010)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]