Ubuntu Studio 16.04, ноутбук Lenovo.
Иногда, когда я запускаю приложение из (1) меню главного приложения, или (2) щелкните правой кнопкой по файлу ("Открытый с..."), или (3) командная строка, приложение зависает. (Зависающее приложение было: Firefox, Thunderbird, LibreOffice.)
Вводя по абсолютному адресу вокруг дерева процесса, я обнаруживаю, что во всех случаях, требуемое приложение породило дочерний процесс. Пример:
~$ ps aux | grep thunderbird
jga 7420 2.2 2.5 618832 99864 ? Sl 22:24 0:00 /usr/lib/thunderbird/thunderbird
jga 7424 0.1 0.7 378240 31344 ? S 22:24 0:00 /usr/lib/thunderbird/thunderbird
jga 7452 0.0 0.0 14224 928 pts/1 S+ 22:24 0:00 grep thunderbird
(И pstree подтверждает отношения отцов и детей между 7 420 и 7424.)
Если я уничтожаю дочерний процесс, родитель затем запускает обычно.
Вот Office Libre, делающий то же самое.
~$ libreoffice --calc &
[2] 7792
[1] Done libreoffice --calc
~$ #hanging...
~$ ps aux | grep office
jga 7792 0.1 0.1 207860 5764 pts/1 Sl 22:52 0:00 /usr/lib/libreoffice/program/oosplash --calc
jga 7809 0.4 1.4 607036 58752 pts/1 Sl 22:52 0:00 /usr/lib/libreoffice/program/soffice.bin --calc --splash-pipe=5
jga 7810 0.0 0.6 406804 24200 pts/1 S 22:52 0:00 /usr/lib/libreoffice/program/soffice.bin --calc --splash-pipe=5
jga 7815 0.0 0.0 14224 1028 pts/1 S+ 22:53 0:00 grep office
~$ kill -9 7810
~$ # Spreadsheet comes up.
Однако, если я запускаю, процесс на переднем плане - нет зависают.
Таким образом, что продолжается? Единственная системная модификация, которую я сделал недавно, должна была добавить Примечания к моей Панели, которую я позже удалил снова.
Выкатывая панель инструментов, я выполнил strace и на Firefox и на libreoffice., например. strace -ff -o /tmp/loffice libreoffice --calc
В обоих случаях у подпроцессов зависания была следующая общая функция:
syscall, пишущий в некоторый дескриптор, который заканчивает тем, что завис, например.
ioctl(5, DRM_IOCTL_I915_GEM_CREATE, 0x7ffd90290680) = 0
ioctl(5, _IOC(_IOC_READ|_IOC_WRITE, 0x64, 0x5e, 0x28), 0x7ffd90290630) = 0
ioctl(5, DRM_IOCTL_I915_GEM_SET_DOMAIN, 0x7ffd90290630) = 0
ioctl(5, DRM_IOCTL_I915_GEM_SET_DOMAIN <unfinished ...>
Быстрое прохождение в Goog говорит мне, что drirc связан с рендерингом, и мне напоминают, что моя краткая установка приложения Панели Примечаний была первым разом, когда я видел полупрозрачные окна в этой установке.
Так, связанный? Что продолжается?