From commits-return-210526-archive-asf-public=cust-asf.ponee.io@cassandra.apache.org Tue May 22 07:55:07 2018 Return-Path: X-Original-To: archive-asf-public@cust-asf.ponee.io Delivered-To: archive-asf-public@cust-asf.ponee.io Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by mx-eu-01.ponee.io (Postfix) with SMTP id 45EF6180638 for ; Tue, 22 May 2018 07:55:06 +0200 (CEST) Received: (qmail 91023 invoked by uid 500); 22 May 2018 05:55:05 -0000 Mailing-List: contact commits-help@cassandra.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@cassandra.apache.org Delivered-To: mailing list commits@cassandra.apache.org Received: (qmail 91012 invoked by uid 99); 22 May 2018 05:55:05 -0000 Received: from pnap-us-west-generic-nat.apache.org (HELO spamd2-us-west.apache.org) (209.188.14.142) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 22 May 2018 05:55:05 +0000 Received: from localhost (localhost [127.0.0.1]) by spamd2-us-west.apache.org (ASF Mail Server at spamd2-us-west.apache.org) with ESMTP id CCB281A2953 for ; Tue, 22 May 2018 05:55:04 +0000 (UTC) X-Virus-Scanned: Debian amavisd-new at spamd2-us-west.apache.org X-Spam-Flag: NO X-Spam-Score: -101.811 X-Spam-Level: X-Spam-Status: No, score=-101.811 tagged_above=-999 required=6.31 tests=[KAM_NUMSUBJECT=0.5, RCVD_IN_DNSWL_MED=-2.3, SPF_PASS=-0.001, T_RP_MATCHES_RCVD=-0.01, USER_IN_WHITELIST=-100] autolearn=disabled Received: from mx1-lw-eu.apache.org ([10.40.0.8]) by localhost (spamd2-us-west.apache.org [10.40.0.9]) (amavisd-new, port 10024) with ESMTP id 6aasGdnAFopT for ; Tue, 22 May 2018 05:55:02 +0000 (UTC) Received: from mailrelay1-us-west.apache.org (mailrelay1-us-west.apache.org [209.188.14.139]) by mx1-lw-eu.apache.org (ASF Mail Server at mx1-lw-eu.apache.org) with ESMTP id 37D295F4E7 for ; Tue, 22 May 2018 05:55:01 +0000 (UTC) Received: from jira-lw-us.apache.org (unknown [207.244.88.139]) by mailrelay1-us-west.apache.org (ASF Mail Server at mailrelay1-us-west.apache.org) with ESMTP id 6040FE0160 for ; Tue, 22 May 2018 05:55:00 +0000 (UTC) Received: from jira-lw-us.apache.org (localhost [127.0.0.1]) by jira-lw-us.apache.org (ASF Mail Server at jira-lw-us.apache.org) with ESMTP id 1F3F821298 for ; Tue, 22 May 2018 05:55:00 +0000 (UTC) Date: Tue, 22 May 2018 05:55:00 +0000 (UTC) From: "Kurt Greaves (JIRA)" To: commits@cassandra.apache.org Message-ID: In-Reply-To: References: Subject: [jira] [Updated] (CASSANDRA-14444) Got NPE when querying Cassandra 3.11.2 MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-JIRA-FingerPrint: 30527f35849b9dde25b450d4833f0394 [ https://issues.apache.org/jira/browse/CASSANDRA-14444?page=3Dcom.atl= assian.jira.plugin.system.issuetabpanels:all-tabpanel ] Kurt Greaves updated CASSANDRA-14444: ------------------------------------- Description:=20 We just upgraded our Cassandra cluster from 2.2.6 to 3.11.2 After upgrading, we immediately got exceptions in Cassandra like this one:= =C2=A0 =C2=A0 {code} ERROR [Native-Transport-Requests-1] 2018-05-11 17:10:21,994 QueryMessage.ja= va:129 - Unexpected error during query java.lang.NullPointerException: null at org.apache.cassandra.dht.RandomPartitioner.getToken(RandomPartitioner.ja= va:248) ~[apache-cassandra-3.11.2.jar:3.11.2] at org.apache.cassandra.dht.RandomPartitioner.decorateKey(RandomPartitioner= .java:92) ~[apache-cassandra-3.11.2.jar:3.11.2] at org.apache.cassandra.config.CFMetaData.decorateKey(CFMetaData.java:666) = ~[apache-cassandra-3.11.2.jar:3.11.2] at org.apache.cassandra.service.pager.PartitionRangeQueryPager.(Parti= tionRangeQueryPager.java:44) ~[apache-cassandra-3.11.2.jar:3.11.2] at org.apache.cassandra.db.PartitionRangeReadCommand.getPager(PartitionRang= eReadCommand.java:268) ~[apache-cassandra-3.11.2.jar:3.11.2] at org.apache.cassandra.cql3.statements.SelectStatement.getPager(SelectStat= ement.java:475) ~[apache-cassandra-3.11.2.jar:3.11.2] at org.apache.cassandra.cql3.statements.SelectStatement.execute(SelectState= ment.java:288) ~[apache-cassandra-3.11.2.jar:3.11.2] at org.apache.cassandra.cql3.statements.SelectStatement.execute(SelectState= ment.java:118) ~[apache-cassandra-3.11.2.jar:3.11.2] at org.apache.cassandra.cql3.QueryProcessor.processStatement(QueryProcessor= .java:224) ~[apache-cassandra-3.11.2.jar:3.11.2] at org.apache.cassandra.cql3.QueryProcessor.process(QueryProcessor.java:255= ) ~[apache-cassandra-3.11.2.jar:3.11.2] at org.apache.cassandra.cql3.QueryProcessor.process(QueryProcessor.java:240= ) ~[apache-cassandra-3.11.2.jar:3.11.2] at org.apache.cassandra.transport.messages.QueryMessage.execute(QueryMessag= e.java:116) ~[apache-cassandra-3.11.2.jar:3.11.2] at org.apache.cassandra.transport.Message$Dispatcher.channelRead0(Message.j= ava:517) [apache-cassandra-3.11.2.jar:3.11.2] at org.apache.cassandra.transport.Message$Dispatcher.channelRead0(Message.j= ava:410) [apache-cassandra-3.11.2.jar:3.11.2] at io.netty.channel.SimpleChannelInboundHandler.channelRead(SimpleChannelIn= boundHandler.java:105) [netty-all-4.0.44.Final.jar:4.0.44.Final] at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(Abstrac= tChannelHandlerContext.java:357) [netty-all-4.0.44.Final.jar:4.0.44.Final] at io.netty.channel.AbstractChannelHandlerContext.access$600(AbstractChanne= lHandlerContext.java:35) [netty-all-4.0.44.Final.jar:4.0.44.Final] at io.netty.channel.AbstractChannelHandlerContext$7.run(AbstractChannelHand= lerContext.java:348) [netty-all-4.0.44.Final.jar:4.0.44.Final] at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) = [na:1.8.0_171] at org.apache.cassandra.concurrent.AbstractLocalAwareExecutorService$Future= Task.run(AbstractLocalAwareExecutorService.java:162) [apache-cassandra-3.11= .2.jar:3.11.2] at org.apache.cassandra.concurrent.SEPWorker.run(SEPWorker.java:109) [apach= e-cassandra-3.11.2.jar:3.11.2] at java.lang.Thread.run(Thread.java:748) [na:1.8.0_171] {code} =C2=A0 The table schema is like: {code} CREATE TABLE example.example_table ( id bigint, hash text, json text, PRIMARY KEY (id, hash) ) WITH COMPACT STORAGE {code} =C2=A0 The query is something like: {code} "select * from=C2=A0example.example_table;" //=C2=A0(We do know this is bad= practise, and we are trying to fix that right now) {code} with fetch-size as 200, using DataStax Java driver.=C2=A0 This table contains about 20k rows.=C2=A0 =C2=A0 Actually, the fix is quite simple,=C2=A0 =C2=A0 {code} --- a/src/java/org/apache/cassandra/service/pager/PagingState.java +++ b/src/java/org/apache/cassandra/service/pager/PagingState.java @@ -46,7 +46,7 @@ public class PagingState public PagingState(ByteBuffer partitionKey, RowMark rowMark, int remaining,= int remainingInPartition) { - this.partitionKey =3D partitionKey; + this.partitionKey =3D partitionKey =3D=3D null ? ByteBufferUtil.EMPTY_BYT= E_BUFFER : partitionKey; this.rowMark =3D rowMark; this.remaining =3D remaining; this.remainingInPartition =3D remainingInPartition; {code} =C2=A0 "partitionKey =3D=3D null ? ByteBufferUtil.EMPTY_BYTE_BUFFER : partitionKey= ;" is in 2.2.6 and 2.2.8. But it was removed for some reason.=C2=A0 The interesting part is that, we have:=C2=A0 {code} public final ByteBuffer partitionKey; // Can be null for single partition q= ueries. {code} It seems "partitionKey" could be null. Thanks a lot.=C2=A0 =C2=A0 =C2=A0 =C2=A0 was: We just upgraded our Cassandra cluster from 2.2.6 to 3.11.2 After upgrading, we immediately got exceptions in Cassandra like this one:= =C2=A0 =C2=A0 ERROR [Native-Transport-Requests-1] 2018-05-11 17:10:21,994 QueryMessage.ja= va:129 - Unexpected error during query java.lang.NullPointerException: null at org.apache.cassandra.dht.RandomPartitioner.getToken(RandomPartitioner.ja= va:248) ~[apache-cassandra-3.11.2.jar:3.11.2] at org.apache.cassandra.dht.RandomPartitioner.decorateKey(RandomPartitioner= .java:92) ~[apache-cassandra-3.11.2.jar:3.11.2] at org.apache.cassandra.config.CFMetaData.decorateKey(CFMetaData.java:666) = ~[apache-cassandra-3.11.2.jar:3.11.2] at org.apache.cassandra.service.pager.PartitionRangeQueryPager.(Parti= tionRangeQueryPager.java:44) ~[apache-cassandra-3.11.2.jar:3.11.2] at org.apache.cassandra.db.PartitionRangeReadCommand.getPager(PartitionRang= eReadCommand.java:268) ~[apache-cassandra-3.11.2.jar:3.11.2] at org.apache.cassandra.cql3.statements.SelectStatement.getPager(SelectStat= ement.java:475) ~[apache-cassandra-3.11.2.jar:3.11.2] at org.apache.cassandra.cql3.statements.SelectStatement.execute(SelectState= ment.java:288) ~[apache-cassandra-3.11.2.jar:3.11.2] at org.apache.cassandra.cql3.statements.SelectStatement.execute(SelectState= ment.java:118) ~[apache-cassandra-3.11.2.jar:3.11.2] at org.apache.cassandra.cql3.QueryProcessor.processStatement(QueryProcessor= .java:224) ~[apache-cassandra-3.11.2.jar:3.11.2] at org.apache.cassandra.cql3.QueryProcessor.process(QueryProcessor.java:255= ) ~[apache-cassandra-3.11.2.jar:3.11.2] at org.apache.cassandra.cql3.QueryProcessor.process(QueryProcessor.java:240= ) ~[apache-cassandra-3.11.2.jar:3.11.2] at org.apache.cassandra.transport.messages.QueryMessage.execute(QueryMessag= e.java:116) ~[apache-cassandra-3.11.2.jar:3.11.2] at org.apache.cassandra.transport.Message$Dispatcher.channelRead0(Message.j= ava:517) [apache-cassandra-3.11.2.jar:3.11.2] at org.apache.cassandra.transport.Message$Dispatcher.channelRead0(Message.j= ava:410) [apache-cassandra-3.11.2.jar:3.11.2] at io.netty.channel.SimpleChannelInboundHandler.channelRead(SimpleChannelIn= boundHandler.java:105) [netty-all-4.0.44.Final.jar:4.0.44.Final] at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(Abstrac= tChannelHandlerContext.java:357) [netty-all-4.0.44.Final.jar:4.0.44.Final] at io.netty.channel.AbstractChannelHandlerContext.access$600(AbstractChanne= lHandlerContext.java:35) [netty-all-4.0.44.Final.jar:4.0.44.Final] at io.netty.channel.AbstractChannelHandlerContext$7.run(AbstractChannelHand= lerContext.java:348) [netty-all-4.0.44.Final.jar:4.0.44.Final] at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) = [na:1.8.0_171] at org.apache.cassandra.concurrent.AbstractLocalAwareExecutorService$Future= Task.run(AbstractLocalAwareExecutorService.java:162) [apache-cassandra-3.11= .2.jar:3.11.2] at org.apache.cassandra.concurrent.SEPWorker.run(SEPWorker.java:109) [apach= e-cassandra-3.11.2.jar:3.11.2] at java.lang.Thread.run(Thread.java:748) [na:1.8.0_171] =C2=A0 The table schema is like: CREATE TABLE example.example_table ( id bigint, hash text, json text, PRIMARY KEY (id, hash) ) WITH COMPACT STORAGE =C2=A0 The query is something like: "select * from=C2=A0example.example_table;" //=C2=A0(We do know this is bad= practise, and we are trying to fix that right now) with fetch-size as 200, using DataStax Java driver.=C2=A0 This table contains about 20k rows.=C2=A0 =C2=A0 Actually, the fix is quite simple,=C2=A0 =C2=A0 --- a/src/java/org/apache/cassandra/service/pager/PagingState.java +++ b/src/java/org/apache/cassandra/service/pager/PagingState.java @@ -46,7 +46,7 @@ public class PagingState public PagingState(ByteBuffer partitionKey, RowMark rowMark, int remaining,= int remainingInPartition) { - this.partitionKey =3D partitionKey; + this.partitionKey =3D partitionKey =3D=3D null ? ByteBufferUtil.EMPTY_BYT= E_BUFFER : partitionKey; this.rowMark =3D rowMark; this.remaining =3D remaining; this.remainingInPartition =3D remainingInPartition; =C2=A0 "partitionKey =3D=3D null ? ByteBufferUtil.EMPTY_BYTE_BUFFER : partitionKey= ;" is in 2.2.6 and 2.2.8. But it was removed for some reason.=C2=A0 The interesting part is that, we have:=C2=A0 public final ByteBuffer partitionKey; // Can be null for single partition q= ueries. It seems "partitionKey" could be null. Thanks a lot.=C2=A0 =C2=A0 =C2=A0 =C2=A0 > Got NPE when querying Cassandra 3.11.2 > -------------------------------------- > > Key: CASSANDRA-14444 > URL: https://issues.apache.org/jira/browse/CASSANDRA-1444= 4 > Project: Cassandra > Issue Type: Bug > Components: CQL > Environment: Ubuntu 14.04, JDK 1.8.0_171.=C2=A0 > Cassandra 3.11.2 > Reporter: Xiaodong Xie > Priority: Blocker > > We just upgraded our Cassandra cluster from 2.2.6 to 3.11.2 > After upgrading, we immediately got exceptions in Cassandra like this one= :=C2=A0 > =C2=A0 > {code} > ERROR [Native-Transport-Requests-1] 2018-05-11 17:10:21,994 QueryMessage.= java:129 - Unexpected error during query > java.lang.NullPointerException: null > at org.apache.cassandra.dht.RandomPartitioner.getToken(RandomPartitioner.= java:248) ~[apache-cassandra-3.11.2.jar:3.11.2] > at org.apache.cassandra.dht.RandomPartitioner.decorateKey(RandomPartition= er.java:92) ~[apache-cassandra-3.11.2.jar:3.11.2] > at org.apache.cassandra.config.CFMetaData.decorateKey(CFMetaData.java:666= ) ~[apache-cassandra-3.11.2.jar:3.11.2] > at org.apache.cassandra.service.pager.PartitionRangeQueryPager.(Par= titionRangeQueryPager.java:44) ~[apache-cassandra-3.11.2.jar:3.11.2] > at org.apache.cassandra.db.PartitionRangeReadCommand.getPager(PartitionRa= ngeReadCommand.java:268) ~[apache-cassandra-3.11.2.jar:3.11.2] > at org.apache.cassandra.cql3.statements.SelectStatement.getPager(SelectSt= atement.java:475) ~[apache-cassandra-3.11.2.jar:3.11.2] > at org.apache.cassandra.cql3.statements.SelectStatement.execute(SelectSta= tement.java:288) ~[apache-cassandra-3.11.2.jar:3.11.2] > at org.apache.cassandra.cql3.statements.SelectStatement.execute(SelectSta= tement.java:118) ~[apache-cassandra-3.11.2.jar:3.11.2] > at org.apache.cassandra.cql3.QueryProcessor.processStatement(QueryProcess= or.java:224) ~[apache-cassandra-3.11.2.jar:3.11.2] > at org.apache.cassandra.cql3.QueryProcessor.process(QueryProcessor.java:2= 55) ~[apache-cassandra-3.11.2.jar:3.11.2] > at org.apache.cassandra.cql3.QueryProcessor.process(QueryProcessor.java:2= 40) ~[apache-cassandra-3.11.2.jar:3.11.2] > at org.apache.cassandra.transport.messages.QueryMessage.execute(QueryMess= age.java:116) ~[apache-cassandra-3.11.2.jar:3.11.2] > at org.apache.cassandra.transport.Message$Dispatcher.channelRead0(Message= .java:517) [apache-cassandra-3.11.2.jar:3.11.2] > at org.apache.cassandra.transport.Message$Dispatcher.channelRead0(Message= .java:410) [apache-cassandra-3.11.2.jar:3.11.2] > at io.netty.channel.SimpleChannelInboundHandler.channelRead(SimpleChannel= InboundHandler.java:105) [netty-all-4.0.44.Final.jar:4.0.44.Final] > at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(Abstr= actChannelHandlerContext.java:357) [netty-all-4.0.44.Final.jar:4.0.44.Final= ] > at io.netty.channel.AbstractChannelHandlerContext.access$600(AbstractChan= nelHandlerContext.java:35) [netty-all-4.0.44.Final.jar:4.0.44.Final] > at io.netty.channel.AbstractChannelHandlerContext$7.run(AbstractChannelHa= ndlerContext.java:348) [netty-all-4.0.44.Final.jar:4.0.44.Final] > at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511= ) [na:1.8.0_171] > at org.apache.cassandra.concurrent.AbstractLocalAwareExecutorService$Futu= reTask.run(AbstractLocalAwareExecutorService.java:162) [apache-cassandra-3.= 11.2.jar:3.11.2] > at org.apache.cassandra.concurrent.SEPWorker.run(SEPWorker.java:109) [apa= che-cassandra-3.11.2.jar:3.11.2] > at java.lang.Thread.run(Thread.java:748) [na:1.8.0_171] > {code} > =C2=A0 > The table schema is like: > {code} > CREATE TABLE example.example_table ( > id bigint, > hash text, > json text, > PRIMARY KEY (id, hash) > ) WITH COMPACT STORAGE > {code} > =C2=A0 > The query is something like: > {code} > "select * from=C2=A0example.example_table;" //=C2=A0(We do know this is b= ad practise, and we are trying to fix that right now) > {code} > with fetch-size as 200, using DataStax Java driver.=C2=A0 > This table contains about 20k rows.=C2=A0 > =C2=A0 > Actually, the fix is quite simple,=C2=A0 > =C2=A0 > {code} > --- a/src/java/org/apache/cassandra/service/pager/PagingState.java > +++ b/src/java/org/apache/cassandra/service/pager/PagingState.java > @@ -46,7 +46,7 @@ public class PagingState > public PagingState(ByteBuffer partitionKey, RowMark rowMark, int remainin= g, int remainingInPartition) > { > - this.partitionKey =3D partitionKey; > + this.partitionKey =3D partitionKey =3D=3D null ? ByteBufferUtil.EMPTY_B= YTE_BUFFER : partitionKey; > this.rowMark =3D rowMark; > this.remaining =3D remaining; > this.remainingInPartition =3D remainingInPartition; > {code} > =C2=A0 > "partitionKey =3D=3D null ? ByteBufferUtil.EMPTY_BYTE_BUFFER : partitionK= ey;" is in 2.2.6 and 2.2.8. But it was removed for some reason.=C2=A0 > The interesting part is that, we have:=C2=A0 > {code} > public final ByteBuffer partitionKey; // Can be null for single partition= queries. > {code} > It seems "partitionKey" could be null. > Thanks a lot.=C2=A0 > =C2=A0 > =C2=A0 > =C2=A0 -- This message was sent by Atlassian JIRA (v7.6.3#76005) --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscribe@cassandra.apache.org For additional commands, e-mail: commits-help@cassandra.apache.org