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

Update Guava to version 16

    XMLWordPrintableJSON

Details

    • Improvement
    • Status: Resolved
    • Low
    • Resolution: Fixed
    • 2.1 beta1
    • None
    • None

    Description

      Currently C* uses Guava 15. I tried to update my code to use Guava 16 and my integration tests, that use C*, started to produce the following traces:

      [INFO ] 10:00:12.600 [CompactionExecutor:2][][] ERROR CassandraDaemon:187 - Exception in thread Thread[CompactionExecutor:2,1,main]
      [INFO ] java.lang.NoSuchMethodError: com.google.common.util.concurrent.RateLimiter.acquire(I)V
      [INFO ] 	at org.apache.cassandra.io.compress.CompressedThrottledReader.reBuffer(CompressedThrottledReader.java:40) ~[cassandra-all-2.0.4.jar:2.0.4]
      [INFO ] 	at org.apache.cassandra.io.util.RandomAccessReader.seek(RandomAccessReader.java:280) ~[cassandra-all-2.0.4.jar:2.0.4]
      [INFO ] 	at org.apache.cassandra.io.sstable.SSTableScanner$KeyScanningIterator.computeNext(SSTableScanner.java:256) ~[cassandra-all-2.0.4.jar:2.0.4]
      [INFO ] 	at org.apache.cassandra.io.sstable.SSTableScanner$KeyScanningIterator.computeNext(SSTableScanner.java:197) ~[cassandra-all-2.0.4.jar:2.0.4]
      [INFO ] 	at com.google.common.collect.AbstractIterator.tryToComputeNext(AbstractIterator.java:143) ~[guava-16.0.jar:na]
      [INFO ] 	at com.google.common.collect.AbstractIterator.hasNext(AbstractIterator.java:138) ~[guava-16.0.jar:na]
      [INFO ] 	at org.apache.cassandra.io.sstable.SSTableScanner.hasNext(SSTableScanner.java:177) ~[cassandra-all-2.0.4.jar:2.0.4]
      [INFO ] 	at org.apache.cassandra.utils.MergeIterator$Candidate.advance(MergeIterator.java:144) ~[cassandra-all-2.0.4.jar:2.0.4]
      [INFO ] 	at org.apache.cassandra.utils.MergeIterator$ManyToOne.<init>(MergeIterator.java:87) ~[cassandra-all-2.0.4.jar:2.0.4]
      [INFO ] 	at org.apache.cassandra.utils.MergeIterator.get(MergeIterator.java:46) ~[cassandra-all-2.0.4.jar:2.0.4]
      [INFO ] 	at org.apache.cassandra.db.compaction.CompactionIterable.iterator(CompactionIterable.java:47) ~[cassandra-all-2.0.4.jar:2.0.4]
      [INFO ] 	at org.apache.cassandra.db.compaction.CompactionTask.runWith(CompactionTask.java:129) ~[cassandra-all-2.0.4.jar:2.0.4]
      [INFO ] 	at org.apache.cassandra.io.util.DiskAwareRunnable.runMayThrow(DiskAwareRunnable.java:48) ~[cassandra-all-2.0.4.jar:2.0.4]
      [INFO ] 	at org.apache.cassandra.utils.WrappedRunnable.run(WrappedRunnable.java:28) ~[cassandra-all-2.0.4.jar:2.0.4]
      [INFO ] 	at org.apache.cassandra.db.compaction.CompactionTask.executeInternal(CompactionTask.java:60) ~[cassandra-all-2.0.4.jar:2.0.4]
      [INFO ] 	at org.apache.cassandra.db.compaction.AbstractCompactionTask.execute(AbstractCompactionTask.java:59) ~[cassandra-all-2.0.4.jar:2.0.4]
      [INFO ] 	at org.apache.cassandra.db.compaction.CompactionManager$BackgroundCompactionTask.run(CompactionManager.java:197) ~[cassandra-all-2.0.4.jar:2.0.4]
      [INFO ] 	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471) ~[na:1.7.0_51]
      [INFO ] 	at java.util.concurrent.FutureTask.run(FutureTask.java:262) ~[na:1.7.0_51]
      [INFO ] 	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) ~[na:1.7.0_51]
      [INFO ] 	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) [na:1.7.0_51]
      [INFO ] 	at java.lang.Thread.run(Thread.java:744) [na:1.7.0_51]
      

      Exception does not influence the tests and they run ok, however this is disturbing. The cause is that Guava changed the signature of the mentioned method to return double instead of void in 16 release. So, can the dependency be updated to avoid the inconvenience? Thanks.

      p.s. I found a workaround for integration tests - just add the Guava 15 dependency to the cassandra-maven-plugin configuration as follows:

      <plugin>
      	<groupId>org.codehaus.mojo</groupId>
      	<artifactId>cassandra-maven-plugin</artifactId>
      	<version>2.0.0-1</version>
      	<dependencies>
      		<dependency>
      			<groupId>com.google.guava</groupId>
      			<artifactId>guava</artifactId>
      			<version>15.0</version>
      		</dependency>
      	</dependencies>
      <plugin>
      

      Attachments

        1. trunk-6639.patch
          4.83 MB
          Mikhail Stepura

        Issue Links

          Activity

            People

              mishail Mikhail Stepura
              ash2k Mikhail Mazursky
              Mikhail Stepura
              Votes:
              0 Vote for this issue
              Watchers:
              9 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: