When running a series of in session and sessionless request from the same client, an in session transaction can be opened by a sessionless request.
This failing test (in GremlinServerIntegrateTest.java) demonstrated this:
If these same requests are made from two different clients there are no issues (see test in GremlinDriverIntegrateTest.java)
Rundown of what the tests do :
- Open a transaction (in session)
- Add vertex (in session)
- Commit transaction (in session)
- Test if transaction is closed (in session) =TRUE
- Send sessionless read request.
- Test if transaction is closed(in session) =FALSE <--- bug should be =TRUE
The bug only occurs if there's a sessionless read, and if the read returns elements (not FastNoSuchElement...).