[
https://issues.apache.org/jira/browse/IGNITE-23072?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Maksim Zhuravkov updated IGNITE-23072:
--------------------------------------
Description:
Reproducer
{code:java}
@State(Scope.Benchmark)
@Fork(1)
@Threads(1)
@Warmup(iterations = 10, time = 2)
@Measurement(iterations = 20, time = 2)
@BenchmarkMode(Mode.AverageTime)
@OutputTimeUnit(TimeUnit.MILLISECONDS)
@SuppressWarnings({"WeakerAccess", "unused"})
public class SqlCountBenchmark extends AbstractMultiNodeBenchmark {
private IgniteSql sql;
@Param({"1", "2", "3", "4", "5"})
private int clusterSize;
@Param({"5", "10", "15", "20"})
private int partitionsCount;
/** Fills the table with data. */
@Setup
public void setUp() throws IOException {
populateTable(TABLE_NAME, 30_000, 1_000);
sql = publicIgnite.sql();
}
@Override
protected int partitionCount() {
return partitionsCount;
}
@Benchmark
public void select1(Blackhole bh) {
try (var rs = sql.execute(null, "SELECT 1 FROM usertable")) {
bh.consume(rs.next());
}
}
/**
* Benchmark's entry point.
*/
public static void main(String[] args) throws RunnerException {
Options opt = new OptionsBuilder()
.include(".*" + SqlCountBenchmark.class.getSimpleName() +
".select1")
.build();
new Runner(opt).run();
}
@Override
protected int nodes() {
return clusterSize;
}
}
{code}
On 1 or 2 node cluster:
{noformat}
java.lang.NullPointerException: null
at
org.apache.ignite.internal.sql.engine.exec.rel.AsyncRootNode.flush(AsyncRootNode.java:228)
~[main/:?]
at
org.apache.ignite.internal.sql.engine.exec.rel.AsyncRootNode.push(AsyncRootNode.java:92)
~[main/:?]
at
org.apache.ignite.internal.sql.engine.exec.rel.Inbox.pushUnordered(Inbox.java:314)
~[main/:?]
at
org.apache.ignite.internal.sql.engine.exec.rel.Inbox.push(Inbox.java:202)
~[main/:?]
at
org.apache.ignite.internal.sql.engine.exec.rel.Inbox.onBatchReceived(Inbox.java:180)
~[main/:?]
at
org.apache.ignite.internal.sql.engine.exec.ExchangeServiceImpl.onMessage(ExchangeServiceImpl.java:173)
~[main/:?]
at
org.apache.ignite.internal.sql.engine.exec.ExchangeServiceImpl.lambda$start$1(ExchangeServiceImpl.java:78)
~[main/:?]
at
org.apache.ignite.internal.sql.engine.message.MessageServiceImpl.onMessageInternal(MessageServiceImpl.java:151)
~[main/:?]
at
org.apache.ignite.internal.sql.engine.message.MessageServiceImpl.lambda$onMessage$0(MessageServiceImpl.java:115)
~[main/:?]
at
org.apache.ignite.internal.sql.engine.exec.QueryTaskExecutorImpl.lambda$execute$0(QueryTaskExecutorImpl.java:83)
~[main/:?]
at
java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
[?:?]
at
java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
[?:?]
at java.base/java.lang.Thread.run(Thread.java:829) [?:?]
{noformat}
On a 3 node cluster
{noformat}
java.util.NoSuchElementException: null
at java.base/java.util.AbstractQueue.remove(AbstractQueue.java:117)
~[?:?]
at
org.apache.ignite.internal.sql.engine.exec.rel.AsyncRootNode.flush(AsyncRootNode.java:235)
~[ignite-sql-engine-3.0.0-SNAPSHOT.jar:?]
at
org.apache.ignite.internal.sql.engine.exec.rel.AsyncRootNode.push(AsyncRootNode.java:92)
~[ignite-sql-engine-3.0.0-SNAPSHOT.jar:?]
at
org.apache.ignite.internal.sql.engine.exec.rel.Inbox.pushUnordered(Inbox.java:314)
~[ignite-sql-engine-3.0.0-SNAPSHOT.jar:?]
at
org.apache.ignite.internal.sql.engine.exec.rel.Inbox.push(Inbox.java:202)
~[ignite-sql-engine-3.0.0-SNAPSHOT.jar:?]
at
org.apache.ignite.internal.sql.engine.exec.rel.Inbox.onBatchReceived(Inbox.java:180)
~[ignite-sql-engine-3.0.0-SNAPSHOT.jar:?]
at
org.apache.ignite.internal.sql.engine.exec.ExchangeServiceImpl.onMessage(ExchangeServiceImpl.java:173)
~[ignite-sql-engine-3.0.0-SNAPSHOT.jar:?]
at
org.apache.ignite.internal.sql.engine.exec.ExchangeServiceImpl.lambda$start$1(ExchangeServiceImpl.java:78)
~[ignite-sql-engine-3.0.0-SNAPSHOT.jar:?]
at
org.apache.ignite.internal.sql.engine.message.MessageServiceImpl.onMessageInternal(MessageServiceImpl.java:151)
~[ignite-sql-engine-3.0.0-SNAPSHOT.jar:?]
at
org.apache.ignite.internal.sql.engine.message.MessageServiceImpl.lambda$onMessage$0(MessageServiceImpl.java:115)
~[ignite-sql-engine-3.0.0-SNAPSHOT.jar:?]
at
org.apache.ignite.internal.sql.engine.exec.QueryTaskExecutorImpl.lambda$execute$0(QueryTaskExecutorImpl.java:83)
~[ignite-sql-engine-3.0.0-SNAPSHOT.jar:?]
{noformat}
was:
Reproducer
{code:java}
@State(Scope.Benchmark)
@Fork(1)
@Threads(1)
@Warmup(iterations = 10, time = 2)
@Measurement(iterations = 20, time = 2)
@BenchmarkMode(Mode.AverageTime)
@OutputTimeUnit(TimeUnit.MILLISECONDS)
@SuppressWarnings({"WeakerAccess", "unused"})
public class SqlCountBenchmark extends AbstractMultiNodeBenchmark {
private IgniteSql sql;
@Param({"1", "2", "3", "4", "5"})
private int clusterSize;
@Param({"5", "10", "15", "20"})
private int partitionsCount;
/** Fills the table with data. */
@Setup
public void setUp() throws IOException {
populateTable(TABLE_NAME, 30_000, 1_000);
sql = publicIgnite.sql();
}
@Override
protected int partitionCount() {
return partitionsCount;
}
@Benchmark
public void select1(Blackhole bh) {
try (var rs = sql.execute(null, "SELECT 1 FROM usertable")) {
bh.consume(rs.next());
}
}
/**
* Benchmark's entry point.
*/
public static void main(String[] args) throws RunnerException {
Options opt = new OptionsBuilder()
.include(".*" + SqlCountBenchmark.class.getSimpleName() +
".select1")
.build();
new Runner(opt).run();
}
@Override
protected int nodes() {
return clusterSize;
}
}
{code}
{noformat}
java.lang.NullPointerException: null
at
org.apache.ignite.internal.sql.engine.exec.rel.AsyncRootNode.flush(AsyncRootNode.java:228)
~[main/:?]
at
org.apache.ignite.internal.sql.engine.exec.rel.AsyncRootNode.push(AsyncRootNode.java:92)
~[main/:?]
at
org.apache.ignite.internal.sql.engine.exec.rel.Inbox.pushUnordered(Inbox.java:314)
~[main/:?]
at
org.apache.ignite.internal.sql.engine.exec.rel.Inbox.push(Inbox.java:202)
~[main/:?]
at
org.apache.ignite.internal.sql.engine.exec.rel.Inbox.onBatchReceived(Inbox.java:180)
~[main/:?]
at
org.apache.ignite.internal.sql.engine.exec.ExchangeServiceImpl.onMessage(ExchangeServiceImpl.java:173)
~[main/:?]
at
org.apache.ignite.internal.sql.engine.exec.ExchangeServiceImpl.lambda$start$1(ExchangeServiceImpl.java:78)
~[main/:?]
at
org.apache.ignite.internal.sql.engine.message.MessageServiceImpl.onMessageInternal(MessageServiceImpl.java:151)
~[main/:?]
at
org.apache.ignite.internal.sql.engine.message.MessageServiceImpl.lambda$onMessage$0(MessageServiceImpl.java:115)
~[main/:?]
at
org.apache.ignite.internal.sql.engine.exec.QueryTaskExecutorImpl.lambda$execute$0(QueryTaskExecutorImpl.java:83)
~[main/:?]
at
java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
[?:?]
at
java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
[?:?]
at java.base/java.lang.Thread.run(Thread.java:829) [?:?]
{noformat}
On a 3 node cluster
{noformat}
java.util.NoSuchElementException: null
at java.base/java.util.AbstractQueue.remove(AbstractQueue.java:117)
~[?:?]
at
org.apache.ignite.internal.sql.engine.exec.rel.AsyncRootNode.flush(AsyncRootNode.java:235)
~[ignite-sql-engine-3.0.0-SNAPSHOT.jar:?]
at
org.apache.ignite.internal.sql.engine.exec.rel.AsyncRootNode.push(AsyncRootNode.java:92)
~[ignite-sql-engine-3.0.0-SNAPSHOT.jar:?]
at
org.apache.ignite.internal.sql.engine.exec.rel.Inbox.pushUnordered(Inbox.java:314)
~[ignite-sql-engine-3.0.0-SNAPSHOT.jar:?]
at
org.apache.ignite.internal.sql.engine.exec.rel.Inbox.push(Inbox.java:202)
~[ignite-sql-engine-3.0.0-SNAPSHOT.jar:?]
at
org.apache.ignite.internal.sql.engine.exec.rel.Inbox.onBatchReceived(Inbox.java:180)
~[ignite-sql-engine-3.0.0-SNAPSHOT.jar:?]
at
org.apache.ignite.internal.sql.engine.exec.ExchangeServiceImpl.onMessage(ExchangeServiceImpl.java:173)
~[ignite-sql-engine-3.0.0-SNAPSHOT.jar:?]
at
org.apache.ignite.internal.sql.engine.exec.ExchangeServiceImpl.lambda$start$1(ExchangeServiceImpl.java:78)
~[ignite-sql-engine-3.0.0-SNAPSHOT.jar:?]
at
org.apache.ignite.internal.sql.engine.message.MessageServiceImpl.onMessageInternal(MessageServiceImpl.java:151)
~[ignite-sql-engine-3.0.0-SNAPSHOT.jar:?]
at
org.apache.ignite.internal.sql.engine.message.MessageServiceImpl.lambda$onMessage$0(MessageServiceImpl.java:115)
~[ignite-sql-engine-3.0.0-SNAPSHOT.jar:?]
at
org.apache.ignite.internal.sql.engine.exec.QueryTaskExecutorImpl.lambda$execute$0(QueryTaskExecutorImpl.java:83)
~[ignite-sql-engine-3.0.0-SNAPSHOT.jar:?]
{noformat}
> Sql. NoSuchElementException: null / NPE in AsyncRootNode.flush
> --------------------------------------------------------------
>
> Key: IGNITE-23072
> URL: https://issues.apache.org/jira/browse/IGNITE-23072
> Project: Ignite
> Issue Type: Bug
> Components: sql
> Reporter: Maksim Zhuravkov
> Priority: Major
> Labels: ignite-3
>
> Reproducer
> {code:java}
> @State(Scope.Benchmark)
> @Fork(1)
> @Threads(1)
> @Warmup(iterations = 10, time = 2)
> @Measurement(iterations = 20, time = 2)
> @BenchmarkMode(Mode.AverageTime)
> @OutputTimeUnit(TimeUnit.MILLISECONDS)
> @SuppressWarnings({"WeakerAccess", "unused"})
> public class SqlCountBenchmark extends AbstractMultiNodeBenchmark {
> private IgniteSql sql;
> @Param({"1", "2", "3", "4", "5"})
> private int clusterSize;
> @Param({"5", "10", "15", "20"})
> private int partitionsCount;
> /** Fills the table with data. */
> @Setup
> public void setUp() throws IOException {
> populateTable(TABLE_NAME, 30_000, 1_000);
> sql = publicIgnite.sql();
> }
> @Override
> protected int partitionCount() {
> return partitionsCount;
> }
>
> @Benchmark
> public void select1(Blackhole bh) {
> try (var rs = sql.execute(null, "SELECT 1 FROM usertable")) {
> bh.consume(rs.next());
> }
> }
> /**
> * Benchmark's entry point.
> */
> public static void main(String[] args) throws RunnerException {
> Options opt = new OptionsBuilder()
> .include(".*" + SqlCountBenchmark.class.getSimpleName() +
> ".select1")
> .build();
> new Runner(opt).run();
> }
> @Override
> protected int nodes() {
> return clusterSize;
> }
> }
> {code}
> On 1 or 2 node cluster:
> {noformat}
> java.lang.NullPointerException: null
> at
> org.apache.ignite.internal.sql.engine.exec.rel.AsyncRootNode.flush(AsyncRootNode.java:228)
> ~[main/:?]
> at
> org.apache.ignite.internal.sql.engine.exec.rel.AsyncRootNode.push(AsyncRootNode.java:92)
> ~[main/:?]
> at
> org.apache.ignite.internal.sql.engine.exec.rel.Inbox.pushUnordered(Inbox.java:314)
> ~[main/:?]
> at
> org.apache.ignite.internal.sql.engine.exec.rel.Inbox.push(Inbox.java:202)
> ~[main/:?]
> at
> org.apache.ignite.internal.sql.engine.exec.rel.Inbox.onBatchReceived(Inbox.java:180)
> ~[main/:?]
> at
> org.apache.ignite.internal.sql.engine.exec.ExchangeServiceImpl.onMessage(ExchangeServiceImpl.java:173)
> ~[main/:?]
> at
> org.apache.ignite.internal.sql.engine.exec.ExchangeServiceImpl.lambda$start$1(ExchangeServiceImpl.java:78)
> ~[main/:?]
> at
> org.apache.ignite.internal.sql.engine.message.MessageServiceImpl.onMessageInternal(MessageServiceImpl.java:151)
> ~[main/:?]
> at
> org.apache.ignite.internal.sql.engine.message.MessageServiceImpl.lambda$onMessage$0(MessageServiceImpl.java:115)
> ~[main/:?]
> at
> org.apache.ignite.internal.sql.engine.exec.QueryTaskExecutorImpl.lambda$execute$0(QueryTaskExecutorImpl.java:83)
> ~[main/:?]
> at
> java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
> [?:?]
> at
> java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
> [?:?]
> at java.base/java.lang.Thread.run(Thread.java:829) [?:?]
> {noformat}
> On a 3 node cluster
> {noformat}
> java.util.NoSuchElementException: null
> at java.base/java.util.AbstractQueue.remove(AbstractQueue.java:117)
> ~[?:?]
> at
> org.apache.ignite.internal.sql.engine.exec.rel.AsyncRootNode.flush(AsyncRootNode.java:235)
> ~[ignite-sql-engine-3.0.0-SNAPSHOT.jar:?]
> at
> org.apache.ignite.internal.sql.engine.exec.rel.AsyncRootNode.push(AsyncRootNode.java:92)
> ~[ignite-sql-engine-3.0.0-SNAPSHOT.jar:?]
> at
> org.apache.ignite.internal.sql.engine.exec.rel.Inbox.pushUnordered(Inbox.java:314)
> ~[ignite-sql-engine-3.0.0-SNAPSHOT.jar:?]
> at
> org.apache.ignite.internal.sql.engine.exec.rel.Inbox.push(Inbox.java:202)
> ~[ignite-sql-engine-3.0.0-SNAPSHOT.jar:?]
> at
> org.apache.ignite.internal.sql.engine.exec.rel.Inbox.onBatchReceived(Inbox.java:180)
> ~[ignite-sql-engine-3.0.0-SNAPSHOT.jar:?]
> at
> org.apache.ignite.internal.sql.engine.exec.ExchangeServiceImpl.onMessage(ExchangeServiceImpl.java:173)
> ~[ignite-sql-engine-3.0.0-SNAPSHOT.jar:?]
> at
> org.apache.ignite.internal.sql.engine.exec.ExchangeServiceImpl.lambda$start$1(ExchangeServiceImpl.java:78)
> ~[ignite-sql-engine-3.0.0-SNAPSHOT.jar:?]
> at
> org.apache.ignite.internal.sql.engine.message.MessageServiceImpl.onMessageInternal(MessageServiceImpl.java:151)
> ~[ignite-sql-engine-3.0.0-SNAPSHOT.jar:?]
> at
> org.apache.ignite.internal.sql.engine.message.MessageServiceImpl.lambda$onMessage$0(MessageServiceImpl.java:115)
> ~[ignite-sql-engine-3.0.0-SNAPSHOT.jar:?]
> at
> org.apache.ignite.internal.sql.engine.exec.QueryTaskExecutorImpl.lambda$execute$0(QueryTaskExecutorImpl.java:83)
> ~[ignite-sql-engine-3.0.0-SNAPSHOT.jar:?]
> {noformat}
--
This message was sent by Atlassian Jira
(v8.20.10#820010)