You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by "J.B. Langston (JIRA)" <ji...@apache.org> on 2015/02/04 15:14:37 UTC

[jira] [Commented] (CASSANDRA-8559) OOM caused by large tombstone warning.

    [ https://issues.apache.org/jira/browse/CASSANDRA-8559?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14305113#comment-14305113 ] 

J.B. Langston commented on CASSANDRA-8559:
------------------------------------------

I have seen another user hit this. In this case, the log message was triggered by a bad query and an even worse data model, but it's too easy for new users to Cassandra to stumble across this. If someone shoots themselves in the foot, we should try not to blow their whole leg off.  So I'm +1 on having a limit to the amount of information we log.

> 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
>              Labels: tombstone
>             Fix For: 2.0.13
>
>         Attachments: Selection_048.png, cassandra-2.0.11-8559.txt, stacktrace.log
>
>
> 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)