Ivan Artiukhov created IGNITE-20880:
---------------------------------------

             Summary: Some TPC-H queries hang
                 Key: IGNITE-20880
                 URL: https://issues.apache.org/jira/browse/IGNITE-20880
             Project: Ignite
          Issue Type: Bug
          Components: sql
            Reporter: Ivan Artiukhov
         Attachments: logs.zip

Apache Ignite 3, rev. 8d6264af0edb9752e2239f9b686abe5580056862 (Nov 16 2023)

Benchmark: 
[https://github.com/cmu-db/benchbase/tree/main/src/main/java/com/oltpbenchmark/benchmarks/tpch]
 
h1. Setup
 * 1 Ignite 3 server node, raft.fsync = false
 * TPC-H with scale factor = 0.1

h1. Steps
 # Start an Ignite 3 node
 # Run benchbase with {{-s 1 --create=true --load=true --execute=false}} to 
preload data
 # Observe via the benchbase log that the data was successfully loaded
 # Run {{benchbase with -s 1 --create=false --load=false --execute=true}} to 
run the benchmark

h1. Expected result

The benchmark finishes after warmup + duration time
h1. Actual result

The benchmark hangs on Q21 query:

 
{noformat}
SELECT
   cntrycode,
   COUNT(*) AS numcust,
   SUM(c_acctbal) AS totacctbal
FROM
   (
      SELECT
         SUBSTRING(c_phone FROM 1 FOR 2) AS cntrycode,
         c_acctbal
      FROM
         customer
      WHERE
         SUBSTRING(c_phone FROM 1 FOR 2) IN (?, ?, ?, ?, ?, ?, ?)
         AND c_acctbal >
         (
             SELECT
                AVG(c_acctbal)
             FROM
                customer
             WHERE
                c_acctbal > 0.00
                AND SUBSTRING(c_phone FROM 1 FOR 2) IN (?, ?, ?, ?, ?, ?, ?)
         )
         AND NOT EXISTS
         (
             SELECT
                *
             FROM
                orders
             WHERE
                o_custkey = c_custkey
         )
   )
   AS custsale
GROUP BY
   cntrycode
ORDER BY
   cntrycode
{noformat}
 

Hung client thread:

 
{noformat}
"TPCHWorker<000>" #61 prio=5 os_prio=0 cpu=13.83ms elapsed=3064.60s 
allocated=2668K defined_classes=46 tid=0x00007f9c4d2d73b0 nid=0x2703 waiting on 
condition  [0x00007f9b662fd000]
   java.lang.Thread.State: WAITING (parking)
        at jdk.internal.misc.Unsafe.park(java.base@17.0.7/Native Method)
        - parking to wait for  <0x00000006347cb998> (a 
java.util.concurrent.CompletableFuture$Signaller)
        at 
java.util.concurrent.locks.LockSupport.park(java.base@17.0.7/LockSupport.java:211)
        at 
java.util.concurrent.CompletableFuture$Signaller.block(java.base@17.0.7/CompletableFuture.java:1864)
        at 
java.util.concurrent.ForkJoinPool.unmanagedBlock(java.base@17.0.7/ForkJoinPool.java:3463)
        at 
java.util.concurrent.ForkJoinPool.managedBlock(java.base@17.0.7/ForkJoinPool.java:3434)
        at 
java.util.concurrent.CompletableFuture.waitingGet(java.base@17.0.7/CompletableFuture.java:1898)
        at 
java.util.concurrent.CompletableFuture.get(java.base@17.0.7/CompletableFuture.java:2072)
        at 
org.apache.ignite.internal.jdbc.JdbcStatement.execute0(JdbcStatement.java:139)
        at 
org.apache.ignite.internal.jdbc.JdbcPreparedStatement.executeWithArguments(JdbcPreparedStatement.java:765)
        at 
org.apache.ignite.internal.jdbc.JdbcPreparedStatement.executeQuery(JdbcPreparedStatement.java:116)
        at 
com.oltpbenchmark.benchmarks.tpch.procedures.GenericQuery.run(GenericQuery.java:39)
        at 
com.oltpbenchmark.benchmarks.tpch.TPCHWorker.executeWork(TPCHWorker.java:44)
        at com.oltpbenchmark.api.Worker.doWork(Worker.java:416)
        at com.oltpbenchmark.api.Worker.run(Worker.java:282)
        at java.lang.Thread.run(java.base@17.0.7/Thread.java:833){noformat}
Logs, configs:

 

[^logs.zip]



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to