aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSebastian <sebasjm@gmail.com>2022-01-13 01:31:53 -0300
committerSebastian <sebasjm@gmail.com>2022-01-13 01:34:16 -0300
commitf6ec105b72ab5b79b934b8a4c1626b019c31c4a2 (patch)
tree031b3af4359880bd40cb0e7fdc6b4bd0a6378a3f
parent5eeb00e158ee5908bb4b62374f43e35d1a5f1a49 (diff)
fixing high cpu usage after some time
retryinfo was not being updated and not being used by exchangeCheckRefresh pending operation
-rw-r--r--packages/taler-wallet-core/src/operations/exchanges.ts13
-rw-r--r--packages/taler-wallet-core/src/operations/pending.ts11
2 files changed, 9 insertions, 15 deletions
diff --git a/packages/taler-wallet-core/src/operations/exchanges.ts b/packages/taler-wallet-core/src/operations/exchanges.ts
index 2975c860f..c14f27656 100644
--- a/packages/taler-wallet-core/src/operations/exchanges.ts
+++ b/packages/taler-wallet-core/src/operations/exchanges.ts
@@ -123,7 +123,7 @@ async function handleExchangeUpdateError(
): Promise<void> {
await ws.db
.mktx((x) => ({ exchanges: x.exchanges }))
- .runReadOnly(async (tx) => {
+ .runReadWrite(async (tx) => {
const exchange = await tx.exchanges.get(baseUrl);
if (!exchange) {
return;
@@ -131,6 +131,7 @@ async function handleExchangeUpdateError(
exchange.retryInfo.retryCounter++;
updateRetryInfoTimeout(exchange.retryInfo);
exchange.lastError = err;
+ await tx.exchanges.put(exchange)
});
if (err) {
ws.notify({ type: NotificationType.ExchangeOperationError, error: err });
@@ -526,11 +527,11 @@ async function updateExchangeFromUrlImpl(
tosFound !== undefined
? tosFound
: await downloadExchangeWithTermsOfService(
- baseUrl,
- ws.http,
- timeout,
- "text/plain",
- );
+ baseUrl,
+ ws.http,
+ timeout,
+ "text/plain",
+ );
let recoupGroupId: string | undefined = undefined;
diff --git a/packages/taler-wallet-core/src/operations/pending.ts b/packages/taler-wallet-core/src/operations/pending.ts
index 99d275836..b2f13625a 100644
--- a/packages/taler-wallet-core/src/operations/pending.ts
+++ b/packages/taler-wallet-core/src/operations/pending.ts
@@ -51,25 +51,18 @@ async function gatherExchangePending(
resp: PendingOperationsResponse,
): Promise<void> {
await tx.exchanges.iter().forEachAsync(async (e) => {
- let exchangeUpdateTimestampDue: Timestamp;
-
- if (e.lastError) {
- exchangeUpdateTimestampDue = e.retryInfo.nextRetry;
- } else {
- exchangeUpdateTimestampDue = e.nextUpdate;
- }
resp.pendingOperations.push({
type: PendingTaskType.ExchangeUpdate,
givesLifeness: false,
- timestampDue: exchangeUpdateTimestampDue,
+ timestampDue: e.lastError ? e.retryInfo.nextRetry : e.nextUpdate,
exchangeBaseUrl: e.baseUrl,
lastError: e.lastError,
});
resp.pendingOperations.push({
type: PendingTaskType.ExchangeCheckRefresh,
- timestampDue: e.nextRefreshCheck,
+ timestampDue: e.lastError ? e.retryInfo.nextRetry : e.nextRefreshCheck,
givesLifeness: false,
exchangeBaseUrl: e.baseUrl,
});