Tentative de synchro vers g1.duniter.org depuis node, ko

Bonjour,
J’essaie de synchroniser ma node avec la commande duniter sync g1.duniter.org, mais au bout d’un certain temps, ça plante

Progress:

Milestones:   [||||||||||||||||||||] 100 %
Download:     [||||||              ] 33 %
Apply:        [||||||              ] 32 %
Sandbox:      [                    ] 0 %
Peers:        [                    ] 0 %

Status: Getting chunck #829/2484 from 207250 to 207499 on peer g1.computhings.beProcessus arrêté

tentatives à plusieurs reprises, mais toujours ko. y’a t’il des logs quielquepart pour voir où ça bloque ?
J’ai aussi ce type de message :

/opt/duniter/bin# xceededWarning: Possible EventEmitter memory leak detected. 11 pipe listeners added. Use emitter.setMaxListeners() to increase limit

comment tuner ce paramètre ?
PS : node installée sur un raspberrypi 3 (donc pas beaucoup de ram)

Merci

Combien as-tu de RAM ?

@Pini, 1gb de ram, mais c’est visiblement lié … j’ai un node invoked oom-killer dans /var/log/messages …

Oui, c’est clairement lié. Il faut plus de 2GB pour la synchro. 4GB c’est bien.

@Pini ok, je tente de rajouter zram et re test la synchro. sinon je réessairai avec un raspberrypi 4 à l’occaz alors.Merci

Bonjour,
alors après avoir essayé avec zram sur raspberrypi 3, et augmenté la swap à 3go , ça finit par planter, et
avec un raspberrypi 4 8gb de ram, j’arrive aussi à un problème de mémoire … :
Progress:

Milestones: [||||||||||||||||||||] 100 %
Download: [||||||||||||||||||| ] 99 %
Apply: [||||||||||||||||||| ] 97 %
Sandbox: [ ] 0 %
Peers: [ ] 0 %

Status: Peers…(node:34042) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 pipe listeners added. Use emitter.setMaxListeners() to increase limit

<— Last few GCs —>

[34042:0xce35cf0] 108653705 ms: Mark-sweep 1319.6 (1439.0) → 1301.8 (1437.5) MB, 3967.8 / 14.3 ms (average mu = 0.260, current mu = 0.220) allocation failure scavenge might not succeed
[34042:0xce35cf0] 108654273 ms: Scavenge 1318.9 (1437.5) → 1304.3 (1437.5) MB, 12.0 / 0.0 ms (average mu = 0.260, current mu = 0.220) allocation failure
[34042:0xce35cf0] 108654516 ms: Scavenge 1319.0 (1437.5) → 1304.4 (1439.0) MB, 16.5 / 0.0 ms (average mu = 0.260, current mu = 0.220) allocation failure

<— JS stacktrace —>

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

0: ExitFrame [pc: 0x4008f7a8]

Security context: 0x00002b29e6c1
1: toString [0x49fa0699] [buffer.js:~643] [pc=0x400dabd0](this=0x007f1c18b8e9 ,encoding=0x00005f8826f1 ,start=0x00005f8826f1 ,end=0x00005f8826f1 )
2: arguments adaptor frame: 0->3
3: InternalFrame [pc: 0x3ca90784]
4: EntryFrame [pc: 0x3ca89e9c]
5: ExitFrame [pc: 0x3cae37cc]
6: …

FATAL ERROR: Ineffective mark-compacts near heap limit Allocation failed - JavaScript heap out of memory
1: 0x8fd0c0 node::Abort() [node]
2: 0x8fd100 [node]
3: 0xae82bc v8::Utils::ReportOOMFailure(v8::internal::Isolate*, char const*, bool) [node]
4: 0xae846c v8::internal::V8::FatalProcessOutOfMemory(v8::internal::Isolate*, char const*, bool) [node]
5: 0xe9d6ec [node]
6: 0xe9d7dc v8::internal::Heap::CheckIneffectiveMarkCompact(unsigned long, double) [node]
7: 0xea93f8 v8::internal::Heap::PerformGarbageCollection(v8::internal::GarbageCollector, v8::GCCallbackFlags) [node]
8: 0xea9b58 v8::internal::Heap::CollectGarbage(v8::internal::AllocationSpace, v8::internal::GarbageCollectionReason, v8::GCCallbackFlags) [node]
9: 0xeac5d0 v8::internal::Heap::AllocateRawWithRetryOrFail(int, v8::internal::AllocationSpace, v8::internal::AllocationAlignment) [node]
10: 0xe7818c [node]
11: 0xe7fffc v8::internal::factory::NewRawOneByteString(int, v8::internal::PretenureFlag) [node]
12: 0xe80338 v8::internal::factory::NewStringFromOneByte(v8::internal::Vector, v8::internal::PretenureFlag) [node]
13: 0xe80cb4 v8::internal::factory::NewStringFromUtf8(v8::internal::Vector, v8::internal::PretenureFlag) [node]
14: 0xaf5c00 v8::String::NewFromUtf8(v8::Isolate*, char const*, v8::NewStringType, int) [node]
15: 0x9b2f54 node::StringBytes::Encode(v8::Isolate*, char const*, unsigned long, node::encoding, v8::Localv8::Value*) [node]
16: 0x917174 [node]
17: 0x3ca86988
Abandon

Merci de votre aide

Quelle version de duniter utilises-tu ?

La 1.9 (branche dev) est en principe plus facile à synchroniser.

la 1.8.5 @Pini. Je fais une autre tentative et si toujours ko tenterai la 1.9

J’ai eu plusieurs fois ce message lors de mes dernières tentatives de Sync de mon noeud. J’ai vu que cgeek avait corrigé cette erreur dans la branche dev, du coup, j’ai reporté la modif a la main dans le fichier JS et ça a fonctionné (branche git dev = 1.9). De mémoire dans NetworkService

@kimamila @Pini , je n’ai plus eu cette erreur lors de ma dernière synchro.
par contre, dans les logs j’ai les erreurs suivantes :

2023-05-22T22:26:02+02:00 - warn: Local node is not a member. Waiting to be a member before computing a block.

Quelle conf appliquer pour que la node soit membre ? j’avais bien entré mes id et passwd G1
avec le duniter wizard key (ou aucun rapport ?)

2023-05-22T22:26:17+02:00 - info: WS2P: Could not connect to peer 2ny7YAdm using WS2P 82.65.206.220 20900: WS2P connection timeout
=> le port à l’air pourtant bien ouvert sur cette ip ?

côté configé chez moi, j’ai bien un serveur WS2P qui écoute sur le port 20901 du localhost et BMA 10901 sur localhost, derrière un reverse proxy

C’est la bonne méthode. Mais ça n’a peut-être pas persisté entre tes différents essais. Quelle méthode d’installation utilises-tu ? Docker ou autre ?

@Pini je viens de refaire un duniter wizard key et mis les id et passwd, même pb. pour l’installation je suis parti des sources pour faire un package deb pour aarch64 et l’installer via dpkg -i duniter-server-v8-linux-aarch64.deb

Je ne sais pas comment est foutu le paquet Debian. Mais voici comment c’est fait pour l’image Docker :

  • Les clefs publique et secrète sont stockées dans le fichier /etc/duniter/keyring.yml sous cette forme :
    pub: "clef_publique"
    sec: "clef_secrète"
    
  • duniter est démarré avec cette option : --keyfile /etc/duniter/keyring.yml

Hope this helps.

Je vais investiguer de mon coté, j’ai sensiblement la même chose lors de la synchro :
(J’ai 4 Go de memoire mais il y a pas que Duniter donc je vais voir si ca viens de la RAM insuffisante ou pas)
Je suis en 1.8.6

2023-05-26T12:04:34+02:00 - debug: Opening SQLite database “/root/.config/duniter/duniter_default/duniter.db”…
2023-05-26T12:04:35+02:00 - debug: Now open indexers…
2023-05-26T12:04:36+02:00 - debug: Opening SQLite database “/root/.config/duniter/duniter_default/txs.db”…
2023-05-26T12:04:36+02:00 - debug: Opening SQLite database “/root/.config/duniter/duniter_default/peers.db”…
2023-05-26T12:04:38+02:00 - debug: Upgrade database…
2023-05-26T12:04:42+02:00 - info: Block resolution: 0 potential blocks for rootblock…
Progress:

Milestones: [||||||||||||||||||||] 100 %
Download: [||||||||||||||||||| ] 98 %
Apply: [||||||||||||||||||| ] 97 %
Sandbox: [ ] 0 %
Peers: [ ] 0 %

Status: Peers…
<— Last few GCs —>

[502:0x35c8890] 101920312 ms: Mark-sweep 1327.5 (1438.6) → 1310.1 (1436.6) MB,1108.4 / 0.9 ms (average mu = 0.377, current mu = 0.391) allocation failure scavenge might not succeed
[502:0x35c8890] 101920620 ms: Scavenge 1325.7 (1436.6) → 1312.1 (1437.1) MB, 6.8 / 0.0 ms (average mu = 0.377, current mu = 0.391) allocation failure
[502:0x35c8890] 101920730 ms: Scavenge 1325.8 (1437.1) → 1313.6 (1438.6) MB, 7.1 / 0.0 ms (average mu = 0.377, current mu = 0.391) allocation failure

<— JS stacktrace —>

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

0: ExitFrame [pc: 0x27f5cfdbe1d]

Security context: 0x11b31061e6c1
1: push [0x11b310605831](this=0x3054633276c1 <JSArray[131]>,608544)
2: produceDividend [0x2ddf6cbe3789] [/opt/duniter/app/lib/dal/indexDAL/common/DividendDaoHandler.js:15] [bytecode=0x3cb242aa1751 offset=37](this=0x1953cf998dc9 <JSFunction DividendDaoHandler (sfi = 0xa9362591991)>,/* anonymous /=0x305463327261 ,/ anonymou…

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: 0xed0064 v8::internal::factory::NewFillerObject(int, bool, v8::internal::AllocationSpace) [/opt/duniter//node/bin/node]
11: 0x11701ee v8::internal::Runtime_AllocateInNewSpace(int, v8::internal::Object**, v8::internal::Isolate*) [/opt/duniter//node/bin/node]
12: 0x27f5cfdbe1d
/usr/bin/duniter : ligne 15 : 502 Abandon $NODE “DUNITER_DIR/bin/duniter" "@”

% free -h
total used free shared buff/cache available
Mem: 3,9G 418M 1,3G 67M 2,2G 3,1G
Swap: 3,0G 29M 3,0G

Si je comprend bien j’ai 3,1 Go de libre

mais sur ProxMox ça dit: Memory usage 65.69% (2.63 GiB of 4.00 GiB)

cf ce post : Duniter error "The transactions' sandbox is full" : Nœud désynchronisé - #8 by kimamila

2 Likes

@guenoel j’avais résolu mon pb de mémoire avec
export NODE_OPTIONS=–max-old-space-size=7168 (en dessous des 8go de ram du raspberrypi4) , voir le lien du post de @kimamila et c’était passé. Bon sinon mon message “local node is not a member” bah je suis pas membre j’ai juste un portefeuille donc pas possible pour l’instant …