]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
qa/workunits/rbd: avoid caching effects in luks-encryption.sh 58852/head
authorIlya Dryomov <idryomov@gmail.com>
Fri, 19 Jul 2024 17:35:28 +0000 (19:35 +0200)
committerIlya Dryomov <idryomov@gmail.com>
Thu, 25 Jul 2024 13:44:27 +0000 (15:44 +0200)
Commit 40f6f5224bce ("qa/workunits/rbd: fix issues in
luks-encryption.sh") did the right thing for reads, which solved
most of the issue.  However, it actually made a step in the opposite
direction for writes -- depending on the RBD cache settings, rbd-nbd
virtual devices can behave as physical devices with a volatile write
cache, so fsync is required.

While at it, involving O_DIRECT for reads isn't needed outside of
test_encryption_format().

Fixes: https://tracker.ceph.com/issues/67051
Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
(cherry picked from commit 9e1c0342e9931e898d795d47f923edd3b4324f4a)

Conflicts:
qa/workunits/rbd/luks-encryption.sh [ commit 1d3de19c4005
  ("tools/rbd: add encryption format support for cloned image")
  not in quincy ]

qa/workunits/rbd/luks-encryption.sh

index 47a94a6e5781e133046536024ec813148ef621bf..91e8073da7ca7e2b966540e7a7015bb58f126fdd 100755 (executable)
@@ -43,12 +43,12 @@ function test_encryption_format() {
   sudo chmod 666 $LIBRBD_DEV
 
   # write via librbd && compare
-  dd if=/tmp/testdata1 of=$LIBRBD_DEV oflag=direct bs=1M
+  dd if=/tmp/testdata1 of=$LIBRBD_DEV conv=fsync bs=1M
   dd if=/dev/mapper/cryptsetupdev of=/tmp/cmpdata iflag=direct bs=4M count=4
   cmp -n 16MB /tmp/cmpdata /tmp/testdata1
 
   # write via cryptsetup && compare
-  dd if=/tmp/testdata2 of=/dev/mapper/cryptsetupdev oflag=direct bs=1M
+  dd if=/tmp/testdata2 of=/dev/mapper/cryptsetupdev conv=fsync bs=1M
   dd if=$LIBRBD_DEV of=/tmp/cmpdata iflag=direct bs=4M count=4
   cmp -n 16MB /tmp/cmpdata /tmp/testdata2
 }