Skip to content

BUG-032: test_scenario_bc.py relay 启动等待不足 — link=None 导致所有 P2P 连接测试失败 #11

@Kickflip73

Description

@Kickflip73

现象

test_scenario_bc.py 启动子进程 relay 后仅 time.sleep(5) 就读取 /statuslink 字段,沙箱中公网 IP 探测需 >5s,linkNone,后续 POST /peers/connect {"link": None} 失败,导致所有 P2P 连接相关测试(B1B3, B5B7, C1~C3 等共 20 个)失败。

根因

run_bc_tests() 第 112 行:time.sleep(5) 硬编码等待,不轮询 link 非 None。无类似 wait_peer_ready() 的重试等待逻辑。

修复方案

def wait_link_ready(http_port, retries=30, interval=0.5):
    for _ in range(retries):
        try:
            r, _ = get(http_port, '/status')
            if r.get('link'):
                return r['link']
        except Exception:
            pass
        time.sleep(interval)
    return None

替换各处 time.sleep(5) + r['link']wait_link_ready(port)

发现轮次

测试轮 AB(2026-03-27)

优先级

P2 — 沙箱 CI 环境必现,本地快速网络可能不触发

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