Details
-
Bug
-
Resolution: Fixed
-
Major
-
Cheshire-Cat
-
Untriaged
-
1
-
Unknown
Description
(This is an ongoing investigation, and the title and this description will get tidied up as we know more.)
QE have reported some regressions going from transactions Java library 1.1.6 to 1.1.7. After some triaging I've narrowed it down to 1.1.7 sending the "txtimeout" N1QL parameter, which 1.1.6 did not. (Work done in TXNJ-388 / CBD-3995.) It's affected the transaction expiry behaviour (the testing below is with 7.0.0-4907):
Behaviour when txtimeout is not sent (1.1.6)
The COMMIT returns one error, and the transaction has been rolled back.
{
|
"errors":[
|
{
|
"additional":{
|
"cause":{
|
"cause":{
|
"bucket":"default",
|
"cause":"deadline expired before WWC was resolved on default._default._default._txn:atr-806-#8b7",
|
"collection":"_default",
|
"document_key":"b5a86b88-a3ee-40ea-9fef-5f7808344bfa",
|
"msg":"write write conflict",
|
"scope":"_default"
|
},
|
"raise":"failed",
|
"retry":true,
|
"rollback":false
|
}
|
},
|
"code":17007,
|
"message":"Commit Transaction statement error"
|
}
|
]
|
}
|
Behaviour when txtimeout is sent (1.1.7)
COMMIT returns three errors, and rollback has not been performed.
{
|
"errors":[
|
{
|
"additional":{
|
"retry":true
|
},
|
"code":1080,
|
"message":"Timeout 969.7255ms exceeded"
|
},
|
{
|
"additional":{
|
"cause":{
|
"cause":{
|
"bucket":"default",
|
"cause":"deadline expired before WWC was resolved on default._default._default._txn:atr-282-#b34",
|
"collection":"_default",
|
"document_key":"451278dc-a98f-47de-9fc2-63f4485e59f2",
|
"msg":"write write conflict",
|
"scope":"_default"
|
},
|
"raise":"failed",
|
"retry":true,
|
"rollback":false
|
}
|
},
|
"code":17007,
|
"message":"Commit Transaction statement error"
|
},
|
{
|
"code":17010,
|
"message":"Transaction timeout"
|
}
|
]
|
}
|
Since 1.1.7 is meant to be released tomorrow, I'm going to rollback TXNJ-388 somewhat, and not send txtimeout in this release. The other N1QL parameters will continue to be sent as they appear to be causing no issues. Once we've found the root cause here can consider sending txtimeout again.