Impossible de synchroniser mon noeud Duniter V1

KO !!!

2023-08-08T23:22:03+02:00 - trace: Eglantine was affected wotb_id 12119
2023-08-08T23:22:03+02:00 - trace: Charbel45 was affected wotb_id 12120

<— Last few GCs —>

[774743:0x3f6f950] 23170301 ms: Mark-sweep 1311.5 (1391.1) → 1311.4 (1391.1) MB, 2075.0 / 0.0 ms (average mu = 0.232, current mu = 0.000) last resort GC in old space requested
[774743:0x3f6f950] 23172519 ms: Mark-sweep 1311.4 (1391.1) → 1311.4 (1390.1) MB, 2218.7 / 0.0 ms (average mu = 0.126, current mu = 0.000) last resort GC in old space requested

<— JS stacktrace —>

==== JS stack trace =========================================

0: ExitFrame [pc: 0x1bc25c45be1d]

Security context: 0x167c77f1e6c1
1: reduceBy [0x2261ecdd0f19] [/opt/duniter/app/lib/indexer.js:~1765] [pc=0x1bc25d8fdda6](this=0x2261ecdd5d89 ,reducables=0x2c1b6d9956a9 <JSArray[36]>,properties=0x2c1b6d995719 <JSArray[2]>)
2: /* anonymous /(aka / anonymous */) [0x2c1b6d987321] [/opt/duniter/app/lib/dal/indexDAL/leveldb/LevelDBCindex.js:234] [bytecode=0…

FATAL ERROR: CALL_AND_RETRY_LAST Allocation failed - JavaScript heap out of memory
1: 0x8fb090 node::Abort() [/opt/duniter//node/bin/node]
2: 0x8fb0dc [/opt/duniter//node/bin/node]
3: 0xb031ce v8::Utils::ReportOOMFailure(v8::internal::Isolate*, char const*, bool) [/opt/duniter//node/bin/node]
4: 0xb03404 v8::internal::V8::FatalProcessOutOfMemory(v8::internal::Isolate*, char const*, bool) [/opt/duniter//node/bin/node]
5: 0xef7462 [/opt/duniter//node/bin/node]
6: 0xf06c7f v8::internal::Heap::AllocateRawWithRetryOrFail(int, v8::internal::AllocationSpace, v8::internal::AllocationAlignment) [/opt/duniter//node/bin/node]
7: 0xecfcd6 v8::internal::factory::AllocateRawArray(int, v8::internal::PretenureFlag) [/opt/duniter//node/bin/node]
8: 0xed055a v8::internal::factory::NewFixedArrayWithFiller(v8::internal::Heap::RootListIndex, int, v8::internal::Object*, v8::internal::PretenureFlag) [/opt/duniter//node/bin/node]
9: 0xed0600 v8::internal::Handlev8::internal::FixedArray v8::internal::factory::NewFixedArrayWithMapv8::internal::FixedArray(v8::internal::Heap::RootListIndex, int, v8::internal::PretenureFlag) [/opt/duniter//node/bin/node]
10: 0x100b430 v8::internal::HashTable<v8::internal::StringTable, v8::internal::StringTableShape>::NewInternal(v8::internal::Isolate*, int, v8::internal::PretenureFlag) [/opt/duniter//node/bin/node]
11: 0x100b48e v8::internal::HashTable<v8::internal::StringTable, v8::internal::StringTableShape>::New(v8::internal::Isolate*, int, v8::internal::PretenureFlag, v8::internal::MinimumCapacity) [/opt/duniter//node/bin/node]
12: 0x101e43f v8::internal::HashTable<v8::internal::StringTable, v8::internal::StringTableShape>::EnsureCapacity(v8::internal::Handlev8::internal::StringTable, int, v8::internal::PretenureFlag) [/opt/duniter//node/bin/node]
13: 0x101e645 v8::internal::StringTable::LookupKey(v8::internal::Isolate*, v8::internal::StringTableKey*) [/opt/duniter//node/bin/node]
14: 0x102128c v8::internal::StringTable::LookupString(v8::internal::Isolate*, v8::internal::Handlev8::internal::String) [/opt/duniter//node/bin/node]
15: 0x11972db [/opt/duniter//node/bin/node]
16: 0x11994e9 v8::internal::Runtime_KeyedGetProperty(int, v8::internal::Object**, v8::internal::Isolate*) [/opt/duniter//node/bin/node]
17: 0x1bc25c45be1d
/usr/bin/duniter : ligne 15 : 774743 Abandon (core dumped) $NODE “DUNITER_DIR/bin/duniter" "@”

Que faire ?

Tu lances quelle commande pour synchroniser ?

Tu stoppes le serveur, avant la synchro ?

Tu as désactivé le cron (ou autre ?) qui relance automatiquement le noeud ?

  1. Duniter stop
  2. Duniter reset data
  3. Suppression des fichiers du .config (sauf keyring et conf.json (c’est la commande lancée à 4h du mat et qui tourne toujours)
  4. duniter sync g1.duniter.org --nointeractive
    Aïe, non, je n’ai pas désactivé la cron table … mais la commande se lance à 1h45 du matin …

Flûte !! Même chose !
2023-08-09T10:59:38+02:00 - trace: Felicia was affected wotb_id 12098
2023-08-09T10:59:46+02:00 - trace: Titev11 was affected wotb_id 12099
2023-08-09T10:59:52+02:00 - trace: PatriciaLAGIER was affected wotb_id 12100
2023-08-09T10:59:52+02:00 - trace: MTCmlaure was affected wotb_id 12101

<— Last few GCs —>

[1153134:0x31d4940] 22861909 ms: Scavenge 1352.8 (1437.6) → 1340.7 (1437.6) MB, 11.1 / 0.0 ms (average mu = 0.310, current mu = 0.320) allocation failure
[1153134:0x31d4940] 22862038 ms: Scavenge 1354.5 (1437.6) → 1342.2 (1438.1) MB, 12.0 / 0.0 ms (average mu = 0.310, current mu = 0.320) allocation failure
[1153134:0x31d4940] 22862203 ms: Scavenge 1356.1 (1438.1) → 1343.6 (1439.6) MB, 12.1 / 0.0 ms (average mu = 0.310, current mu = 0.320) allocation failure

<— JS stacktrace —>

==== JS stack trace =========================================

Security context: 0x3923f8b9e6c1
0: builtin exit frame: parse(this=0x3923f8b919f9 ,0x3be523f9a201 <Very long string[10401]>,0x3923f8b919f9 )

1: /* anonymous */ [0x3245777316c9] [/opt/duniter/app/lib/dal/indexDAL/leveldb/LevelDBTable.js:~73] [pc=0x39b2e9b179b0](this=0x324577731749 <ReadStream map = 0x100e378a659>,data=0x3be523f8df01 <Object map = 0x100e379d7f1>)

FATAL ERROR: Ineffective mark-compacts near heap limit Allocation failed - JavaScript heap out of memory
1: 0x8fb090 node::Abort() [/opt/duniter//node/bin/node]
2: 0x8fb0dc [/opt/duniter//node/bin/node]
3: 0xb031ce v8::Utils::ReportOOMFailure(v8::internal::Isolate*, char const*, bool) [/opt/duniter//node/bin/node]
4: 0xb03404 v8::internal::V8::FatalProcessOutOfMemory(v8::internal::Isolate*, char const*, bool) [/opt/duniter//node/bin/node]
5: 0xef7462 [/opt/duniter//node/bin/node]
6: 0xef7568 v8::internal::Heap::CheckIneffectiveMarkCompact(unsigned long, double) [/opt/duniter//node/bin/node]
7: 0xf03642 v8::internal::Heap::PerformGarbageCollection(v8::internal::GarbageCollector, v8::GCCallbackFlags) [/opt/duniter//node/bin/node]
8: 0xf03f74 v8::internal::Heap::CollectGarbage(v8::internal::AllocationSpace, v8::internal::GarbageCollectionReason, v8::GCCallbackFlags) [/opt/duniter//node/bin/node]
9: 0xf06be1 v8::internal::Heap::AllocateRawWithRetryOrFail(int, v8::internal::AllocationSpace, v8::internal::AllocationAlignment) [/opt/duniter//node/bin/node]
10: 0xedbec0 [/opt/duniter//node/bin/node]
11: 0xedbf57 v8::internal::factory::NewJSObject(v8::internal::Handlev8::internal::JSFunction, v8::internal::PretenureFlag) [/opt/duniter//node/bin/node]
12: 0xfc7136 v8::internal::JsonParser::ParseJsonObject() [/opt/duniter//node/bin/node]
13: 0xfc7f90 v8::internal::JsonParser::ParseJsonValue() [/opt/duniter//node/bin/node]
14: 0xfc8425 v8::internal::JsonParser::ParseJsonArray() [/opt/duniter//node/bin/node]
15: 0xfc7fa0 v8::internal::JsonParser::ParseJsonValue() [/opt/duniter//node/bin/node]
16: 0xfc74dc v8::internal::JsonParser::ParseJsonObject() [/opt/duniter//node/bin/node]
17: 0xfc7f90 v8::internal::JsonParser::ParseJsonValue() [/opt/duniter//node/bin/node]
18: 0xfc8004 v8::internal::JsonParser::ParseJson() [/opt/duniter//node/bin/node]
19: 0xbd7ad8 v8::internal::Builtin_JsonParse(int, v8::internal::Object**, v8::internal::Isolate*) [/opt/duniter//node/bin/node]
20: 0x39b2e32dbf7d
/usr/bin/duniter : ligne 15 : 1153134 Abandon (core dumped) $NODE “DUNITER_DIR/bin/duniter" "@”

Erreur : FATAL ERROR: Ineffective mark-compacts near heap limit Allocation failed - JavaScript heap out of memory
Du coup, j’essaie de remonter à 8192 et relance (j’ai stoppé la crontab)

1 Like

Que peux tu comprendre de cette ligne de ton log ?

Voilà !

1 Like

Même plantage après plus de 6h de synchro …
Comment faire ?
Repasser en V1.8.6 ?
Merci de vos conseils.

Autre idée qu’il m’est arrivé d’utiliser.
Cédric ou quelqu’un d’autre qui aurait un noeud en 1.8.7 pourrait-il le zipper et me le mettre à disposition sur un cloud ?
Je puis fournir le cloud si besoin (infomaniak).
Si cela est possible à l’un d’entre vous, merci de m’envoyer un texto pour contact au 0686149375
Ensuite, je me débrouille :wink:
@cgeek

Et voilà qui est résolu !
Mikapac m’a zippé son duniter_default et me l’a envoyé, je l’ai dézippé, modifié conf.json et keyring et hop, mon noeud tourne à nouveau !!
PS: je ne sais pas clôturer le sujet …

Donc, si votre nœud ne parvient pas à se synchroniser, je recommande la démarche suivante :clap:
Mettre de côté une copie des 2 fichiers : conf.json et keyring
(moi, je renomme en 1conf.jso et 1keyring. …)
Demande à un propriétaire de noeud dans la bonne version, dans un environnement similaire au vôtre et synchro (merci à https://ginspecte.mithril.re/) de zipper le contenu de son home/.config/.duniter/duniter_default
et de le mettre sur un cloud accessible.
De l’ordi où installer, téléchargement du zip
copie du zip sur le répertoire cible (home/.config/duniter)
décompresser
supprimer conf.json et keyring
Renommer les1xxx en xxx
Duniter start (ou webstart)
et la synchro se fait en quelques secondes.

2 Likes

@Damery d’ après nos tests cette procédure ne permet pas d’ enregistrer les chunks càd qu’ un noeud mis à jour ainsi ne possède en réalité pas les dernieres transactions de la chaine de blocs

Bonjour, j’ai le même problème ! Alors, quel est la solution ?
Il y a trois mois, j’ai pu encore faire une syncr avec duniter 1.8.5 et maintenant, c’est plus possible !
J’ai essayé toutes les version de duniter : 1.8.6 et 1.8.7, rien a faire.
Ma config : cpu amd x6 1090T, ram : 8 go, OS : linux mint 19.3, SSD : 1 To.
Je pense pas être seul dans ce cas.
La solution est de passer à la version 2 de duniter ? Acheter un nouveau PC ?
Bien cordialement
Christophe Fender