You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@accumulo.apache.org by "Josh Elser (JIRA)" <ji...@apache.org> on 2015/10/19 23:48:27 UTC

[jira] [Created] (ACCUMULO-4035) Spurious NamespacesIT.verifyConstraintInheritance failure

Josh Elser created ACCUMULO-4035:
------------------------------------

             Summary: Spurious NamespacesIT.verifyConstraintInheritance failure
                 Key: ACCUMULO-4035
                 URL: https://issues.apache.org/jira/browse/ACCUMULO-4035
             Project: Accumulo
          Issue Type: Bug
          Components: test
            Reporter: Josh Elser
            Assignee: Josh Elser
            Priority: Minor
             Fix For: 1.6.5, 1.7.1, 1.8.0


{noformat}
java.lang.AssertionError: null
	at org.junit.Assert.fail(Assert.java:86)
	at org.junit.Assert.fail(Assert.java:95)
	at org.apache.accumulo.test.NamespacesIT.verifyConstraintInheritance(NamespacesIT.java:516)
{noformat}

Which lines up with the following code, the assertion failure happening on the {{fail()}}

{code}
    c.namespaceOperations().addConstraint(namespace, constraintClassName);
    assertTrue(c.namespaceOperations().listConstraints(namespace).containsKey(constraintClassName));
    assertTrue(c.tableOperations().listConstraints(t1).containsKey(constraintClassName));
    int num = c.namespaceOperations().listConstraints(namespace).get(constraintClassName);
    assertEquals(num, (int) c.tableOperations().listConstraints(t1).get(constraintClassName));
    // doesn't take effect immediately, needs time to propagate to tserver's ZooKeeper cache
    UtilWaitThread.sleep(250);

    Mutation m1 = new Mutation("r1");
    Mutation m2 = new Mutation("r2");
    Mutation m3 = new Mutation("r3");
    m1.put("a", "b", new Value("abcde".getBytes(UTF_8)));
    m2.put("e", "f", new Value("123".getBytes(UTF_8)));
    m3.put("c", "d", new Value("zyxwv".getBytes(UTF_8)));
    BatchWriter bw = c.createBatchWriter(t1, new BatchWriterConfig());
    bw.addMutations(Arrays.asList(m1, m2, m3));
    try {
      bw.close();
      fail();
    } catch (MutationsRejectedException e) {
      assertEquals(1, e.getConstraintViolationSummaries().size());
      assertEquals(2, e.getConstraintViolationSummaries().get(0).getNumberOfViolatingMutations());
    }
{code}

Looks like this is just another case where a test poorly makes assumptions about ZK propagation.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)