Skip to content
Snippets Groups Projects
Commit 2721a795 authored by Éloïs's avatar Éloïs
Browse files

[fix] bug in lock cache

parent 7bd10d7b
Branches
Tags
1 merge request!59Dev module
......@@ -53,11 +53,12 @@ module.exports = (req, res, next) => co(function *() {
// Alimenter wotb avec la toile actuelle
const wotbInstance = wotb.newFileInstance(duniterServer.home + '/wotb.bin');
// Vérifier si le cache doit être Réinitialiser
let reinitCache = (!cache.lockMembers && Math.floor(Date.now() / 1000) > (cache.membersLastUptime + MIN_MEMBERS_UPDATE_FREQ));
// Attendre que le cache soit déverouiller (même si on ne le modifie pas !)
// Attendre que le cache members soit déverouiller puis prendre la main dessus
while(cache.lockMembers);
cache.lockMembers = true;
// Vérifier si le cache doit être Réinitialiser
let reinitCache = (Math.floor(Date.now() / 1000) > (cache.membersLastUptime + MIN_MEMBERS_UPDATE_FREQ));
// Si changement de conditions, forcer le rechargement du cache
if (previousMode != mode || previousCentrality != centrality) { reinitCache = true; }
......@@ -65,7 +66,6 @@ module.exports = (req, res, next) => co(function *() {
if (reinitCache)
{
// Réinitialiser le cache
cache.lockMembers = true;
previousMode = mode;
previousCentrality = centrality;
membersList = [];
......@@ -573,6 +573,8 @@ module.exports = (req, res, next) => co(function *() {
// }
}
// Dévérouiller le cache members
cache.lockMembers = false;
next()
}
} catch (e) {
......
......@@ -53,16 +53,16 @@ module.exports = (req, res, next) => co(function *() {
// Alimenter wotb avec la toile de confiance actuelle
const wotbInstance = wotb.newFileInstance(duniterServer.home + '/wotb.bin');
// Attendre que le cache willMembers soit déverouillé (même si on ne le modifie pas !) puis prendre la main dessus
while(cache.lockWillMembers);
cache.lockWillMembers = true;
// Vérifier si le cache doit être Réinitialiser
let reinitCache = (!cache.lockWillMembers && Math.floor(Date.now() / 1000) > (cache.willMembersLastUptime + MIN_WILLMEMBERS_UPDATE_FREQ));
// Attendre que les cache willMembers et Members soient déverouillés (même si on ne les modifient pas !)
while(cache.lockWillMembers || cache.lockMembers);
if (reinitCache)
{
// Réinitialiser le cache
cache.lockWillMembers = true;
identitiesList = [];
idtysPendingCertifsList = [];
nbMaxCertifs = 0;
......@@ -432,9 +432,6 @@ module.exports = (req, res, next) => co(function *() {
cache.meanMembersReachedByIdtyPerCert[i] = 0.0;
}
}
// Dévérouiller le cache
cache.lockWillMembers = false;
}
// Si le client demande la réponse au format JSON, le faire
......@@ -501,6 +498,9 @@ module.exports = (req, res, next) => co(function *() {
return `#${hex}${hex}${hex}`
}
}
// Dévérouiller les caches willMembers et members
cache.lockWillMembers = false;
// Passer la main au template
next()
}
}
......
......@@ -31,7 +31,7 @@ ${(host.substr(host.length-6,6) == '.onion') ? HTML_TOR_HEAD:HTML_HEAD}
<a href="https://github.com/duniter/duniter-currency-monit/blob/master/LICENSE">License AGPL V 3.0</a><br>
<a href="https://github.com/duniter/duniter-currency-monit/">github repository</a>
</div><br>
<div align="left">Version : <a href="https://github.com/duniter/duniter-currency-monit/releases/tag/module-0.3">module-0.3</a></div><br>
<div align="left">Version : <a href="https://github.com/duniter/duniter-currency-monit/releases/tag/module-0.3.1">module-0.3.1</a></div><br>
<div align="left">Author : <a href="https://github.com/librelois">Éloïs Librelois</a></div><br>
<div align="left">Contributors : <a href="https://github.com/jytou">jytou</a> (translator), <a href="https://github.com/devingfx">devingfx</a> (frontend), <a href="https://github.com/c-geek">cgeek</a> (willMembers and wotex),<a href="https://github.com/M5oul">M5oul</a> (adjustments)</div><br>
<br>
......
......@@ -66,11 +66,11 @@ ${(membersLastCentralityCalcTime==0) ? `
`:`
<table border="1">
<tr><td align='center' colspan='2'>${LANG["DATA_AT"]} ${timestampToDatetime(membersLastCentralityCalcTime)}</td></tr>
<tr><td align='center'>${LANG["MEAN_LENGTH_PATH"]}</td><td align='center'><b>${(meanShortestsPathLength).toFixed(2)}</b></td></tr>
<tr><td align='center'>${LANG["MEAN_CENTRALITY"]}</td><td align='center'><b>${meanCentrality.toFixed(2)}</b></td></tr>
<tr><td align='center'>${LANG["NUMBER_OF_PAIRS_MEMBER"]}</td><td align='center'>${(membersListFiltered.length*(membersListFiltered.length-1))}</td></tr>
<tr><td align='center'>${LANG["NUMBER_OF_EXIST_PATH"]}</td><td align='center'><b>${nbShortestsPath}</b></td></tr>
<tr><td align='center'><b>${LANG["PROPORTION_OF_EXIST_PATH"]}</b></td><td align='center'><b>${((nbShortestsPath/(membersListFiltered.length*(membersListFiltered.length-1)))*100).toFixed(2)}%</b></td></tr>
<tr><td align='center'><b>${LANG["MEAN_LENGTH_PATH"]}</b></td><td align='center'><b>${(meanShortestsPathLength).toFixed(2)}</b></td></tr>
<tr><td align='center'><b>${LANG["PROPORTION_OF_EXIST_PATH"]}</b></td><td align='center'><font color="red"><b>${((nbShortestsPath/(membersListFiltered.length*(membersListFiltered.length-1)))*100).toFixed(2)}%</b></font></td></tr>
</table>
`}
`}
......@@ -80,7 +80,7 @@ ${(membersLastCentralityCalcTime==0) ? `
<tr><td align='center'>${LANG["meanMembersReachedByMembersInSingleExtCert"]}</td><td align='center'>${LANG["SENTRIES_REACHED"]}</td><td align='center'>${LANG["MEMBERS_REACHED"]}</td></tr>
<tr><td align='center'>${LANG["SENTRY_CERT"]}</td><td align='center'>${meanSentriesReachedBySentriesInSingleExtCert}%</td><td align='center'>${meanMembersReachedBySentriesInSingleExtCert}%</td></tr>
<tr><td align='center'>${LANG["MEMBER_CERT"]}</td><td align='center'><font color="${(meanSentriesReachedByMembersInSingleExtCert<xpercent) ? 'DarkRed' : 'blue' }"><b>${meanSentriesReachedByMembersInSingleExtCert}%</b></font></td><td align='center'><b>${meanMembersReachedByMembersInSingleExtCert}%</b></td></tr>
<tr><td align='center'>${LANG["MEAN_QUALITY"]}</td><td align='center'><font color="${(meanSentriesReachedByMembersInSingleExtCert<xpercent) ? 'DarkRed' : 'blue' }"><b>${(meanSentriesReachedByMembersInSingleExtCert/(xpercent*100)).toFixed(2)}</b></font></td><td align='center'><b>${(meanMembersReachedByMembersInSingleExtCert/(xpercent*100)).toFixed(2)}</b></td></tr>
<tr><td align='center'><b>${LANG["MEAN_QUALITY"]}</b></td><td align='center'><font color="red"><b>${(meanSentriesReachedByMembersInSingleExtCert/(xpercent*100)).toFixed(2)}</b></font></td><td align='center'><b>${(meanMembersReachedByMembersInSingleExtCert/(xpercent*100)).toFixed(2)}</b></td></tr>
</table>
<br>
......
......@@ -95,11 +95,11 @@ ${(help != 'no') ? `
`:`
<table border="1">
<tr><td align='center' colspan='2'>${LANG["DATA_AT"]} ${timestampToDatetime(membersLastCentralityCalcTime)}</td></tr>
<tr><td align='center'>${LANG["MEAN_LENGTH_PATH"]}</td><td align='center'><b>${(meanShortestsPathLength).toFixed(2)}</b></td></tr>
<tr><td align='center'>${LANG["MEAN_CENTRALITY"]}</td><td align='center'><b>${meanCentrality.toFixed(2)}</b></td></tr>
<tr><td align='center'>${LANG["NUMBER_OF_PAIRS_MEMBER"]}</td><td align='center'>${(currentMembersCount*(currentMembersCount-1))}</td></tr>
<tr><td align='center'>${LANG["NUMBER_OF_PAIRS_MEMBER"]}</td><td align='center'>${(membersListFiltered.length*(membersListFiltered.length-1))}</td></tr>
<tr><td align='center'>${LANG["NUMBER_OF_EXIST_PATH"]}</td><td align='center'><b>${nbShortestsPath}</b></td></tr>
<tr><td align='center'><b>${LANG["PROPORTION_OF_EXIST_PATH"]}</b></td><td align='center'><b>${((nbShortestsPath/(currentMembersCount*(currentMembersCount-1)))*100).toFixed(2)}%</b></td></tr>
<tr><td align='center'><b>${LANG["MEAN_LENGTH_PATH"]}</b></td><td align='center'><b>${(meanShortestsPathLength).toFixed(2)}</b></td></tr>
<tr><td align='center'><b>${LANG["PROPORTION_OF_EXIST_PATH"]}</b></td><td align='center'><font color="red"><b>${((nbShortestsPath/(membersListFiltered.length*(membersListFiltered.length-1)))*100).toFixed(2)}%</b></font></td></tr>
</table>
`}
`}
......@@ -110,7 +110,7 @@ ${(help != 'no') ? `
<tr><td align='center'>${LANG["meanMembersReachedByMembersInSingleExtCert"]}</td><td align='center'>${LANG["SENTRIES_REACHED"]}</td><td align='center'>${LANG["MEMBERS_REACHED"]}</td></tr>
<tr><td align='center'>${LANG["SENTRY_CERT"]}</td><td align='center'>${meanSentriesReachedBySentriesInSingleExtCert}%</td><td align='center'>${meanMembersReachedBySentriesInSingleExtCert}%</td></tr>
<tr><td align='center'>${LANG["MEMBER_CERT"]}</td><td align='center'><font color="${(meanSentriesReachedByMembersInSingleExtCert<xpercent) ? 'DarkRed' : 'blue' }"><b>${meanSentriesReachedByMembersInSingleExtCert}%</b></font></td><td align='center'><b>${meanMembersReachedByMembersInSingleExtCert}%</b></td></tr>
<tr><td align='center'>${LANG["MEAN_QUALITY"]}</td><td align='center'><font color="${(meanSentriesReachedByMembersInSingleExtCert<xpercent) ? 'DarkRed' : 'blue' }"><b>${(meanSentriesReachedByMembersInSingleExtCert/(xpercent*100)).toFixed(2)}</b></font></td><td align='center'><b>${(meanMembersReachedByMembersInSingleExtCert/(xpercent*100)).toFixed(2)}</b></td></tr>
<tr><td align='center'><b>${LANG["MEAN_QUALITY"]}</b></td><td align='center'><font color="red"><b>${(meanSentriesReachedByMembersInSingleExtCert/(xpercent*100)).toFixed(2)}</b></font></td><td align='center'><b>${(meanMembersReachedByMembersInSingleExtCert/(xpercent*100)).toFixed(2)}</b></td></tr>
</table>
`}
<br>
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment