LINUX.ORG.RU

Power fail. KDE лежит на боку, сокет ksmserver'а /tmp/.ICE-unix/* залипает

 , , ,


0

1

Здравствуйте, товарищи! Пишу вам из горящего трактора.

После неудачного отключения ноутбука из-за отключения питания, KDE упала на бок и дрыгает лапками. Раньше у меня такое тоже бывало, спасало удаление папок ~/.kde/~cache-*, ~/.kde/~tmp-* и ~/.kde/~socket-* и очистка /tmp, но теперь нет.

Итак, условия задачи Debian Jessie, 3.16.0-4-amd64 #1 SMP Debian 3.16.7-ckt25-2+deb8u3 (2016-07-02) x86_64 GNU/Linux
KDE 4.14.2, Qt 4.8.6

Сразу после аварийного отключения система при загрузке сказала, что восстанавливает журналы /dev/sda1 и /dev/sda2, и что в целом файловая система не пострадала.

Ситуация

После входа пользователя в kde запускаются программы которые были запущены перед отключением, а именно: firefox, thunderbird, gimp, konsole, guake и ещё по мелочи.

Сразу после запуска всё вроде нормально, но через какое-то время становится понятно, что больше ни одно GUI-приложение не запускается. Они просто зависают и всё. Убить процесс получается с лёгкостью.

Если сразу же после входа в KDE запускать GUI-приложения, они запускаются, но по прошествии небольшого времени - перестают.

Проведённые исследования:

Если запустить приложение из консоли, никакого вывода не следует, оно просто зависает и всё.

Если запустить приложение через strace, то практически всегда последними строками перед зависанием выдаются такие:

socket(PF_LOCAL, SOCK_STREAM, 0)        = 9
getsockopt(9, SOL_SOCKET, SO_SNDBUF, [212992], [4]) = 0
uname({sys="Linux", node="MihanLenovo", ...}) = 0
connect(9, {sa_family=AF_LOCAL, sun_path=@"/tmp/.ICE-unix/638"}, 21) = 0
fcntl(9, F_SETFD, FD_CLOEXEC)           = 0
write(9, "\0\1\0\0\0\0\0\0", 8)         = 8
read(9, 
Из чего видно, что программа подключается к сокету /tmp/.ICE-unix/638 (цифры, понятное дело, меняются от запуска к запуску), и не может дождаться оттуда ответа.

netstat -nlp | grep /tmp/.ICE-unix выдал:

unix  2      [ ACC ]     STREAM     LISTENING     87122    638/kdeinit4: ksmse @/tmp/.ICE-unix/638
unix  2      [ ACC ]     STREAM     LISTENING     87123    638/kdeinit4: ksmse /tmp/.ICE-unix/638
А вызов ps aux | grep 638 выдаёт:
mihanen+   638  0.0  0.4 565208 38496 ?        Sl   09:31   0:00 kdeinit4: ksmserver [kdeinit] 
То есть, становится понятно, что данный сокет создаёт ksmserver, а после какого-то времени работы перестаёт работать как следует.

Важный момент: Логин от имени другого пользователя не работает совсем. То есть, я создаю пользователя testuser, у которого, понятное дело, пустая домашняя папка, и при попытке залогиниться этим пользователем в KDE получаю следующее:

Сначала появляется панелька загрузки, на которой обычно при входе в КДЕ последовательно отображаются иконки жёсткого диска, системы, интернета (всего вроде 5 штуки), символизируя тем самым загрузку различных подсистем. Но в данном случае никаких иконок на панельке не появляется, и она просто какое-то время висит, потом исчезает, на экране остаётся фон, который был при загрузке, курсор мышки и всё. Процесс на этом прекращается. Если переключиться в терминал, и набрать htop, iotop, то видно что никаких особых процессов не происходит, всё тихо и спокойно.

Что я пробовал для устранения проблемы:

1. Попробовал зайти от имени абсолютно девственно чистого пользователя - результат описан выше.

2. Попробовал удалить временные папки /tmp/*, ~/.kde/~tmp-*, ~/.kde/~cache-*, ~/.kde/~socket-* - никакого результата

3. Посмотрел файл ~/.xsession-errors, там вот что: http://pastebin.ru/OkNPIUq8 (там были и ещё строчки но все такого же типа, никаких сообщений от самого ksmserver'а)

4. Посмотрел /var/log/Xorg.0.log - там никаких ошибок вообще, если нужно могу и его приложить.

5. Перечитал кучу форумов на эту тему, никаких решений не нашел. Нашёл похожую проблему - у человека зависал ksmserver и после этого приложения также не могли подключиться к нему через /tmp/.ICE-unix/123. Однако, в том случае причиной был pidgin, который после запуска ломал ksmserver. Я допускаю, что в моём случае это тоже какая-то программа так делает, но не знаю какая, и главное, не знаю как это стыкуется с другими составляющими проблемы.

6. Попытался найти подробное описание ksmserver, чтобы понять где он может хранить логи, или как включить у него такую способность. Потрепел неудачу. Правда нашёл официальные исходники, и так как знаю С++, на крайний случай отложил вариант «посмотреть исходные коды ksmserver'а»

Итого:

Сейчас я могу худо-бедно пользоваться компьютером, так как при входе в систему запускается почтовый клиент, firefox, и netbeans, так что работать я могу. Также, работает всё что нужно в консоли. Если нужна какая-то программа, я выхожу из kde путём kdm restart, захожу заново, и когда вход произойдёт, быстро-быстро запускаю нужную программу. Иногда мне везёт и она успешно запускается до того как ksmserver встаёт колом.

Тем не менее, данная ситуация меня не устраивает.

Поскольку я вижу, что простой пользователь вообще не может зайти в KDE:

1) я хотел бы понять, где можно посмотреть логи именно ksmserver'а, или как его заставить писать эти логи.

2) я был бы рад узнать, какие пакеты можно было бы переустановить чтобы вероятно восстановить работоспособность системы. И главное, как их переустановить с удалением настроек (purge), чтобы при этом не слетела вся система (при удалении ksmserver'а естественно предлагается снести вообще всё GUI)

3) интересно было бы узнать, где хранится список приложений, которые ksmserver запускает сразу после старта системы, тогда я мог бы просто добавить в этот список дополнительные приложения, и жить чуть полегче.

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

Спасибо за уделённое внимание!

Подобные эффекты наблюдал, когда заканчивалось место на диске. Посмотри df -h для всех разделов. А еще лучше, сразу прогони проверки для ФС на всех разделах, потом смотри df -h.

Если нет - я бы переустановил кеды.

P. S. Дай вывод mount.

Kroz ★★★★★ ()

fsck. Ибо именно так выглядит попытка залогиниться в битый на уровне фс хомяк.

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

забекапь хомяк, удали полностью пользователя и заново создай

Пробовал переименовывать домашнюю папку, и создать новую пустую. Получается тоже самое что и при входе свежесозданного пользователя. То есть попытка загрузки, оканчивающаяся пустым экраном с обоями и курсором мышки.

MihanEntalpo ()
Ответ на: комментарий от Kroz

Посмотри df -h для всех разделов.

Это проверил в первую очередь

/dev/sda1           35G          17G   17G           50% /
udev                10M            0   10M            0% /dev
tmpfs              1,5G         9,1M  1,5G            1% /run
tmpfs              3,8G          92K  3,8G            1% /dev/shm
tmpfs              5,0M         4,0K  5,0M            1% /run/lock
tmpfs              3,8G            0  3,8G            0% /sys/fs/cgroup
/dev/sda2          383G         355G  8,5G           98% /home
/dev/sda4           40G          34G  5,9G           85% /mnt/win
tmpfs              759M         8,0K  759M            1% /run/user/1000

А еще лучше, сразу прогони проверки для ФС на всех разделах

Перезагрузился, проверил, всё норм. Причём пришлось запускать через fsck -f так как fsck отказывался проверять ФС, ссылаясь на то что там и так всё круто.

P. S. Дай вывод mount.

sysfs on /sys type sysfs (rw,nosuid,nodev,noexec,relatime)
proc on /proc type proc (rw,nosuid,nodev,noexec,relatime)
udev on /dev type devtmpfs (rw,relatime,size=10240k,nr_inodes=969255,mode=755)
devpts on /dev/pts type devpts (rw,nosuid,noexec,relatime,gid=5,mode=620,ptmxmode=000)
tmpfs on /run type tmpfs (rw,nosuid,relatime,size=1554208k,mode=755)
/dev/sda1 on / type ext4 (rw,noatime,nodiratime,errors=remount-ro,data=ordered)
securityfs on /sys/kernel/security type securityfs (rw,nosuid,nodev,noexec,relatime)
tmpfs on /dev/shm type tmpfs (rw,nosuid,nodev)
tmpfs on /run/lock type tmpfs (rw,nosuid,nodev,noexec,relatime,size=5120k)
tmpfs on /sys/fs/cgroup type tmpfs (ro,nosuid,nodev,noexec,mode=755)
cgroup on /sys/fs/cgroup/systemd type cgroup (rw,nosuid,nodev,noexec,relatime,xattr,release_agent=/lib/systemd/systemd-cgroups-agent,name=systemd)
pstore on /sys/fs/pstore type pstore (rw,nosuid,nodev,noexec,relatime)
cgroup on /sys/fs/cgroup/cpuset type cgroup (rw,nosuid,nodev,noexec,relatime,cpuset)
cgroup on /sys/fs/cgroup/cpu,cpuacct type cgroup (rw,nosuid,nodev,noexec,relatime,cpu,cpuacct)
cgroup on /sys/fs/cgroup/devices type cgroup (rw,nosuid,nodev,noexec,relatime,devices)
cgroup on /sys/fs/cgroup/freezer type cgroup (rw,nosuid,nodev,noexec,relatime,freezer)
cgroup on /sys/fs/cgroup/net_cls,net_prio type cgroup (rw,nosuid,nodev,noexec,relatime,net_cls,net_prio)
cgroup on /sys/fs/cgroup/blkio type cgroup (rw,nosuid,nodev,noexec,relatime,blkio)
cgroup on /sys/fs/cgroup/perf_event type cgroup (rw,nosuid,nodev,noexec,relatime,perf_event)
systemd-1 on /proc/sys/fs/binfmt_misc type autofs (rw,relatime,fd=23,pgrp=1,timeout=300,minproto=5,maxproto=5,direct)
mqueue on /dev/mqueue type mqueue (rw,relatime)
hugetlbfs on /dev/hugepages type hugetlbfs (rw,relatime)
debugfs on /sys/kernel/debug type debugfs (rw,relatime)
fusectl on /sys/fs/fuse/connections type fusectl (rw,relatime)
/dev/sda2 on /home type ext4 (rw,noatime,nodiratime,errors=remount-ro,data=ordered)
/dev/sda2 on /var/lib/mysql type ext4 (rw,noatime,nodiratime,errors=remount-ro,data=ordered)
/dev/sda2 on /var/www type ext4 (rw,noatime,nodiratime,errors=remount-ro,data=ordered)
/dev/sda4 on /mnt/win type fuseblk (rw,noatime,user_id=0,group_id=0,allow_other,blksize=4096)
binfmt_misc on /proc/sys/fs/binfmt_misc type binfmt_misc (rw,relatime)
tmpfs on /run/user/1000 type tmpfs (rw,nosuid,nodev,relatime,size=777104k,mode=700,uid=1000,gid=1000)
MihanEntalpo ()
Ответ на: комментарий от Vsevolod-linuxoid

Да, это топорно, но просто переставь кеды.

Видимо это и остаётся. Буду пробовать, как только вернусь к чуть более быстрому интернету нежели 3G.

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

Как-то интересно у тебя это организовано

/dev/sda2 on /home type ext4 (rw,noatime,nodiratime,errors=remount-ro,data=ordered)
/dev/sda2 on /var/lib/mysql type ext4 (rw,noatime,nodiratime,errors=remount-ro,data=ordered)
/dev/sda2 on /var/www type ext4 (rw,noatime,nodiratime,errors=remount-ro,data=ordered)
То есть в одном каталоге и хомяки, и mysql и сайты?

Да, я тоже склоняюсь к переустановке KDE. Только еще пару глупых идей:
Глупая идея #1: не закончились ли inode на sda1 и sda2?
Глупая идея #2: а что если выключить mysqld и apache (или что там у тебя)?
Глупая идея #3: а что в системном логе? /var/log/messages или что там у тебя
Глупая идея #4: если ты где-то на отдыхе, не запустить ли memtest86+?

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

Просто переустанови.

Кеды — они как оффтопик. Раз в полгода требуется полная переустановка, иначе засираются и/или ломаются.

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

Я точно с таким же поведением, как у ТС столкнулся. Только ещё плазма начала падать.

Произошло это из-за того, что место на диске внезапно кончилось. Странно, что KDE не может корректно обработать эту ситуацию.

Помогла только переустановка. Но это давно было, во времена первых релизов пятой плазмы. Сейчас вроде всё в порядке.

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

То есть в одном каталоге и хомяки, и mysql и сайты?

Да просто на диске sda2 в корне лежат как пользовательские папки, так и папка /root_fs, где лежат папки var_www и mysql_data, которые монтируются через bind после монтирования sda2 в папку /home

Глупая идея #1: не закончились ли inode на sda1 и sda2

df -i

/dev/sda1         2301952        234071   2067881            11% /
udev               969255           428    968827             1% /dev
tmpfs              971378           685    970693             1% /run
tmpfs              971378             6    971372             1% /dev/shm
tmpfs              971378             4    971374             1% /run/lock
tmpfs              971378            13    971365             1% /sys/fs/cgroup
/dev/sda2        25477120       1210355  24266765             5% /home
/dev/sda4         6363648        145102   6218546             3% /mnt/win
tmpfs              971378            10    971368             1% /run/user/1000
tmpfs              971378             4    971374             1% /run/user/0

Глупая идея #2: а что если выключить mysqld и apache (или что там у тебя)?

Пробовал. Нихт арбайтен.

Глупая идея #3: а что в системном логе? /var/log/messages или что там у тебя

В логе dmesg есть только более-менее нормальные сообщения типа таких (начало сообщений с момента закрытия крышки ноута):

[ 9064.153334] Freezing user space processes ... (elapsed 0.001 seconds) done.
[ 9064.154960] Freezing remaining freezable tasks ... (elapsed 0.001 seconds) done.
[ 9064.156223] PM: Entering mem sleep
[ 9064.156344] Suspending console(s) (use no_console_suspend to debug)
[ 9064.156887] sd 0:0:0:0: [sda] Synchronizing SCSI cache
[ 9064.200374] wl_suspend: PCI Suspend handler
[ 9064.200375] wl_suspend: Not WOWL capable
[ 9064.609635] sd 0:0:0:0: [sda] Stopping disk
[ 9065.243945] PM: suspend of devices complete after 1087.795 msecs
[ 9065.259967] PM: late suspend of devices complete after 16.022 msecs
[ 9065.260416] r8169 0000:03:00.0: System wakeup enabled by ACPI
[ 9065.276141] PM: noirq suspend of devices complete after 16.176 msecs
[ 9065.276409] ACPI: Preparing to enter system sleep state S3
[ 9065.277437] PM: Saving platform NVS memory
[ 9065.278665] Disabling non-boot CPUs ...
[ 9065.278733] intel_pstate CPU 1 exiting
[ 9065.280014] kvm: disabling virtualization on CPU1
[ 9065.280035] smpboot: CPU 1 is now offline
[ 9065.281595] ACPI: Low-level resume complete
[ 9065.281644] PM: Restoring platform NVS memory
[ 9065.282181] Enabling non-boot CPUs ...
[ 9065.282280] x86: Booting SMP configuration:
[ 9065.282281] smpboot: Booting Node 0 Processor 1 APIC 0x2
[ 9065.293274] kvm: enabling virtualization on CPU1
[ 9065.295495] Intel pstate controlling: cpu 1
[ 9065.295563] CPU1 is up
[ 9065.297212] ACPI: Waking up from system sleep state S3
[ 9065.334256] PM: noirq resume of devices complete after 15.793 msecs
[ 9065.334795] PM: early resume of devices complete after 0.494 msecs
[ 9065.335105] mei_me 0000:00:16.0: irq 43 for MSI/MSI-X
[ 9065.335221] wl_resume: PCI Resume handler
[ 9065.335307] r8169 0000:03:00.0: System wakeup disabled by ACPI
[ 9065.343601] snd_hda_intel 0000:00:1b.0: irq 44 for MSI/MSI-X
[ 9065.349643] r8169 0000:03:00.0 eth1: link down
[ 9065.349948] sd 0:0:0:0: [sda] Starting disk
[ 9065.573341] usb 3-1.1: reset high-speed USB device number 3 using ehci-pci
[ 9065.677322] ata5: SATA link up 1.5 Gbps (SStatus 113 SControl 300)
[ 9065.682740] ata5.00: configured for UDMA/33
[ 9065.737305] usb 3-1.3: reset high-speed USB device number 4 using ehci-pci
[ 9065.901249] usb 3-1.4: reset full-speed USB device number 5 using ehci-pci
[ 9065.912826] psmouse serio1: synaptics: queried max coordinates: x [..5760], y [..4828]
[ 9065.940292] psmouse serio1: synaptics: queried min coordinates: x [1184..], y [1022..]
[ 9065.995202] PM: resume of devices complete after 660.601 msecs
[ 9065.995833] PM: Finishing wakeup.
[ 9065.995835] Restarting tasks ... 
[ 9065.995910] wl 0000:02:00.0: no hotplug settings from platform
[ 9065.995943] r8169 0000:03:00.0: no hotplug settings from platform
[ 9066.000055] done.
[ 9066.034380] bluetooth hci0: firmware: failed to load brcm/BCM20702A0-0a5c-21f4.hcd (-2)
[ 9066.034386] bluetooth hci0: Direct firmware load failed with error -2
[ 9066.034388] bluetooth hci0: Falling back to user helper
[ 9066.049825] Bluetooth: hci0: BCM: patch brcm/BCM20702A0-0a5c-21f4.hcd not found
[ 9066.080558] IPv6: ADDRCONF(NETDEV_UP): eth1: link is not ready
[ 9066.084183] IPv6: ADDRCONF(NETDEV_UP): wlan1: link is not ready
[ 9066.118060] r8169 0000:03:00.0 eth1: link down
[ 9066.120493] IPv6: ADDRCONF(NETDEV_UP): eth1: link is not ready
[ 9066.932946] [drm] Enabling RC6 states: RC6 on, RC6p on, RC6pp off
[ 9068.304504] ata1: SATA link up 3.0 Gbps (SStatus 123 SControl 300)
[ 9068.522719] ata1.00: ACPI cmd ef/02:00:00:00:00:a0 (SET FEATURES) succeeded
[ 9068.522726] ata1.00: ACPI cmd f5/00:00:00:00:00:a0 (SECURITY FREEZE LOCK) filtered out
[ 9068.558881] ata1.00: ACPI cmd ef/02:00:00:00:00:a0 (SET FEATURES) succeeded
[ 9068.558886] ata1.00: ACPI cmd f5/00:00:00:00:00:a0 (SECURITY FREEZE LOCK) filtered out
[ 9068.562324] ata1.00: configured for UDMA/133
[ 9106.672263] wl0: link up (wlan1)
[ 9106.672623] cfg80211: Calling CRDA for country: CN
[ 9106.678530] cfg80211: Regulatory domain changed to country: CN
[ 9106.678534] cfg80211:  DFS Master region: FCC
[ 9106.678536] cfg80211:   (start_freq - end_freq @ bandwidth), (max_antenna_gain, max_eirp), (dfs_cac_time)
[ 9106.678539] cfg80211:   (2402000 KHz - 2482000 KHz @ 40000 KHz), (N/A, 2000 mBm), (N/A)
[ 9106.678541] cfg80211:   (5170000 KHz - 5250000 KHz @ 80000 KHz, 160000 KHz AUTO), (N/A, 2300 mBm), (N/A)
[ 9106.678544] cfg80211:   (5250000 KHz - 5330000 KHz @ 80000 KHz, 160000 KHz AUTO), (N/A, 2300 mBm), (0 s)
[ 9106.678546] cfg80211:   (5735000 KHz - 5835000 KHz @ 80000 KHz), (N/A, 3000 mBm), (N/A)
[ 9106.678548] cfg80211:   (57240000 KHz - 59400000 KHz @ 2160000 KHz), (N/A, 2800 mBm), (N/A)
[ 9106.678549] cfg80211:   (59400000 KHz - 63720000 KHz @ 2160000 KHz), (N/A, 4400 mBm), (N/A)
[ 9106.678551] cfg80211:   (63720000 KHz - 65880000 KHz @ 2160000 KHz), (N/A, 2800 mBm), (N/A)
На самом деле там есть другие сообщения об ошибках, типа не удалось firmware для wifi загрузить, типа USB драйвер отвалился. Но про KDE, Xorg, и то, что исходя из моего опыта может быть связано - ни слова.

Глупая идея #4: если ты где-то на отдыхе, не запустить ли memtest86+?

Позже запущу, на всякий случай.

Да, я тоже склоняюсь к переустановке KDE.

Кстати, вопрос. Как переустановить KDE так, чтобы сначала purge, потом install, и чтобы при этом не слетели все пакеты зависящие от KDE ? Так-то я уже почти смирился с необходимостью записать список всех установленных пакетов и восстанавливать их после переустановки кед.

MihanEntalpo ()
Ответ на: комментарий от EXL

Кеды — они как оффтопик. Раз в полгода требуется полная переустановка, иначе засираются и/или ломаются.

Я как раз исходил из предположения, что раз уж это не винда, то и починить я смогу не переустанавливая KDE (хотя конечно, если бы в винде такое случилось - то только полная переустановка системы и всего ПО).

Я уже докопался, что KDM запускает кеды скриптом startkde, скрипт этот запускает много чего, но в конце концов он запускает ksmserver, который управляет сессиями в КДЕ, и он уже запускает всё остальное, включая kwin, плазму и т.д.

Как бы мне только запустить ksmserver так, чтобы он писал подробный лог того, что он делает? Ничего пока не смог найти, похоже сами разработчики предлагают из исходников собирать в режиме Debug...

А так-то да, чуть что - например перезагрузился как-то не так, или фаза луны не та - не входит в кеды, и на всех форумах советуют удалять ~/.kde, что и я не раз проделывал в прошлом. Как-то это неправильно. Если вот apache или nginx не работает, всегда можно логи почитать и починить. Но у кедов с логами какая-то херня. «Простому юзеру не нужны логи» - видимо так.

MihanEntalpo ()
Ответ на: комментарий от Deleted

Вангую, что у вас файловая система побилась

Спасибо за предположение, к сожалению нет :( Проверял через fsck -f, так как fsck без "-f" отказывался проверять так как «filesystem clean».

Может конечно физическое повреждение диска, но SMART молчит...

MihanEntalpo ()

Но вот, решил проблему проще чем мне казалось.

Нашёл в aptitude всё что казалось похожим на приложения kde, отметил для reinstall и применил изменения.

После этого удалось зайти от имени пользователя guest, от имени которого ранее зайти не удавалось.

С ходу ошибка с зависанием сокета ksmserver пару раз проявлялась в моей основной учётной записи, поэтому я переименовал папку ~/.kde в ~/.kde.old, и, убедившись что ошибка больше не проявляется, по частям перенёс настройки из ~/.kde.old в ~/.kde, время от времени заходя в KDE и выходя оттуда.

Жаль что не удалось докопаться до причины, но теперь по крайней мере можно спокойно поработать, да и работать после переустановки система стала чуть-чуть быстрее (возможно, иллюзия).

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

Спасибо

Столкнулся с похожей проблемой. Вроде бы логин в кеды проходит нормально, но вместо обоев рабочего стола остаётся висеть экран загрузки сессии kde. Аналогично пытался хоть что-то сделать с ksmserver, но безуспешно. Удаление каталогов ~/.kde4 и ~/.local помогло. Спасибо за подсказку, добрый человек!

anonymous ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.