為什麼核心 oopses 會污染並禁止使用 ABRT 報告?
我在筆記型電腦上新安裝了 Fedora 28。在啟動時,我得到一個核心糟糕,我非常想報告。然而,ABRT 認為核心被標記污染,
GW
因此拒絕報告。如果我查看abrt 文件,它的W
意思是“核心先前已發出警告”。而G
告訴我只載入了與 GPL 兼容的模組(正如預期的那樣,我自己沒有安裝任何核心模組)。但這究竟意味著什麼?核心是否已向 bugzilla 發出警告?這條消息確實無法幫助我理解為什麼新安裝的 Linux 會給我留下一個我無法報告的錯誤……
cat /proc/sys/kernel/tainted
也只是給出了值 512,即根據sysctl 文件只有一個核心警告。那麼我怎樣才能知道到底發生了什麼,為什麼我不能向 ABRT 報告呢?
編輯:根據2012年對 RedHat Bugzilla 的評論
‘w’ 表示警告已經發生。我們只關心第一個,abrt 應該已經送出了。
因此,我在受污染的報告中查找任何內容,以找出 ABRT 報告“第一個”的位置(如果有的話)並在 FAF 上找到此報告——但是,核心也被標記為“受污染”,所以報告可能不會考慮修復,我仍然不知道,為什麼。
問題可能是
abrtd
啟動太晚而無法捕捉到在啟動時發生的 oops。當 oops 發生時,它會設置 W 污點標誌,並且當 abrtd 啟動時,它會看到 W 標誌,並且無法確定它找到的 oops 是否是第一個。如果在 abrtd 可以看到之前有另一個 oops,則報告可見的可能沒有意義,因為它可能只是導致第一個 oops 的任何結果。您可能知道沒有,但 abrtd 無法自動做出該決定。
因此,您可能必須手動報告啟動時 oops,特別是如果它發生在啟動過程的早期。
單獨的核心不會向任何 bugzilla 報告任何內容;W taint 標誌僅表示核心已經記錄了一條或多條 oops 消息。