getMultiRange (which is synchronized) is being called which is locking the transaction. Then, a transaction reset is being triggered, likely by the time limit being exceeded by the FDB driver, on that same transaction which triggers a call to restart(), which is also synchronized. It can't get the lock so it's stuck and then that blocks everything.
Steps to reproduce:
mvn -Dtest=FoundationDBOLAPTest clean package test
This thread dump demonstrates the issue on lines 23 and 502.
getMultiRange
(which is synchronized) is being called which is locking the transaction. Then, a transaction reset is being triggered, likely by the time limit being exceeded by the FDB driver, on that same transaction which triggers a call torestart()
, which is also synchronized. It can't get the lock so it's stuck and then that blocks everything.Steps to reproduce:
mvn -Dtest=FoundationDBOLAPTest clean package test
This thread dump demonstrates the issue on lines 23 and 502.
jgfdb-stack-dump.txt