問題タブ [panic]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
linux-kernel - modprode ドライバーを試行した後、「null でのカーネル null ポインターの逆参照を処理できません」
起動時にドライバーを初期化するスクリプトがあり、カーネル トレースを有効にしてカーネルを再コンパイルし、ソフトウェアの問題をデバッグする前に問題なく動作しました。何らかの方法 (modprobe、insmod など) でドライバーを初期化しようとすると、次の出力が画面に出力されます。
何が起こっているかについてのヒントは大歓迎です!
pointers - Golang : リスト要素から値を取得する
http://play.golang.org/p/TE02wFCprM
リストからの構造体から値を取得しようとすると、エラーパニックが発生します。
私がしたことは、リストを作成し、リストに構造を追加することです。リストから要素を取得すると、それはインターフェイス型になります。それでも、インターフェース型の値全体を出力すると、構造体の値が含まれています。そのため、構造体の値を 1 つ取得しようとしましたが、パニック エラーが発生しました。
このラインはうまく機能しています。
コードはこちら
リストに構造を保存し、リストに保存されている構造の 1 つから特定の値を取得できるようにしたいと考えています。
どうすればできますか?
前もって感謝します。
go - Golang での安全なクローズ接続
ソケット接続を開くと、ソケットを開いた直後に socket.Close() ロジックを defer 関数に入れます。しかし、socket.Close() が別のパニックを引き起こすとしたら? プログラムのクラッシュを防ぐために、常に別の defer/recover を外側の defer 内にネストする必要がありますか? このようなもの: http://play.golang.org/p/GnEMQS-0jj
ありがとう、エルグ
linux-kernel - カーネルがパニックに陥ったことを知るには?
カーネル パニックを監視できるようにしたい - カーネル パニックが発生したかどうか、いつ発生したかを把握したい。
マシンの起動後に、カーネル パニックが原因でダウンしたことを知る方法はありますか (たとえば、再起動の命令や電源障害ではありません)。
マシンは KDUMP や KDB で構成されている可能性がありますが、どちらかがインストールされている、またはインストールされていないと仮定したくありません。
カーネルにパッチを適用することはオプションですが、私はそれを避けたいと思っています。でも、やったとしても、パッチで何ができるのかわからない。
私はカーネル 2.6.18 を使用しています (古い、私は知っています)。新しいカーネルのソリューションも興味深いかもしれません。
ありがとう。
linux - カスタム ebtables モジュール && skb 操作 && カーネル パニック
少し前に、Ashwin Kashyap による vnat モジュールに基づいて ebtables モジュールを実装しました ( http://www.research.rutgers.edu/~ashwink/misc_projs/ebt_vnat.html)。モジュールは、vlan タグを削除し、vlan id を nf マークに入れるために、brout テーブルの BROUTING チェーンで使用できます。モジュールでは、nat テーブルの POSTROUTING チェーンの nf マーク値に基づいて vlan タグを追加することもできます。モジュールには、ブリッジされたトラフィックでの作業に問題はありません。システムは非常に安定しています。ミックスに tproxy インターセプトを追加するとすぐに問題が始まります。これにより、しばらく操作した後にカーネル パニックが発生します。トラフィック ストリームが tproxied された数分後、最初のパケットの後にカーネル パニックが発生しないという事実を強調します。SKB をマングルする方法は、L3+ 処理に対して十分にクリーンではないようです。ところで、私は 2.6.32 カーネルに取り組んでいます。以下のコメントでモジュールの重要な部分を見つけてください。
ポインターに感謝します(少なくとも64ビットの長さである限り)。ありがとう!
linux - カーネルパニックの後、システムが存続する可能性はありますか?
昨日、アプリケーションを実行しているときに、syslog
カーネル パニックのように見えるコンソール ブロードキャストが表示され、コンソールが応答しなくなりました。今日、サーバーに接続できることに気付きました。実行すると、システムが数日間putty
稼働していることがわかります。uptime
実行するdmesg
とoom_killer
ログとログが表示されますが、システムが再起動され、カーネルパニックの痕跡がまったくないOops
ことを期待していました。dmesg
だから今私は混乱しています、カーネルパニックがありましたか? はいの場合、システムが再起動されていないように見える (数日間稼働している) のに、どうしてサーバーに接続できるのでしょうか。いいえの場合、サーバーに接続できるのはなぜですか? 手動で再起動するまでサーバーをフリーズするべきではありませんか?
linux-kernel - kmalloced バッファーで deferred_io を使用するとカーネル パニックが発生する
ARM で SPI LCD ディスプレイ用のフレームバッファを作成しています。それを完了する前に、メモリのみのドライバーを作成し、Ubuntu (Intel、Virtualbox) で試してみました。ドライバーは正常に動作します - kmalloc を使用してメモリのブロックを割り当て、ページを整列させ (実際にはページを整列させます)、フレームバッファー システムを使用して /dev/fb1 を作成しました。関連する場合は、独自の mmap 関数があります (deferred_io はそれを無視し、見た目によって独自のものを使用します)。
私は設定しました:
テストプログラムで /dev/fb1 を開いて mmap すると、正しく動作します。fb1を「共有」するためにx11vncが何が起こっているかを見ることができます:
そして、vnc ビューアーで表示します。
mmapd バッファー全体に書き込むことで、オーバーフローがないことを確認しましたが、問題ないようです。
deferred_io を追加すると問題が発生します。テストとして、1 秒の遅延があり、呼び出された deferred_io 関数は pr_devel() の出力以外は何もしません。docsに従いました。
これで、テスト プログラムは /dev/fb1 を正常に開き、mmap は OK を返しますが、そのポインターに書き込むとすぐにカーネル パニックが発生します。次のダンプは実際には ARM マシンからのものですが、Ubuntu VM でもパニックになります。
私は完全に困惑しています - 他のドライバーは多かれ少なかれ私のものと同じように見えますが、私はそれらがうまくいくと思います. ほとんどの場合、実際には vmalloc を使用します。この目的で kmalloc と vmalloc に違いはありますか?
oop - PANIC: "Oops: 0000 [#1]" (詳細についてはログを確認してください) - 更新されたカーネル テスト済み
繰り返し可能なシステム クラッシュを解釈しようとしていますが、それほど頻繁ではありません。サードパーティのドライバーと光学式スキャン デバイスに関係があると思います。スキャン デバイスのドライバーが原因でハングが発生しているのか、USB ドライバーでハングの原因となっているのか、それともまったく別のものなのかはわかりません。
私はドライバー開発者ではないので、ここにある Linux Kernel Crash Book を読みながら、クラッシュ ダンプを手探りで調べています - http://rogunix.com/docs/Reversing&Exploiting/Linux_Kernel_Crash_Book.pdf。
kexec ツールを使用してデバッグ カーネルをセットアップし、vmcore を生成することができました。クラッシュすると、パニックが表示されます: "Oops: 0000 [#1]" (詳細についてはログを確認してください)。ログには、バグが表示されます: 仮想アドレス 00100100 でカーネル ページング要求を処理できません。
ドライバーの開発者に戻って調査結果を伝えることができるように、ダンプをさらに解釈するのを手伝ってもらえますか、それともドライバーではないことを教えてもらえますか。
これがダンプからの詳細です。よろしくお願いします。
クラッシュ> bt
クラッシュ > ログ
更新されたカーネルのテスト済み
その後、最新の CentOS 5.5 リリース カーネル (2.6.18-371.6.1) に更新しましたが、それでもカーネル パニックが発生します。ただし、今回は「swapper」ではなく、コマンド「khubd」でパニックが発生しました。ダンプをキャプチャすることができました。以下に、この問題を特定するための関連情報を提供したいと思います。カーネルのバグですか、それともドライバーの何かですか?
クラッシュ> bt
クラッシュ > ログ (切り捨て)