Bob Thorman created ACCUMULO-651:
------------------------------------
Summary: 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