Bug 118041 - My tricky script involving zram and device mapper hangs on "mount"
Summary: My tricky script involving zram and device mapper hangs on "mount"
Status: NEW
Alias: None
Product: File System
Classification: Unclassified
Component: ext4 (show other bugs)
Hardware: All Linux
: P1 normal
Assignee: fs_ext4@kernel-bugs.osdl.org
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2016-05-11 21:22 UTC by _Vi
Modified: 2016-05-17 18:59 UTC (History)
1 user (show)

See Also:
Kernel Version: 4.4.8-grsec,4.1.9
Subsystem:
Regression: No
Bisected commit-id:


Attachments
Stand-alone version of the script which crashes my system (1.30 KB, application/octet-stream)
2016-05-17 17:55 UTC, _Vi
Details

Description _Vi 2016-05-11 21:22:20 UTC
As far as I remember, I have implemented and used the script on 3.8.3 (or 3.7.5?) successfully. But after upgrading to other kernel version it broke: now "mount" hangs (in uninterruptible sleep), consuming 100% CPU and eating all memory.

The script:

---

modprobe zram num_devices=2
sleep 1
echo 1500M > /sys/block/zram0/disksize
echo 100M > /sys/block/zram1/disksize

MS=$(blockdev --getsize /dev/zram0)
WS=$(blockdev --getsize /dev/zram1)
DS=$(blockdev --getsize /dev/mapper/cryptie4-ff)
MN=$(printf '%d:%d' `stat -Lc '0x%t 0x%T' /dev/zram0`)
WN=$(printf '%d:%d' `stat -Lc '0x%t 0x%T' /dev/zram1`)
DN=$(printf '%d:%d' `stat -Lc '0x%t 0x%T'  /dev/mapper/cryptie4-ff`)

pv /dev/mapper/cryptie4-ff | hashed_update /dev/stdin NULL /dev/zram0 /tmp/ff.md5 65536
dmsetup create ff --table "0 $MS snapshot-origin $MN"

# /dev/mapper/ff /mnt/ff ext4 noatime,noauto 0 0
mount /mnt/ff

# after this command ff_snap should begin working
dmsetup create ff_disk --table "0 $DS snapshot-origin $DN"

---

So far I have just abandoned the script and hasn't experimented more. Shall I  try to isolate and maybe bisect the problem?
Comment 1 Navin 2016-05-17 16:27:24 UTC
What is cryptie4-ff ? it is linear or raid setup for dmsetup.
What is hashed_update.
Seems like only part of the script is posted. 
Can you please get a working standalone independent script ?
Comment 2 _Vi 2016-05-17 16:48:43 UTC
cryptie4-ff: 0 3072000 linear 251:0 672802816

Maybe I'll try to make special stand-alone script for demonstrating the problem.
Comment 3 _Vi 2016-05-17 17:55:34 UTC
Created attachment 216451 [details]
Stand-alone version of the script which crashes my system

Added the script
Comment 4 Navin 2016-05-17 18:59:47 UTC
Not related to ext4 . I can reproduce this with below script and i think 
dm-devel@redhat.com should be contacted.


I tested on Linux junk-foo 4.2.0-35-generic from Ubuntu (15.10 ) x64.
Linux junk-foo 4.2.0-35-generic #40-Ubuntu SMP Tue Mar 15 22:15:45 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux



Here is a script that crashes the kernel for me with out of memory. Looks to be a dm problem because it occurs with dd,mkfs.xfs,mkfs.vat ,without zram ie with losetup.

Here is the script.Should be run as root for losetup and dmsetup permissions.


#!/bin/bash

fallocate -l 50M 50M_file_unused
fallocate -l 60M 60M_file_unused
losetup  /dev/loop4 50M_file_unused
losetup  /dev/loop5 60M_file_unused

MS=$(blockdev --getsize /dev/loop4)
WS=$(blockdev --getsize /dev/loop5)
echo "0 $MS linear /dev/loop4 0 \n $MS $WS linear /dev/loop5 0" | dmsetup create cryptie4-ff
DS=$(blockdev --getsize /dev/mapper/cryptie4-ff)
MN=$(printf '%d:%d' `stat -Lc '0x%t 0x%T' /dev/loop4`)
WN=$(printf '%d:%d' `stat -Lc '0x%t 0x%T' /dev/loop5`)
DN=$(printf '%d:%d' `stat -Lc '0x%t 0x%T'  /dev/mapper/cryptie4-ff`)

#pv /dev/mapper/cryptie4-ff | hashed_update /dev/stdin NULL /dev/zram0 /tmp/ff.md5 65536
pv /dev/mapper/cryptie4-ff 
dmsetup create ff --table "0 $MS snapshot-origin $MN"


After this  doing this 
dd if=/dev/zero of=/dev/mapper/ff
or
mkfs.xfs /mkfs.ext4 on /dev/mapper/ff will fail.

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