Go:x/crypto/ssh 的全局请求通道竞争

现象

在自己的程序中使用类似下面的代码监听 SSH 的全局请求:

go
for {
  select {
  case <-ctx.Done():
    return nil
  case req, ok := <-globalReqs:
    if !ok {
      return nil
    }
    // Handle request
    fmt.Println("Received global request:", req.Type)
    req.Reply(true, nil)
  }
}

发现发来的请求有时候没有接收到, 而对端的提示是 reject, 甚至出现 reject, 成功 如此交替出现的情况 (那很公平调度了).

其实很明显是有啥东西和自己的代码在抢同一个通道, 但是因为我一直在找发送端的代码问题, 为这个问题浪费了一晚上的生命, 甚至怀疑这库有 bug

使用 WireGuard 为 IPV6-Only 机器添加 IPV4 网络
其实 Warp 就是这个原理
海信VIDDA 旧电视 LED55N3000U 折腾记录

感觉还不如以前的CRT. 😓

Git 合并上游分支解决冲突

场景

  1. 同步 upstream 仓库的更改到自己的 fork
  2. fork 仓库的分支与 upstream 的分支有冲突
  3. 仅更新自己的 fork 分支, 并保持提交记录整洁
迁移 MySQL8.1+ 到 PostgreSQL17

省流就是别用 pgloader , 它已经不支持新版 mysql 和 postgresql 了

Nginx 迷思之请求缓冲与 Go 的分块传输编码

最近在自己的某个项目中频繁被用户反馈的一个文件上传bug, 测试也总是无法复现, debug 许久才找到问题根源, 以此记录一下.

Linux 安装最新 FFmpeg 和 FFprobe

大多数 Linux 发行版的软件源中的 FFmpeg 版本都比较老旧,本文介绍如何在 Linux 系统上安装新版或任意版本的 FFmpeg 和 FFprobe.