On Tue, Mar 17, 2015 at 9:34 AM, Wang Shilong <wangshilong1991@xxxxxxxxx> wrote: > Hi, > >> >> Hi, >> >> I have been testing btrfs send/receive recently. >> I got an error "send ioctl failed with -12: Cannot allocate memory" on >> send side. >> WARN_ON happened on "len > PATH_MAX" in fs_path_ensure_buf. >> >> I got an error "rename failed: no such file or directory" on receive side. >> The followings are simple reproduced steps and related information, >> Is there any idea about what this might be or how to fix it? >> >> uanme -a >> Linux ubuntu 4.0.0-rc1-custom #2 SMP Fri Feb 27 22:20:12 CST 2015 >> x86_64 x86_64 x86_64 GNU/Linux >> btrfs --version >> Btrfs v3.14.1 > > I don’t know exact commit that fix this problem. > But there are some bug fixes since v3.14. > > Could you try latest kernel and see if problem still exist? There's isn't any change between 4.0-rc1 and 4.0-rc4 that will fix this issue (iow, futile to try 4.0-rc4 or Chris' integration branch). It's another case for an infinite path build loop, likely due to inverting the ancestor-descendant relationship of 2 directories. I'll take a look at it when I get the time, can't promise how soon however. thanks > >> >> Steps to reproduce: >> >> $ mkfs.btrfs -f /dev/sdb >> $ mount /dev/sdb /mnt >> $ mkfs.btrfs -f /dev/sdc >> $ mount /dev/sdc /mnt2 >> >> $ mkdir /mnt/data >> $ mkdir /mnt/data/n1 >> $ mkdir /mnt/data/n1/n2 >> $ mkdir /mnt/data/n4 >> $ mkdir /mnt/data/n1/n2/p1 >> $ mkdir /mnt/data/n1/n2/p1/p2 >> $ mkdir /mnt/data/t6 >> $ mkdir /mnt/data/t7 >> $ mkdir -p /mnt/data/t5/t7 >> $ mkdir /mnt/data/t2 >> $ mkdir /mnt/data/t4 >> $ mkdir -p /mnt/data/t1/t3 >> $ mkdir /mnt/data/p1 >> $ mv /mnt/data/t1 /mnt/data/p1 >> $ mkdir -p /mnt/data/p1/p2 >> $ mv /mnt/data/t4 /mnt/data/p1/p2/t1 >> $ mv /mnt/data/t5 /mnt/data/n4/t5 >> $ mv /mnt/data/n1/n2/p1/p2 /mnt/data/n4/t5/p2 >> $ mv /mnt/data/t7 /mnt/data/n4/t5/p2/t7 >> $ mv /mnt/data/t2 /mnt/data/n4/t1 >> $ mv /mnt/data/p1 /mnt/data/n4/t5/p2/p1 >> $ mv /mnt/data/n1/n2 /mnt/data/n4/t5/p2/p1/p2/n2 >> $ mv /mnt/data/n4/t5/p2/p1/p2/t1 /mnt/data/n4/t5/p2/p1/p2/n2/t1 >> $ mv /mnt/data/n4/t5/t7 /mnt/data/n4/t5/p2/p1/p2/n2/t1/t7 >> $ mv /mnt/data/n4/t5/p2/p1/t1/t3 /mnt/data/n4/t5/p2/p1/p2/n2/t1/t3 >> $ mv /mnt/data/n4/t5/p2/p1/p2/n2/p1 /mnt/data/n4/t5/p2/p1/p2/n2/t1/t7/p1 >> $ mv /mnt/data/t6 /mnt/data/n4/t5/p2/p1/p2/n2/t1/t3/t5 >> $ mv /mnt/data/n4/t5/p2/p1/t1 /mnt/data/n4/t5/p2/p1/p2/n2/t1/t3/t1 >> $ mv /mnt/data/n1 /mnt/data/n4/t5/p2/p1/p2/n2/t1/t7/p1/n1 >> >> $ btrfs subvolume snapshot -r /mnt /mnt/snap1 >> >> $ mv /mnt/data/n4/t1 /mnt/data/n4/t5/p2/p1/p2/n2/t1/t7/p1/t1 >> $ mv /mnt/data/n4/t5/p2/p1/p2/n2/t1 /mnt/data/n4/ >> $ mv /mnt/data/n4/t5/p2/p1/p2/n2 /mnt/data/n4/t1/n2 >> $ mv /mnt/data/n4/t1/t7/p1 /mnt/data/n4/t1/n2/p1 >> $ mv /mnt/data/n4/t1/t3/t1 /mnt/data/n4/t1/n2/t1 >> $ mv /mnt/data/n4/t1/t3 /mnt/data/n4/t1/n2/t1/t3 >> $ mv /mnt/data/n4/t5/p2/p1/p2 /mnt/data/n4/t1/n2/p1/p2 >> $ mv /mnt/data/n4/t1/t7 /mnt/data/n4/t1/n2/p1/t7 >> $ mv /mnt/data/n4/t5/p2/p1 /mnt/data/n4/t1/n2/p1/p2/p1 >> $ mv /mnt/data/n4/t1/n2/t1/t3/t5 /mnt/data/n4/t1/n2/p1/p2/t5 >> $ mv /mnt/data/n4/t5 /mnt/data/n4/t1/n2/p1/p2/p1/t5 >> $ mv /mnt/data/n4/t1/n2/p1/p2/p1/t5/p2 /mnt/data/n4/t1/n2/p1/p2/p1/p2 >> $ mv /mnt/data/n4/t1/n2/p1/p2/p1/p2/t7 /mnt/data/n4/t1/t7 >> >> $ btrfs subvolume snapshot -r /mnt /mnt/snap2 >> >> $ btrfs send /mnt/snap1 | btrfs receive /mnt2 >> $ btrfs send -p /mnt/snap1 /mnt/snap2 | btrfs receive -vv /mnt2 >> ERROR: send ioctl failed with -12: Cannot allocate memory >> rename data/n4/t5/p2/p1/p2 -> o272-10-0 >> rename data/n4/t5/p2/p1/p2/n2/t1/t7 -> o266-9-0 >> ERROR: rename data/n4/t5/p2/p1/p2/n2/t1/t7 -> o266-9-0 failed. No such >> file or directory >> >> It seems that "data/n4/t5/p2/p1/p2" had been renamed but the file path >> had not been updated to >> "o272-10-0". >> Thus it makes the next rename failed. >> >> Thanks. >> robbieko >> -- >> To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in >> the body of a message to majordomo@xxxxxxxxxxxxxxx >> More majordomo info at http://vger.kernel.org/majordomo-info.html > > Best Regards, > Wang Shilong > > -- > To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in > the body of a message to majordomo@xxxxxxxxxxxxxxx > More majordomo info at http://vger.kernel.org/majordomo-info.html -- Filipe David Manana, "Reasonable men adapt themselves to the world. Unreasonable men adapt the world to themselves. That's why all progress depends on unreasonable men." -- To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html
