Задать вопрос
Inkognitoss
@Inkognitoss
Full-stack разработчик.

Почему PHP некорректно интерпретирует файл (читает символ H как G)?

Например в файле приложения /path/to/file/httprequest.php:75
Возникает ошибка (это не единственный файл, который странным образом падает, привожу просто самый наглядный):
Class 'Main\Web\GttpHeaders' not found (0)

Однако на 75 строке httprequest.php вызывается Main\Web\HttpHeaders

Используется opcache. В общем то ошибку было бы сложно отловить, если бы не opcache, результат кешируется и до сброса opcache_reset() или рестарта apache ошибка воспроизводится.

После рестарта какое-то время ошибки нет, а потом снова. Причем, например, может в другом месте что-то неверно интерпретироваться, например потерять константу в классе и упасть с ошибкой Undefined class constant. Но константа конечно же есть.

Предположил, что дело в апаратном обеспечении, однако на том же SSD не нашел никаких проблем в s.m.a.r.t
Собираюсь обратиться к провайдеру хостинга, может быть они смогут сделать диагностику.

Буду рад любым версиям. Ниже приведен короткий FAQ по проблеме:

Пожалуйста, отнеситесь к инфе, которая написана выше как корректной.
Другими словами:
1. В проекте нет GttpHeaders
2. Файл залит корректно
3. Это не русская Н в коде.
4. Кодировка файлов корректная
5. Корректны и символы. Более того, код отлично работает на дев-сервере.
5. Сам файл тоже корректный. Он не синхронизируется, не имеет правок уже с февраля. Я ео специально не трогаю. Ошибки же всё равно повторяются.

Вопрос именно в том, как технически интерпретатор может ловить такой баг.

PHP: 7.1.33 
OS: CentOS Linux release 7.7.1908 (Core)
Kernel: 3.10.0-1062.4.1.el7.x86_64


На всякий случай скрин с параметрами OPCache прикрепляю
5ffea2a46181c755329295.png
  • Вопрос задан
  • 160 просмотров
Подписаться 1 Простой 12 комментариев
Пригласить эксперта
Ответы на вопрос 1
попробуйте поискать во всем проекте слово GttpHeaders
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы