題 什麼是Sysrq + J“解凍文件系統”以及它失敗的原因?


由於文件系統問題(NFS,FUSE,bug),是否需要解凍處於不間斷睡眠狀態的進程?

如果我在我的Linux上按Sysrq + J,它會暫停系統並在循環中打印“緊急解凍sda”,不允許任何其他SysRqs?只有硬重啟才有幫助。


5
2017-11-22 17:38


起源


可能這是一個內核錯誤,因為我在這裡遇到同樣的問題,在SysRq + J之後它開始在kern.log中報告相同的錯誤:“kernel:[160192.060834] sda4上的緊急解凍”每秒大約80000次!在12分鐘內記錄了47,5毫升記錄和4,5GB記錄後,我的機器就死了! - kenorb
是否已提交錯誤或我應該提交錯誤? - Vi.
我發現只有這個: bugzilla.kernel.org/show_bug.cgi?id=12781,但我剛剛在這裡創建了一個新的: bugzilla.kernel.org/show_bug.cgi?id=47741 - kenorb
還發現了這些: bugs.launchpad.net/ubuntu/+source/linux/+bug/984273  bugs.launchpad.net/ubuntu/+source/linux/+bug/984265 - kenorb


答案:


這是內核中的一個錯誤: https://bugzilla.kernel.org/show_bug.cgi?id=47741


2
2017-09-20 12:35



顯然還沒有打補丁。 - neverMind9


這是內核中的一個錯誤,它仍然存在於內核3.13 amd64(來自Ubuntu Trusty)上。

_Vi 用他的VM測試 VBoxManage controlvm <vm_name> keyboardputscancode 1d 38 54 24 a4 d4 b8 9d 結果如下:

3.3.6-pf-vi+  : Reproducible
3.2.0-zen-vi+ : Reproducible
3.0.4-zen-vi+ : Reproducible
2.6.37.5-zen-... : Reproducible
2.6.33-zen2-... : Reproducible
2.6.32-zen1-... : Reproducible
2.6.31-zen11-... : Not reproducible
2.6.30-zen2-... : Not reproducible

從Dave Chinner我們可以讀到:

通過sysrq-j解凍文件系統無限循環   錯誤地將解凍的filesytsem檢測為凍結並嘗試   反复解凍。這是由回歸引起的   4504230a71566785a05d3e6b53fa1ee071b864eb(“freeze_bdev:抓住活躍   引用凍結超級塊“),因為它不再返回   -EINVAL用於未凍結的超級塊。

進一步檢查出現了更深層次的問題 - 凍結的文件系統   cry_super()無法解凍thaw_bdev()所以緊急情況   解凍對手動凍結和死鎖的任何事情都無效   當緊急解凍時迭代超級塊時出現sb-> s_umount   已經舉行閱讀。

我們凍結或解凍的任何地方,我們已經有一個超級塊或者可以得到   一個很容易就可以直接調用freeze_super()。因此,我們可以殺死   bdev級別操作並移動所有嵌套基礎結構   進入超級塊級別,所以我們有一個統一的界面。

資源: Re:2.6.34 echo j> / proc / sysrq-trigger導致inifniteunfreeze / Thaw事件 在linux-kernel郵件列表存檔


1
2018-02-27 14:15