Après environ 3 semaines de fonctionnement en intensif (grosse activité ws2p public + pow), mon seul nœud membre avec ws2p public viens de s’arrêter pour cause de manque d’espace mémoire :
2018-04-18T23:22:49+02:00 - info: ✘ CERT 4CwKZpNQhFx519cELDhs4364ZWDdcKeK2LnsmbF51ewA Already up-to-date
2018-04-18T23:22:49+02:00 - info: ⬇ CERT 5nHhk6wwHELKPn5zvUYjzK9gN1iT214udKyXg5PFazq3 block#107743 -> Miska
2018-04-18T23:22:49+02:00 - info: ✘ CERT 5nHhk6wwHELKPn5zvUYjzK9gN1iT214udKyXg5PFazq3 Already up-to-date
2018-04-18T23:22:49+02:00 - info: ⬇ CERT 5dzkzedBWdeqTFCaD7AkKPMPusfRUL1XyFNJWWGYQ9f1 block#110719 -> ArthurLutz
<--- Last few GCs --->
[24608:0x39be3a0] 1814582485 ms: Mark-sweep 1283.3 (1458.2) -> 1283.2 (1460.2) MB, 2966.8 / 2.8 ms allocation failure GC in old space requested
[24608:0x39be3a0] 1814584457 ms: Mark-sweep 1283.2 (1460.2) -> 1283.2 (1427.2) MB, 1972.0 / 3.3 ms last resort GC in old space requested
[24608:0x39be3a0] 1814586515 ms: Mark-sweep 1283.2 (1427.2) -> 1283.2 (1427.2) MB, 2057.7 / 3.0 ms last resort GC in old space requested
<--- JS stacktrace --->
==== JS stack trace =========================================
Security context: 0x6cfc80225501 <JSObject>
1: writeOrBuffer(aka writeOrBuffer) [_stream_writable.js:~359] [pc=0x6cfc84ca1b95](this=0x6cfc804022d1 <undefined>,stream=0x6cfbb2425d51 <DeflateRaw map = 0x6cfc7275ceb1>,state=0x6cfbb2425ec1 <WritableState map = 0x6cfc80142db9>,isBuf=0x6cfc804023e1 <false>,chunk=0x6cfbb897d3f1 <Very long string[919203]>,encoding=0x6cfc80234ea9 <String[4]: utf8>,cb=0x6cfc7363fab9 <JSFunction nop (sfi = 0x6cf...
FATAL ERROR: CALL_AND_RETRY_LAST Allocation failed - JavaScript heap out of memory
1: node::Abort() [/opt/duniter//node/bin/node]
2: 0x11f155c [/opt/duniter//node/bin/node]
3: v8::Utils::ReportOOMFailure(char const*, bool) [/opt/duniter//node/bin/node]
4: v8::internal::V8::FatalProcessOutOfMemory(char const*, bool) [/opt/duniter//node/bin/node]
5: v8::internal::Factory::NewRawTwoByteString(int, v8::internal::PretenureFlag) [/opt/duniter//node/bin/node]
6: v8::internal::String::SlowFlatten(v8::internal::Handle<v8::internal::ConsString>, v8::internal::PretenureFlag) [/opt/duniter//node/bin/node]
7: v8::internal::String::Flatten(v8::internal::Handle<v8::internal::String>, v8::internal::PretenureFlag) [/opt/duniter//node/bin/node]
8: v8::String::WriteUtf8(char*, int, int*, int) const [/opt/duniter//node/bin/node]
9: node::StringBytes::Write(v8::Isolate*, char*, unsigned long, v8::Local<v8::Value>, node::encoding, int*) [/opt/duniter//node/bin/node]
10: node::Buffer::New(v8::Isolate*, v8::Local<v8::String>, node::encoding) [/opt/duniter//node/bin/node]
11: 0x1211364 [/opt/duniter//node/bin/node]
12: 0x6cfc80b87247
/usr/bin/duniter : ligne 15 : 24608 Abandon $NODE "$DUNITER_DIR/bin/duniter" "$@"
On voit d’ailleurs clairement l’espace mémoire pris par Duniter grossir (en vert) sur le graphe mensuel de munin :
Peut être que l’augmentation fulgurante de la taille du réseau Duniter il y a une dizaine de jours a provoquer une intensification de l’activité de WS2P et donc augmenter la quantité de RAM nécessaire, mais tout de même 8Go devraient être suffisants
Cela étant cette fuite (si c’en est une ?) n’est pas vraiment gênante, dans la pratique il est rare de laisser un nœud tourner non-stop aussi longtemps. Et ça me semble coton a corriger