查找问题与解决方法
JavaScript 数字数组 sort 后,100 排在 2 前面
普通 JavaScript 数组默认按字符串比较,数字排序可能把 100 放到 2 前面。使用数值比较函数,保留原数组,并明确数字字符串、NaN 和稀疏数组的输入边界。
GitHub Actions 算错发布版本:checkout 只取了一层历史
本地版本计算正常,Actions 却找不到发布标签或错误扩大待发布范围。核对 checkout 的浅历史、标签与发布提交,再用只读版本预览验收。
Compose Secret 设置 uid、gid、mode 后权限仍未改变
文件型 Compose Secret 使用绑定挂载,不应用 uid、gid、mode 重映射。按来源选择环境变量型 Secret 或专用源文件权限,并核对实际身份、轮换和回退。
Nginx 登录回调报 upstream sent too big header,调缓冲仍无效
响应头过大时先辨认 FastCGI 与 HTTP upstream,修改实际入口的对应缓冲,检查 Cookie 生成逻辑,并核对配置确实生效。
Java String.split(".") 返回空数组,读取第一个元素时报越界
String.split 的句点参数是正则通配符,配合默认移除尾部空字段会得到空数组。转义字面句点,再按字段契约决定是否保留末尾空值。
curl 配置 HTTP_PROXY 后仍直连超时:HTTP 代理变量要小写
显式代理可用,HTTP_PROXY 环境设置却无效时,核对小写 http_proxy、进程继承及 NO_PROXY 等覆盖规则。
MCP 关闭连接时,Shutting 日志触发 JSON 解析错误
stdio 工具的退出日志进入 stdout,会被当成 MCP 消息解析。区分服务器日志与宿主输出,核对 SDK 1.29.0 的关闭路径、正确等待连接和错误处理。
Git 初始提交执行 reset 时报 HEAD~1 无法识别
第一次提交没有父提交,git reset --soft HEAD~1 因而无法解析目标。区分真实根提交和浅克隆,并通过新建分支、重命名或 amend 完成修改,保留恢复入口。
Dockerfile 的 RUN source 报 not found:切换构建 shell 后还要保留同一步环境
构建时RUN source报not found,检查Dockerfile默认shell。选择Bash或POSIX点命令,并在同一RUN使用加载的环境。
网页能打开,curl -I 却返回 405 Method Not Allowed
浏览器能打开网页,curl -I 却返回 405 时,对比同一路径的 HEAD 与 GET;用 GET 丢弃正文并输出状态码,分别判断传输失败、HTTP 异常和登录跳转。
curl --resolve 指定 8443 后仍连接 443 端口
--resolve 中的端口用于匹配 URL,不会重定向连接端口。区分替换 IP、访问非默认 HTTPS 端口和使用 --connect-to 映射后端端口,并核对 TLS 与实际连接目标。
MariaDB 本机 root 报 Access denied,sudo 却能登录:检查 unix_socket
本机 MariaDB root 密码登录失败而 sudo 登录成功时,查看完整认证定义;保留管理入口,给应用建立限定权限账号,并区分 socket 与 TCP。
Python 函数默认列表在多次调用之间不断累积元素
Python 可变默认参数在函数定义时创建,多次省略参数会共享同一个列表。用 None 在调用时创建列表,并明确显式传入列表时采用原地修改还是复制。
Python SMTP 报 WRONG_VERSION_NUMBER:核对端口与 TLS 启动方式
Python SMTP 连接报 WRONG_VERSION_NUMBER,按服务实际入口选择 SMTP 加 STARTTLS 或 SMTP_SSL,区分超时、握手和认证,并保留证书验证。
Gradle 8.1.1 在 Java 21 上报 Unsupported class file major version 65
Gradle 运行 JVM 与 Wrapper 版本不兼容;区分 Java 21 工具链支持和运行支持,检查实际启动入口并选择配套版本。
MySQL 改了容器密码仍 Access denied:先看已有数据卷
容器环境变量变化不等于已有数据库账号密码变化。先确认数据目录和账号匹配,再选择受控改密,保留数据与恢复路径。
Rust Option::map_or 的默认值也在闭包中使用,编译报 E0382
Option::map_or 的参数提前求值,同一向量不能既作为默认值移动,又由闭包消费。用 match 在选中分支内转移所有权,保留分支行为。
SQLite group_concat 去重并指定分隔符时报单参数错误
SQLite 的 group_concat 同时使用 DISTINCT 和自定义分隔符时报错。先按分组键和值去重,再执行双参数聚合,避免替换结果中的逗号破坏原始内容。
Linux 脚本已有执行权限,运行仍报 Permission denied
Linux 脚本已有执行位仍报 Permission denied 时,检查实际路径的 noexec 挂载限制,区分解释器读取与直接执行,并选择迁移目录或调整挂载策略的处理方式。


