Hacktoberfest 2026:维护者为十月标记出来的 issue,仍然开放、适合新手。 浏览 Hacktoberfest issue

TestRoomKeyIsCycledAfterEnoughTime flake due to no local/remote echo

未关闭
#114 2 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看

还没有人认领这个 Issue。

评估

难度
4/5
预计耗时
3-5 天
新手友好度
35/100
Issue 类型
缺陷
描述清晰度
需要澄清
活跃度
停滞
技术栈
go, rust

调研方向

从 room_keys_test.go 第 214-215 行附近以及 SendMessage/WaitUntilEventInRoom 流程开始,然后将其与此处显示的 matrix-rust-sdk send_queue 和 room futures 日志进行比较。运行所引用的 Complement crypto 测试或 CI 作业以重现 timeout。完成的标准是:事件发送后,测试能够可靠地观察到完成,并且不再出现 flaky。

由索引模型根据 Issue 内容生成。

描述

Run https://github.com/matrix-org/matrix-rust-sdk/actions/runs/9852865102/job/27202217506

It looks like the sending_task never returns, despite it sending the message.

Relevant logs:

2024-07-09T07:40:13.676048Z  INFO TestRoomKeyIsCycledAfterEnoughTime/{rust_hs1}|{rust_hs1}: [@user-49-alice:hs1](rust) SendMessage !KWuNNCWLHHGZwtRoVU:hs1 => Before the time expires | rust.go:0
...
2024-07-09T07:40:13.676539Z TRACE matrix_sdk::send_queue: received an event to send! txn_id=1e5843d0d07644df946b0ad9c55abebb | crates/matrix-sdk/src/send_queue.rs:436 | spans: sending_task{room_id=!KWuNNCWLHHGZwtRoVU:hs1}
...
2024-07-09T07:40:13.676655Z TRACE matrix_sdk::room::futures: Sending encrypted event because the room is encrypted. room_id="!KWuNNCWLHHGZwtRoVU:hs1" | crates/matrix-sdk/src/room/futures.rs:194 | spans: sending_task{room_id=!KWuNNCWLHHGZwtRoVU:hs1} > send_raw{room_id="!KWuNNCWLHHGZwtRoVU:hs1" transaction_id="1e5843d0d07644df946b0ad9c55abebb" is_room_encrypted=true}
...
2024-07-09T07:40:13.677198Z DEBUG matrix_sdk_crypto::session_manager::sessions: Collected user/device pairs that are missing an Olm session missing_session_devices_by_user={} timed_out_devices_by_user={} | crates/matrix-sdk-crypto/src/session_manager/sessions.rs:301 | spans: sending_task{room_id=!KWuNNCWLHHGZwtRoVU:hs1} > send_raw{room_id="!KWuNNCWLHHGZwtRoVU:hs1" transaction_id="1e5843d0d07644df946b0ad9c55abebb" is_room_encrypted=true} > preshare_room_key{room_id="!KWuNNCWLHHGZwtRoVU:hs1" } > get_missing_sessions
...
2024-07-09T07:40:13.678445Z DEBUG matrix_sdk::http_client::native: Sending request num_attempt=1 | crates/matrix-sdk/src/http_client/native.rs:55 | spans: sending_task{room_id=!KWuNNCWLHHGZwtRoVU:hs1} > send_raw{room_id="!KWuNNCWLHHGZwtRoVU:hs1" transaction_id="1e5843d0d07644df946b0ad9c55abebb" is_room_encrypted=true} > send{server_versions=[V1_0, V1_1, V1_2, V1_3, V1_4, V1_5, V1_6] config=RequestConfig { timeout: 30s, retry_limit: 3 } request_id="REQ-21" method=PUT uri="http://127.0.0.1:32781/_matrix/client/v3/rooms/!KWuNNCWLHHGZwtRoVU:hs1/send/m.room.encrypted/1e5843d0d07644df946b0ad9c55abebb" request_size="577 B"}
...
2024-07-09T07:40:13.699839Z DEBUG matrix_sdk::http_client: Got response | crates/matrix-sdk/src/http_client/mod.rs:228 | spans: sending_task{room_id=!KWuNNCWLHHGZwtRoVU:hs1} > send_raw{room_id="!KWuNNCWLHHGZwtRoVU:hs1" transaction_id="1e5843d0d07644df946b0ad9c55abebb" is_room_encrypted=true} > send{server_versions=[V1_0, V1_1, V1_2, V1_3, V1_4, V1_5, V1_6] config=RequestConfig { timeout: 30s, retry_limit: 3 } request_id="REQ-21" method=PUT uri="http://127.0.0.1:32781/_matrix/client/v3/rooms/!KWuNNCWLHHGZwtRoVU:hs1/send/m.room.encrypted/1e5843d0d07644df946b0ad9c55abebb" request_size="577 B" status=200 response_size="59 B"}
...
2024-07-09T07:40:13.699942Z  INFO matrix_sdk::room::futures: Sent event in room | crates/matrix-sdk/src/room/futures.rs:236 | spans: sending_task{room_id=!KWuNNCWLHHGZwtRoVU:hs1} > send_raw{room_id="!KWuNNCWLHHGZwtRoVU:hs1" transaction_id="1e5843d0d07644df946b0ad9c55abebb" is_room_encrypted=true event_id="$WjfmfvepH3dxgepiHbRJQ_WfTMrFAVcEuslWDB_9lrs"}
2024-07-09T07:40:13.699991Z TRACE matrix_sdk::send_queue: successfully sent txn_id=1e5843d0d07644df946b0ad9c55abebb event_id=$WjfmfvepH3dxgepiHbRJQ_WfTMrFAVcEuslWDB_9lrs | crates/matrix-sdk/src/send_queue.rs:454 | spans: sending_task{room_id=!KWuNNCWLHHGZwtRoVU:hs1}
2024-07-09T07:40:13.700070Z TRACE matrix_sdk::send_queue: queue is empty, sleeping | crates/matrix-sdk/src/send_queue.rs:424 | spans: sending_task{room_id=!KWuNNCWLHHGZwtRoVU:hs1}

Despite this:

     room_keys_test.go:214: [@user-50-bob:hs1](rust) WaitUntilEventInRoom !KWuNNCWLHHGZwtRoVU:hs1
      room_keys_test.go:215: [@user-49-alice:hs1](rust) SendMessage !KWuNNCWLHHGZwtRoVU:hs1 => Before the time expires
      rust.go:692: [@user-50-bob:hs1]AddTimelineListener[!KWuNNCWLHHGZwtRoVU:hs1] TimelineDiff len=2
      rust.go:788: [@user-50-bob:hs1]TimelineDiff change: &{ID:$nOnJ6G2db0lEjeJVee7VWJN7goLxIFNZq49sDBySYbM Text:Before we start Sender:@user-49-alice:hs1 Target: Membership: FailedToDecrypt:false}
      rust.go:788: [@user-50-bob:hs1]TimelineDiff change: &{ID:$WjfmfvepH3dxgepiHbRJQ_WfTMrFAVcEuslWDB_9lrs Text:Before the time expires Sender:@user-49-alice:hs1 Target: Membership: FailedToDecrypt:false}
      room_keys_test.go:215: SendMessage(rust) @user-49-alice:hs1: timed out after 11s
主要语言
Go
星标
20
派生
13
PR 合并指标
30 天内没有已合并 PR

环境准备

  • 没有 Dockerfile 或 Docker Compose 文件
  • 没有 Pull Request 模板
  • 阅读贡献指南

从这里开始

  1. 先读完整个 Issue,再读项目的贡献指南。
  2. 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
  3. Fork 仓库,在一个分支上完成修改。
  4. 提交 Pull Request,并在描述里引用这个 Issue 编号。

matrix-org/complement-crypto 的其他 Issue

查看 matrix-org/complement-crypto 的全部 Issue

相似的 Issue

更多 Go Issue

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。