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

bulkLoad() method in StorageService throws AssertionError

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Resolved
    • Normal
    • Resolution: Fixed
    • 1.1.2
    • Legacy/Tools
    • None
    • Normal

    Description

      Firstly, I apologize if this is a duplicate, as I cannot find a bug related to that.

      We tried to stream some data to our Cassandra cluster by using JMX bulkLoad method. However, jmx reports a AssertionError since 1.1.0. I haven't really debugged into Cassandra, but by eyeballing the code it seems the AssertionError is thrown from SSTableReader.open() method with the line:

      assert practitioner != null;
      

      and tracing the code backwards, it seems the code in SSTableLoader.openSSTables() method has been changed to get the partitioner from the impl of inner class SSTableLoader.Client:

      sstables.add(SSTableReader.open(desc, components, null, client.getPartitioner()));
      

      This is different than 1.0.x codebase, when the partitioner is retrieved from StorageService:

      sstables.add(SSTableReader.open(desc, components, null, StorageService.getPartitioner()));
      

      The problem seems to me is when StorageService.bulkLoad instantiaties an impl of SSTableLoader.Client() it never does anything with the partitioner, resulting in the call 'client.getPartitioner()' returning null, thus the AssertionError.

      (Note: this is me eyeballing the code only without debugging into it).

      Attachments

        1. 4368.txt
          2 kB
          Brandon Williams

        Activity

          People

            brandon.williams Brandon Williams
            dinoscottie Danny Wong
            Brandon Williams
            Jonathan Ellis
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: