Message ID | 1405589304-7174-1-git-send-email-anand.jain@oracle.com (mailing list archive) |
---|---|
State | Not Applicable |
Headers | show |
On Thu, Jul 17, 2014 at 05:28:24PM +0800, Anand Jain wrote: > xfstest btrfs/023 which does the following tests > > create_group_profile "raid0" > check_group_profile "RAID0" > > create_group_profile "raid1" > check_group_profile "RAID1" > > create_group_profile "raid10" > check_group_profile "RAID10" > > create_group_profile "raid5" > check_group_profile "RAID5" > > create_group_profile "raid6" > check_group_profile "RAID6" > > fails randomly with the error as below > > ERROR: device scan failed '/dev/sde' - Invalid argument > > since failure is at random group profile it indicates to me that > btrfs kernel did not see the newly created btrfs on the device > > To note: I have the following patch on the kernel which > is not yet integrated, but its not related to this bug. > > btrfs: RFC: code optimize use btrfs_get_bdev_and_sb() at btrfs_scan_one_device I guess the error was caused by this patch, and the fsync just made the race window smaller. If you still think the fsync is useful, please update the changelog. -- To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
On 29/07/2014 20:57, David Sterba wrote: > On Thu, Jul 17, 2014 at 05:28:24PM +0800, Anand Jain wrote: >> xfstest btrfs/023 which does the following tests >> >> create_group_profile "raid0" >> check_group_profile "RAID0" >> >> create_group_profile "raid1" >> check_group_profile "RAID1" >> >> create_group_profile "raid10" >> check_group_profile "RAID10" >> >> create_group_profile "raid5" >> check_group_profile "RAID5" >> >> create_group_profile "raid6" >> check_group_profile "RAID6" >> >> fails randomly with the error as below >> >> ERROR: device scan failed '/dev/sde' - Invalid argument >> >> since failure is at random group profile it indicates to me that >> btrfs kernel did not see the newly created btrfs on the device >> >> To note: I have the following patch on the kernel which >> is not yet integrated, but its not related to this bug. >> >> btrfs: RFC: code optimize use btrfs_get_bdev_and_sb() at btrfs_scan_one_device > > I guess the error was caused by this patch, Yep. I got that understanding when you mentioned about the patch btrfs: access superblock via pagecache in scan_one_device > and the fsync just made the race window smaller. If you still think > the fsync is useful, please update the changelog. You mean I should put fsync at more correct places ? Thanks, Anand > -- > To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in > the body of a message to majordomo@vger.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html > -- To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
On Thu, Jul 31, 2014 at 03:07:39PM +0800, Anand Jain wrote: > > and the fsync just made the race window smaller. If you still think > > the fsync is useful, please update the changelog. > > You mean I should put fsync at more correct places ? The fsync should not be necessary, but I haven't looked very closely. -- To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
diff --git a/utils.c b/utils.c index fbc5bde..e144dfd 100644 --- a/utils.c +++ b/utils.c @@ -741,6 +741,8 @@ int btrfs_prepare_device(int fd, char *file, int zero_end, u64 *block_count_ret, } *block_count_ret = block_count; + fsync(fd); + zero_dev_error: if (ret < 0) { fprintf(stderr, "ERROR: failed to zero device '%s' - %s\n",
xfstest btrfs/023 which does the following tests create_group_profile "raid0" check_group_profile "RAID0" create_group_profile "raid1" check_group_profile "RAID1" create_group_profile "raid10" check_group_profile "RAID10" create_group_profile "raid5" check_group_profile "RAID5" create_group_profile "raid6" check_group_profile "RAID6" fails randomly with the error as below ERROR: device scan failed '/dev/sde' - Invalid argument since failure is at random group profile it indicates to me that btrfs kernel did not see the newly created btrfs on the device To note: I have the following patch on the kernel which is not yet integrated, but its not related to this bug. btrfs: RFC: code optimize use btrfs_get_bdev_and_sb() at btrfs_scan_one_device btrfs: looping 'mkfs.btrfs -f <dev>' may fail with EBUSY btrfs: check generation as replace duplicates devid+uuid This patch calls fsync() at btrfs_prepare_device(). With this btrfs/023 has NOT failed consistently for several long iterations. Signed-off-by: Anand Jain <anand.jain@oracle.com> --- utils.c | 2 ++ 1 file changed, 2 insertions(+)