CodeChain-io / CodeChain-io/foundry

ConnectionEstablished is called in an already established connection

オープン
#274 コメント 1 件 リアクション 0 件 担当者 0 名 GitHub で見る
bug
主要言語
Rust
スター
36
フォーク
11
PR マージ指標
30日以内にマージされた PR はありません

説明

Recently, discovery5 tests failed occasionally.
I read the failed test log and found that a connection established event is fired in the already existing connection. It made Foundry crash.

## Why this error found nowadays

Recently when we implementing a peer DB, we added an assertion that the same peer is not added twice in the DB. The assertion made Foundry panic.
It seems that the duplicated connection established event bug is aged, but recently found by the assertion.

## How should we fix it

The "connection established" event should not be called in an existing connection.

## ErrorLog

[2020_03_18T01_56_17_226Z.1.log](https://github.com/CodeChain-io/foundry/files/4346655/2020_03_18T01_56_17_226Z.1.log)
[2020_03_18T01_56_17_226Z.4.log](https://github.com/CodeChain-io/foundry/files/4346656/2020_03_18T01_56_17_226Z.4.log)

コントリビューションガイド

コントリビューションガイドを開く

調査の方向性

まず、断続的に発生する discovery5 テストの失敗を再現し、リンクされたエラーログを確認します。既存の接続に対して ConnectionEstablished イベントが発行される箇所を、peer DB の重複 assertion と併せて追跡します。既存の接続でイベントが発行されなくなり、Foundry がクラッシュせずに discovery5 テストを通過すれば完了です。

索引モデルが issue の本文から書いたものです。

評価

技術スタック
rust
領域
networking
issue の種類
バグ
難易度
3/5
見積もり時間
1〜2日
活発さ
停滞
明瞭さ
おおむね明確
初心者へのやさしさ
38/100

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。