Return-Path: Delivered-To: apmail-cassandra-commits-archive@www.apache.org Received: (qmail 1992 invoked from network); 19 Nov 2010 14:58:07 -0000 Received: from unknown (HELO mail.apache.org) (140.211.11.3) by 140.211.11.9 with SMTP; 19 Nov 2010 14:58:07 -0000 Received: (qmail 96411 invoked by uid 500); 19 Nov 2010 14:58:38 -0000 Delivered-To: apmail-cassandra-commits-archive@cassandra.apache.org Received: (qmail 96395 invoked by uid 500); 19 Nov 2010 14:58:38 -0000 Mailing-List: contact commits-help@cassandra.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@cassandra.apache.org Delivered-To: mailing list commits@cassandra.apache.org Received: (qmail 96387 invoked by uid 99); 19 Nov 2010 14:58:38 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 19 Nov 2010 14:58:38 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=10.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.22] (HELO thor.apache.org) (140.211.11.22) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 19 Nov 2010 14:58:36 +0000 Received: from thor (localhost [127.0.0.1]) by thor.apache.org (8.13.8+Sun/8.13.8) with ESMTP id oAJEwEBV016526 for ; Fri, 19 Nov 2010 14:58:14 GMT Message-ID: <30775276.196901290178694397.JavaMail.jira@thor> Date: Fri, 19 Nov 2010 09:58:14 -0500 (EST) From: "Gary Dusbabek (JIRA)" To: commits@cassandra.apache.org Subject: [jira] Commented: (CASSANDRA-1715) More schema migration race conditions In-Reply-To: <5656367.44291288991565212.JavaMail.jira@thor> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-JIRA-FingerPrint: 30527f35849b9dde25b450d4833f0394 X-Virus-Checked: Checked by ClamAV on apache.org [ https://issues.apache.org/jira/browse/CASSANDRA-1715?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12933827#action_12933827 ] Gary Dusbabek commented on CASSANDRA-1715: ------------------------------------------ bq. right, this is what 0011 does. more accurately, it uses CSLM to avoid an explicit lock. My argument was that it wasn't safe to call indexCfs.removeAllSSTables() without the flush lock, but it looks like SSTableTracker is properly synchronized to avoid any problems with flushing. No problem here. +1 I'll commit this shortly. > More schema migration race conditions > ------------------------------------- > > Key: CASSANDRA-1715 > URL: https://issues.apache.org/jira/browse/CASSANDRA-1715 > Project: Cassandra > Issue Type: Bug > Components: Core > Affects Versions: 0.7 beta 1 > Reporter: Jonathan Ellis > Assignee: Gary Dusbabek > Priority: Critical > Fix For: 0.7.0 > > Attachments: v3-0001-take-drop-off-CompactionManager.txt, v3-0002-compaction-lock.txt, v3-0003-migration-uses-locks.txt, v3-0004-handle-moved-dropped-CF-prior-to-pending-compaction-st.txt, v3-0005-CFS.reload-assumes-metadata-is-mutable.txt, v3-0006-replace-modifiable-CFM-members-with-private-fields-a.patch, v3-0007-updateColumnFamily-uses-reload-remove-unneccesary-stru.txt, v3-0008-perform-index-maintenance-outside-of-migration-locks-d.txt, v3-0009-use-avro-structures-inside-UpdateColumnFamily.txt, v3-0010-remove-unused-fields-in-DropColumnFamily-DropKeyspace.txt, v3-0011-make-addIndex-asynchronous-and-race-proof.patch, v3-0012-remove-locks-from-UpdateColumnFamily.patch > > > Related to CASSANDRA-1631. > This is still a bug with schema updates to an existing CF, since reloadCf is doing a unload/init cycle. So flushing + compaction is an issue there as well. Here is a stacktrace from during an index creation where it stubbed its toe on an incomplete sstable from an in-progress compaction (path names anonymized): > {code} > INFO [CompactionExecutor:1] 2010-11-02 16:31:00,553 CompactionManager.java (line 224) Compacting [org.apache.cassandra.io.sstable.SSTableReader(path='Standard1-e-6-Data.db'),org.apache.cassandra.io.sstable.SSTableReader(path='Standard1-e-7-Data.db'),org.apache.cassandra.io.sstable.SSTableReader(path='Standard1-e-8-Data.db'),org.apache.cassandra.io.sstable.SSTableReader(path='Standard1-e-9-Data.db')] > ... > ERROR [MigrationStage:1] 2010-11-02 16:31:10,939 ColumnFamilyStore.java (line 244) Corrupt sstable Standard1-tmp-e-10-<>=[Data.db, Index.db]; skipped > java.io.EOFException > at org.apache.cassandra.utils.FBUtilities.skipShortByteArray(FBUtilities.java:308) > at org.apache.cassandra.io.sstable.SSTable.estimateRowsFromIndex(SSTable.java:231) > at org.apache.cassandra.io.sstable.SSTableReader.load(SSTableReader.java:286) > at org.apache.cassandra.io.sstable.SSTableReader.open(SSTableReader.java:202) > at org.apache.cassandra.db.ColumnFamilyStore.(ColumnFamilyStore.java:235) > at org.apache.cassandra.db.ColumnFamilyStore.createColumnFamilyStore(ColumnFamilyStore.java:443) > at org.apache.cassandra.db.ColumnFamilyStore.createColumnFamilyStore(ColumnFamilyStore.java:431) > at org.apache.cassandra.db.Table.initCf(Table.java:335) > at org.apache.cassandra.db.Table.reloadCf(Table.java:343) > at org.apache.cassandra.db.migration.UpdateColumnFamily.applyModels(UpdateColumnFamily.java:89) > at org.apache.cassandra.db.migration.Migration.apply(Migration.java:158) > at org.apache.cassandra.thrift.CassandraServer$2.call(CassandraServer.java:672) > at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303) > at java.util.concurrent.FutureTask.run(FutureTask.java:138) > at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) > at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) > at java.lang.Thread.run(Thread.java:619) > ... > INFO [CompactionExecutor:1] 2010-11-02 16:31:31,970 CompactionManager.java (line 303) Compacted to Standard1-tmp-e-10-Data.db. 213,657,983 to 213,657,983 (~100% of original) bytes for 626,563 keys. Time: 31,416ms. > {code} > There is also a race between schema modification and streaming. -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.