Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Jtest fail on ARM #5751

Closed
wangxiyuan opened this issue Aug 28, 2019 · 3 comments
Closed

Jtest fail on ARM #5751

wangxiyuan opened this issue Aug 28, 2019 · 3 comments

Comments

@wangxiyuan
Copy link

wangxiyuan commented Aug 28, 2019

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.

@riversand963
Copy link
Contributor

I do not have access to ARM. Look forward to feedback from people who can give this a shot.

@wangxiyuan
Copy link
Author

@riversand963 I can provide a ARM VM temporarily. Please let me know if you need one. Thanks.

@Yikun
Copy link
Contributor

Yikun commented Sep 26, 2019

Is the db.merge operation an asynchronous operation? I encountered the same problem in my aarch64 env.

The behavior of this operations is like: the merge operations is not completed after the 10 times db.merge. looks like we need wait a moment and then trigger the final RocksDBException.

If it is, I think maybe we should fix the test case.

yiwu-arbug pushed a commit to tikv/rocksdb that referenced this issue Mar 9, 2020
Add WAL write duration metric

UCP [facebook#5751](tikv/tikv#6541)

Signed-off-by: Wangweizhen <hawking.rei@gmail.com>
yiwu-arbug pushed a commit to tikv/rocksdb that referenced this issue Mar 20, 2020
Add WAL write duration metric

UCP [facebook#5751](tikv/tikv#6541)

Signed-off-by: Wangweizhen <hawking.rei@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants