David Capwell created CASSANDRA-21055:
-----------------------------------------
Summary: When updating a multi cell collection element, if the
update is rejected then the shared Row.Builder is not freed causing all future
mutations to be rejected
Key: CASSANDRA-21055
URL: https://issues.apache.org/jira/browse/CASSANDRA-21055
Project: Apache Cassandra
Issue Type: Bug
Components: Consistency/Coordination
Reporter: David Capwell
Assignee: David Capwell
BTreeRow.pooledUnsortedBuilder() is used to lower memory costs for requests,
and need to call builder.build() to trigger cleanup of resources; but this does
not happen if the mutation is rejected!
{code}
UPDATE tbl SET col[0] = 42 WHERE pk = 0;
{code}
The query above is able to hit this when the pk doesn’t exist, it leaks the
BTreeRow.Builder and all mutations to this thread will now reject as
org.apache.cassandra.db.rows.BTreeRow.Builder#newRow will detect this happened
and will trigger a assert.
This was found in CASSANDRA-20828, but forking off into its own issue for
better isolation.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]