cassandra-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Ariel Weisberg (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (CASSANDRA-10421) Potential issue with LogTransaction as it only checks in a single directory for files
Date Thu, 22 Oct 2015 17:23:27 GMT

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

Ariel Weisberg commented on CASSANDRA-10421:
--------------------------------------------

Can you update the Windows branch so we can see how it does on Windows before committing?

I reviewed the additional commit and it looks good. You are fixing multiples failures right?
Let's  see if I can list them so I am sure I understand.

The first was the bad assumption in LogRecord.getExistingFiles, which caused it to throw,
which exposed the missing exception handling in Memtable (leaking the transaction) which exposed
the fact that leaked transactions when cleaned up by the garbage collector fail to cleanup
due to an incorrect assertion.

So when you fixed the assertion you call abort. What happens if a transaction commits, but
isn't closed and that leads to the commit followed by an abort? Or is closing the only way
to get a commit?

> Potential issue with LogTransaction as it only checks in a single directory for files
> -------------------------------------------------------------------------------------
>
>                 Key: CASSANDRA-10421
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-10421
>             Project: Cassandra
>          Issue Type: Bug
>            Reporter: Marcus Eriksson
>            Assignee: Stefania
>            Priority: Blocker
>             Fix For: 3.0.0
>
>
> When creating a new LogTransaction we try to create the new logfile in the same directory
as the one we are writing to, but as we use {{[directories.getDirectoryForNewSSTables()|https://github.com/apache/cassandra/blob/trunk/src/java/org/apache/cassandra/db/lifecycle/LogTransaction.java#L125]}}
this might end up in "any" of the configured data directories. If it does, we will not be
able to clean up leftovers as we check for files in the same directory as the logfile was
created: https://github.com/apache/cassandra/blob/trunk/src/java/org/apache/cassandra/db/lifecycle/LogRecord.java#L163
> cc [~Stefania]



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Mime
View raw message