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

Roman Puchkovskiy updated IGNITE-18432:
---------------------------------------
    Description: 
{{SafeTimeCandidateManager#commitIndex()}} accepts a range of indices and a 
term corresponding to the last of these indices. It then tries to look up the 
corresponding timestamps by (index, term) pair.

It might happen that it gets an inteval of indices where some of them have one 
term, others have another term (in other words, the batch it gets might contain 
indices from different terms). Example:
 # A command with index 29 and term 1 is applied
 # Leader is changed and new configuration 'entry' is applied with index 30 and 
term 2
 # {{commitIndex()}} is called for this batch with lastIndex=28, index=30 and 
term 2, so it tries to look up an index (29,1) and fails to do so, failing the 
assertion

  was:
{{SafeTimeCandidateManager#commitIndex()}} accepts a range of indices and a 
term corresponding to the last of these indices. It then tries to look up the 
corresponding timestamps by (index, term) pair.

It might happen that it gets an inteval of indices where some of them have one 
term, others have another term. Example:
 # A command with index 29 and term 1 is applied
 # Leader is changed and new configuration 'entry' is applied with index 30 and 
term 2
 # {{commitIndex()}} is called for this batch with lastIndex=28, index=30 and 
term 2, so it tries to look up an index (29,1) and fails to do so, failing the 
assertion


> SafeTimeCandidateManager#commitIndex() fails assertion if indices have 
> different terms
> --------------------------------------------------------------------------------------
>
>                 Key: IGNITE-18432
>                 URL: https://issues.apache.org/jira/browse/IGNITE-18432
>             Project: Ignite
>          Issue Type: Bug
>            Reporter: Roman Puchkovskiy
>            Priority: Major
>              Labels: ignite-3
>             Fix For: 3.0.0-beta2
>
>
> {{SafeTimeCandidateManager#commitIndex()}} accepts a range of indices and a 
> term corresponding to the last of these indices. It then tries to look up the 
> corresponding timestamps by (index, term) pair.
> It might happen that it gets an inteval of indices where some of them have 
> one term, others have another term (in other words, the batch it gets might 
> contain indices from different terms). Example:
>  # A command with index 29 and term 1 is applied
>  # Leader is changed and new configuration 'entry' is applied with index 30 
> and term 2
>  # {{commitIndex()}} is called for this batch with lastIndex=28, index=30 and 
> term 2, so it tries to look up an index (29,1) and fails to do so, failing 
> the assertion



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

Reply via email to