ShuiBo'blog

人生若只如初见

嗨,我是水波 (@saber).


君以国士待我,我必国士报之。

记一次LOCK_EX导致的504错误

页面访问,直接504。

寻找问题

0x01

查看日志记录,应用没有日志,nginx超时后有日志。应该是到了Nginx,但是具体到应用哪里不清楚。

0x02

  1. 应用入口打输出,直接显示。说明访问到了应用。
  2. 程序末尾处打输出,直接显示。说明程序过程没有问题。
  3. 最后在打日志的位置发现问题。
file_put_contents($file_path, $message . "\\n", FILE_APPEND | LOCK_EX)

0x03

问题应该是LOCK_EX的某次句柄没有释放,导致后续的都不能写日志。

结合早上发现服务器的空间不足的原因,ps看了下php脚本执行,发现有十几个脚本还在执行。

应该是,凌晨脚本执行完的时候需要打日志,但是磁盘空间不足,导致一直等待。后续的请求写日志也会一直等待。

解决

嗯。。。清理磁盘空间,干掉等待的脚本。完事~

最近的文章

rust学习之一

第一次接触rust是因为在GitHub上面看到了一个好玩的项目,rust-sr这个能让图片更加清晰的工具。rust这个新兴的语言在人工智能方面运用的还是很有前景的。so,开始学习学习。教材我是用的教程是Rust 程序设计语言(第二版),刚加第一版的书签时,还没有呢。打算看的时候除了第二版,那就从第二版开始看.介绍 Rust 是一门着眼于安全、速度和并发的编程语言。其程序设计兼顾底层语言的性能与控制,并不失高级语言强大的抽象能力。其特性适合那些有类 C 语言经验,正在寻找更安全的替代品...…

继续阅读
更早的文章

记一次webpack资源路径问题

webpack执行npm run build 之后传到远程服务器后,路由不能正常显示。本地环境能正常访问。 问题 访问/dashboard正常跳转到/dashboard/index能正常显示,而在页面/dashboard/index刷新访问的时候就不能访问报了以下的错误。 解决过程 看了下router文件后,并没有啥问题。又去看了下nginx正常配置: location / { expires -1; add_header Pragma "no-cache"; a...…

继续阅读