Bug 117941 - kernel ooops on reiser4 partitions
Summary: kernel ooops on reiser4 partitions
Status: RESOLVED WONTFIX
Alias: None
Product: SUSE LINUX 10.0
Classification: openSUSE
Component: Kernel (show other bugs)
Version: RC 1
Hardware: i686 SUSE Other
: P5 - None : Major
Target Milestone: ---
Assignee: Chris L Mason
QA Contact: E-mail List
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2005-09-19 23:50 UTC by Kai Krakow
Modified: 2006-08-14 07:06 UTC (History)
0 users

See Also:
Found By: Other
Services Priority:
Business Priority:
Blocker: ---
Marketing QA Status: ---
IT Deployment: ---


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Kai Krakow 2005-09-19 23:50:31 UTC
I've just upgraded from SuSE 9.3 to 10.0-RC1 using YaST. The system hung on
reboot. A kernel showed "kernel BUG in fs/inode.c", most time when unlinking
files. The exact hang wasn't reproducable during bootup, but the kernel always
hung using ViM on reiser4 partitions. The system ran rock-steady before using
SuSE 9.3 with the supplied kernel - so I believe it is no reiser4 bug.

I was able to resolve the issue using the latest kernel of the day. Maybe
there's a compiler issue or something else different between the kernel of the
day and the kernel 2.6.13-8 supplied with RC1.
Comment 1 Kai Krakow 2005-09-20 06:15:09 UTC
Here is one of the ooops messages - got this with the kernel of the day. But
this kernel does not hang the processes as 2.6.13-8 from RC1 does. It just
segfaults them:

Sep 20 08:02:59 ganymed kernel: kernel BUG at fs/inode.c:252!
Sep 20 08:02:59 ganymed kernel: invalid operand: 0000 [#1]
Sep 20 08:02:59 ganymed kernel: Modules linked in: sg st sr_mod joydev
snd_trident gameport snd_ac97_codec snd_ac97_bus snd_pcm snd_timer
snd_page_alloc snd_uti
l_mem snd_mpu401_uart snd_rawmidi snd_seq_device snd soundcore sis drm hfsplus
vfat fat subfs ipt_pkttype ipt_LOG ipt_limit usbserial speedstep_lib freq_table p
arport_pc lp parport irtty_sir sir_dev pcc_acpi ircomm_tty sony_acpi ircomm irda
crc_ccitt thermal processor ide_cd cdrom fan button battery ac pcmcia firmware_
class edd uhci_hcd ehci_hcd ip6t_REJECT ipt_REJECT ipt_state yenta_socket
rsrc_nonstatic pcmcia_core iptable_mangle iptable_nat shpchp pci_hotplug
iptable_filte
r ip6table_mangle sis_agp agpgart ip_conntrack ip_tables i2c_sis630 i2c_core
ip6table_filter ip6_tables usbhid sis900 mii ohci_hcd usbcore ipv6 af_packet sd_mod
 scsi_mod dm_mod reiser4 reiserfs sis5513 zlib_deflate ide_disk ide_core
Sep 20 08:02:59 ganymed kernel: CPU:    0
Sep 20 08:02:59 ganymed kernel: EIP:    0060:[<c016fb43>]    Tainted: G     U VLI
Sep 20 08:02:59 ganymed kernel: EFLAGS: 00010202   (2.6.13-20050919180106-default)
Sep 20 08:02:59 ganymed kernel: EIP is at clear_inode+0x13/0xf0
Sep 20 08:02:59 ganymed kernel: eax: 00000001   ebx: ce72f50c   ecx: 00000000  
edx: ce72f5e8
Sep 20 08:02:59 ganymed kernel: esi: d890a8b0   edi: d5525f68   ebp: d027e53c  
esp: d5525ebc
Sep 20 08:02:59 ganymed kernel: ds: 007b   es: 007b   ss: 0068
Sep 20 08:02:59 ganymed kernel: Process vi (pid: 13642, threadinfo=d5524000
task=d4afea60)
Sep 20 08:02:59 ganymed kernel: Stack: ce72f50c d890a8b0 d890a914 4b1b5d0b
00000000 00000001 d5525ed4 d5525ed4
Sep 20 08:02:59 ganymed kernel:        00000000 d5525ee0 d5525ee0 d5525bc0
cc565900 00000000 00000000 00000000
Sep 20 08:02:59 ganymed kernel:        d5525efc d5525efc d5525f08 00000000
00000001 cf472da0 cf472e30 cf472e30
Sep 20 08:02:59 ganymed kernel: Call Trace:
Sep 20 08:02:59 ganymed kernel:  [<d890a8b0>] reiser4_delete_inode+0x0/0x80
[reiser4]
Sep 20 08:02:59 ganymed kernel:  [<d890a914>] reiser4_delete_inode+0x64/0x80
[reiser4]
Sep 20 08:02:59 ganymed kernel:  [<d890a8b0>] reiser4_delete_inode+0x0/0x80
[reiser4]
Sep 20 08:02:59 ganymed kernel:  [<c01707ab>] generic_delete_inode+0x7b/0x120
Sep 20 08:02:59 ganymed kernel:  [<c0170a0a>] iput+0x5a/0x70
Sep 20 08:02:59 ganymed kernel:  [<c0167bd4>] sys_unlink+0xd4/0x130
Sep 20 08:02:59 ganymed kernel:  [<c0102d1b>] sysenter_past_esp+0x54/0x79
Sep 20 08:02:59 ganymed kernel: Code: fb 41 c0 48 a3 28 fb 41 c0 eb c4 8d b6 00
00 00 00 8d bc 27 00 00 00 00 56 53 89 c3 e8 77 b3 fe ff 8b 83 c8 00 00 00 85 c0
 74 08 <0f> 0b fc 00 97 70 31 c0 8b 83 2c 01 00 00 a8 10 75 08 0f 0b fe
Comment 2 Kai Krakow 2005-09-21 06:40:05 UTC
Without having done extensive testing, I seem to have fixed it by reapplying the
current reiser4 patch to the kotd sources. I did it the following way:

1. Downloaded and installed:
ftp://ftp.suse.com/pub/projects/kernel/kotd/i386/HEAD/kernel-source-2.6.13-20050919180106.src.rpm

In the src directory I moved fs/reiser4/ to fs/reiser4.suse/.

2. Downloaded and applied:
ftp://ftp.namesys.com/pub/reiser4-for-2.6/2.6.12/reiser4-for-2.6.12-3.patch.gz

I checked all the rejects if changes are now and had been applied correctly
before. In der src directory I moved fs/reiser4/ to fs/reiser4.orig/.

3. Downloaded and applied:
ftp://ftp.namesys.com/pub/reiser4-for-2.6/2.6.13-mm1/reiser4-only.1.patch

There should be no rejects this time, just a failing patch because of a missing
file. On my assumptions this is okay, but I need to copy back some files from
the original suse reiser4 directory:

4. Restore Makefile and Kconfig from fs/reiser4.suse/ to fs/reiser4/

After this I checked all reject files again, and the code looked as it would
compile now. And it did.

Sure, this may be a pretty dirty way to include the current patch but I didn't
have the original (Open)SuSE sources with all patches but the reiser4 one included.

After diffing the original reiser4 source from kotd with the current patch from
namesys I found many read_lock calls habe been replaced by write_lock calls. I
suppose this is why the kernel oopsed before - inodes were not properly locked
in kernel 2.6.13 semantics. Just my 2 cents... ;-)
Comment 3 Kai Krakow 2005-09-21 06:42:00 UTC
BTW: About restoring files in point 4 - I am currently not sure about how and
from where restoring the Makefile. My comment about this may thus be wrong.
Comment 4 Kai Krakow 2005-09-21 13:03:21 UTC
Well after some testing, my last steps fixed the hangs during bootup but kdm and
the x-server just don't start and can't be killed. I get about the same kernel
oopses then (related to unlinking files) but vim is able to write changes to
files now without hangs and oopses.

Now I'm clueless. I'm no kernel hacker. ;-)

Sigh, maybe I need to go back to reiserfs if this won't be fixed till 10.0 final
release.
Comment 5 Kai Krakow 2005-09-22 00:32:21 UTC
I'm running fine now on kernel 2.6.13-mm3 from kernel.org 
using /proc/config.gz from the delivered kernel 2.8.13-8. 
Comment 6 Greg Kroah-Hartman 2006-08-14 07:06:29 UTC
Closed due to inactivity.