Кто разбивает мое ядро?
симптомы
Внезапно после входа в систему после загрузки стало появляться сообщение "Проблема в пакете ядра". Новое сообщение отображается каждую секунду, непрерывно (перевод ниже).
Перевод:
О проблеме сообщили
Обнаружена проблема в пакете ядра
Я не знаю, что вызывает появление этих сообщений. Как мне получить подробную информацию о сбоях системы?
Спекуляции
Я не обновлял ядро в последние 12 дней (3.19.7-200.fc21.x86_64). Загрузка из старого ядра не останавливает предупреждения.
Сегодня я установил 5 новых пакетов: subversion-1.8.11-1.fc21.x86_64, gitk-2.1.0-4.fc21.noarch, git-gui-2.1.0-4.fc21.noarch, subversion-libs-1.8.11-1.fc21.x86_64 и libserf-1.3.7-2.fc21.x86_64
Я установил несколько расширений gnome, но использовал их в течение нескольких часов без проблем перед перезагрузкой. Я отключил расширения и проблема остается.
Что я пробовал
Я считаю, что эти уведомления являются частью abrt
, Но когда я попытался получить больше деталей, abrt-cli list
ничего не показывает за текущий месяц.
dmesg
не показывает ничего подозрительного (или, может быть, я неверно истолковываю это. Я выложу журнал).
Как предложено в комментарии, я проверил /var/log/messages
, /var/log/syslog
, а также /var/log/kern.log
:
Последние два нет. tail /var/log/messages
содержит много (более тысячи) следующих, повторяющихся снова и снова (с разными временными метками):
May 26 16:39:28 [hostname] abrt-dump-journal-oops: Reported 1 kernel oopses to Abrt
May 26 16:39:30 [hostname] abrt-dump-journal-oops: abrt-dump-journal-oops: Found oopses: 1
May 26 16:39:30 [hostname] abrt-dump-journal-oops: abrt-dump-journal-oops: Creating problem directories
May 26 16:39:30 [hostname] abrt-server: Deleting problem directory oops-2015-05-26-16:39:30-585-0 (dup of oops-2015-04-28-15:49:00-21380-1)
May 26 16:39:30 [hostname] gnome-session: abrt-applet: repeated problem in kernel, not showing the notification
Проблема обнаружена в 2015-04-28-15:49:00 через abrt-cli list
является:
id dadaa8ca8525cf44b21c438b086cc731ac73c2cd
reason: WARNING: CPU: 0 PID: 21350 at fs/block_dev.c:67 bdev_inode_switch_bdi+0x87/0x90()
time: Ter 28 Abr 2015 15:49:02 BRT
cmdline: BOOT_IMAGE=/boot/vmlinuz-3.19.3-100.fc20.x86_64 root=UUID=45f0c704-ada0-411d-95ba-50169ce0994a ro rd.md=0 rd.lvm=0 rd.dm=0 rd.luks=0 vconsole$
package: kernel
count: 1529
Directory: /var/tmp/abrt/oops-2015-04-28-15:49:00-21380-1
Relatado: https://retrace.fedoraproject.org/faf/reports/bthash/392cacbf6958e88053298dbce758bf6865c4db3f
1 ответ
Прежде всего, ваше ядро не падает. В случае сбоя ваша система полностью зависнет и вы не сможете ее использовать.
Есть несколько типов проблем, которые могут возникнуть в ядре.
Предупреждение (WARN), ошибка (BUG) или OOPS могут возникать, когда встроенные самопроверки ядра обнаруживают ситуацию, которая может привести к нестабильности системы или потере данных в будущем. Однако, вообще говоря, эти проблемы не вызывают (немедленного) сбоя системы. Как правило, OOPS являются наиболее серьезными из них и приведут к тому, что любые связанные процессы пользовательского пространства получат
SIGKILL
("ты умрешь", а не "пожалуйста, уходи") сигнал от ядра.Паника - это то, когда система настолько взвинчена, что отказывается продолжать. В этом случае ядро просто прекращает выполнение (после печати трассировки стека, если оно в состоянии это сделать) и передает управление… ничего. Обычно. Хотя, если у вас есть аварийное ядро, иногда поврежденное ядро будет пытаться загрузить второе ядро, целью которого является сбор информации о причине сбоя, и попытаться записать его на диск. В общем случае даже очень надежное аварийное ядро не может полностью восстановить состояние системы, чтобы оно могло быть снова работоспособным и стабильным без перезагрузки.
На мой взгляд, авария является синонимом паники. Есть много ситуаций, когда WARN
или же BUG
может быть безопасно проигнорировано с очень низкой вероятностью потери данных. Если ваша система продолжает работать после сообщения об этих "проблемах", это почти наверняка не паника.
Вы не дали мне достаточно ваших журналов (особенно dmesg
) чтобы я мог сказать причину этого конкретного сбоя, но в целом, когда само ядро сообщает о проблемах, оно проявится в dmesg
кольцевой буфер ядра. Буквально выполнить команду dmesg
на консоли для просмотра кольцевого буфера ядра.
Похоже, что в вашем случае вы, возможно, испытали однократную ошибку, которая неправильно обрабатывается abrt
система уведомления о событиях аварии (или инфраструктура пользовательского интерфейса GNOME, которая отображает ее вам).
26 мая 16:39:30 segtic-1c505e gnome-session: abrt-applet: повторяющаяся проблема в ядре, не отображается уведомление
Таким образом, он думает, что не показывает это вам, потому что это повторяющаяся проблема, но он продолжает бомбардировать вас той же ошибкой. Так что либо abrt-applet
думает, что это не бомбардирует вас, но на самом деле делает это в любом случае, или есть другая программа, которая обрабатывает ошибки ядра (возможно, другой апплет, который также имеет дело с abrt
?) который не выявляет повторяющихся проблем и отбрасывает вас одним и тем же снова и снова.
Итак, здесь есть несколько проблем:
Вы не дали мне ничего
dmesg
журналы, которые указывают на повторную проблему. То, что вы показали в ACPI, может быть причиной одной ошибки, но это произошло очень рано при загрузке, и это не происходит снова и снова.Инфраструктура сообщений об ошибках кажется сломанной. Я думаю, на каком-то уровне,
abrt
знает, что это повторное сообщение для одного и того же события (или последовательности независимых событий, идентичных по причине), но каким-то образом уведомления проходят через систему и в ваш пользовательский интерфейс в любом случае.Очевидно, это проблема, связанная с тем, что у вас возникли какие-то сбои, или OOPS, или BUG, или WARN, связанные с ядром Linux. Но так как журналы ядра, которые вы разместили, были минимальными и не особенно касающимися, корень проблемы кажется неуловимым прямо сейчас. Если он жалуется на проблему ACPI при ранней загрузке, он должен действительно учиться заткнуться; Дело в том, что ACDI DSDT материнской платы почти всегда ужасно искажены и сломаны, и ОС просто нужно научиться справляться с этим как можно лучше. Вы ничего не можете с этим поделать как конечный пользователь. Это не значит, что ваш производитель mobo все еще будет выпускать обновления BIOS, чтобы попытаться улучшить свою корректность DSDT (ну, в любом случае, вряд ли они это сделают).
Или, возможно, проблема совершенно не связана с ACPI, а фактический отчет о проблеме просто не попадает в кольцевой буфер ядра. Это было бы довольно странно, и не то, что я испытал раньше. В этом отношении я не уверен, какой механизм abrt
использует для обнаружения наличия ошибки, если она не анализируется dmesg
,
Когда дело доходит до проблем с ядром Linux и того, как они сообщаются в пользовательском интерфейсе, редко существует простой способ его диагностики. Это природа зверя.