[ 
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

*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.


> 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