【发布时间】:2019-01-17 03:34:45
【问题描述】:
我收到有关客户遇到的许多错误的报告
Symfony\Component\Debug\Exception\FatalErrorException
最长执行时间超过 30 秒
我自己无法在本地计算机或生产服务器上复制它。这个 URL 遍布整个网站,所以,我猜它是全球性的,比如导致这种情况的中间件。
我正在使用Sentry.io 收集数据,但异常跟踪只有1 个条目指向Symfony 基本代码中的某个代码,最常见的是:
vendor/symfony/finder/Iterator/ExcludeDirectoryFilterIterator.php 在第 73 行
vendor/symfony/finder/Iterator/DateRangeFilterIterator.php 第 45 行
vendor/symfony/finder/Iterator/RecursiveDirectoryIterator.php 第 69 行
显然,似乎存在与文件系统相关的问题,但由于没有任何痕迹,我无法看到在站点代码中的何处查找错误。我猜这是某种无限循环或泄漏,但没有任何痕迹可以查看,也没有一致的方法来重现问题。
我应该如何寻找问题并调试它?
有没有我可以设置的设置,或者我可以使用/启用的工具?
【问题讨论】:
-
当您说,
I, myself, cannot replicate it on my local machine nor on the production server您是否使用遇到问题的客户帐户进行了尝试。其中很多看起来像文件目录迭代,如果你允许他们上传或生成文件,他们可能有太多的文件,并且如果没有任何帐户,你将无法重现问题。只是一个想法。 -
您可以访问命令行吗?如果是这样,您可以尝试 strace tecmint.com/…
-
@ArtisticPhoenix 是的,我尝试了各种会话变量(未登录,以不同用户身份登录)。系统中没有文件上传/生成,当用户尝试打开获取一些基本数据的最简单的页面时,错误随机发生。
-
@AdrianHernandez-Lopez 我会试一试,谢谢。
-
错误消息通常可以追溯到调用所有函数/类字符串的主要代码段查找错误开始的位置,它几乎肯定会出现在您/某人编写的代码中不在 Symfony 代码库中
标签: php laravel symfony debugging timeout