常见报错实测
2026-11-03
Redis LOADING Redis is loading the dataset in memory:端口 0.02 秒就通、400 万 key 加载约 3 秒,PING 型健康检查会误杀,loading_eta_seconds 开头不准
实测 Redis LOADING Redis is loading the dataset in memory:400 万 key、141.8 MB 的 RDB 启动加载约 3 秒,端口 0.02 秒就通;加载期间 PING、GET、SET、DBSIZE、KEYS 被拒而 INFO、CONFIG GET、PUBLISH 可用;loading_eta_seconds 开头不准;从库全量同步同样 LOADING,swapdb 在本机没有观察到 async_loading。
Redis
LOADING
loading the dataset in memory
RDB
loading_eta_seconds
健康检查
repl-diskless-load
swapdb
报错
真实验证
动画演示
常见报错实测
2026-11-03
Redis CROSSSLOT Keys in request don't hash to the same slot:同节点不同槽位也报,19 个多 key 命令全部受限,固定 hash tag 让 3000 个 key 全进一个节点
实测 Redis CROSSSLOT Keys in request don't hash to the same slot:同节点不同槽位也报;19 个多 key 命令全部 CROSSSLOT;hash tag 的规则(空花括号、多对花括号);MULTI/EXEC 到 EXEC 才报,Lua 偷用其它节点的 key 是另一种错误;固定 tag 让 3000 个 key 全进一个节点。
Redis
CROSSSLOT
Redis Cluster
hash tag
MGET
MSET
CLUSTER KEYSLOT
Lua
报错
真实验证
动画演示
常见报错实测
2026-11-03
SQLite database is locked:读后写的延迟事务升级锁时 timeout=10 也 0.0 ms 立刻失败,WAL 模式 8 线程读后写失败 1372/1600、BEGIN IMMEDIATE 为 0
实测 SQLite database is locked:timeout 0、1、5 秒的等待行为;DELETE 与 WAL 下谁挡谁(WAL 解决不了写挡写);读锁升级写锁时 timeout 10 秒也 0.1 ms 立刻失败;Python 默认事务忘了 commit 会一直握着写锁;8 线程读后写 WAL + BEGIN 失败 1372/1600,BEGIN IMMEDIATE 为 0。
SQLite
database is locked
sqlite3
WAL
BEGIN IMMEDIATE
busy_timeout
Python
journal_mode
报错
真实验证
动画演示
常见报错实测
2026-11-03
Python RecursionError: maximum recursion depth exceeded:默认第 999 层失败,setrecursionlimit 设到一千万纯 Python 递归 500 万层照常跑(约 607 MiB),json/repr 的深递归仍报 Stack overflow (used 16352 kB)
实测 Python RecursionError: maximum recursion depth exceeded:默认上限 1000、第 999 层失败;经过 C 的 json/repr/比较改报 Stack overflow (used 16352 kB);setrecursionlimit 设 1000 万后纯 Python 递归 500 万层照常运行(约 607 MiB,没有段错误);线程栈大小无关;尾递归与 lru_cache 无效,迭代才是修法。
Python
RecursionError
maximum recursion depth exceeded
sys.setrecursionlimit
Stack overflow
递归
报错
真实验证
动画演示
常见报错实测
2026-11-03
RabbitMQ PRECONDITION_FAILED - inequivalent arg:整数 5000 和字符串 "5000" 报 received '5000' but current is '5000',只关闭 channel,改成 quorum 只能删除重建(5 条消息丢失)
实测 RabbitMQ PRECONDITION_FAILED - inequivalent arg:TTL、durable、x-queue-type、交换机 type 等改动的 406 原文;整数 5000 与字符串 "5000" 报 received '5000' but current is '5000';只关闭 channel、未 ack 的消息回队列;passive 声明不比较参数;policy 管参数可随时改;改队列类型只能删除重建(5 条消息丢失)。
RabbitMQ
PRECONDITION_FAILED
inequivalent arg
406
x-message-ttl
x-queue-type
policy
channel
报错
真实验证
动画演示
常见报错实测
2026-11-03
MySQL ERROR 1213 Deadlock found when trying to get lock:反向更新 2 ms 检测并整个事务回滚,RR 下先 SELECT FOR UPDATE 再 INSERT 也死锁,统一加锁顺序让 1213 从 1034 次降到 0
实测 MySQL ERROR 1213 Deadlock found:反向更新两行 2 ms 检测、整个事务回滚;改得少的事务被选为牺牲品;RR 下先 SELECT FOR UPDATE 再 INSERT 的间隙锁死锁,RC 下变成 1062;INNODB STATUS 怎么读,innodb_print_all_deadlocks 需要 log_error_verbosity=3;随机顺序 1034 次 1213,升序为 0;关闭 innodb_deadlock_detect 后两边都等满 3 秒失败。
MySQL
1213
Deadlock found when trying to get lock
InnoDB
间隙锁
innodb_print_all_deadlocks
innodb_deadlock_detect
报错
真实验证
动画演示
常见报错实测
2026-11-03
curl 常见错误码 (6)(7)(28)(35)(52)(56)(60) 实测:404 不加 -f 退出码是 0,-k 只是跳过验证,--retry 默认不重试 52、56、7
实测 curl 常见错误码 6、7、28、1、3、18、22、23、35、47、52、56、60:每个用本机小服务复现原文;28 的三种说法;404 不加 -f 退出码是 0;-k 只是跳过验证;--retry 默认只重试超时与 HTTP 500/503,52、56、7 默认不重试,--retry-all-errors 才会。
curl
curl 错误码
curl (6)
curl (7)
curl (28)
curl (35)
curl (52)
curl (56)
curl (60)
--retry
报错
真实验证
动画演示
常见报错实测
2026-11-03
MongoDB Sort exceeded memory limit (code 292):9.0.4 默认落盘所以 130 MB 排序不再报,显式 allowDiskUse(false) 才报,$sort 与 $group 措辞不同,加 limit(10) 只要 0.09 s
实测 MongoDB Sort exceeded memory limit(code 292):9.0.4 上 allowDiskUseByDefault 默认为真,无索引排序 130 MB 默认成功(usedDisk=True);显式 allowDiskUse(false) 才报,$sort 与 $group 措辞不同;索引、limit、缩小投影、调大上限四种修法的耗时;关掉默认落盘后不写 allowDiskUse 也报。
MongoDB
Sort exceeded memory limit
QueryExceededMemoryLimitNoDiskUseAllowed
allowDiskUse
allowDiskUseByDefault
$group
排序
报错
真实验证
动画演示
新版本特性实测
2026-10-30
Python 3.15 lazy import 实测:导入 15 个标准库模块,启动从 100.3 ms 降到 19.4 ms,出错要等到第一次使用才报
实测 Python 3.15 lazy import:3.14 报 SyntaxError,3.15 里导入推迟到第一次使用;模块不存在时到使用处才报 ImportError 链;try、函数、类里不能写;-X lazy_imports=all 在 3.14 上被静默忽略;导入 15 个标准库模块的启动时间 3.15 普通 import 100.3 ms、lazy import 19.4 ms。
Python
Python 3.15
lazy import
PEP 810
sys.set_lazy_imports_filter
-X lazy_imports
启动时间
新特性
真实验证
动画演示
新版本特性实测
2026-10-30
SyntaxError: iterable unpacking cannot be used in comprehension:Python 3.15 里 [*a for a in xs] 合法了,和嵌套推导式、chain、extend 的速度实测
实测 Python 3.15 推导式里的 * 和 ** 解包:3.14 报 SyntaxError: iterable unpacking cannot be used in comprehension;3.15 里 [*a for a in xs] 等四种都能写;重复键后者覆盖;生成器表达式仍然惰性;各种写错的报错文本;字节码只有 LIST_EXTEND;拍平列表三种形状的速度对比。
Python
Python 3.15
推导式
解包
PEP 798
iterable unpacking cannot be used in comprehension
列表拍平
新特性
真实验证
动画演示
新版本特性实测
2026-10-30
Python 3.15 内置 frozendict 实测:不是 dict 的子类,能当 lru_cache 的参数,哈希值会缓存,内存和 dict 几乎一样
实测 Python 3.15 内置 frozendict:3.14 里是 NameError;不是 dict 的子类但属于 Mapping;赋值删除是 TypeError、update/pop/clear 等方法不存在;可哈希、能传给 lru_cache、能当 dataclass 默认值;和 MappingProxyType 的区别;占内存、构造、读取、哈希的耗时对比。
Python
Python 3.15
frozendict
不可变字典
可哈希
MappingProxyType
lru_cache
新特性
真实验证
动画演示
新版本特性实测
2026-10-30
Python 3.15 profiling.sampling 在 macOS 上报 Permission Error 要 sudo:cProfile 搬进 profiling.tracing 后 main、label 等四个名字没了
实测 Python 3.15 的 profiling 包:cProfile 搬到 profiling.tracing,main/label/io/importlib 四个名字消失(cProfile.main() 是 AttributeError);新的采样分析器 python -m profiling.sampling 在 macOS 上 run/attach/dump 都报 Permission Error,需要 sudo;cProfile 输出在 3.14 与 3.15 上结构相同,.prof 文件能互读。
Python
Python 3.15
profiling.sampling
cProfile
profiling.tracing
Permission Error
Tachyon
pstats
新特性
真实验证
动画演示