Bug 13604 - cascade of "mpage_da_map_blocks block allocation failed" errors
Summary: cascade of "mpage_da_map_blocks block allocation failed" errors
Status: RESOLVED DUPLICATE of bug 12829
Alias: None
Product: File System
Classification: Unclassified
Component: ext4 (show other bugs)
Hardware: All Linux
: P1 normal
Assignee: Eric Sandeen
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2009-06-22 20:25 UTC by Bernie Innocenti
Modified: 2010-03-15 20:23 UTC (History)
3 users (show)

See Also:
Kernel Version:
Subsystem:
Regression: No
Bisected commit-id:


Attachments

Description Bernie Innocenti 2009-06-22 20:25:31 UTC
While qemu was writing on a qcow2 image -- presumably a sparse, mmaped() file --
the home partition filled up to the reserved block limit, and the kernel
started issuing a cascade of errors, making the system very unresponsive
for 30 seconds.

Eventually, the qemu process was killed with a SIGSEGV, but the system
was still unusable because every process attempting to read/write on /home would lockup in an uninterruptable sleep state.

This is kernel-2.6.30-1.fc12.x86_64.

---cut---
Jun 22 20:49:03 localhost kernel: mpage_da_map_blocks block allocation failed for inode 528965 at logical offset 607602 with max blocks 5 with error -28
Jun 22 20:49:03 localhost kernel: This should not happen.!! Data will be lost
Jun 22 20:49:03 localhost kernel: Total free blocks count 0
Jun 22 20:49:03 localhost kernel: Free/Dirty block details
Jun 22 20:49:03 localhost kernel: free_blocks=134303
Jun 22 20:49:03 localhost kernel: dirty_blocks=52621
Jun 22 20:49:03 localhost kernel: Block reservation details
Jun 22 20:49:03 localhost kernel: i_reserved_data_blocks=52465
Jun 22 20:49:03 localhost kernel: i_reserved_meta_blocks=156
Jun 22 20:49:03 localhost kernel: mpage_da_map_blocks block allocation failed for inode 528965 at logical offset 608030 with max blocks 8 with error -28
Jun 22 20:49:03 localhost kernel: This should not happen.!! Data will be lost
Jun 22 20:49:03 localhost kernel: Total free blocks count 0
Jun 22 20:49:03 localhost kernel: Free/Dirty block details
Jun 22 20:49:03 localhost kernel: free_blocks=134303
Jun 22 20:49:03 localhost kernel: dirty_blocks=52621
Jun 22 20:49:03 localhost kernel: Block reservation details
Jun 22 20:49:03 localhost kernel: i_reserved_data_blocks=52465
Jun 22 20:49:03 localhost kernel: i_reserved_meta_blocks=156
Jun 22 20:49:09 localhost kernel: mpage_da_map_blocks block allocation failed for inode 125287 at logical offset 4 with max blocks 1 with error -28
Jun 22 20:49:09 localhost kernel: This should not happen.!! Data will be lost
Jun 22 20:49:09 localhost kernel: Total free blocks count 0
Jun 22 20:49:09 localhost kernel: Free/Dirty block details
Jun 22 20:49:09 localhost kernel: free_blocks=134303
Jun 22 20:49:09 localhost kernel: dirty_blocks=52624
Jun 22 20:49:09 localhost kernel: Block reservation details
Jun 22 20:49:09 localhost kernel: i_reserved_data_blocks=1
Jun 22 20:49:09 localhost kernel: i_reserved_meta_blocks=2
Jun 22 20:52:36 localhost libvirtd: 20:52:36.573: warning : qemudDispatchSignalEvent:362 : Shutting down on signal 15
---cut---
Comment 1 Cyber 2009-08-11 11:00:31 UTC
Hello! (:

same problem here with kernel 2.6.30.4.

my partition was filled completly.
my partition table is correct, all partitions were never resized, they were created new with ext4 (not migrated from ext3).

[941998.471199] mpage_da_map_blocks block allocation failed for inode 36 at logical offset 3544 with max blocks 1 with error -28
[941998.471345] This should not happen.!! Data will be lost
[941998.471444] Total free blocks count 0
[941998.471524] Free/Dirty block details
[941998.471603] free_blocks=0
[941998.471680] dirty_blocks=0
[941998.471757] Block reservation details
[941998.471838] i_reserved_data_blocks=2
[941998.471918] i_reserved_meta_blocks=2
[941998.472638] mpage_da_map_blocks block allocation failed for inode 36 at logical offset 3865 with max blocks 1 with error -28
[941998.472799] This should not happen.!! Data will be lost
[941998.472898] Total free blocks count 0
[941998.472978] Free/Dirty block details
[941998.473058] free_blocks=0
[941998.473135] dirty_blocks=0
[941998.473213] Block reservation details
[941998.473294] i_reserved_data_blocks=2
[941998.473374] i_reserved_meta_blocks=2
Comment 2 procaccia 2009-09-17 14:44:42 UTC
Any news on this bug ?

I get lots of the same error messages with ext4 and quotas on those ext4 FS:

Message from syslogd@ at Thu Sep 17 16:39:51 2009 ...
gizeh kernel: mpage_da_map_blocks block allocation failed for inode 15407 at logical offset 0 with max blocks 2 with error -122
Message from syslogd@ at Thu Sep 17 16:39:51 2009 ...
gizeh kernel: This should not happen.!! Data will be lost

$ uname -a
Linux gizeh.int-evry.fr 2.6.18-164.el5 #1 SMP Tue Aug 18 15:51:48 EDT 2009 x86_64 x86_64 x86_64 GNU/Linux
$ rpm -q quota
quota-3.16-7

Will data really be lost ? or is this alert is for people over-quota only ?
I have opened a bug on redhat: https://bugzilla.redhat.com/show_bug.cgi?id=522615
I've been told to wait until kernel quota for ext4 will be supported, but what is the probleme ? is there a plan to solve this issue ? perhaps it's already solve on a newer kernel than mine (2.6.18-164.el5 ) ?
Any news & advice greatly appreciated.
regards .
Comment 3 Eric Sandeen 2009-09-17 15:51:13 UTC
re: comment #3 It's the same end result, delalloc data with nowhere to go.

But the first 2 filers were hitting errno -28 == ENOSPC, where ext4 oversubscribed delayed allocation.  I think this is still a corner case bug upstream, but better than it was.

comment #3 is an older ext4 codebase hitting quota problems (-122 == EDQUOT) which should be fixed upstream now.

-Eric
Comment 4 Eric Sandeen 2010-03-15 20:23:26 UTC
Actually this looks like a dup of bug #12829 but unfortunately still no fix for that.

A reliable reproducer would be very helpful.

*** This bug has been marked as a duplicate of bug 12829 ***

Note You need to log in before you can comment on or make changes to this bug.