accumulo-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Bob Thorman (JIRA)" <j...@apache.org>
Subject [jira] [Created] (ACCUMULO-651) Key constructor, Column Visibility can corrupt a table
Date Mon, 25 Jun 2012 18:01:45 GMT
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

        

Mime
View raw message