G1-test dans les choux ? État monnaie

Du coup je ne suis plus trop, quel nœud utiliser ? Sachant que g1-test.duniter.org, legacy.g1test.nordstrom.duniter.org ainsi que g1-test.cgeek.fr sont d’accord entre-eux, mais je veux bien tout rebasculer en 1.7.14 (voire 1.7.15 qui résout le bug des transactions non affichées !).

Ah ce que je vois, mon nœud a décroché cette nuit. Ça a dû aller trop vite. Je vais voir pour rattraper ton nœud qui avance.

Synchronisé avec ta chaîne. Par contre, mes blocs ne sont pas acceptés semble-t-il.

En fait l’adhésion de mon identité a expiré.
Je comprends pas pourquoi mon nœud continuait à calculer.
Je pense qu’il y a un bug.
J’ai déjà vu des blocs de non membres affichés dans Remuniter.

Hop, bug spotted!!!

1 Like

Je franchi le cap,

LooarnT attend des certif pour devenir membre sur GTest ^^

2LyLcCf3vQDDggPkECGeVrFMMvQdJACLNZet9HUxeY73

En vous remerciant,

J’en profite aussi need des coins pour faire des tests please :pray:

La Ğ1-test est bloquée au bloc n°362834.

Ce bloc a fait faire une erreur de segmentation a mon nœud à minuit et à l’instant lors d’une resynchronisation.

Il était resynchronisé en 1.7.17, et vous ?

Je viens de le resynchroniser, il vient de trouver le bloc de même nombre. Voyons voir si ça débloque la situation.

Si un @TestSmith veut bien rejoindre le wagon. Je sais pas si vous trouverez un nœud avec mon bloc 362834-0000B6AEBB, mais je ne peux pas aisément exposer l’API BMA de mon nœud.

1 Like

Même chose pour moi : duniter ne voulait carrément plus démarrer. Je suis en train de resynchro. Au pire, il faudra que je resynchro sur ton nœud ?

Idem. Je regarderai cela ce soir, en attendant je laisse le nœud g1-test.duniter.org dans cet état car ça me permet de reproduire facilement le bug.

L’erreur de segmentation vient du module wotb, je pense savoir de quoi il s’agit étant donné les derniers message de log affiché avant plantage :

2019-04-30T13:08:48+02:00 - info: Block #362831 added to the blockchain in 23 ms
2019-04-30T13:08:48+02:00 - info: Block #362832 added to the blockchain in 24 ms
2019-04-30T13:08:48+02:00 - trace: removeLink 74 -> 55
/usr/bin/duniter : ligne 15 : 14304 Erreur de segmentation  (core dumped) $NODE "$DUNITER_DIR/bin/duniter" "$@"

Je suppose que je vais retrouver deux fois ce message “removeLink 74 → 55” dans les logs.

2 Likes

Rien à faire, mon nœud ne synchronise pas. Je l’arrête en attendant le fix. Est-ce que ça vaut le coup d’essayer avec une ancienne version ?

Je pense que tu n’aurais pas eu ce problème avec une 1.7.16. Mais c’est pour de mauvaises raisons.

1 Like

J’ai fait les tests de ma lib PHP sur gtest, j’espère que c’est pas moi qui ai tout cassé. :stuck_out_tongue:

Plus sérieusement, j’ai fait passé des TX en unitbase 0, et en V10, BMA me répond OK, si ça peut aider. :wink:

Ça semble lié au correctif de la WoT de la 1.7.17.
Je pense pas que ça soit lié aux documents que tu as pu envoyer.

Il me semble que c’est correct. Les transactions sont en v10, et il doit être possible d’envoyer des sources en base 0 alors que la base courante et en base 1.
Donc, pas de souci de ce côté-là.

1 Like

Je confirme, la règle BR_G90 du protocole spécifie bien que les sources en base <= UnitBase sont valides :

Du coup y a t’il un nœud BMA en 1.7.17 sur lequel on peut se synchroniser ?

Aucun pour le moment, il faudra une version 1.7.18.

1 Like

j’ai un duniter-desktop en 1.7.17 sur lequel j’ai conf BMA en interface graphique rapidos. Je sais pas si c’est fonctionnel, ni utile.
scanlegentil.freeboxos.fr 20939

Vous pourriez me faire un retour juste pour savoir si ça peut servir à qqch, et satisfaire ma curiosité, svp?

http://scanlegentil.freeboxos.fr:20939/blockchain/current
ne répond pas chez moi… probablement un problème de config réseau…

idem :confused:

Il s’agit d’une certification de moul-test vers MeluaTest qui n’est plus membre :

{ op: 'UPDATE',
  issuer: '5B8iMAzq1dNmFe3ZxFTBQkqhq4fsztg1gZvxHXCk1XYH',
  receiver: 'droYn565eApVvJFu18trt4qTiS8uFcVpd5TdwSUPQAT',
  created_on: 220980,
  written_on: '362833-0001C645558EA9FF0FFE95EA1C90B554A9C218426BD62D4247D03BD345A4F306',
  writtenOn: 362833,
  expired_on: 1556572064 }

5B8iMAzq1dNmFe3ZxFTBQkqhq4fsztg1gZvxHXCk1XYH −> droYn565eApVvJFu18trt4qTiS8uFcVpd5TdwSUPQAT

Avec l’outil explorateur de leveldb en CLI lev sur iindex :

/>get 5B8iMAzq1dNmFe3ZxFTBQkqhq4fsztg1gZvxHXCk1XYH
'[{"index":"IINDEX","op":"UPDATE","uid":"moul-test","pub":"5B8iMAzq1dNmFe3ZxFTBQkqhq4fsztg1gZvxHXCk1XYH","hash":"D03883E8E5EEB5B6DF11216FD9BD658A71E07D66D0F951534898DC7396B3EB2D","sig":"/15YBc4JDPvKD4c8nWD6C0XN0krrS32uDRSH6rJvMFih/H5nPc8oiCgL27bA7P3NPnp+oCqbS12QygQRnhoDDQ==","created_on":"167750-0000A51FF952B76AAA594A46CA0C8156A56988D2B2B57BE18ECB4F3CFC25CEC2","written_on":"350088-00008BBCF1FB5938221A742AD4504688606736410F33D99C22D52E203405CDDB","writtenOn":350088,"age":0,"member":true,"wasMember":true,"kick":false,"wotb_id":74}]'
>get droYn565eApVvJFu18trt4qTiS8uFcVpd5TdwSUPQAT
'[{"index":"IINDEX","op":"UPDATE","uid":"MeluaTest","pub":"droYn565eApVvJFu18trt4qTiS8uFcVpd5TdwSUPQAT","hash":"C4588D77602891658C855BDA3A9C6233AE6CE20ABB05673E08524DC0C75015DA","sig":"yUHE3j5OhMOUqtPe7HvxcD3IaZig0JuSqnYtcVxubdgL28hPJlTWZ6haLNV2zcSN89/D+r2NR7q4vNvStaUdBA==","created_on":"139407-0000283A55F7998974D64AD54DF11EB365F5D18301C023944CF2BFC03A24C126","written_on":"323745-000023570007021D1BF52C9DBB10699F6CCEE378231CD5D36CB67E21CF68E1AE","writtenOn":323745,"age":0,"member":false,"wasMember":true,"kick":false,"wotb_id":55}]'

Ça segfault à cette ligne lors du retrait de ce lien de certification :

Je sais pas si le code de wotb est en faute à cet endroit, ou si la base de donnée des liens wotb.bin qui devait contenir ce lien. Le lien dans wotb a surement du être supprimé au préalable.

Le lien est toujours présent dans cindex :

get droYn565eApVvJFu18trt4qTiS8uFcVpd5TdwSUPQAT
'{"received":["C4pUj26pVgPVPLEZ962LHmCAED7vs4FSBMGQFNDSYtXG","7KL2QXXFULDpsQY4UdSr5oEVx6rFE6oxeagRdkCX35bf","9Uwy2bEbYUiUfB6SVrkhGheEiuBr6TSh6bD8AH8dajy7","3dnbnYY9i2bHMQUGyFp5GVvJ2wBkVpus31cDJA5cfRpj","E8Ah8g9vpK7x52Bt4Mzmz9f2rdp7j1dxdgcGiSkpMJ4y","2Jfw9Me5KYbQ3rH8ncSqXUUfaai93e5vq9jW6REsAGZz","9nc3atrvLRvVWDM3sCRHTUnA6eipwuT34oBXdpFhRu1R","68jjsRrrX6hzs4z6eK2A2MUGLdKPfysFd1n3DYfHr7X9","d88fPFbDdJXJANHH7hedFMaRyGcnVZj9c5cDaE76LRN","5B8iMAzq1dNmFe3ZxFTBQkqhq4fsztg1gZvxHXCk1XYH","GF5i8XE2EdYyFKvpD2FhFYSvwqHXGSD5jTG9fe1imtPu","J8sxV22rNKHa2FLAdMsvqRdNfmm67i24DVYKN6D5Rm8C","28zNwPNHsCqoZPmejk4w21p6CKerN7CCMvhejRbAEyiz","DpJse2t7fyH9LC9FTMQHsMGZToXLmVQ8EV2eP47ipHDC"],"issued":[{"index":"CINDEX","op":"CREATE","issuer":"droYn565eApVvJFu18trt4qTiS8uFcVpd5TdwSUPQAT","receiver":"3THvswEGNFDdteyCYypkxViXdbkVsgirQZzHxRWZ5bLL","created_on":310548,"written_on":"310550-00002F7308A3B48BE3895AE3E8993F2E9F8F65C03847E9F9BD6AF40568A314D6","writtenOn":310550,"age":183,"stock":100,"unchainables":0,"sig":"QVb/VgiaYruDeN9w2LPvqWkrQVxYVXFq56s5eCSJCaNjCJ+mcSdPbsevhyPoVhko1YQ2bfQ4A53nBGaCxngQDA==","chainable_on":1548088430,"replayable_on":1549053950,"expires_on":1560624714,"expired_on":0,"from_wid":null,"to_wid":null}]}'

Si la théorie selon laquelle ce lien aurait été supprimé au préalable par Duniter, ça a pu se passer ici :

dal/fileDAL.ts:1084:        wotb.removeLink(from.wotb_id, to.wotb_id);
blockchain/DuniterBlockchain.ts:379:        dal.wotb.removeLink(from.wotb_id, to.wotb_id);
indexer.ts:2057:  tempLinks.forEach((link) => wotb.removeLink(link.from, link.to));

Maintenant, va trouver pourquoi Duniter a demandé deux fois à wotb de supprimer ce lien.

Il faudrait creuser plus, mais je vous livre dès à présent l’analyse.

4 Likes

C’est la bonne piste.

De ce que je vois, le compte moul-test a réalisé deux certifications vers MeluaTest :

~/.config/duniter/duniter_default/g1-test$ rgrep 5B8iMAzq1dNmFe3ZxFTBQkqhq4fsztg1gZvxHXCk1XYH:droY
chunk_883-250.json:    "5B8iMAzq1dNmFe3ZxFTBQkqhq4fsztg1gZvxHXCk1XYH:droYn565eApVvJFu18trt4qTiS8uFcVpd5TdwSUPQAT:220980:XmvUCsUzPkUQJydhDaBu1ekN2hYTfOSneyxdoAmcCQdu+BO0UPtnmfLYyqOehl3BGe1YDZAqr7BV4Javy7tkDQ=="
chunk_1142-250.json:    "5B8iMAzq1dNmFe3ZxFTBQkqhq4fsztg1gZvxHXCk1XYH:droYn565eApVvJFu18trt4qTiS8uFcVpd5TdwSUPQAT:285599:mpLb7t4wC9NnrZ2OkAT75ZYpd9u/I4uA+sSeEpOva4eHzj9wlFaaNHkPBeVzjPcfObr7udkCrLoFMrUVP671DQ=="

En regardant les timestamps des blocs d’écriture, ça donne :

  • cert#1 : le 30/7/2018 à 14:47:25 (expire 146 jours plus tard, ~ le 23/12/2018)
  • cert#2 : le 03/12/2018 à 8:52:23 (expire 146 jours plus tard, ~ le 28/04/2019)

En regardant les logs de la synchro, j’observe :

[...]
2019-04-30T13:08:44+02:00 - info: Getting chunck #1451/1451 from 362750 to 362834 on peer g1-test.duniter.org
2019-04-30T13:08:45+02:00 - debug: Total tx count: 88282
2019-04-30T13:08:45+02:00 - debug: Total tx count: 88282
2019-04-30T13:08:45+02:00 - debug: Total tx count: 88282
2019-04-30T13:08:45+02:00 - trace: removeLink 74 -> 55
2019-04-30T13:08:45+02:00 - trace: removeLink 6 -> 81
2019-04-30T13:08:45+02:00 - debug: Total tx count: 88282
2019-04-30T13:08:45+02:00 - debug: Total tx count: 88283
2019-04-30T13:08:45+02:00 - info: Mem2File [wotb]...
2019-04-30T13:08:45+02:00 - info: Block #362708 added to the blockchain in 21 ms
2019-04-30T13:08:45+02:00 - info: Block #362709 added to the blockchain in 18 ms
[...]
2019-04-30T13:08:48+02:00 - info: Block #362832 added to the blockchain in 24 ms
2019-04-30T13:08:48+02:00 - trace: removeLink 74 -> 55
/usr/bin/duniter : ligne 15 : 14304 Erreur de segmentation  (core dumped) $NODE "$DUNITER_DIR/bin/duniter" "$@"

J’y vois plusieurs choses :

  1. On voit effectivement deux fois le removeLink 74 -> 55
  2. Le second removeLink apparaît au bloc#362832
  3. Le premier removeLink intervient juste avant les deux dernières occurrences de Total tx count, ligne de log envoyée à la fin de l’interprétation d’un lot de blocs, donc ça correspondrait (étant donné le dernier n° de lot visible ici, #1451), à un bloc du lot #1449 ou proche. De toute façon chaque lot est de 250 blocs, soit les blocs de moins d’une journée, donc on peut déduire que le premier removeLink est intervenu dans les 2 derniers jours. Ce qui correspond à ~28/04/2019.

Cette date correspond à l’expiration attendue du cert#2, et il est par ailleurs tout à fait conforme que ce removeLink ne soit pas intervenu plus tôt pour cert#1, puisque cert#2 est un rejeu qui repousse donc la suppression du lien. Mais alors, pourquoi un second removeLink apparaît ensuite ?

Je ne le sais pas encore, continuons de creuser, Moul :slight_smile:

4 Likes