#768902 grub-pc: update-grub (50mounted-tests) attempts to mount extended partition as ext4 and hangs

Package:
grub-pc
Source:
grub2
Description:
GRand Unified Bootloader, version 2 (PC/BIOS version)
Submitter:
Joel Roth
Date:
2015-05-20 00:27:10 UTC
Severity:
important
#768902#5
Date:
2014-11-10 00:14:51 UTC
From:
To:
Dear Maintainer,

I've been upgrading my sid system. When update-grub goes
to regenerate /boot/grub/grub.cfg, mount uses 100% CPU
and causes these processes to hang. /dev/sda4 is an extended
partition, so attempting to mount it as ext4 may be a bug.

I made sure to refresh the MBR with the latest version of
grub using grub-install.

(Note that while the PID below doesn't exactly match the
dmesg output that follows, the messages are congruent--
just cut-and-pasted at different times.)

ps ax | grep mount

10064 pts/1    S      0:00 /bin/sh /usr/lib/os-probes/50mounted-tests /dev/sda4
10075 pts/1    R      7:33 mount -o ro -t ext4 /dev/sda4 /var/lib/os-prober/mount

fdisk -l /dev/sda returns:

Disk /dev/sda: 320.1 GB, 320072933376 bytes
255 heads, 63 sectors/track, 38913 cylinders, total 625142448 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x27b11b56

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1            2048     2459647     1228800    7  HPFS/NTFS/exFAT
/dev/sda2   *     2459648    76180224    36860288+   7  HPFS/NTFS/exFAT
/dev/sda3        76180225    84357314     4088545   82  Linux swap / Solaris
/dev/sda4        84357315   625139711   270391198+   f  W95 Ext'd (LBA)
/dev/sda5        84357378   115073593    15358108   83  Linux
/dev/sda6       115073658   534504057   209715200   83  Linux
/dev/sda7       534504059   604654465    35075203+  83  Linux
/dev/sda8       604659712   625139711    10240000    7  HPFS/NTFS/exFAT

Here are some diagnostics from dmesg:

[ 1317.697620] INFO: task mount:19672 blocked for more than 120 seconds.
[ 1317.697623] "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.
[ 1317.697625] mount           D ffff880137d13740     0 19672  19662 0x00000000
[ 1317.697629]  ffff88012fe818d0 0000000000000086 ffff880100000000 ffff880133369610
[ 1317.697632]  0000000000013740 ffff8800af8a5fd8 ffff8800af8a5fd8 ffff88012fe818d0
[ 1317.697635]  ffff880133747cc0 0000000100000000 ffff88012fe28400 ffff880130d1f868
[ 1317.697638] Call Trace:
[ 1317.697646]  [<ffffffff8134ab67>] ? rwsem_down_failed_common+0xe0/0x114
[ 1317.697672]  [<ffffffff810fa97b>] ? set_bdev_super+0x2a/0x2a
[ 1317.697674]  [<ffffffff810fa951>] ? ns_test_super+0xd/0xd
[ 1317.697678]  [<ffffffff811b26d3>] ? call_rwsem_down_write_failed+0x13/0x20
[ 1317.697681]  [<ffffffff8134a4d4>] ? down_write+0x25/0x27
[ 1317.697685]  [<ffffffff810fb11f>] ? sget+0xb5/0x3d1
[ 1317.697691]  [<ffffffff81036457>] ? should_resched+0x5/0x23
[ 1317.697708]  [<ffffffffa02405c4>] ? ext4_remount+0x547/0x547 [ext4]
[ 1317.697711]  [<ffffffff810fb54e>] ? mount_bdev+0x9b/0x1ac
[ 1317.697715]  [<ffffffff810eb57b>] ? __kmalloc_track_caller+0xfe/0x110
[ 1317.697720]  [<ffffffff810fbe63>] ? mount_fs+0x61/0x146
[ 1317.697727]  [<ffffffff8110ef0a>] ? vfs_kern_mount+0x5f/0x99
[ 1317.697731]  [<ffffffff8110f2f4>] ? do_kern_mount+0x49/0xd8
[ 1317.697733]  [<ffffffff8111096f>] ? do_mount+0x660/0x6c6
[ 1317.697738]  [<ffffffff810c8a3e>] ? memdup_user+0x36/0x5b
[ 1317.697740]  [<ffffffff81110c7d>] ? sys_mount+0x88/0xc3
[ 1317.697743]  [<ffffffff8134fb92>] ? system_call_fastpath+0x16/0x1b

Thank you.

#768902#10
Date:
2014-11-22 02:21:40 UTC
From:
To:
I have discovered I was running an out-of-date
kernel with a recent udev, which may be behind
the presenting issue (which would have pertained
to 'mount' in any case.)

For these reasons, I think this bug can be closed.


Regards

#768902#15
Date:
2015-05-20 00:22:38 UTC
From:
To:
I managed to prevent this trouble by adding an extra test is os-prober

Please check the attached patch or

https://github.com/rzr/os-prober/tree/sandbox/rzr/for-upstream

Hope this help, I will bug os-prober if no feedback
unless someone tells me how to get this merged faster

Regards