LINUX.ORG.RU

[РЕШЕНО] Медленное открытие приложений

 ,


0

2

Arch, i3wm. После смены имени пользователя и названия ПК некоторые программы стали запускаться гораздо дольше обычного. К примеру, telegram-desktop, который до этого открывался мгновенно, теперь открывается только через минуты 3-5, а окно с медиа внутри телеграмма потом открывается ещё столько же. Но после того, как приложение открылось, оно работает нормально. Процедура ожидания повторяется, если убить процесс. То же самое заметил с qalculate и ещё парой программ. С чем это может быть связано? В /etc/hostname и /etc/hosts названия совпадают, после смены пользователя был изменён домашний каталог с созданием симлинка из старого на новый.

Изменял имя пользователя и домашний каталог следующими командами:

usermod -l новое_имя старое_имя
usermod -d /новый/домашний/каталог -m имя_пользователя

Добавлял симлинк со старого каталога на новый следующей командой:

ln -s /новый/домашний/каталог/ /старый/домашний/каталог

Название хоста, соответственно, менял в:

vim /etc/hostname
HOSTNAME

И в:

vim /etc/hosts
127.0.0.1 localhost
::1 localhost
127.0.0.1 HOSTNAME.localdomain HOSTNAME


Последнее исправление: FarEvil (всего исправлений: 1)

Ответ на: комментарий от targitaj

Запускал уже. Вот лог:

$ telegram-desktop                                        127 ↵
QPainter::begin: Paint device returned engine == 0, type: 2
QWidget::render: Cannot render with an inactive painter
qt.svg: Error while inflating gzip file: SVG format check failed
qt.svg: Error while inflating gzip file: SVG format check failed
qt.svg: Error while inflating gzip file: SVG format check failed
qt.svg: Error while inflating gzip file: SVG format check failed
qt.svg: Error while inflating gzip file: SVG format check failed
qt.svg: Error while inflating gzip file: SVG format check failed
qt.svg: Error while inflating gzip file: SVG format check failed
qt.svg: Error while inflating gzip file: SVG format check failed
qt.svg: Error while inflating gzip file: SVG format check failed
qt.svg: Error while inflating gzip file: SVG format check failed
qt.svg: Error while inflating gzip file: SVG format check failed
qt.svg: Error while inflating gzip file: SVG format check failed
qt.svg: Error while inflating gzip file: SVG format check failed
qt.svg: Error while inflating gzip file: SVG format check failed
qt.svg: Error while inflating gzip file: SVG format check failed
qt.svg: Error while inflating gzip file: SVG format check failed
qt.svg: Error while inflating gzip file: SVG format check failed
qt.svg: Error while inflating gzip file: SVG format check failed
qt.svg: Error while inflating gzip file: SVG format check failed
qt.svg: Error while inflating gzip file: SVG format check failed
qt.svg: Error while inflating gzip file: SVG format check failed
qt.svg: Error while inflating gzip file: SVG format check failed
qt.svg: Error while inflating gzip file: SVG format check failed
qt.svg: Error while inflating gzip file: SVG format check failed
qt.svg: Error while inflating gzip file: SVG format check failed
qt.svg: Error while inflating gzip file: SVG format check failed
qt.svg: Error while inflating gzip file: SVG format check failed
qt.svg: Error while inflating gzip file: SVG format check failed
qt.svg: Error while inflating gzip file: SVG format check failed
qt.svg: Error while inflating gzip file: SVG format check failed
qt.svg: Error while inflating gzip file: SVG format check failed
qt.svg: Error while inflating gzip file: SVG format check failed
qt.svg: Error while inflating gzip file: SVG format check failed
qt.svg: Error while inflating gzip file: SVG format check failed
qt.svg: Error while inflating gzip file: SVG format check failed
qt.svg: Error while inflating gzip file: SVG format check failed
qt.svg: Error while inflating gzip file: SVG format check failed
qt.svg: Error while inflating gzip file: SVG format check failed
qt.svg: Error while inflating gzip file: SVG format check failed
qt.svg: Error while inflating gzip file: SVG format check failed
qt.svg: Error while inflating gzip file: SVG format check failed
qt.svg: Error while inflating gzip file: SVG format check failed
qt.svg: Error while inflating gzip file: SVG format check failed
FarEvil
() автор топика
Ответ на: комментарий от FarEvil

Ничего кардинально нового в выводе терминала не появилось, эти ошибки никак не мешают и не мешали приложению функционировать, дело не в этом. А если взять, к примеру, qalculate-то вообще вывода нет, просто полминуты запускается приложение и всё. Без каких-то ошибок.

FarEvil
() автор топика
Ответ на: комментарий от FarEvil
  1. Лучше в качестве подопытного взять приложение, которое меньше логов генерирует. Желательно однопоточное. Тот же qalculate скорее всего лучше подойдёт для этой цели.

  2. Нужно посмотреть, на каком вызове происходит зависание. В идеале, лог просто остановится на каком-то вызове, когда приложение зависнет.

wandrien ★★
()
Ответ на: комментарий от slackwarrior

А ты грепни что тебе нужно

Если бы я ещё знал, что мне нужно :)

заверни выхлоп strace в файл

Теперь есть два файла с логами от qalculate, один файл-полностью загруженное приложение и выход из него в штатном режиме спустя время ожидания его запуска, а второй файл-моя отмена запуска через Ctrl-C в терминале на моменте зависания. Полный лог на 12к строк, его даже на pastebin не закинуть из-за превышения размера в 512кб, второй лог на 2660 строк, но опять же непонятно куда там смотреть.

Лог:

FarEvil
() автор топика
Ответ на: комментарий от dataman

Удалить кэш

Кэш чистый

Может, там многолиард строк

Я qalc не так часто использую, вряд ли там настолько много строк, чтобы аж такие зависания вызывать. Тем более, телеграмм и qalc-не единственные программы, с которыми возникает данная проблема. К ним же можно, например, отнести gnome fileroller

FarEvil
() автор топика

В общем, это баг с xdg-desktop-portal-gnome (подробности здесь). Решение:

sudo pacman -Rdd xdg-desktop-portal-gnome
sudo pacman -S xdg-desktop-portal-gtk

Решение работает конкретно с gtk окружениями, такими как xfce или i3wm. Решение нашёл тут. Там же есть решение этого бага и для других окружений.

FarEvil
() автор топика
Ответ на: комментарий от FarEvil

Он этой ошибкой года два срет точно. Тут все-по старому: дуровские олимпиадники как были рукожопами, так и остались (потому что знание матана и алгоритмов не делает тебя крутым программистом автоматом)

uwuwuu
()
Ответ на: комментарий от FarEvil

Это не баг, а фича. Просто для гнома эта зависимость добавилась, а старый пакет был удален, но у тебя гном не стоит, а значит при обновлении портал новый не поставился. И у пакета зависимостей нет:

~
❯ yay -Sii i3-wm
Repository      : extra
Name            : i3-wm
Version         : 4.22-4
Description     : Improved dynamic tiling window manager
Architecture    : x86_64
URL             : https://i3wm.org
Licenses        : BSD
Groups          : i3
Provides        : i3-gaps
Depends On      : libev  libxkbcommon-x11  pango  startup-notification  ttf-font  xcb-util-cursor  xcb-util-keysyms
                  xcb-util-wm  xcb-util-xrm  yajl
Optional Deps   : dmenu: for the default program launcher
                  rofi: for a modern dmenu replacement
                  i3lock: for the default screen locker
                  xss-lock: for the default screen locker
                  i3status: for the default status bar generator
                  perl: for i3-save-tree and i3-dmenu-desktop
                  perl-anyevent-i3: for i3-save-tree
                  perl-json-xs: for i3-save-tree
Required By     : None
Optional For    : polybar  rofi
Conflicts With  : None
Replaces        : i3  i3bar  i3-gaps
Download Size   : 1029.95 KiB
Installed Size  : 2375.98 KiB
Packager        : Daniel M. Capella <polyzen@archlinux.org>
Build Date      : Mon 24 Apr 2023 07:17:30 AM MSK
MD5 Sum         : 3a1deeb1d4ce3ef752eb660f4fbaa876
SHA-256 Sum     : 9e38a1d800948f543a082bebf214990e7e363ecb8990611807af923bf90b8cbb
Signatures      : EA4F7B321A906AD9

По идее у всех этих говнотайлов эти порталы должны быть в зависимостях опциональных:

~
❯ yay -Qs xdg-desktop           
Found existing alias for "yay -Qs". You should use: "yalocs"
local/xdg-desktop-portal 1.16.0-3
    Desktop integration portals for sandboxed apps
local/xdg-desktop-portal-gtk 1.14.1-1
    A backend implementation for xdg-desktop-portal using GTK
local/xdg-desktop-portal-kde 5.27.5-1 (plasma)
    A backend implementation for xdg-desktop-portal using Qt/KF5

uwuwuu
()
Ответ на: комментарий от FarEvil

Долго же ты гуглил, на форуме рача это за минуту находится, но в тот момент я был слишком ленив чтобы тебе об этом написать.
Но лучше скажи зачем тебе портал, это ведь костыли для вяленого?

arax ★★
()
Ответ на: комментарий от uwuwuu

Насколько я помню, баг был в gnome портал 44, то есть он даже под гномом приводил к зависанию некоторых приложений.
В любом случае вялый для десктопа не готов и если вы не работаете тестером у красношляпы, то зачем с этим пердолиться?

arax ★★
()
Ответ на: комментарий от arax

xdg порталы не для вяленного, туда вынесен какой-то код для того чтобы запускать gtk и кдешные приложения без необходимости устанавливать гном и кеды полностью. я сижу с вяленного, потому что у меня драйвер нвидия не работает с внешним мониторам в иксах, так что не будь категоричен

uwuwuu
()
Ответ на: комментарий от arax

Я в основном ждал пока мне тут ответят, потому что «долго гуглить» у меня нету времени. Мне легче у народа спросить. Объясни логику, ты был слишком ленив чтобы написать ответ, но нашёл в себе силы написать коммент к решённой без тебя теме, причём ещё и оффтопом? А ты хорош

FarEvil
() автор топика