[ 
https://issues.apache.org/jira/browse/IGNITE-21722?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Pavel Pereslegin updated IGNITE-21722:
--------------------------------------
    Description: 
See stack trace below:
{code}
Caused by: java.lang.NullPointerException
        at 
org.apache.ignite.internal.sql.engine.exec.rel.CorrelatedNestedLoopJoinNode.join(CorrelatedNestedLoopJoinNode.java:362)
        at 
org.apache.ignite.internal.sql.engine.exec.rel.CorrelatedNestedLoopJoinNode.lambda$onRequest$1(CorrelatedNestedLoopJoinNode.java:274)
        at 
org.apache.ignite.internal.sql.engine.exec.ExecutionContext.lambda$execute$0(ExecutionContext.java:320)
        ... 4 more

{code}

To reproduce the issue, run TPC-H q21 with sf=0.1 on 3-node cluster

*Update*

The following sequence occurs:

    CorrelatedNestedLoopJoinNode pushes last row to downstream (FilterNode). 
See joinType == JoinRelType.LEFT branch in join() method.
    FilterNode receives last requested row and tries to request next batch from 
the upstream (CorrelatedNestedLoopJoinNode).
    CorrelatedNestedLoopJoinNode is in IDLE state (which is incorrect), so it 
submits join() to the execution queue.
    CorrelatedNestedLoopJoinNode resets rightInBuf, changes state to 
FILLING_LEFT and requests rows from leftsource().
    Previously submitted join() starts executing and crashes with 
NullPointerException, because rightInBuf is null.

  was:
See stack trace below:
{code}
Caused by: java.lang.NullPointerException
        at 
org.apache.ignite.internal.sql.engine.exec.rel.CorrelatedNestedLoopJoinNode.join(CorrelatedNestedLoopJoinNode.java:362)
        at 
org.apache.ignite.internal.sql.engine.exec.rel.CorrelatedNestedLoopJoinNode.lambda$onRequest$1(CorrelatedNestedLoopJoinNode.java:274)
        at 
org.apache.ignite.internal.sql.engine.exec.ExecutionContext.lambda$execute$0(ExecutionContext.java:320)
        ... 4 more

{code}

To reproduce the issue, run TPC-H q21 with sf=0.1 on 3-node cluster


> Sql. NPE in correlated nested loop join
> ---------------------------------------
>
>                 Key: IGNITE-21722
>                 URL: https://issues.apache.org/jira/browse/IGNITE-21722
>             Project: Ignite
>          Issue Type: Bug
>          Components: sql
>            Reporter: Konstantin Orlov
>            Assignee: Pavel Pereslegin
>            Priority: Major
>              Labels: calcite2-required, ignite-3
>          Time Spent: 10m
>  Remaining Estimate: 0h
>
> See stack trace below:
> {code}
> Caused by: java.lang.NullPointerException
>       at 
> org.apache.ignite.internal.sql.engine.exec.rel.CorrelatedNestedLoopJoinNode.join(CorrelatedNestedLoopJoinNode.java:362)
>       at 
> org.apache.ignite.internal.sql.engine.exec.rel.CorrelatedNestedLoopJoinNode.lambda$onRequest$1(CorrelatedNestedLoopJoinNode.java:274)
>       at 
> org.apache.ignite.internal.sql.engine.exec.ExecutionContext.lambda$execute$0(ExecutionContext.java:320)
>       ... 4 more
> {code}
> To reproduce the issue, run TPC-H q21 with sf=0.1 on 3-node cluster
> *Update*
> The following sequence occurs:
>     CorrelatedNestedLoopJoinNode pushes last row to downstream (FilterNode). 
> See joinType == JoinRelType.LEFT branch in join() method.
>     FilterNode receives last requested row and tries to request next batch 
> from the upstream (CorrelatedNestedLoopJoinNode).
>     CorrelatedNestedLoopJoinNode is in IDLE state (which is incorrect), so it 
> submits join() to the execution queue.
>     CorrelatedNestedLoopJoinNode resets rightInBuf, changes state to 
> FILLING_LEFT and requests rows from leftsource().
>     Previously submitted join() starts executing and crashes with 
> NullPointerException, because rightInBuf is null.



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

Reply via email to