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

Jonathan Ellis updated CASSANDRA-3735:
--------------------------------------

    Attachment: 0002-remove-incremental-backups-before-reloading-sstables.patch
                0001-fix-generation-update-in-loadNewSSTables.patch

Two parts:

first makes it so loadNewSSTables won't reset sstable generation to a lower 
value than it currently is.

second removes the (hard linked) sstables from the incremental backups 
directory, so that when loadNewSSTables links them back in they won't conflict.

patch 2 doesn't actually work on Windows because something is keeping the Data 
component open.  Java6 just says "delete failed;" java7's Files.delete says 
"java.nio.file.FileSystemException: 
build\test\cassandra\data\Keyspace1\backups\Standard1-hc-1-Data.db: The process 
cannot access the file because it is being used by another process."

I'm guessing it's counting something (what?) that opened the original Data, 
towards the link entry as well.  But, this should be enough to make the 
messages go away on Linux, which takes a more permissive view of deleting files 
opened elsewhere.
                
> Fix "Unable to create hard link" SSTableReaderTest error messages
> -----------------------------------------------------------------
>
>                 Key: CASSANDRA-3735
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-3735
>             Project: Cassandra
>          Issue Type: Bug
>            Reporter: Jonathan Ellis
>            Priority: Minor
>         Attachments: 0001-fix-generation-update-in-loadNewSSTables.patch, 
> 0002-remove-incremental-backups-before-reloading-sstables.patch
>
>
> Sample failure (on Windows):
> {noformat}
>     [junit] java.io.IOException: Exception while executing the command: cmd 
> /c mklink /H 
> C:\Users\Jonathan\projects\cassandra\git\build\test\cassandra\data\Keyspace1\backups\Standard1-hc-1-Index.db
>  
> c:\Users\Jonathan\projects\cassandra\git\build\test\cassandra\data\Keyspace1\Standard1-hc-1-Index.db,command
>  error Code: 1, command output: Cannot create a file when that file already 
> exists.
>     [junit]
>     [junit]     at org.apache.cassandra.utils.CLibrary.exec(CLibrary.java:213)
>     [junit]     at 
> org.apache.cassandra.utils.CLibrary.createHardLinkWithExec(CLibrary.java:188)
>     [junit]     at 
> org.apache.cassandra.utils.CLibrary.createHardLink(CLibrary.java:151)
>     [junit]     at 
> org.apache.cassandra.io.sstable.SSTableReader.createLinks(SSTableReader.java:833)
>     [junit]     at 
> org.apache.cassandra.db.DataTracker$1.runMayThrow(DataTracker.java:161)
>     [junit]     at 
> org.apache.cassandra.utils.WrappedRunnable.run(WrappedRunnable.java:30)
>     [junit]     at 
> java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
>     [junit]     at 
> java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
>     [junit]     at java.util.concurrent.FutureTask.run(FutureTask.java:138)
>     [junit]     at 
> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:98)
>     [junit]     at 
> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:206)
>     [junit]     at 
> java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
>     [junit]     at 
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
>     [junit]     at java.lang.Thread.run(Thread.java:662)
>     [junit] ERROR 17:10:17,111 Fatal exception in thread 
> Thread[NonPeriodicTasks:1,5,main]
> {noformat}

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to