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

Alexander Lapin updated IGNITE-22836:
-------------------------------------
    Description: 
According to the

 
{code:java}
private void fillAndWriteBatch(WriteBatch batch, long newRev, long newCntr, 
@Nullable HybridTimestamp ts) throws RocksDBException{code}
ts may be null. In addition to method contract it is also proved by underling 
implementation

 
{code:java}
            if (ts != null) {
                byte[] tsBytes = hybridTsToArray(ts);

                tsToRevision.put(batch, tsBytes, revisionBytes);
                revisionToTs.put(batch, revisionBytes, tsBytes);
            } {code}
However in 
{code:java}
updatedEntries.transfer() {code}
that is called from
{code:java}
queueWatchEvent() {code}
that on it's turn is called from aforementioned 
{code:java}
fillAndWriteBatch() {code}
there's an assertion to verify that ts is not null
{code:java}
assert ts != null;{code}
 

 

> RocksDb may throw AssertionException in case of null operation timestamp
> ------------------------------------------------------------------------
>
>                 Key: IGNITE-22836
>                 URL: https://issues.apache.org/jira/browse/IGNITE-22836
>             Project: Ignite
>          Issue Type: Bug
>            Reporter: Alexander Lapin
>            Priority: Major
>
> According to the
>  
> {code:java}
> private void fillAndWriteBatch(WriteBatch batch, long newRev, long newCntr, 
> @Nullable HybridTimestamp ts) throws RocksDBException{code}
> ts may be null. In addition to method contract it is also proved by underling 
> implementation
>  
> {code:java}
>             if (ts != null) {
>                 byte[] tsBytes = hybridTsToArray(ts);
>                 tsToRevision.put(batch, tsBytes, revisionBytes);
>                 revisionToTs.put(batch, revisionBytes, tsBytes);
>             } {code}
> However in 
> {code:java}
> updatedEntries.transfer() {code}
> that is called from
> {code:java}
> queueWatchEvent() {code}
> that on it's turn is called from aforementioned 
> {code:java}
> fillAndWriteBatch() {code}
> there's an assertion to verify that ts is not null
> {code:java}
> assert ts != null;{code}
>  
>  



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

Reply via email to