]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commit
librbd: store CRC32C with initial value -1 to match msgr2 validation 66377/head
authorAlexander Indenbaum <aindenba@redhat.com>
Sun, 23 Nov 2025 12:21:39 +0000 (14:21 +0200)
committerAlexander Indenbaum <aindenba@redhat.com>
Wed, 26 Nov 2025 08:05:34 +0000 (10:05 +0200)
commit36d99e37cdb3609e5b7a5b7ae0a45673bce5bc35
tree9acae34ad7a1d6514f1732987c92b3788941c0f9
parentb2fe7495ddc67df35b2af9224d5e2e79ba62703e
librbd: store CRC32C with initial value -1 to match msgr2 validation

Fix runtime error, using test command:
   sudo dd if=/dev/zero bs=32k of=/dev/nvme0n1 count=1

The error log:
   2025-11-23T11:24:10.512+0000 7f30f4ec0640  1 --2- [v2:192.168.13.2:6802/3444906816,v1:192.168.13.2:6803/3444906816] >> 192.168.13.3:0/3916714748 conn(0x527d400 0x728f700 crc :-1 s=THROTTLE_DONE pgs=2038703 gs=2038723 cs=0 l=1 c_cookie=0 s_cookie=0 reconnecting=0 rev1=1 crypto rx=0 tx=0 comp rx=0 tx=0)._handle_read_frame_epilogue_main bad segment crc calculated=1136411986 expected=4294967295

Ceph msgr2 validation (ceph/src/msg/async/frames_v2.cc:47):
   uint32_t crc = segment_bl.crc32c(-1);  // Uses initial value -1

Co-authored-by: Ilya Dryomov <idryomov@gmail.com>
Signed-off-by: Alexander Indenbaum <aindenba@redhat.com>
src/include/rbd/librbd.h
src/librbd/librbd.cc