У меня действительно странная ошибка, и я надеюсь, что кто-то испытал что-то подобное или есть идея, чтобы помочь мне.
У нас есть приложение Symfony, работающее в виртуализированном кластере.
Теперь уже третий раз за полгода у нас появилась эта действительно странная ошибка:
Сервер перестает работать с ошибкой 500, когда я ищу наш журнал, причина в том, что автозагрузчик хочет загрузить файл, но в имени файла есть сдвиг на одну букву:
Uncaught PHP Exception Symfony\Component\Debug\Exception\FatalErrorException: "Compile Error: require(): Failed opening required '/var/www/vendor/symfony/symfony/src/Symfony/Component/Form/ChoiceList/View/ChoicdListView.php' (include_path='.:/usr/share/php')" at /var/www/vendor/symfony/symfony/src/Symfony/Component/ClassLoader/ApcClassLoader.php line 112
Таким образом, вместо Choic e ListView.php он попытался загрузить Choic d ListView.php
Сегодня это произошло:
Uncaught PHP Exception Symfony\Component\Debug\Exception\FatalErrorException: "Compile Error: require(): Failed opening required '/var/www/vendor/doctrine/common/lib/Doctrine/Common/Persistence/Event/LifecycleEuentArgs.php' (include_path='.:/usr/share/php')" at /var/www/vendor/symfony/symfony/src/Symfony/Component/ClassLoader/ApcClassLoader.php line 112
LifecycleE u entArgs.php вместо LifecycleE v entArgs.php
- ОС Ubuntu 16.04
- Файловая система Ext4 на виртуальной машине
- Каждый раз, когда это происходило, никто не развертывал что-либо на сервере или даже входил в систему по SSH (последнее развертывание было более двух недель назад, сервер работал все время)
- Каждый раз, когда это происходило, проблема была в папке / vendor
- Каждый раз, когда одна буква переключалась на следующую или предыдущую (N вместо M или U вместо V)
- Я искал все файлы во всей папке / var / cache в проекте symfony по имени файла, но не нашел его
- Я не нашел файл кэша автозагрузки композитора достаточно быстро, поэтому я не проверил этот файл.
- Каждый раз, когда затрагивалась только одна машина в кластере, но каждый раз это были разные машины.
- Ошибка исправлена путем повторного развертывания, пока через пару месяцев ошибка не возникнет с другим файлом.
- Эта ошибка возникает только в нашем производственном кластере и не может быть воспроизведена
Итак, подведем итог: каждые пару месяцев Symfony пытается загрузить файл с неправильным именем, только на одной машине в кластере, к которой никто не прикасался.
Кто-нибудь знает, что это может быть? Я сомневаюсь, что это проблема Symfony, это может быть аппаратная ошибка? Есть идеи, как это отладить?