[
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