Message ID | 20200324105315.136569-1-wqu@suse.com (mailing list archive) |
---|---|
Headers | show |
Series | btrfs-progs: Fixes for valgrind errors during fsck-tests | expand |
On Tue, Mar 24, 2020 at 06:53:09PM +0800, Qu Wenruo wrote: > This patchset can be fetched from github: > https://github.com/adam900710/btrfs-progs/tree/valgrind_fixes > > Inspired by that long-existing-but-I-can't-reproduce v5.1 bug, I will > never trust D=asan/D=uban anymore, and run valgrind on all fsck-tests. > > The patchset is the result from the latest valgrind runs. > > The first patch is to make "make INSTRUMENT=valgrind test-fsck" run > smoothly without false alerts due to mount/umount failure with valgrind. Thanks, that's great. In addition to that, all commands that use the SUDO_HELPER/root_helper won't pass through valgrind. For maximum coverage we might want to remove the helper from the subcommands of 'btrfs'. From a quick scan I found a lot of them and I'm not sure that all are required. There's a lot of copy&paste in the tests, so that would have to be cleaned up, or we leave it as it is and run the whole tests under root. > With this patchset applied (along with that fix for v5.1), fsck tests > all passes without valgrind error except mentioned fsck/012 above. > > Qu Wenruo (6): > btrfs-progs: tests/common: Don't call INSTRUMENT on mount command > btrfs-progs: check/original: Fix uninitialized stack memory access for > deal_root_from_list() > btrfs-progs: check/original: Fix uninitialized memory for newly > allocated data_backref > btrfs-progs: check/original: Fix uninitialized return value from > btrfs_write_dirty_block_groups() > btrfs-progs: check/original: Fix uninitialized extent buffer contents > btrfs-progs: extent-tree: Fix wrong post order rb tree cleanup for > block groups Added to devel.
On 2020/3/25 下午10:42, David Sterba wrote: > On Tue, Mar 24, 2020 at 06:53:09PM +0800, Qu Wenruo wrote: >> This patchset can be fetched from github: >> https://github.com/adam900710/btrfs-progs/tree/valgrind_fixes >> >> Inspired by that long-existing-but-I-can't-reproduce v5.1 bug, I will >> never trust D=asan/D=uban anymore, and run valgrind on all fsck-tests. >> >> The patchset is the result from the latest valgrind runs. >> >> The first patch is to make "make INSTRUMENT=valgrind test-fsck" run >> smoothly without false alerts due to mount/umount failure with valgrind. > > Thanks, that's great. In addition to that, all commands that use the > SUDO_HELPER/root_helper won't pass through valgrind. For maximum > coverage we might want to remove the helper from the subcommands of > 'btrfs'. From a quick scan I found a lot of them and I'm not sure that > all are required. There's a lot of copy&paste in the tests, so that > would have to be cleaned up, or we leave it as it is and run the whole > tests under root. The root fix is, like what we did for lowmem mode, injecting valgrind to proper location. Currently I take a shortcut to reuse current infrastructure, but the root fix would need to inject INSTRUMENT directly before "btrfs/mkfs.btrfs/btrfs-convert", so that sudo_helper won't be a problem. I would work on that if it's OK for you. Thanks, Qu > >> With this patchset applied (along with that fix for v5.1), fsck tests >> all passes without valgrind error except mentioned fsck/012 above. >> >> Qu Wenruo (6): >> btrfs-progs: tests/common: Don't call INSTRUMENT on mount command >> btrfs-progs: check/original: Fix uninitialized stack memory access for >> deal_root_from_list() >> btrfs-progs: check/original: Fix uninitialized memory for newly >> allocated data_backref >> btrfs-progs: check/original: Fix uninitialized return value from >> btrfs_write_dirty_block_groups() >> btrfs-progs: check/original: Fix uninitialized extent buffer contents >> btrfs-progs: extent-tree: Fix wrong post order rb tree cleanup for >> block groups > > Added to devel. >
On Thu, Mar 26, 2020 at 08:59:16AM +0800, Qu Wenruo wrote: > > > On 2020/3/25 下午10:42, David Sterba wrote: > > On Tue, Mar 24, 2020 at 06:53:09PM +0800, Qu Wenruo wrote: > >> This patchset can be fetched from github: > >> https://github.com/adam900710/btrfs-progs/tree/valgrind_fixes > >> > >> Inspired by that long-existing-but-I-can't-reproduce v5.1 bug, I will > >> never trust D=asan/D=uban anymore, and run valgrind on all fsck-tests. > >> > >> The patchset is the result from the latest valgrind runs. > >> > >> The first patch is to make "make INSTRUMENT=valgrind test-fsck" run > >> smoothly without false alerts due to mount/umount failure with valgrind. > > > > Thanks, that's great. In addition to that, all commands that use the > > SUDO_HELPER/root_helper won't pass through valgrind. For maximum > > coverage we might want to remove the helper from the subcommands of > > 'btrfs'. From a quick scan I found a lot of them and I'm not sure that > > all are required. There's a lot of copy&paste in the tests, so that > > would have to be cleaned up, or we leave it as it is and run the whole > > tests under root. > > The root fix is, like what we did for lowmem mode, injecting valgrind to > proper location. > > Currently I take a shortcut to reuse current infrastructure, but the > root fix would need to inject INSTRUMENT directly before > "btrfs/mkfs.btrfs/btrfs-convert", so that sudo_helper won't be a problem. That's a great idea. For some reason I thought that valgrind refused to work under root but that's not true. Injecting the instrumentation only to the tools built from git is exactly what we want.