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

Update Guava to version 16

    XMLWordPrintableJSON

    Details

    • Type: Improvement
    • Status: Resolved
    • Priority: Low
    • Resolution: Fixed
    • Fix Version/s: 2.1 beta1
    • Component/s: None
    • Labels:
      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

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

                Dates

                • Created:
                  Updated:
                  Resolved: