add a few more FOR UPDATE where appropriate
This commit is contained in:
parent
9887077ea2
commit
e0935af764
@ -1,5 +1,5 @@
|
|||||||
{
|
{
|
||||||
"url": "payto://x-taler-bank/localhost:8082/2",
|
"url": "payto://x-taler-bank/localhost:8082/2",
|
||||||
"salt": "KY6F590HGDDJ2W8X1PFFKQDV5WNR6EFTBY2Q7MXCG4FQFZ53RKS2DA0DMQAK20V9B6P4JHB55E41XT905YEQHB0S9PA2YCDS2VSV6QR",
|
"salt": "1D8FXNTNHJZH0FQ60CT136GTHCMBM3WBDMGWNBFXMQ2R7XSCY69Y5MG1745WBJZAWWPNRCXD7KV8CCRWYZ10Y6D1694RVSGBFZFND2R",
|
||||||
"master_sig": "W2GC7FF6NG8D6NGT1XKYF2GDDA2W2Q4GH1AZ47KD3MY4CNS29QF4VH1DWE11NW33ZPTCV4XMMGNSE1KKFF7DMK81R8A2VBBF8FMFY0R"
|
"master_sig": "CRYKJBSH7QJ9Q32SPSR2PQNMFNSV76Q6JN4GHNQXYZ14CC4SFWYM9XWK678XZ05T6QYV0PD76Q4S1E5V7SJ7A49GQW6CZJS8YWH6W28"
|
||||||
}
|
}
|
@ -22,6 +22,7 @@
|
|||||||
* @brief HTTP serving layer intended to perform crypto-work and
|
* @brief HTTP serving layer intended to perform crypto-work and
|
||||||
* communication with the exchange
|
* communication with the exchange
|
||||||
* @author Marcello Stanisci
|
* @author Marcello Stanisci
|
||||||
|
* @author Christian Grothoff
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "platform.h"
|
#include "platform.h"
|
||||||
|
@ -30,7 +30,7 @@
|
|||||||
* How often should we retry a transaction before giving up
|
* How often should we retry a transaction before giving up
|
||||||
* (for transactions resulting in serialization/dead locks only).
|
* (for transactions resulting in serialization/dead locks only).
|
||||||
*/
|
*/
|
||||||
#define MAX_TRANSACTION_COMMIT_RETRIES 3
|
#define MAX_TRANSACTION_COMMIT_RETRIES 2
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -108,7 +108,8 @@ TEH_DB_run_transaction (struct MHD_Connection *connection,
|
|||||||
if (0 <= qs)
|
if (0 <= qs)
|
||||||
return GNUNET_OK;
|
return GNUNET_OK;
|
||||||
}
|
}
|
||||||
TALER_LOG_WARNING ("Transaction commit failed %u times\n",
|
TALER_LOG_ERROR ("Transaction `%s' commit failed %u times\n",
|
||||||
|
name,
|
||||||
MAX_TRANSACTION_COMMIT_RETRIES);
|
MAX_TRANSACTION_COMMIT_RETRIES);
|
||||||
if (NULL != mhd_ret)
|
if (NULL != mhd_ret)
|
||||||
*mhd_ret = TEH_RESPONSE_reply_commit_error (connection,
|
*mhd_ret = TEH_RESPONSE_reply_commit_error (connection,
|
||||||
|
@ -573,7 +573,8 @@ postgres_prepare (PGconn *db_conn)
|
|||||||
",expiration_date"
|
",expiration_date"
|
||||||
" FROM reserves"
|
" FROM reserves"
|
||||||
" WHERE reserve_pub=$1"
|
" WHERE reserve_pub=$1"
|
||||||
" LIMIT 1;",
|
" LIMIT 1"
|
||||||
|
" FOR UPDATE;",
|
||||||
1),
|
1),
|
||||||
/* Used in #postgres_reserves_in_insert() when the reserve is new */
|
/* Used in #postgres_reserves_in_insert() when the reserve is new */
|
||||||
GNUNET_PQ_make_prepare ("reserve_create",
|
GNUNET_PQ_make_prepare ("reserve_create",
|
||||||
@ -782,7 +783,8 @@ postgres_prepare (PGconn *db_conn)
|
|||||||
" FROM known_coins"
|
" FROM known_coins"
|
||||||
" JOIN denominations denom"
|
" JOIN denominations denom"
|
||||||
" USING (denom_pub_hash)"
|
" USING (denom_pub_hash)"
|
||||||
" WHERE coin_pub=$1;",
|
" WHERE coin_pub=$1"
|
||||||
|
" FOR UPDATE;",
|
||||||
1),
|
1),
|
||||||
/* Used in #postgres_insert_known_coin() to store
|
/* Used in #postgres_insert_known_coin() to store
|
||||||
the denomination public key and signature for
|
the denomination public key and signature for
|
||||||
@ -895,7 +897,8 @@ postgres_prepare (PGconn *db_conn)
|
|||||||
" JOIN denominations denom "
|
" JOIN denominations denom "
|
||||||
" USING (denom_pub_hash)"
|
" USING (denom_pub_hash)"
|
||||||
" WHERE rc=$1"
|
" WHERE rc=$1"
|
||||||
" ORDER BY newcoin_index ASC;",
|
" ORDER BY newcoin_index ASC"
|
||||||
|
" FOR UPDATE;",
|
||||||
1),
|
1),
|
||||||
|
|
||||||
/* Used in #postgres_insert_refresh_reveal() to store the transfer
|
/* Used in #postgres_insert_refresh_reveal() to store the transfer
|
||||||
@ -1008,7 +1011,8 @@ postgres_prepare (PGconn *db_conn)
|
|||||||
" (coin_pub=$1)"
|
" (coin_pub=$1)"
|
||||||
" AND (h_contract_terms=$2)"
|
" AND (h_contract_terms=$2)"
|
||||||
" AND (merchant_pub=$3)"
|
" AND (merchant_pub=$3)"
|
||||||
" );",
|
" )"
|
||||||
|
" FOR UPDATE;",
|
||||||
3),
|
3),
|
||||||
/* Fetch deposits with rowid '\geq' the given parameter */
|
/* Fetch deposits with rowid '\geq' the given parameter */
|
||||||
GNUNET_PQ_make_prepare ("audit_get_deposits_incr",
|
GNUNET_PQ_make_prepare ("audit_get_deposits_incr",
|
||||||
@ -1150,7 +1154,8 @@ postgres_prepare (PGconn *db_conn)
|
|||||||
" USING (coin_pub)"
|
" USING (coin_pub)"
|
||||||
" JOIN denominations denom"
|
" JOIN denominations denom"
|
||||||
" USING (denom_pub_hash)"
|
" USING (denom_pub_hash)"
|
||||||
" WHERE coin_pub=$1;",
|
" WHERE coin_pub=$1"
|
||||||
|
" FOR UPDATE;",
|
||||||
1),
|
1),
|
||||||
|
|
||||||
/* Used in #postgres_get_link_data(). */
|
/* Used in #postgres_get_link_data(). */
|
||||||
@ -1564,7 +1569,8 @@ postgres_prepare (PGconn *db_conn)
|
|||||||
" reserve_pub"
|
" reserve_pub"
|
||||||
" FROM reserves_out"
|
" FROM reserves_out"
|
||||||
" WHERE h_blind_ev=$1"
|
" WHERE h_blind_ev=$1"
|
||||||
" LIMIT 1;",
|
" LIMIT 1"
|
||||||
|
" FOR UPDATE;",
|
||||||
1),
|
1),
|
||||||
/* used in #postgres_commit */
|
/* used in #postgres_commit */
|
||||||
GNUNET_PQ_make_prepare ("do_commit",
|
GNUNET_PQ_make_prepare ("do_commit",
|
||||||
|
Loading…
Reference in New Issue
Block a user