Vine Linux バグトラッキングシステム - Vine Linux | |||||
課題の詳細を表示 | |||||
ID | プロジェクト | カテゴリ | 公開 | 登録日 | 最終更新 |
0000067 | Vine Linux | 1 バグ | 公開 | 2006-06-15 09:32 | 2006-07-29 01:22 |
報告者 | anonymous | ||||
担当者 | |||||
優先度 | 中 | 再現性 | 不明 | ||
状態 | 完了 | 解決状況 | 再現不可 | ||
バージョン | 3.2 | ||||
修正予定バージョン | 修正済バージョン | ||||
arch | x86 | ||||
パッケージ | kernel | ||||
概要 | 0000067: mm/slab.c にて kmem_cache_reap ,システムが停止します. | ||||
説明 | > Unable to handle kernel NULL pointer dereference at virtual address 000 > 00000 > > > *pde = 00000000 > > > Oops: 0000 > > > CPU: 1 > > > EIP: 0010:[<c013de10>] Tainted: P > > > Using defaults from ksymoops -t elf32-i386 -a i386 > > > EFLAGS: 00010013 > > > eax: 00000000 ebx: c282ddb8 ecx: d167dec0 edx: c2835a60 > > > esi: 00000000 edi: 0000004a ebp: c282ddc8 esp: c2843f24 > > > ds: 0018 es: 0018 ss: 0018 > > > Process kswapd (pid: 5, stackpage=c2843000) > > > Stack: c1f3a640 c2842000 c03639f8 00000000 c2842000 c282ddc0 c2835a60 0 > 0000000 > > > 00000006 00000001 00000003 c282f268 00000020 000001d0 c03639f8 c > 03639f8 > > > c013f61c c2843f88 000001d0 0000003c 00000020 c013f842 c2843f88 e > 0092000 > > > Call Trace: [<c013f61c>] [<c013f842>] [<c013fa06>] [<c013fa78>] [<c0 > 13fbce>] > > > [<c0105000>] [<c01075de>] [<c013fb30>] > > > Code: 8b 00 47 39 e8 75 f9 8b 73 2c 89 fa 89 f1 d3 e2 8b 4b 4c 85 Trace; c013f61c <shrink_caches+1c/70> > > Trace; c013f842 <try_to_free_pages_zone+62/100> > > Trace; c013fa06 <kswapd_balance_pgdat+66/b0> > > Trace; c013fa78 <kswapd_balance+28/50> > > Trace; c013fbce <kswapd+9e/cd> > > Trace; c0105000 <_stext+0/0> > > Trace; c01075de <arch_kernel_thread+2e/40> > > Trace; c013fb30 <kswapd+0/cd> > > > > Code; c013de10 <kmem_cache_reap+150/3b0> > > 00000000 <_EIP>: > > Code; c013de10 <kmem_cache_reap+150/3b0> <===== > > 0: 8b 00 mov (%eax),%eax <===== > > Code; c013de12 <kmem_cache_reap+152/3b0> > > 2: 47 inc %edi > > Code; c013de13 <kmem_cache_reap+153/3b0> > > 3: 39 e8 cmp %ebp,%eax > > Code; c013de15 <kmem_cache_reap+155/3b0> > > 5: 75 f9 jne 0 <_EIP> > > Code; c013de17 <kmem_cache_reap+157/3b0> > > 7: 8b 73 2c mov 0x2c(%ebx),%esi > > Code; c013de1a <kmem_cache_reap+15a/3b0> > > a: 89 fa mov %edi,%edx > > Code; c013de1c <kmem_cache_reap+15c/3b0> > > c: 89 f1 mov %esi,%ecx > > Code; c013de1e <kmem_cache_reap+15e/3b0> > > e: d3 e2 shl %cl,%edx > > Code; c013de20 <kmem_cache_reap+160/3b0> > > 10: 8b 4b 4c mov 0x4c(%ebx),%ecx > > Code; c013de23 <kmem_cache_reap+163/3b0> > > 13: 85 00 test %eax,(%eax) 次に、Linuxカーネルのソースコードを検索すると、該当する関数はmm/slab.c > > にあり、その部分を抜き出すと以下の1710:というラベルが付いている場所に > > なります。 > > > > この「mov (%eax),%eax 」という命令は%eaxに入っている値のアドレスの値を > > 読み出して、それを%eaxに代入するという意味になります。%eaxに0が入って > > いたためNULLポインタアクセスとなってフォルトが発生したわけですが、その > > 値がどこから来たのかを上に辿ると16cfc:の「mov 0x10(%ebx),%eax」からと > > なります。「mov 0x10(%ebx),%eax」は%ebxに0x10を足したアドレスにある値 > > を%eax に代入するという意味になります。先のOOPSのロクから%ebxは > > 0x0c282ddb8ということが判っていますから、0x10(%ebx)は0x0c282ddc8となり > > ます。 | ||||
再現方法 | |||||
追加情報 | |||||
タグ | 設定されていません。 | ||||
関連 | |||||
添付ファイル | |||||
課題の履歴 | |||||
変更日 | ユーザー名 | 項目 | 変更内容 | ||
2006-06-15 09:32 | anonymous | 新規課題 | |||
2006-06-23 18:02 | anonymous | コメント追加: 0003044 | |||
2006-07-29 01:17 | daisuke | 状態 | 新規 => 要追加情報 | ||
2006-07-29 01:17 | daisuke | 解決状況 | 不明 => 再現不可 | ||
2006-07-29 01:17 | daisuke | コメント追加: 0003045 | |||
2006-07-29 01:22 | daisuke | 状態 | 要追加情報 => 完了 | ||
2006-07-29 01:22 | daisuke | コメント追加: 0003046 |
コメント | |||||
|
|||||
|
|
||||
|
|||||
|
|
||||
|
|||||
|
|