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

Tomo Suzuki edited comment on CASSANDRA-15453 at 3/10/20, 7:11 PM:
-------------------------------------------------------------------

I tried upgrading the Guava version to 28.0 in 3.11 branch 
([suztomo/CASSANDRA-15453 
917464e|https://github.com/suztomo/cassandra/commit/917464eb3fe666be8c00672b905741befea8a66e]).
 The test failure revealed that cassandra-driver-core is not compatible with 
the Guava version on {{NoSuchMethodError: 
com.google.common.base.Objects.firstNonNull}} 
([log|https://gist.github.com/suztomo/3af9dd38b82335b2f0c1813595c6e536]).

While cassandra-driver-core version 3.0.1-shaded has references to the removed 
methods, 3.6.0-shaded does not have references.


{noformat}
suztomo@suxtomo24:~/cassandra/lib$ javap -v -cp 
/tmp/cassandra-driver-core-3.6.0-shaded.jar 
'com.datastax.driver.core.policies.Policies$Builder' |grep firstNonNull
suztomo@suxtomo24:~/cassandra/lib$ javap -v -cp 
cassandra-driver-core-3.0.1-shaded.jar   
'com.datastax.driver.core.policies.Policies$Builder' |grep firstNonNull
   #67 = Utf8               firstNonNull
   #69 = NameAndType        #67:#68       // 
firstNonNull:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
   #70 = Methodref          #66.#69       // 
com/google/common/base/Objects.firstNonNull:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
        28: invokestatic  #70                 // Method 
com/google/common/base/Objects.firstNonNull:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
        41: invokestatic  #70                 // Method 
com/google/common/base/Objects.firstNonNull:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
        54: invokestatic  #70                 // Method 
com/google/common/base/Objects.firstNonNull:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
        67: invokestatic  #70                 // Method 
com/google/common/base/Objects.firstNonNull:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
        80: invokestatic  #70                 // Method 
com/google/common/base/Objects.firstNonNull:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;

{noformat}


Attempt with cassandra-driver-core 3.6.0 failed 
([log|https://gist.github.com/suztomo/20e16ad85b019b919f7b148eab652f30]). 
Notables:

{noformat}
[junit-timeout] Testcase: 
testGroupByWithRangeNamesQueryWithPaging(org.apache.cassandra.cql3.validation.operations.SelectGroupByTest):
  Caused an ERROR
[junit-timeout] Can not use V5 protocol version. Newest supported protocol 
version is: V4. For beta versions, use `allowBetaProtocolVersion` instead

[junit-timeout] Testcase: 
testJavascriptUserType(org.apache.cassandra.cql3.validation.entities.UFPureScriptTest):
       Caused an ERROR
[junit-timeout] execution of 'cql_test_keyspace.function_43[type_41]' failed: 
java.lang.RuntimeException: java.lang.NoClassDefFoundError: Could not 
initialize class com.datastax.driver.core.Metadata

[junit-timeout] Testcase: 
testJavascriptUTCollections(org.apache.cassandra.cql3.validation.entities.UFPureScriptTest):
  Caused an ERROR
[junit-timeout] execution of 
'cql_test_keyspace.function_6[list<frozen<type_4>>]' failed: 
java.lang.RuntimeException: java.lang.ExceptionInInitializerError

[junit-timeout] Testcase: 
testNoArgs(org.apache.cassandra.tools.CompactionStressTest):  Caused an ERROR
[junit-timeout] java.lang.ClassNotFoundException: 
org.apache.cassandra.stress.CompactionStress
[junit-timeout] java.lang.RuntimeException: java.lang.ClassNotFoundException: 
org.apache.cassandra.stress.CompactionStress

[junit-timeout] Testcase: 
testCustomIndexExpressionSyntax(org.apache.cassandra.index.CustomIndexTest):  
FAILED
[junit-timeout] Query should be invalid but wrong error was thrown. Expected: 
com.datastax.driver.core.exceptions.QueryValidationException, got: 
java.lang.IllegalArgumentException. Query is: SELECT * FROM %s WHERE 
expr(no_such_index, 'foo bar baz ') (values: [])
{noformat}

The older version used in trunk

- 3.6.0 on [Apr 10, 
2018|https://github.com/apache/cassandra/commit/38b49904dd1c71fcb16abfbc205edfd6ce008b76]
- 3.4.0-SNAPSHOT on [Feb 1, 
2018|https://github.com/apache/cassandra/blame/e8ff2f2b8ebb3990b99c81f839f6463bbff381f4/build.xml]
- 4.0.0-SNAPSHOT on [Nov 9, 
2017|https://github.com/apache/cassandra/blame/59a4624d5f9b2c414b200e65b45beed9c5f4db52/build.xml]
- 3.0.1 on [May 23, 
2016|https://github.com/apache/cassandra/blame/4de7a65ed9f3c97658a80dd64032ad6e82e9d58b/build.xml]


Attemtp with cassandra-driver-core 3.4.0 failed (). Notables:


{noformat}
[junit-timeout] Testcase: org.apache.cassandra.cql3.ViewTest:   Caused an ERROR
[junit-timeout] 
com.google.common.util.concurrent.MoreExecutors.sameThreadExecutor()Lcom/google/common/util/concurrent/ListeningExecutorService;
[junit-timeout] java.lang.NoSuchMethodError: 
com.google.common.util.concurrent.MoreExecutors.sameThreadExecutor()Lcom/google/common/util/concurrent/ListeningExecutorService;

[junit-timeout] Testcase: 
testSelectJsonWithPagingWithFrozenTuple(org.apache.cassandra.cql3.validation.entities.JsonTest):
      Caused an ERROR
[junit-timeout] null
[junit-timeout] java.lang.NullPointerException
{noformat}




was (Author: suztomo):
I tried upgrading the Guava version to 28.0 in 3.11 branch 
([suztomo/CASSANDRA-15453 
917464e|https://github.com/suztomo/cassandra/commit/917464eb3fe666be8c00672b905741befea8a66e]).
 The test failure revealed that cassandra-driver-core is not compatible with 
the Guava version on {{NoSuchMethodError: 
com.google.common.base.Objects.firstNonNull}} 
([log|https://gist.github.com/suztomo/3af9dd38b82335b2f0c1813595c6e536]).

While cassandra-driver-core version 3.0.1-shaded has references to the removed 
methods, 3.6.0-shaded does not have references.


{noformat}
suztomo@suxtomo24:~/cassandra/lib$ javap -v -cp 
/tmp/cassandra-driver-core-3.6.0-shaded.jar 
'com.datastax.driver.core.policies.Policies$Builder' |grep firstNonNull
suztomo@suxtomo24:~/cassandra/lib$ javap -v -cp 
cassandra-driver-core-3.0.1-shaded.jar   
'com.datastax.driver.core.policies.Policies$Builder' |grep firstNonNull
   #67 = Utf8               firstNonNull
   #69 = NameAndType        #67:#68       // 
firstNonNull:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
   #70 = Methodref          #66.#69       // 
com/google/common/base/Objects.firstNonNull:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
        28: invokestatic  #70                 // Method 
com/google/common/base/Objects.firstNonNull:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
        41: invokestatic  #70                 // Method 
com/google/common/base/Objects.firstNonNull:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
        54: invokestatic  #70                 // Method 
com/google/common/base/Objects.firstNonNull:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
        67: invokestatic  #70                 // Method 
com/google/common/base/Objects.firstNonNull:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
        80: invokestatic  #70                 // Method 
com/google/common/base/Objects.firstNonNull:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;

{noformat}


Attempt with cassandra-driver-core 3.6.0 failed 
([log|https://gist.github.com/suztomo/20e16ad85b019b919f7b148eab652f30]). 
Notables:

{noformat}
[junit-timeout] Testcase: 
testGroupByWithRangeNamesQueryWithPaging(org.apache.cassandra.cql3.validation.operations.SelectGroupByTest):
  Caused an ERROR
[junit-timeout] Can not use V5 protocol version. Newest supported protocol 
version is: V4. For beta versions, use `allowBetaProtocolVersion` instead

[junit-timeout] Testcase: 
testJavascriptUserType(org.apache.cassandra.cql3.validation.entities.UFPureScriptTest):
       Caused an ERROR
[junit-timeout] execution of 'cql_test_keyspace.function_43[type_41]' failed: 
java.lang.RuntimeException: java.lang.NoClassDefFoundError: Could not 
initialize class com.datastax.driver.core.Metadata

[junit-timeout] Testcase: 
testJavascriptUTCollections(org.apache.cassandra.cql3.validation.entities.UFPureScriptTest):
  Caused an ERROR
[junit-timeout] execution of 
'cql_test_keyspace.function_6[list<frozen<type_4>>]' failed: 
java.lang.RuntimeException: java.lang.ExceptionInInitializerError

[junit-timeout] Testcase: 
testNoArgs(org.apache.cassandra.tools.CompactionStressTest):  Caused an ERROR
[junit-timeout] java.lang.ClassNotFoundException: 
org.apache.cassandra.stress.CompactionStress
[junit-timeout] java.lang.RuntimeException: java.lang.ClassNotFoundException: 
org.apache.cassandra.stress.CompactionStress

[junit-timeout] Testcase: 
testCustomIndexExpressionSyntax(org.apache.cassandra.index.CustomIndexTest):  
FAILED
[junit-timeout] Query should be invalid but wrong error was thrown. Expected: 
com.datastax.driver.core.exceptions.QueryValidationException, got: 
java.lang.IllegalArgumentException. Query is: SELECT * FROM %s WHERE 
expr(no_such_index, 'foo bar baz ') (values: [])
{noformat}

The older version used in trunk

- 3.6.0 on [Apr 10, 
2018|https://github.com/apache/cassandra/commit/38b49904dd1c71fcb16abfbc205edfd6ce008b76]
- 3.4.0-SNAPSHOT on [Feb 1, 
2018|https://github.com/apache/cassandra/blame/e8ff2f2b8ebb3990b99c81f839f6463bbff381f4/build.xml]
- 4.0.0-SNAPSHOT on [Nov 9, 
2017|https://github.com/apache/cassandra/blame/59a4624d5f9b2c414b200e65b45beed9c5f4db52/build.xml]
- 3.0.1 on [May 23, 
2016|https://github.com/apache/cassandra/blame/4de7a65ed9f3c97658a80dd64032ad6e82e9d58b/build.xml]


Attemtp with cassandra-driver-core 3.4.0 failed (). Notables:


{noformat}
[junit-timeout] Testcase: org.apache.cassandra.cql3.ViewTest:   Caused an ERROR
[junit-timeout] 
com.google.common.util.concurrent.MoreExecutors.sameThreadExecutor()Lcom/google/common/util/concurrent/ListeningExecutorService;
[junit-timeout] java.lang.NoSuchMethodError: 
com.google.common.util.concurrent.MoreExecutors.sameThreadExecutor()Lcom/google/common/util/concurrent/ListeningExecutorService;
{noformat}


> Upgrade Guava to the same version as master on 3.11 branch
> ----------------------------------------------------------
>
>                 Key: CASSANDRA-15453
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-15453
>             Project: Cassandra
>          Issue Type: Improvement
>          Components: Dependencies
>            Reporter: Tomo Suzuki
>            Priority: Normal
>
> Can we backport the Guava version upgrade (CASSANDRA-15248) into 3.11 branch?
> h3. Background
> I'm trying to upgrade Apache Beam's dependencies to latest versions. Apache 
> Beam depends on Cassandra 3 ({{org.apache.cassandra:cassandra-all:3.11.3}}).
> Cassandra 3 touches on Guava's old fields (and potentially methods), such as 
> CharMatcher.DIGIT, are blocking Apache Beam's Guava dependency upgrade 
> (BEAM-8911); the field is removed in Guava 26.0. Because of this, Apache 
> Beam's Guava dependency must be lower than version 26.0.
> I see the latest cassandra-all release on 3.X is 3.11.5, which still relies 
> on Guava 18. This version does not have {{CharMatcher.digit()}}, the 
> replacement of old {{CharMatcher.DIGIT}}. To get rid of {{CharMatcher.DIGIT}} 
> and thus let Apache Beam to use Guava 26 and higher, we need to upgrade 
> Cassandra3's Guava version.
> h4. Test failure Beam's HadoopFormatIOCassandraTest
> Apache Beam's {{:sdks:java:io:hadoop-format}} has 
> {{HadoopFormatIOCassandraTest}} that failed when I tried to upgrade Guava 
> version to 26: 
> https://github.com/GoogleCloudPlatform/cloud-opensource-java/issues/1028#issuecomment-557680928
>  .
> h3. How about waiting for Cassandra version 4(-alpha)?
> I thought about Cassandra "4", which has a recent version of Guava. However, 
> I believe quite a few Cassandra/Beam users will keep using Casandra 3 for 
> several years. I want such users to be able to use the higher version of 
> Guava. 
> h3. Shading?
> Shading makes build process complex. When things go wrong due to this, it's 
> hard to debug ([JLBP18|https://jlbp.dev/JLBP-18.html]). 
> h3. CASSANDRA-15248 "Upgrade Guava to latest on master branch",
> I found CASSANDRA-15248 "Upgrade Guava to latest on master branch", but this 
> did not go into 3.11 branch. Can we backport this Guava version upgrade 
> (CASSANDRA-15248) into 3.11 branch?



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org
For additional commands, e-mail: commits-h...@cassandra.apache.org

Reply via email to