summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaul J. Davis <paul.joseph.davis@gmail.com>2019-04-17 11:13:06 -0500
committerPaul J. Davis <paul.joseph.davis@gmail.com>2019-04-17 11:13:06 -0500
commitc45c7329d5639bb330d7ae6c6805d8337d4aa788 (patch)
treeb0b6588659d445ad9911af36e4222f39811a3bb1
parent4af77731ee0cb03013c60756ec1b89a464d23f23 (diff)
downloadcouchdb-c45c7329d5639bb330d7ae6c6805d8337d4aa788.tar.gz
Only attempt to short circuit write transactions
-rw-r--r--src/fabric/src/fabric2_fdb.erl11
1 files changed, 8 insertions, 3 deletions
diff --git a/src/fabric/src/fabric2_fdb.erl b/src/fabric/src/fabric2_fdb.erl
index abc7fed57..e2aa02c68 100644
--- a/src/fabric/src/fabric2_fdb.erl
+++ b/src/fabric/src/fabric2_fdb.erl
@@ -752,9 +752,14 @@ tx_check_applied(Tx, Fun) ->
tx_attempt(Tx, Fun) ->
Result = Fun(Tx),
- TxId = tx_id(Tx),
- ok = erlfdb:set(Tx, TxId, <<>>),
- put(?PDICT_TX_RES_KEY, Result),
+ case erlfdb:is_read_only(Tx) of
+ true ->
+ ok;
+ false ->
+ TxId = tx_id(Tx),
+ ok = erlfdb:set(Tx, TxId, <<>>),
+ put(?PDICT_TX_RES_KEY, Result)
+ end,
Result.