9f03740a956d7ac6a1b8f8c455da6fa5cae11c22 in ubuntu_btrfs_kernel_fixes hang with T

Bug #1809879 reported by Po-Hsu Lin on 2018-12-27
This bug affects 1 person
Affects Status Importance Assigned to Milestone
linux (Ubuntu)
Nominated for Trusty by Po-Hsu Lin

Bug Description

Patch 9f03740a956d7ac6a1b8f8c455da6fa5cae11c22 does not exist in Trusty kernel tree.

When running this test, it will hang with Trusty and gets killed by the timeout setting (2h), this will cause the following test failed with /dev/loop0 mounted issue:

Invoking test 9f03740a956d7ac6a1b8f8c455da6fa5cae11c22

 fix 9f03740a956d7ac6a1b8f8c455da6fa5cae11c22

     Btrfs: fix infinite path build loops in incremental send

     The send operation processes inodes by their ascending number, and assumes
     that any rename/move operation can be successfully performed (sent to the
     caller) once all previous inodes (those with a smaller inode number than the
     one we're currently processing) were processed.

     [ .... ]

     Even without this loop, the incremental send couldn't succeed, because it would attempt
     to send a rename/move operation for the lower inode before the highest inode number was
     renamed/move. This issue is easy to trigger with the following steps:

       $ mkfs.btrfs -f /dev/sdb3
       $ mount /dev/sdb3 /mnt/btrfs
       $ mkdir -p /mnt/btrfs/a/b/c/d
       $ mkdir /mnt/btrfs/a/b/c2
       $ btrfs subvol snapshot -r /mnt/btrfs /mnt/btrfs/snap1
       $ mv /mnt/btrfs/a/b/c/d /mnt/btrfs/a/b/c2/d2
       $ mv /mnt/btrfs/a/b/c /mnt/btrfs/a/b/c2/d2/cc
       $ btrfs subvol snapshot -r /mnt/btrfs /mnt/btrfs/snap2
       $ btrfs send -p /mnt/btrfs/snap1 /mnt/btrfs/snap2 > /tmp/incremental.send

 Create a readonly snapshot of '/tmp/mnt-9f03740a956d7ac6a1b8f8c455da6fa5cae11c22/btrfs' in '/tmp/mnt-9f03740a956d7ac6a1b8f8c455da6fa5cae11c22/btrfs/snap1'
 Create a readonly snapshot of '/tmp/mnt-9f03740a956d7ac6a1b8f8c455da6fa5cae11c22/btrfs' in '/tmp/mnt-9f03740a956d7ac6a1b8f8c455da6fa5cae11c22/btrfs/snap2'
 At subvol /tmp/mnt-9f03740a956d7ac6a1b8f8c455da6fa5cae11c22/btrfs/snap2
Timer expired (7200 sec.), nuking pid 27517

ProblemType: Bug
DistroRelease: Ubuntu 14.04
Package: linux-image-3.13.0-164-generic 3.13.0-164.214
ProcVersionSignature: User Name 3.13.0-164.214-generic 3.13.11-ckt39
Uname: Linux 3.13.0-164-generic x86_64
 total 0
 crw-rw---- 1 root audio 116, 1 Dec 27 08:26 seq
 crw-rw---- 1 root audio 116, 33 Dec 27 08:26 timer
AplayDevices: Error: [Errno 2] No such file or directory: 'aplay'
ApportVersion: 2.14.1-0ubuntu3.29
Architecture: amd64
ArecordDevices: Error: [Errno 2] No such file or directory: 'arecord'
AudioDevicesInUse: Error: command ['fuser', '-v', '/dev/snd/seq', '/dev/snd/timer'] failed with exit code 1:
Date: Thu Dec 27 09:21:07 2018
IwConfig: Error: [Errno 2] No such file or directory: 'iwconfig'
Lsusb: Bus 001 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
MachineType: QEMU Standard PC (i440FX + PIIX, 1996)

ProcFB: 0 cirrusdrmfb
ProcKernelCmdLine: BOOT_IMAGE=/boot/vmlinuz-3.13.0-164-generic root=UUID=576666e8-9e7f-40ee-934e-f1dce18323e5 ro console=ttyS0,115200n8
 linux-restricted-modules-3.13.0-164-generic N/A
 linux-backports-modules-3.13.0-164-generic N/A
 linux-firmware 1.127.24
RfKill: Error: [Errno 2] No such file or directory: 'rfkill'
SourcePackage: linux
UpgradeStatus: No upgrade log present (probably fresh install)
dmi.bios.date: 04/01/2014
dmi.bios.vendor: SeaBIOS
dmi.bios.version: Ubuntu-1.8.2-1ubuntu1
dmi.chassis.type: 1
dmi.chassis.vendor: QEMU
dmi.chassis.version: pc-i440fx-xenial
dmi.modalias: dmi:bvnSeaBIOS:bvrUbuntu-1.8.2-1ubuntu1:bd04/01/2014:svnQEMU:pnStandardPC(i440FX+PIIX,1996):pvrpc-i440fx-xenial:cvnQEMU:ct1:cvrpc-i440fx-xenial:
dmi.product.name: Standard PC (i440FX + PIIX, 1996)
dmi.product.version: pc-i440fx-xenial
dmi.sys.vendor: QEMU

Po-Hsu Lin (cypressyew) wrote :

This change was made by a bot.

Changed in linux (Ubuntu):
status: New → Confirmed
Po-Hsu Lin (cypressyew) wrote :

Ubuntu Trusty kernel does not contain this commit.

Before this patch, Trusty is missing:
 * 16e7549f045d33b0c5b0ebf19d08439e9221d40c

And this 16e7549 seems to be affected by commit 011f5ca18b53bf4c5db545f4b372d3e67a0052a4 in Trusty tree, which is a backport for e02119d5a7b4396c5a872582fddc8bd6d305a70a upstream

Po-Hsu Lin (cypressyew) wrote :

To reach this patch (9f03740a956) on Trusty tree:
  1. backport 16e7549 (Btrfs: incompatible format change to remove hole extents)
  2. cherrypick 2c68653 (btrfs: Check read-only status of roots during send)
  3. cherrypick 66ef7d6 (btrfs: check balance of send_in_progress)
  4. cherrypick 896c14f (Btrfs: fix wrong send_in_progress accounting)
  and finally this one (Btrfs: fix infinite path build loops in incremental send) with cherryick

Po-Hsu Lin (cypressyew) wrote :
Download full text (3.4 KiB)

Kernel trace triggered by this test:
[ 385.822256] ------------[ cut here ]------------
[ 385.822262] WARNING: CPU: 1 PID: 1487 at /build/linux-pWDSBu/linux-3.13.0/mm/page_alloc.c:2552 __alloc_pages_nodemask+0x455/0xb90()
[ 385.822263] Modules linked in: ib_iser rdma_cm iw_cm ib_cm ib_sa ib_mad ib_core ib_addr iscsi_tcp libiscsi_tcp libiscsi scsi_transport_iscsi dm_crypt x86_pkg_temp_thermal coretemp kvm_intel kvm joydev lpc_ich shpchp mac_hid btrfs xor raid6_pq libcrc32c crct10dif_pclmul crc32_pclmul ghash_clmulni_intel aesni_intel igb aes_x86_64 hid_generic lrw i915_bdw dca gf128mul intel_ips glue_helper usbhid ptp ablk_helper drm_kms_helper cryptd ahci hid drm pps_core libahci i2c_algo_bit video
[ 385.822286] CPU: 1 PID: 1487 Comm: btrfs Not tainted 3.13.0-164-generic #214-Ubuntu
[ 385.822287] Hardware name: Intel Corporation S1200RP/S1200RP, BIOS S1200RP.86B.03.02.0003.070120151022 07/01/2015
[ 385.822288] 0000000000000000 ffff8804551916d8 ffffffff8173c0c8 0000000000000000
[ 385.822290] 0000000000000009 ffff880455191710 ffffffff8106db6d 0000000000124050
[ 385.822292] 0000000000000000 0000000000104050 0000000000000000 0000000000000000
[ 385.822294] Call Trace:
[ 385.822298] [<ffffffff8173c0c8>] dump_stack+0x64/0x80
[ 385.822301] [<ffffffff8106db6d>] warn_slowpath_common+0x7d/0xa0
[ 385.822303] [<ffffffff8106dc4a>] warn_slowpath_null+0x1a/0x20
[ 385.822305] [<ffffffff81161bd5>] __alloc_pages_nodemask+0x455/0xb90
[ 385.822317] [<ffffffffa02dfa4d>] ? generic_bin_search.constprop.35+0x8d/0x1a0 [btrfs]
[ 385.822320] [<ffffffff811a1e53>] alloc_pages_current+0xa3/0x160
[ 385.822323] [<ffffffff8115c92e>] __get_free_pages+0xe/0x50
[ 385.822325] [<ffffffff81179abe>] kmalloc_order_trace+0x2e/0xc0
[ 385.822327] [<ffffffff811afc3f>] __kmalloc_track_caller+0x23f/0x260
[ 385.822336] [<ffffffffa0363e67>] ? fs_path_ensure_buf+0x67/0x1c0 [btrfs]
[ 385.822338] [<ffffffff81173d7f>] krealloc+0x4f/0xa0
[ 385.822345] [<ffffffffa0363e67>] fs_path_ensure_buf+0x67/0x1c0 [btrfs]
[ 385.822352] [<ffffffffa0363ff3>] fs_path_prepare_for_add+0x33/0xa0 [btrfs]
[ 385.822359] [<ffffffffa0364ae0>] fs_path_add_path+0x20/0x50 [btrfs]
[ 385.822365] [<ffffffffa0364fdb>] get_cur_path+0x6b/0x140 [btrfs]
[ 385.822371] [<ffffffffa0365340>] send_utimes+0xd0/0x190 [btrfs]
[ 385.822378] [<ffffffffa03662ce>] finish_inode_if_needed+0x1fe/0x4e0 [btrfs]
[ 385.822384] [<ffffffffa0367e35>] changed_cb+0x55/0x9f0 [btrfs]
[ 385.822392] [<ffffffffa0324e5c>] ? read_extent_buffer+0xbc/0x110 [btrfs]
[ 385.822399] [<ffffffffa0319d89>] ? btrfs_get_token_32+0x59/0xe0 [btrfs]
[ 385.822406] [<ffffffffa03255f1>] ? memcmp_extent_buffer+0xc1/0x120 [btrfs]
[ 385.822411] [<ffffffffa02e4fb3>] btrfs_compare_trees+0x783/0x960 [btrfs]
[ 385.822418] [<ffffffffa0367de0>] ? process_extent+0x1180/0x1180 [btrfs]
[ 385.822424] [<ffffffffa0369078>] btrfs_ioctl_send+0x8a8/0xc90 [btrfs]
[ 385.822432] [<ffffffffa0337579>] btrfs_ioctl+0x1129/0x2770 [btrfs]
[ 385.822434] [<ffffffff810ad752>] ? enqueue_task_fair+0x422/0x6d0
[ 385.822436] [<ffffffff810a4cc5>] ? sched_clock_cpu+0xb5/0x100
[ 385.822439] [<ffffffff8109b8d0>] ? enqueue_task+0x40/0x70
[ 385.82244...


Brad Figg (brad-figg) on 2019-07-24
tags: added: cscc
Po-Hsu Lin (cypressyew) on 2019-09-16
tags: added: ubuntu-btrfs-kernel-fixes
To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers