Skip to contentSkip to conversation

New: My tricky script involving zram and device mapper hangs on "mount"

Bug 118041 [email protected] 1 participant 5 messages May 11, 2016 – May 17, 2016

lore
Share & tools
lore
#0 lore raw

https://bugzilla.kernel.org/show_bug.cgi?id=118041

Bug ID: 118041
Summary: My tricky script involving zram and device mapper
hangs on "mount"
Product: File System
Version: 2.5
Kernel Version: 4.4.8-grsec,4.1.9
Hardware: All
OS: Linux
Tree: Mainline
Status: NEW
Severity: normal
Priority: P1
Component: ext4
Assignee: [email protected]
Reporter: [email protected]
Regression: No

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?

Signature · 2 lines
You are receiving this mail because:
You are watching the assignee of the bug.
#1 lore raw

[Bug 118041] My tricky script involving zram and device mapper hangs on "mount"

https://bugzilla.kernel.org/show_bug.cgi?id=118041

Navin <[email protected]> changed:

What |Removed |Added
----------------------------------------------------------------------------
CC| |[email protected]

--- Comment #1 from Navin <[email protected]> --- 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 ?

Signature · 2 lines
You are receiving this mail because:
You are watching the assignee of the bug.
#3 lore raw

[Bug 118041] My tricky script involving zram and device mapper hangs on "mount"

In reply to [email protected]

https://bugzilla.kernel.org/show_bug.cgi?id=118041

--- Comment #3 from _Vi <[email protected]> ---
Created attachment 216451
--> https://bugzilla.kernel.org/attachment.cgi?id=216451&action=edit
Stand-alone version of the script which crashes my system

Added the script

Signature · 2 lines
You are receiving this mail because:
You are watching the assignee of the bug.
#4 lore raw

[Bug 118041] My tricky script involving zram and device mapper hangs on "mount"

In reply to [email protected]

https://bugzilla.kernel.org/show_bug.cgi?id=118041

--- Comment #4 from Navin <[email protected]> ---
Not related to ext4 . I can reproduce this with below script and i think [email protected] 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.

Signature · 2 lines
You are receiving this mail because:
You are watching the assignee of the bug.