Skip to content

Jtest fail on ARM #5751

@wangxiyuan

Description

@wangxiyuan

There is one test failed on my local ARM machine when running make jtest

getOutOfArrayMaxSizeValue(org.rocksdb.RocksDBTest)

java.lang.AssertionError: Expected test to throw (an instance of org.rocksdb.RocksDBException and exception with message a string containing "Requested array size exceeds VM limit")
	at org.junit.Assert.fail(Assert.java:88)
	at org.junit.rules.ExpectedException.failDueToMissingException(ExpectedException.java:263)
	at org.junit.rules.ExpectedException.access$200(ExpectedException.java:106)
	at org.junit.rules.ExpectedException$ExpectedExceptionStatement.evaluate(ExpectedException.java:245)
	at org.junit.rules.RunRules.evaluate(RunRules.java:20)
	at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325)
	at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78)
	at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57)
	at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
	at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
	at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
	at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
	at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
	at org.junit.rules.ExternalResource$1.evaluate(ExternalResource.java:48)
	at org.junit.rules.RunRules.evaluate(RunRules.java:20)
	at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
	at org.junit.runners.Suite.runChild(Suite.java:128)
	at org.junit.runners.Suite.runChild(Suite.java:27)
	at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
	at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
	at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
	at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
	at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
	at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
	at org.junit.runner.JUnitCore.run(JUnitCore.java:137)
	at org.junit.runner.JUnitCore.run(JUnitCore.java:115)
	at org.junit.runner.JUnitCore.run(JUnitCore.java:105)
	at org.junit.runner.JUnitCor

While when I was debugging this test with jdb, and set a breakpoint at L351, I hit a strange behavior. If I print run at once, the test will fail. But if I wait one minute and then print run, this test will pass.

For example, if I type print db.get(key) several times quickly at once when the code stopping at L351. You can see that the value is not updated at once:

main[1] print db.get(key)
 db.get(key) = instance of byte[1073741824] (id=1042)
main[1] print db.get(key)
 db.get(key) = instance of byte[1073741824] (id=1043)
main[1] print db.get(key)
 db.get(key) = instance of byte[1073741824] (id=1044)
main[1] print db.get(key)
 db.get(key) = instance of byte[1073741824] (id=1045)
main[1] print db.get(key)
Exception in expression: org.rocksdb.RocksDBException
 db.get(key) = null

Any suggestion about this case? Is it related to RocksDB cache or anything else.? Need any idea.

Thanks.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions