Uploaded image for project: 'Cassandra'
  1. Cassandra
  2. CASSANDRA-9530

SSTable corruption can trigger OOM

    XMLWordPrintableJSON

Details

    • Normal

    Description

      If a sstable is corrupted so that the length of a given value is bogus, we'll still happily try to allocate a buffer of that bogus size to read the value, which can easily lead to an OOM.

      We should probably protect against this. In practice, a given value can be so big since it's limited by the protocol frame size in the first place. Maybe we could add a max_value_size_in_mb setting and we'd considered a sstable corrupted if it was containing a value bigger than that.

      I'll note that this ticket would be a good occasion to improve BlacklistingCompactionsTest. Typically, it currently generate empty values which makes it pretty much impossible to get the problem described here. And as described in CASSANDRA-9478, it also doesn't test properly for thing like early opening of compaction results. We could try to randomize as much of the parameters of this test as possible to make it more likely to catch any type of corruption that could happen.

      Attachments

        Issue Links

          Activity

            People

              ifesdjeen Alex Petrov
              slebresne Sylvain Lebresne
              Alex Petrov
              Stefania Alborghetti
              Votes:
              0 Vote for this issue
              Watchers:
              8 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: