Странное смещение букв в имени файла в автозагрузке composer / symfony ApcClassLoader (перевёрнутый бит?) - PullRequest
0 голосов
/ 04 июля 2018

У меня действительно странная ошибка, и я надеюсь, что кто-то испытал что-то подобное или есть идея, чтобы помочь мне.

У нас есть приложение 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, это может быть аппаратная ошибка? Есть идеи, как это отладить?

...