[
https://issues.apache.org/jira/browse/CASSANDRA-8559?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14264532#comment-14264532
]
Sylvain Lebresne commented on CASSANDRA-8559:
---------------------------------------------
I would have suspected that it's the {{deletionInfo()}} that is big, and I'm
not sure why we print that tbh (not only can it be rather big, even if you
don't really do anything wrong, but I'm also not entirely sure what kind of
insights they are supposed to provide in that case). So I simply suggest we
remove that part
The slices however are here to allow the user to identify the query that does
trigger the warning and so I think we should keep them. We could of course
limit the size of the message we create for them, but tbh, I can't really
imagine a real life situation where those could be a problem (and if I'm wrong
here and it's indeed the slices themselves that makes it OOM, I do am really
curious why you need such a crazy query) so I'm not sure how much it's worth
bothering.
> OOM caused by large tombstone warning.
> --------------------------------------
>
> Key: CASSANDRA-8559
> URL: https://issues.apache.org/jira/browse/CASSANDRA-8559
> Project: Cassandra
> Issue Type: Bug
> Components: Core
> Environment: 2.0.11 / 2.1
> Reporter: Dominic Letz
> Attachments: Selection_048.png
>
>
> When running with high amount of tombstones the error message generation from
> CASSANDRA-6117 can lead to out of memory situation with the default setting.
> Attached a heapdump viewed in visualvm showing how this construct created two
> 777mb strings to print the error message for a read query and then crashed
> OOM.
> {code}
> if (respectTombstoneThresholds() && columnCounter.ignored() >
> DatabaseDescriptor.getTombstoneWarnThreshold())
> {
> StringBuilder sb = new StringBuilder();
> CellNameType type = container.metadata().comparator;
> for (ColumnSlice sl : slices)
> {
> assert sl != null;
> sb.append('[');
> sb.append(type.getString(sl.start));
> sb.append('-');
> sb.append(type.getString(sl.finish));
> sb.append(']');
> }
> logger.warn("Read {} live and {} tombstoned cells in {}.{} (see
> tombstone_warn_threshold). {} columns was requested, slices={}, delInfo={}",
> columnCounter.live(), columnCounter.ignored(),
> container.metadata().ksName, container.metadata().cfName, count, sb,
> container.deletionInfo());
> }
> {code}
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)