アップグレード後、「すべて」がセグフォルトを開始します。

アップグレード後、「すべて」がセグフォルトを開始します。

私はUbuntu 20.04にアップグレードしました。

アップグレード後、突然次のようなセグフォルトがたくさん見え始めました。

[   87.157912] perl[5442]: segfault at 0 ip 0000556a510d9f05 sp 00007fff768ae410 error 6 in perl[556a510d5000+16a000]
[   87.157919] Code: be 08 00 00 00 48 c1 f9 03 48 8d 6c 09 02 48 81 fd 00 08 00 00 48 0f 47 e8 48 89 ef e8 54 cc ff ff 48 8d 54 e8 f8 48 8d 48 20 <48> 89 10 49 8b 54 24 08 48 89 50 08 49 89 44 24 08 48 8b 10 48 c1
[   87.158481] perl[5504]: segfault at 0 ip 000055db4eb74f05 sp 00007fff87b13870 error 6 in perl[55db4eb70000+16a000]
[   87.158489] Code: be 08 00 00 00 48 c1 f9 03 48 8d 6c 09 02 48 81 fd 00 08 00 00 48 0f 47 e8 48 89 ef e8 54 cc ff ff 48 8d 54 e8 f8 48 8d 48 20 <48> 89 10 49 8b 54 24 08 48 89 50 08 49 89 44 24 08 48 8b 10 48 c1
[   87.613155] perl[5509]: segfault at 8 ip 00005597f965f58a sp 00007ffdc4c26d60 error 4 in perl[5597f95f1000+16a000]
[   87.613166] Code: 00 00 00 48 8b 06 0f b7 40 20 66 0f 1f 44 00 00 66 85 c0 0f 84 aa 0e 00 00 83 e8 01 0f b7 c0 8d 34 18 49 8b 46 18 48 8d 14 f0 <8b> 02 85 c0 0f 85 8c 00 00 00 44 89 22 49 8b 46 18 89 da 83 44 d0

問題はこれに限定されていないのでperl、アップグレード中に何か問題があったようです。

メモリテストをしてみるとメモリモジュール不良ですね。これはセグフォルトを説明できます。

これで不良メモリモジュールが取り外され、システムがメモリテストに合格しました。

しかし、問題は残っています。

それから私はアップグレード中にメモリモジュールによってlibc(または同様のもの)が破損している可能性があると思いました。だから私は以下を実行しました。

debsums | grep -v OK

エラーは表示されません。

セグフォルトの原因は何ですか?

編集する:

libc6とlibc6 ++を強制的に再インストールしました。しかし、それは問題を解決できませんでした。

良い点は、システムに過負荷がかかるとエラーが発生する可能性があることです。これが発生すると、プログラムはメモリ不足(ただし、まだ利用可能なスワップスペースは80 GBです)と「xmallocの失敗」について文句を言い始めます。

1つの説明は、mallocカーネルの一部のルーチンでビットが反転された場合です。

アップグレード中update-initramfs。これらのいくつかが欠陥のあるRAMを介して実行され、カーネルにいくつかのビットエラーがあると仮定すると、どのようにきれいに再構築できますか?つまり、すべての入力が元のままになるようにmake clean実行する前に何をすべきですか?update-initramfs

編集2:

コンピュータに過負荷がかかると、XorgやFirefoxなどのプログラムがクラッシュします。仮想メモリが不足しているがまだ80 GBを使用できる場合、これらの動作は驚くべきことではありません。

strace単一のコマンドですべての重い負荷を実行すると、straceセグフォルトは発生しません。

編集3:

エラーを確実に再現できなくなりました。消えませんが、はるかに少ない頻度で発生します。

ベストアンサー1

おすすめ記事