[ https://issues.apache.org/jira/browse/ACCUMULO-651?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13401428#comment-13401428 ]
Keith Turner commented on ACCUMULO-651: --------------------------------------- I think this is a dupe of ACCUMULO-360 > Key constructor, Column Visibility can corrupt a table > ------------------------------------------------------ > > Key: ACCUMULO-651 > URL: https://issues.apache.org/jira/browse/ACCUMULO-651 > Project: Accumulo > Issue Type: Bug > Components: tserver > Affects Versions: 1.4.0 > Environment: RHEL 6, Hadoop 0.20.2, ZooKeeper 3.4.3, Accumulo 1.4.0 > Reporter: Bob Thorman > Assignee: Keith Turner > Priority: Minor > > The Key constructor does not check the integrity of the column visibility > field which can cause some corruption in a table. For example the following > code will generate a valid Key that can be written to a table > Key k = new Key(new Text("BOB"), new Text("CF"), new Text("CQ"), new > Text("public,private"), System.currentTimeMillis()); > and that key can be used as output (in my case a mapreduce job). > During scan operations the following exception is thrown... > exception while scanning tablet a<< > org.apache.accumulo.core.util.BadArgumentException: bad character (44) > near index 6 > public,private > ^ > at > org.apache.accumulo.core.security.ColumnVisibility$ColumnVisibilityParser.parse_(ColumnVisibility.java:238) > at > org.apache.accumulo.core.security.ColumnVisibility$ColumnVisibilityParser.parse(ColumnVisibility.java:157) > at > org.apache.accumulo.core.security.ColumnVisibility.validate(ColumnVisibility.java:257) > at > org.apache.accumulo.core.security.ColumnVisibility.<init>(ColumnVisibility.java:311) > at > org.apache.accumulo.core.security.ColumnVisibility.<init>(ColumnVisibility.java:279) > at > org.apache.accumulo.core.iterators.system.VisibilityFilter.accept(VisibilityFilter.java:70) > at > org.apache.accumulo.core.iterators.Filter.findTop(Filter.java:72) > at > org.apache.accumulo.core.iterators.Filter.seek(Filter.java:65) > at > org.apache.accumulo.core.iterators.system.SourceSwitchingIterator.readNext(SourceSwitchingIterator.java:116) > at > org.apache.accumulo.core.iterators.system.SourceSwitchingIterator.seek(SourceSwitchingIterator.java:168) > at > org.apache.accumulo.server.tabletserver.Tablet.nextBatch(Tablet.java:1741) > at > org.apache.accumulo.server.tabletserver.Tablet.access$3200(Tablet.java:143) > at > org.apache.accumulo.server.tabletserver.Tablet$Scanner.read(Tablet.java:1883) > at > org.apache.accumulo.server.tabletserver.TabletServer$ThriftClientHandler$NextBatchTask.run(TabletServer.java:905) > at > org.apache.accumulo.cloudtrace.instrument.TraceRunnable.run(TraceRunnable.java:47) > 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) -- 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