После того, как я обновился до последней версии SublimeText3 (сборка 3176), plugin_host начинал падать каждый раз, когда я выбираю вкладку с файлом PHP.

plugin_host неожиданно завершился, функциональность плагина не будет доступна, пока Sublime Text не будет перезапущен

Я подумал, что, возможно, какое-то расширение может быть причиной, но не могу отладить, какое именно. Я попытался поместить все installed_packages в ignored_packages в моем Package Control.sublime-settings, но не помогло (на самом деле я все еще мог вызывать функции плагинов через палитру команд; но не мог придумать другие способы отключить все расширения в один раз).

1 ответ1

0

Мне удалось решить проблему в моем случае.

После обновления до последней версии SublimeText (3176)plugin_host зависал каждый раз, когда я переключался на вкладку, содержащую файл PHP.*

У меня не было подробностей об ошибке или трассировке стека, поэтому я мог только догадываться.

В моем случае проблема была с PHP-CS (Code Sniffer) расширением SublimeLinter, которое вылетало . Удаление было предотвращением аварии. Не удалось найти ни одной связанной проблемы в репозитории github, поэтому я предположил, что ошибка была связана с моей локальной конфигурацией, а не с ошибкой в коде.

Я проверил конфигурацию SublimeLinter и увидел, что в phpcs есть запись, задающая конкретный путь для executable , а не полагаясь на системную переменную среды PATH , чтобы найти ее.

Я попытался запустить настроенный путь (в моем случае это был /usr/local/opt/php/bin/phpcs) и убедился, что (настроенный) исполняемый файл был одним из аварий (используя echo $? показал мне код выхода 133).

Поэтому я попытался удалить конфигурацию SublimeLinter относительно phpcs (чтобы она находилась в конфигурации системы), сохранил, перезапустил Sublime и вуаля, она работала без нареканий, без сбоев plugin_host ! Указанный phpcs был неправильным, и мне нужно было использовать тот, который был найден в PATH env.

Я полагаю, что либо _plugin_host_, либо SublimeLinter предполагают, что вызываемые исполняемые файлы будут работать правильно, если найдены в их расположении, или что они неправильно обрабатывают состояние выхода из процессов и вызывают больший сбой в некоторой области действия / контексте, где ошибка не перехватывается и трассировка стека не генерируется (следовательно, никакой полезной информации в журнале через консоль). Возможно, я ошибаюсь в диагнозе, но, возможно, это поможет кому-то другому отследить проблему и выяснить, почему происходят эти сбои вместо того, чтобы перехватить исключение.

В общем, я бы предложил:

  • ищите виновника среди плагинов, которые вызывают внешние исполняемые файлы
  • убедитесь, что пути указаны правильно, указывая на правильную версию исполняемого файла
  • убедитесь, что исполняемый файл действительно работает за пределами Sublime

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .