You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by sl...@apache.org on 2011/11/04 08:52:58 UTC

svn commit: r1197417 - in /cassandra/branches/cassandra-1.0: CHANGES.txt src/java/org/apache/cassandra/io/sstable/SSTableLoader.java src/java/org/apache/cassandra/tools/BulkLoader.java

Author: slebresne
Date: Fri Nov  4 07:52:58 2011
New Revision: 1197417

URL: http://svn.apache.org/viewvc?rev=1197417&view=rev
Log:
Fix reference acquisition bug in sstableloader
patch by slebresne; reviewed by jbellis for CASSANDRA-3438

Modified:
    cassandra/branches/cassandra-1.0/CHANGES.txt
    cassandra/branches/cassandra-1.0/src/java/org/apache/cassandra/io/sstable/SSTableLoader.java
    cassandra/branches/cassandra-1.0/src/java/org/apache/cassandra/tools/BulkLoader.java

Modified: cassandra/branches/cassandra-1.0/CHANGES.txt
URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-1.0/CHANGES.txt?rev=1197417&r1=1197416&r2=1197417&view=diff
==============================================================================
--- cassandra/branches/cassandra-1.0/CHANGES.txt (original)
+++ cassandra/branches/cassandra-1.0/CHANGES.txt Fri Nov  4 07:52:58 2011
@@ -9,6 +9,7 @@
  * fix bug that caused first column in per row indexes to be ignored 
    (CASSANDRA-3441)
  * add JMX call to clean (failed) repair sessions (CASSANDRA-3316)
+ * Fix sstableloader reference acquisition bug (CASSANDRA-3438)
 Merged from 0.8:
  * acquire compactionlock during truncate (CASSANDRA-3399)
  * fix displaying cfdef entries for super columnfamilies (CASSANDRA-3415)

Modified: cassandra/branches/cassandra-1.0/src/java/org/apache/cassandra/io/sstable/SSTableLoader.java
URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-1.0/src/java/org/apache/cassandra/io/sstable/SSTableLoader.java?rev=1197417&r1=1197416&r2=1197417&view=diff
==============================================================================
--- cassandra/branches/cassandra-1.0/src/java/org/apache/cassandra/io/sstable/SSTableLoader.java (original)
+++ cassandra/branches/cassandra-1.0/src/java/org/apache/cassandra/io/sstable/SSTableLoader.java Fri Nov  4 07:52:58 2011
@@ -125,6 +125,8 @@ public class SSTableLoader
             }
             Collection<Range> ranges = entry.getValue();
             StreamOutSession session = StreamOutSession.create(keyspace, remote, new CountDownCallback(future.latch, remote));
+            // transferSSTables assumes references have been acquired
+            SSTableReader.acquireReferences(sstables);
             StreamOut.transferSSTables(session, sstables, ranges, OperationType.BULK_LOAD);
             future.setPendings(remote, session.getFiles());
         }

Modified: cassandra/branches/cassandra-1.0/src/java/org/apache/cassandra/tools/BulkLoader.java
URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-1.0/src/java/org/apache/cassandra/tools/BulkLoader.java?rev=1197417&r1=1197416&r2=1197417&view=diff
==============================================================================
--- cassandra/branches/cassandra-1.0/src/java/org/apache/cassandra/tools/BulkLoader.java (original)
+++ cassandra/branches/cassandra-1.0/src/java/org/apache/cassandra/tools/BulkLoader.java Fri Nov  4 07:52:58 2011
@@ -70,12 +70,14 @@ public class BulkLoader
                 ProgressIndicator indicator = new ProgressIndicator(future.getPendingFiles());
                 indicator.start();
                 System.out.println("");
+                boolean printEnd = false;
                 while (!future.isDone())
                 {
                     if (indicator.printProgress())
                     {
                         // We're done with streaming
                         System.out.println("\nWaiting for targets to rebuild indexes ...");
+                        printEnd = true;
                         future.get();
                         assert future.isDone();
                     }
@@ -84,6 +86,8 @@ public class BulkLoader
                         try { Thread.sleep(1000L); } catch (Exception e) {}
                     }
                 }
+                if (!printEnd)
+                    indicator.printProgress();
             }
 
             System.exit(0); // We need that to stop non daemonized threads