Adar Dembo has submitted this change and it was merged. Change subject: KUDU-1508: script for testing presence of bug and finding upper bounds ......................................................................
KUDU-1508: script for testing presence of bug and finding upper bounds This patch introduces a script that tests for the presence of KUDU-1508 and establishes a "safe" upper bound on the number of extents an ext4 file can have before it becomes vulnerable to the bug. The upper bound is actually a function of the filesystem's block size, since that's the granularity on which hole punching operates. When run on my laptop (Ubuntu 16.04): This kernel is not vulnerable to KUDU-1508, skipping test When run on ve0518 (an el6.6 box): This kernel is vulnerable to KUDU-1508, finding per-block size upper bounds Block size 1024: searching for block number upper bound (MIN=0,MAX=16384) Block size 1024: 8192 bad (MIN=0,MAX=16384) Block size 1024: 4095 bad (MIN=0,MAX=8191) Block size 1024: 2047 bad (MIN=0,MAX=4094) Block size 1024: 1023 bad (MIN=0,MAX=2046) Block size 1024: 511 good (MIN=0,MAX=1022) Block size 1024: 767 bad (MIN=512,MAX=1022) Block size 1024: 639 good (MIN=512,MAX=766) Block size 1024: 703 bad (MIN=640,MAX=766) Block size 1024: 671 good (MIN=640,MAX=702) Block size 1024: 687 bad (MIN=672,MAX=702) Block size 1024: 679 bad (MIN=672,MAX=686) Block size 1024: 675 bad (MIN=672,MAX=678) Block size 1024: 673 good (MIN=672,MAX=674) Block size 1024: upper bound found at 673 Block size 2048: searching for block number upper bound (MIN=0,MAX=16384) Block size 2048: 8192 bad (MIN=0,MAX=16384) Block size 2048: 4095 bad (MIN=0,MAX=8191) Block size 2048: 2047 bad (MIN=0,MAX=4094) Block size 2048: 1023 good (MIN=0,MAX=2046) Block size 2048: 1535 bad (MIN=1024,MAX=2046) Block size 2048: 1279 good (MIN=1024,MAX=1534) Block size 2048: 1407 bad (MIN=1280,MAX=1534) Block size 2048: 1343 good (MIN=1280,MAX=1406) Block size 2048: 1375 bad (MIN=1344,MAX=1406) Block size 2048: 1359 bad (MIN=1344,MAX=1374) Block size 2048: 1351 good (MIN=1344,MAX=1358) Block size 2048: 1355 bad (MIN=1352,MAX=1358) Block size 2048: 1353 good (MIN=1352,MAX=1354) Block size 2048: upper bound found at 1353 Block size 4096: searching for block number upper bound (MIN=0,MAX=16384) Block size 4096: 8192 bad (MIN=0,MAX=16384) Block size 4096: 4095 bad (MIN=0,MAX=8191) Block size 4096: 2047 good (MIN=0,MAX=4094) Block size 4096: 3071 bad (MIN=2048,MAX=4094) Block size 4096: 2559 good (MIN=2048,MAX=3070) Block size 4096: 2815 bad (MIN=2560,MAX=3070) Block size 4096: 2687 good (MIN=2560,MAX=2814) Block size 4096: 2751 bad (MIN=2688,MAX=2814) Block size 4096: 2719 good (MIN=2688,MAX=2750) Block size 4096: 2735 bad (MIN=2720,MAX=2750) Block size 4096: 2727 bad (MIN=2720,MAX=2734) Block size 4096: 2723 bad (MIN=2720,MAX=2726) Block size 4096: 2721 good (MIN=2720,MAX=2722) Block size 4096: upper bound found at 2721 Change-Id: I710918a153a9e8e05e989fe63281891c9ebc7178 Reviewed-on: http://gerrit.cloudera.org:8080/4730 Tested-by: Kudu Jenkins Reviewed-by: Todd Lipcon <[email protected]> --- A src/kudu/experiments/KUDU-1508/hole_punch_range.c A src/kudu/experiments/KUDU-1508/run_test.sh 2 files changed, 234 insertions(+), 0 deletions(-) Approvals: Todd Lipcon: Looks good to me, approved Kudu Jenkins: Verified -- To view, visit http://gerrit.cloudera.org:8080/4730 To unsubscribe, visit http://gerrit.cloudera.org:8080/settings Gerrit-MessageType: merged Gerrit-Change-Id: I710918a153a9e8e05e989fe63281891c9ebc7178 Gerrit-PatchSet: 3 Gerrit-Project: kudu Gerrit-Branch: master Gerrit-Owner: Adar Dembo <[email protected]> Gerrit-Reviewer: Adar Dembo <[email protected]> Gerrit-Reviewer: Kudu Jenkins Gerrit-Reviewer: Todd Lipcon <[email protected]>
