cassandra-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Sylvain Lebresne (JIRA)" <>
Subject [jira] [Commented] (CASSANDRA-2088) Temp files for failed compactions/streaming not cleaned up
Date Tue, 12 Apr 2011 18:22:05 GMT


Sylvain Lebresne commented on CASSANDRA-2088:

bq. Is that 0001-Better-detect-failures-from-the-other-side-in-Incomi.patch? I don't see the
connection to .tmp files. (Also: have you verified that the channel will actually infinite-loop
returning 0? Kind of odd behavior, although I guess it's technically within-spec.)

Yes. IncomingStreamReader does clean the tmp file when there is an expection (there's an enclosing
'try catch'). The problem is that no exception is raised if the other side of the connection
dies. What will happen then is the read will infinitely read 0 bytes. So this actually avoid
the infinite loop returning 0 (and so I think answered your second question, so it wasn't
very clear).

Note that without this patch, there is an infinite loop that will hold a socket open forever
(and consume cpu, though very few probably in that case). So this is not just merely a fix
of deleting the tmp files. But it does as a consequence of correctly raising an exception
when should be.

> Temp files for failed compactions/streaming not cleaned up
> ----------------------------------------------------------
>                 Key: CASSANDRA-2088
>                 URL:
>             Project: Cassandra
>          Issue Type: Bug
>          Components: Core
>            Reporter: Stu Hood
>            Assignee: Aaron Morton
>             Fix For: 0.8
>         Attachments: 0001-Better-detect-failures-from-the-other-side-in-Incomi.patch,
0001-detect-streaming-failures-and-cleanup-temp-files.patch, 0002-delete-partial-sstable-if-compaction-error.patch
> From separate reports, compaction and repair are currently missing opportunities to clean
up tmp files after failures.

This message is automatically generated by JIRA.
For more information on JIRA, see:

View raw message