cassandra-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Branimir Lambov (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (CASSANDRA-9104) Unit test failures, trunk + Windows
Date Mon, 13 Apr 2015 12:32:12 GMT

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

Branimir Lambov commented on CASSANDRA-9104:
--------------------------------------------

{{KeyCacheTest 180}}: This is too brittle; the isWindows() check and choice in the static
initialization section in SSTableRewriter should be moved to DatabaseDescriptor.applyConfig()
so that getSSTablePreempiveOpenIntervalInMB() returns the OS-adjusted value.

{{SSTableRewriter 283}}: Is this the right bail-out check? What happens if preemptive open
is enabled, but has a large interval that wasn't reached yet?
Could we also add the Linux test you did, using SSTableRewriter.overrideOpenInterval?

{{CommitLogSegmentManager 471}}: Is this change necessary?

bq.  The recover() path was sneaking in between creation of a CommitLogSegment and addition
of that segment to the CLQ inside CLSM, so when we got the list of files in the folder and
attempted to filter them to just unmanaged files, that segment was considered unmanaged. We
go through recovery, we try to delete the file, Windows barfs since it's memory-mapped.

This sounds like a real bug, and it should show up (in another form) on Linux as well. The
file should not be deleted; otherwise subsequent writes to the commit log will break. During
normal commitlog startup the CLSM.createReserveSegments flag is used specifically to avoid
this. During tests CL.resetUnsafe() does not clear it, and even calls CLSM.wakeManager() which
makes the problem much more likely. The proper fix is to clear the flag at the start of CLSM.stopUnsafe()
and only call CLSM.enableReserveSegmentCreation() if the reset is not to be followed by CL.recover()
(which finishes with that call). In either case CLSM.wakeManager() shouldn't be called directly.

> Unit test failures, trunk + Windows
> -----------------------------------
>
>                 Key: CASSANDRA-9104
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-9104
>             Project: Cassandra
>          Issue Type: Test
>            Reporter: Joshua McKenzie
>            Assignee: Joshua McKenzie
>              Labels: Windows
>             Fix For: 3.0
>
>         Attachments: 9104_CFSTest.txt, 9104_KeyCache.txt, 9104_RecoveryManager.txt, 9104_ScrubTest.txt
>
>
> Variety of different test failures have cropped up over the past 2-3 weeks:
> h6. -org.apache.cassandra.cql3.UFTest FAILED (timeout)- // No longer failing / timing
out
> h6. testLoadNewSSTablesAvoidsOverwrites(org.apache.cassandra.db.ColumnFamilyStoreTest):
      FAILED
> {noformat}
>    12 SSTables unexpectedly exist
>    junit.framework.AssertionFailedError: 12 SSTables unexpectedly exist
>    at org.apache.cassandra.db.ColumnFamilyStoreTest.testLoadNewSSTablesAvoidsOverwrites(ColumnFamilyStoreTest.java:1896)
> {noformat}
> h6. org.apache.cassandra.db.KeyCacheTest FAILED
> {noformat}
>    expected:<4> but was:<2>
>    junit.framework.AssertionFailedError: expected:<4> but was:<2>
>    at org.apache.cassandra.db.KeyCacheTest.assertKeyCacheSize(KeyCacheTest.java:221)
>    at org.apache.cassandra.db.KeyCacheTest.testKeyCache(KeyCacheTest.java:181)
> {noformat}
> h6. RecoveryManagerTest:
> {noformat}
>    org.apache.cassandra.db.RecoveryManagerTest FAILED
>    org.apache.cassandra.db.RecoveryManager2Test FAILED
>    org.apache.cassandra.db.RecoveryManager3Test FAILED
>    org.apache.cassandra.db.RecoveryManagerTruncateTest FAILED
>    All are the following:
>       java.nio.file.AccessDeniedException: build\test\cassandra\commitlog;0\CommitLog-5-1427995105229.log
>       FSWriteError in build\test\cassandra\commitlog;0\CommitLog-5-1427995105229.log
>          at org.apache.cassandra.io.util.FileUtils.deleteWithConfirm(FileUtils.java:128)
>          at org.apache.cassandra.db.commitlog.CommitLogSegmentManager.recycleSegment(CommitLogSegmentManager.java:360)
>          at org.apache.cassandra.db.commitlog.CommitLog.recover(CommitLog.java:156)
>          at org.apache.cassandra.db.RecoveryManagerTest.testNothingToRecover(RecoveryManagerTest.java:75)
>       Caused by: java.nio.file.AccessDeniedException: build\test\cassandra\commitlog;0\CommitLog-5-1427995105229.log
>          at sun.nio.fs.WindowsException.translateToIOException(WindowsException.java:83)
>          at sun.nio.fs.WindowsException.rethrowAsIOException(WindowsException.java:97)
>          at sun.nio.fs.WindowsException.rethrowAsIOException(WindowsException.java:102)
>          at sun.nio.fs.WindowsFileSystemProvider.implDelete(WindowsFileSystemProvider.java:269)
>          at sun.nio.fs.AbstractFileSystemProvider.delete(AbstractFileSystemProvider.java:103)
>          at java.nio.file.Files.delete(Files.java:1079)
>          at org.apache.cassandra.io.util.FileUtils.deleteWithConfirm(FileUtils.java:124)
> {noformat}
> h6. testScrubCorruptedCounterRow(org.apache.cassandra.db.ScrubTest):  FAILED
> {noformat}
> Expecting new size of 1, got 2 while replacing [BigTableReader(path='C:\src\refCassandra\build\test\cassandra\data;0\Keyspace1\Counter1-deab62b2d95c11e489c6e117fe147c1d\la-1-big-Data.db')]
by [BigTableReader(path='C:\src\refCassandra\build\test\cassandra\data;0\Keyspace1\Counter1-deab62b2d95c11e489c6e117fe147c1d\la-1-big-Data.db')]
in View(pending_count=0, sstables=[BigTableReader(path='C:\src\refCassandra\build\test\cassandra\data;0\Keyspace1\Counter1-deab62b2d95c11e489c6e117fe147c1d\la-3-big-Data.db')],
compacting=[])
> junit.framework.AssertionFailedError: Expecting new size of 1, got 2 while replacing
[BigTableReader(path='C:\src\refCassandra\build\test\cassandra\data;0\Keyspace1\Counter1-deab62b2d95c11e489c6e117fe147c1d\la-1-big-Data.db')]
by [BigTableReader(path='C:\src\refCassandra\build\test\cassandra\data;0\Keyspace1\Counter1-deab62b2d95c11e489c6e117fe147c1d\la-1-big-Data.db')]
in View(pending_count=0, sstables=[BigTableReader(path='C:\src\refCassandra\build\test\cassandra\data;0\Keyspace1\Counter1-deab62b2d95c11e489c6e117fe147c1d\la-3-big-Data.db')],
compacting=[])
>    at org.apache.cassandra.db.DataTracker$View.replace(DataTracker.java:767)
>    at org.apache.cassandra.db.DataTracker.replaceReaders(DataTracker.java:408)
>    at org.apache.cassandra.db.DataTracker.replaceWithNewInstances(DataTracker.java:312)
>    at org.apache.cassandra.io.sstable.SSTableRewriter.moveStarts(SSTableRewriter.java:341)
>    at org.apache.cassandra.io.sstable.SSTableRewriter.abort(SSTableRewriter.java:202)
>    at org.apache.cassandra.db.compaction.Scrubber.scrub(Scrubber.java:277)
>    at org.apache.cassandra.db.ScrubTest.testScrubCorruptedCounterRow(ScrubTest.java:152)
> {noformat}



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

Mime
View raw message