From dcb3f9c6fb378d52271377e5883f57e2df7011a0 Mon Sep 17 00:00:00 2001 From: Nina Breznik Date: Wed, 22 May 2024 19:12:08 +0100 Subject: [PATCH] fix bugs in hosterReplacement --- .../datdot-node-javascript-internal/chain.js | 13 +++++++++++-- .../behavior/author-hypercore.js | 2 +- .../datdot-simulate-user/behavior/sponsor-plan.js | 2 +- src/roles/attester.js | 3 ++- 4 files changed, 15 insertions(+), 5 deletions(-) diff --git a/src/node_modules/datdot-node-javascript-internal/chain.js b/src/node_modules/datdot-node-javascript-internal/chain.js index ca0d02ea..8206f777 100755 --- a/src/node_modules/datdot-node-javascript-internal/chain.js +++ b/src/node_modules/datdot-node-javascript-internal/chain.js @@ -850,7 +850,6 @@ async function storage_challenge_timeout (log, data) { log({ type: 'storage-challenge', data: { text: `error: storage challenge timeout ${cid}, hoster: ${user.id}, attester: ${attester_id}` } }) if (hoster_id !== user.id) return log({ type: 'storage-challenge', data: { text: 'error: not the right hoster', hoster_id, user_id: user.id } }) _pause({ args: { status: 'fail', log }, user: getUserByID(attester_id) }) - _pause({ args: { status: 'fail', log }, user: getUserByID(hoster_id) }) unbook_and_rate({ id: attester_id, role: 'attester', task: cid, type: 'storage', status: 'fail', log }) unbook_and_rate({ id: hoster_id, role: 'hoster', task: cid, type: 'storage', status: 'unknown', log }) await cleanup_and_new_storage_challenge({ user, log }) @@ -864,7 +863,10 @@ async function performance_challenge_timeout (log, data) { log({ type: 'performance-challenge-timeout', data: { text: 'error: performance challenge timeout', status, cid, perf: performance.now() - timestamp} }) const performanceChallenge = getPerformanceChallengeByID(cid) const attesterIDs = performanceChallenge.attesters - attesterIDs.forEach(id => unbook_and_rate({ id, role: 'attester', task: cid, type: 'performance', status: 'fail', log })) + attesterIDs.forEach(id => { + unbook_and_rate({ id, role: 'attester', task: cid, type: 'performance', status: 'fail', log }) + _pause({ args: { status: 'fail', log }, user: getUserByID(id) }) + }) await cleanup_and_new_performance_challenge(feedID, log) } @@ -1453,6 +1455,13 @@ async function start_HosterReplacement ({ failedHosters, amendmentID, avoid, log encoders = ref_amendment.providers.encoders break } + else if (type ==='retry_hostingSetup' && status === 'done') { + ref = id + hosters = providers.hosters + attesters = providers.attesters + encoders = providers.encoders + break + } else if (type ==='hostingSetup' && status === 'done') { ref = id hosters = providers.hosters diff --git a/src/node_modules/datdot-simulate-user/behavior/author-hypercore.js b/src/node_modules/datdot-simulate-user/behavior/author-hypercore.js index 50ae9005..5cf294ef 100755 --- a/src/node_modules/datdot-simulate-user/behavior/author-hypercore.js +++ b/src/node_modules/datdot-simulate-user/behavior/author-hypercore.js @@ -1,6 +1,6 @@ const b4a = require('b4a') const {done_task_cleanup} = require('_datdot-service-helpers/done-task-cleanup') -const DEFAULT_TIMEOUT = 5000 +const DEFAULT_TIMEOUT = 10000 /****************************************************************************** ROLE: author diff --git a/src/node_modules/datdot-simulate-user/behavior/sponsor-plan.js b/src/node_modules/datdot-simulate-user/behavior/sponsor-plan.js index 5daa0a70..064bd586 100755 --- a/src/node_modules/datdot-simulate-user/behavior/sponsor-plan.js +++ b/src/node_modules/datdot-simulate-user/behavior/sponsor-plan.js @@ -4,7 +4,7 @@ const {done_task_cleanup} = require('_datdot-service-helpers/done-task-cleanup') const getChatAPI = require('_chat/client') const proof_codec = require('datdot-codec/proof') const b4a = require('b4a') -const DEFAULT_TIMEOUT = 5000 +const DEFAULT_TIMEOUT = 10000 /****************************************************************************** ROLE: sponsor diff --git a/src/roles/attester.js b/src/roles/attester.js index 3fdb21c6..7365cdf8 100755 --- a/src/roles/attester.js +++ b/src/roles/attester.js @@ -1201,8 +1201,9 @@ async function hosterReplacement_handler (args) { async function finishAndSendReport () { // called for each replacement hoster - log({ type: 'attester', data: { text: 'all sent to hoster in hoster replacement', finished, pos_len: positions.length }}) finished++ + log({ type: 'attester', data: { text: 'all sent to hoster in hoster replacement', finished, pos_len: positions.length }}) + if (finished !== positions.length) return clearTimeout(tid) for (const [topic, remotestringkey] of replacement_encoders) { await done_task_cleanup({