You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by "Piotr Kolaczkowski (Jira)" <ji...@apache.org> on 2022/10/07 07:23:00 UTC

[jira] [Comment Edited] (CASSANDRA-16681) org.apache.cassandra.utils.memory.LongBufferPoolTest - tests are flaky

    [ https://issues.apache.org/jira/browse/CASSANDRA-16681?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17613911#comment-17613911 ] 

Piotr Kolaczkowski edited comment on CASSANDRA-16681 at 10/7/22 7:22 AM:
-------------------------------------------------------------------------

[~aleksey] I'm not sure if the the last patch didn't fix something actually. Let me try to rerun the test with only 6 changes and see if it works and I get back to you. There was simply many back-and-forth already on this and I don't remember exactly at the moment, but the fact that the original control flow didn't go through the same CAS could be a correctness issue, not just code style issue.

// edit:
Looking at the description, there was a race fixed there, not just code style:
{quote}
   2. When a chunk was evicted, it was first released and later marked as
       EVICTED. The actual order of operations with partial recycling
       enabled was as follows:
       a) release: clear owner -> tryRecycle -> try change status
          EVICTED to IN_USE (fail)
       b) change status to EVICTED
    
       This not only didn't really recycle the chunk, but could also race
       with an other thread trying to recycle the very same chunk and
       accidentally mark an already recycled chunk as EVICTED.
       The order has been fixed and now chunk is marked as evicted before
       attempting to recycle it.

{quote}


was (Author: pkolaczk):
[~aleksey] I'm not sure if the the last patch didn't fix something actually. Let me try to rerun the test with only 6 changes and see if it works and I get back to you. There was simply many back-and-forth already on this and I don't remember exactly at the moment, but the fact that the original control flow didn't go through the same CAS could be a correctness issue, not just code style issue.

> org.apache.cassandra.utils.memory.LongBufferPoolTest - tests are flaky
> ----------------------------------------------------------------------
>
>                 Key: CASSANDRA-16681
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-16681
>             Project: Cassandra
>          Issue Type: Bug
>          Components: CI
>            Reporter: Ekaterina Dimitrova
>            Assignee: Piotr Kolaczkowski
>            Priority: Normal
>             Fix For: 3.11.x, 4.0.x, 4.x
>
>          Time Spent: 20m
>  Remaining Estimate: 0h
>
> Jenkins history:
> [https://jenkins-cm4.apache.org/job/Cassandra-4.0/50/testReport/junit/org.apache.cassandra.utils.memory/LongBufferPoolTest/testPoolAllocateWithRecyclePartially/history/]
> Fails being run in a loop in CircleCI:
> https://app.circleci.com/pipelines/github/ekaterinadimitrova2/cassandra/844/workflows/945011f4-00ac-4678-89f6-5c0db0a40169/jobs/5008
>  



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

---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@cassandra.apache.org
For additional commands, e-mail: commits-help@cassandra.apache.org