Return-Path: X-Original-To: apmail-cassandra-user-archive@www.apache.org Delivered-To: apmail-cassandra-user-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 98671975D for ; Thu, 14 Jun 2012 17:56:17 +0000 (UTC) Received: (qmail 3985 invoked by uid 500); 14 Jun 2012 17:56:15 -0000 Delivered-To: apmail-cassandra-user-archive@cassandra.apache.org Received: (qmail 3936 invoked by uid 500); 14 Jun 2012 17:56:15 -0000 Mailing-List: contact user-help@cassandra.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: user@cassandra.apache.org Delivered-To: mailing list user@cassandra.apache.org Received: (qmail 3928 invoked by uid 99); 14 Jun 2012 17:56:15 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 14 Jun 2012 17:56:15 +0000 X-ASF-Spam-Status: No, hits=0.7 required=5.0 tests=FSL_RCVD_USER,SPF_NEUTRAL X-Spam-Check-By: apache.org Received-SPF: neutral (nike.apache.org: 132.72.126.41 is neither permitted nor denied by domain of lolitushka@gmail.com) Received: from [132.72.126.41] (HELO smtp3.bgu.ac.il) (132.72.126.41) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 14 Jun 2012 17:56:05 +0000 Received: from smtp3.bgu.ac.il (unknown [127.0.0.1]) by IMSVA80 (Postfix) with ESMTP id 997513E01B0 for ; Thu, 14 Jun 2012 20:55:44 +0300 (IDT) Received: from [194.90.167.156] (unknown [194.90.167.156]) by smtp3.bgu.ac.il (Postfix) with ESMTP id 54A253E01AE for ; Thu, 14 Jun 2012 20:55:44 +0300 (IDT) Message-ID: <4FDA25DC.6060502@gmail.com> Date: Thu, 14 Jun 2012 20:56:44 +0300 From: Piavlo User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:8.0) Gecko/20111124 Thunderbird/8.0 MIME-Version: 1.0 To: user@cassandra.apache.org Subject: Re: Urgent - IllegalArgumentException during compaction and memtable flush References: <4FD983FB.9040901@gmail.com> <4FD9B635.5020401@gmail.com> <4FD9EBC1.30409@gmail.com> <4FDA008A.6040404@gmail.com> In-Reply-To: <4FDA008A.6040404@gmail.com> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-TM-AS-Product-Ver: IMSVA-8.0.0.1450-6.8.0.1017-18970.001 X-TM-AS-Result: No--14.011-9.0-31-10 X-imss-scan-details: No--14.011-9.0-31-10 X-TM-AS-User-Approved-Sender: No X-TMASE-MatchedRID: x/EPlNU2vY1GPGvQwPCn2+kCJxGMLs8mO4rmf5nWGLZp2bKWF006suba uhKiOD87WFXEGWpKHAiVeAaH79xIvQ7AfikPXgOw8eSmTJSmEv246mo/tvaT3LkiJ/BgvX6rPlF 5N5t2gL+5fMM/YyLwVVgrLIjG/raKngk9B7BU8G9SGsgQwHevX46ESGgCXvgo31GU/N5W5BAJ/a H0DaAUBeFNmvRgukSAB9VrRw1/5wRDDeiNE5teHTUKYpyXO2BTmGSSol4Uei3I9EDAP/dptoPu8 51xHW06dcF5d1F9u/X1fbFnmt7Gdt8qyTrC2kZ5JLEgWUxgq8K063Wh9WVqgrjBOloUqqjhDrBA jvbPhh65UEPekfk8Lt0H8LFZNFG7bkV4e2xSge5kKooIew5mdmVtmuvTGndpW4OUR90+Qvfda4N AqZlBEFgpWCbva+Mm I was able to figure out that 353339332d3134363533393931 is the row key while no idea what is 92668395684826132216160944211592988451 part? sstable2json also fails with validation error on this row key now since I have lost data for this row - how do I find out that was the root cause? thanks On 06/14/2012 06:17 PM, Piavlo wrote: > Ok i've run scrub on the 3 nodes and the problematic row > Error validating row > DecoratedKey(92668395684826132216160944211592988451, > 353339332d3134363533393931) > > The full message is > > WARN [CompactionExecutor:2700] 2012-06-14 14:26:42,041 > CompactionManager.java (line 582) Non-fatal error reading row > (stacktrace follows) > java.io.IOError: java.io.IOException: Error validating row > DecoratedKey(92668395684826132216160944211592988451, > 353339332d3134363533393931) > at > org.apache.cassandra.db.compaction.PrecompactedRow.merge(PrecompactedRow.java:114) > at > org.apache.cassandra.db.compaction.PrecompactedRow.(PrecompactedRow.java:97) > at > org.apache.cassandra.db.compaction.CompactionController.getCompactedRow(CompactionController.java:137) > at > org.apache.cassandra.db.compaction.CompactionController.getCompactedRow(CompactionController.java:143) > at > org.apache.cassandra.db.compaction.CompactionManager.scrubOne(CompactionManager.java:566) > at > org.apache.cassandra.db.compaction.CompactionManager.doScrub(CompactionManager.java:473) > at > org.apache.cassandra.db.compaction.CompactionManager.access$200(CompactionManager.java:64) > at > org.apache.cassandra.db.compaction.CompactionManager$3.perform(CompactionManager.java:213) > at > org.apache.cassandra.db.compaction.CompactionManager$2.call(CompactionManager.java:183) > 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:662) > Caused by: java.io.IOException: Error validating row > DecoratedKey(92668395684826132216160944211592988451, > 353339332d3134363533393931) > at > org.apache.cassandra.io.sstable.SSTableIdentityIterator.getColumnFamilyWithColumns(SSTableIdentityIterator.java:241) > at > org.apache.cassandra.db.compaction.PrecompactedRow.merge(PrecompactedRow.java:110) > ... 13 more > Caused by: org.apache.cassandra.db.marshal.MarshalException: Not > enough bytes to read value of component 1 > at > org.apache.cassandra.db.marshal.AbstractCompositeType.validate(AbstractCompositeType.java:240) > at org.apache.cassandra.db.Column.validateName(Column.java:273) > at org.apache.cassandra.db.Column.validateFields(Column.java:278) > at > org.apache.cassandra.db.ColumnFamily.validateColumnFields(ColumnFamily.java:372) > at > org.apache.cassandra.io.sstable.SSTableIdentityIterator.getColumnFamilyWithColumns(SSTableIdentityIterator.java:237) > ... 14 more > WARN [CompactionExecutor:2700] 2012-06-14 14:26:42,085 > CompactionManager.java (line 624) Row at 4047368880 is unreadable; > skipping to next > > > This happened on several sstables on on each of the nodes - meaning it > was mutated several times > > dsc2b: > > /var/lib/cassandra/data/PRODUCTION/UserCompletions-hc-450-Data.db at > 4244390041 > > /var/lib/cassandra/data/PRODUCTION/UserCompletions-hc-452-Data.db at > 9366462649 > > dsc2c: > > /var/lib/cassandra/data/PRODUCTION/UserCompletions-hc-413-Data.db at > 4047368880 > > /var/lib/cassandra/data/PRODUCTION/UserCompletions-hc-481-Data.db at > 3598063925 > > dsc1a: > > /var/lib/cassandra/data/PRODUCTION/UserCompletions-hc-883-Data.db at > 271195463 > > /var/lib/cassandra/data/PRODUCTION/UserCompletions-hc-733-Data.db at > 1089815977 > > /var/lib/cassandra/data/PRODUCTION/UserCompletions-hc-895-Data.db at > 312147765 > > How do I use this info to find out what is actually wrong with this > column, as I highly want to prevent it from being written again :) > > Thanks > > On 06/14/2012 05:02 PM, Sylvain Lebresne wrote: >>> Is there way to make cassandra throw away the offending column? >> Running scrub should allow to get read of the row containing the >> problematic column. Unfortunately it will discard the whole row, not >> just the column. >> However, since scrub takes a snapshot anyway (and should tell you >> which sstable had the offending column), you could do that and keep >> the bad sstable around to further investigate. >> >>> maybe sstable2json can somehow help? >> It's worth a try but there is a good change sstable2json will throw an >> error too. It may have written enough at that point for you to find >> which row is wrong though. >> >> -- >> Sylvain >