Skip to content

チャンク分割処理の想定漏れにより、データが細切れに受信すると、セグメントサーバーに2回以上同時に接続したりするかもしれない #7

@DaisukeDaisuke

Description

@DaisukeDaisuke

セグメントサーバー回りについては2重受信ガードを備えてるので、影響はありませんが、メッセージサーバーについては2重以上でメッセージを受信してもおかしくないことに気が付きました。
つまり、セグメントサーバーに異常なまでに多重接続する可能性があるってことです。
データを受信した後に、処理したチャンクを消さない為発生します。
といっても多くの人に使ってもらってる以上、これ以上のバージョン更新は避けた方がいいだろうし、どうしかものか...

ここで常に0が使用されているのが最大の原因です。

int offset = 0;
while (true)
{
var result = DecodeVarint(ref offset);
if (result == null)
{
break;

ここでオフセットはメモしていますが、使われていません。もっと早く気がつくべきでした...

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions