Project

General

Profile

Actions

Bug #41901

closed

bluestore: unused calculation is broken

Added by xie xingguo over 4 years ago. Updated about 3 years ago.

Status:
Resolved
Priority:
Normal
Assignee:
Target version:
-
% Done:

0%

Source:
Community (dev)
Tags:
Backport:
octopus, nautilus, mimic
Regression:
No
Severity:
3 - minor
Reviewed:
Affected Versions:
ceph-qa-suite:
Pull request ID:
Crash signature (v1):
Crash signature (v2):

Description

2019-09-16T10:48:48.852+0800 7fa1a4ce9700 15 bluestore(/clove/xxG/ceph/build/dev/osd0) _write 1.1_head #1:ae0e8960:::rbd_data.10291fa35892.000000000
0000011:head# 0x11000~1000
2019-09-16T10:48:48.852+0800 7fa1a4ce9700 20 bluestore(/clove/xxG/ceph/build/dev/osd0) _do_write #1:ae0e8960:::rbd_data.10291fa35892.000000000000001
1:head# 0x11000~1000 - have 0x400000 (4194304) bytes fadvise_flags 0x28
2019-09-16T10:48:48.852+0800 7fa1a4ce9700 20 bluestore(/clove/xxG/ceph/build/dev/osd0) _choose_write_options prefer csum_order 12 target_blob_size 0
x80000 compress=0 buffered=0
2019-09-16T10:48:48.852+0800 7fa1a4ce9700 10 bluestore(/clove/xxG/ceph/build/dev/osd0) _do_write_small 0x11000~1000
2019-09-16T10:48:48.852+0800 7fa1a4ce9700 20 bluestore(/clove/xxG/ceph/build/dev/osd0) _do_write_small considering Blob(0x55cfd8bd8ee0 blob([0x1a550
000~10000] csum+has_unused crc32c/0x1000 unused=0xcffa) use_tracker(0x10000 0x4000) SharedBlob(0x55cfdd9c2070 sbid 0x0)) bstart 0x0
2019-09-16T10:48:48.852+0800 7fa1a4ce9700 20 bluestore(/clove/xxG/ceph/build/dev/osd0) _do_write_small considering Blob(0x55cfd8bd8ee0 blob([0x1a550
000~10000] csum+has_unused crc32c/0x1000 unused=0xcffa) use_tracker(0x10000 0x4000) SharedBlob(0x55cfdd9c2070 sbid 0x0)) bstart 0x0
2019-09-16T10:48:48.852+0800 7fa1a4ce9700 20 bluestore(/clove/xxG/ceph/build/dev/osd0) _do_write_small considering Blob(0x55cfd8bd8ee0 blob([0x1a550
000~10000] csum+has_unused crc32c/0x1000 unused=0xcffa) use_tracker(0x10000 0x4000) SharedBlob(0x55cfdd9c2070 sbid 0x0)) bstart 0x0
2019-09-16T10:48:48.852+0800 7fa1a4ce9700 20 bluestore(/clove/xxG/ceph/build/dev/osd0) _pad_zeros pad 0x0 + 0x0 on front/back, now 0x1000~1000
2019-09-16T10:48:48.852+0800 7fa1a4ce9700 20 bluestore(/clove/xxG/ceph/build/dev/osd0) _do_alloc_write txc 0x55cfd807c900 1 blobs
2019-09-16T10:48:48.852+0800 7fa1a4ce9700 10 fbmap_alloc 0x55cfd3ff2600 allocate 0x10000/10000,10000,0
2019-09-16T10:48:48.852+0800 7fa1a4ce9700 10 fbmap_alloc 0x55cfd3ff2600 allocate extent: 0x1a560000~10000/10000,10000,0
2019-09-16T10:48:48.852+0800 7fa1a4ce9700 20 bluestore(/clove/xxG/ceph/build/dev/osd0) _do_alloc_write prealloc [0x1a560000~10000]
2019-09-16T10:48:48.852+0800 7fa1a4ce9700 20 bluestore(/clove/xxG/ceph/build/dev/osd0) _do_alloc_write forcing csum_order to block_size_order 12
2019-09-16T10:48:48.852+0800 7fa1a4ce9700 20 bluestore(/clove/xxG/ceph/build/dev/osd0) _do_alloc_write forcing blob_offset to 0x11000
2019-09-16T10:48:48.852+0800 7fa1a4ce9700 20 bluestore(/clove/xxG/ceph/build/dev/osd0) _do_alloc_write initialize csum setting for new blob Blob(0x5
5cfdd9c2150 blob([]) use_tracker(0x0 0x0) SharedBlob(0x55cfdd531180 sbid 0x0)) csum_type crc32c csum_order 12 csum_length 0x20000
2019-09-16T10:48:48.852+0800 7fa1a4ce9700 20 bluestore(/clove/xxG/ceph/build/dev/osd0) _do_alloc_write blob Blob(0x55cfdd9c2150 blob([!~10000,0x1a56
0000~10000] csum crc32c/0x1000) use_tracker(0x0 0x0) SharedBlob(0x55cfdd531180 sbid 0x0))
2019-09-16T10:48:48.852+0800 7fa1a4ce9700 20 bluestore.blob(0x55cfdd9c2150) get_ref 0x11000~1000 Blob(0x55cfdd9c2150 blob([!~10000,0x1a560000~10000]
csum+has_unused crc32c/0x1000 unused=0xff) use_tracker(0x0 0x0) SharedBlob(0x55cfdd531180 sbid 0x0))
2019-09-16T10:48:48.852+0800 7fa1a4ce9700 20 bluestore.BufferSpace(0x55cfdd531198 in 0x55cfd3ff7180) _discard 0x11000~1000
2019-09-16T10:48:48.852+0800 7fa1a4ce9700 20 bluestore(/clove/xxG/ceph/build/dev/osd0) _do_alloc_write deferring small 0x1000 write via deferred
2019-09-16T10:48:48.852+0800 7fa1a4ce9700 20 bluestore(/clove/xxG/ceph/build/dev/osd0) _do_write perform garbage collection for compressed extents,
expected benefit = 0 AUs
2019-09-16T10:48:48.852+0800 7fa1a4ce9700 20 bluestore.extentmap(0x55cfd8a3f770) dirty_range mark inline shard dirty
2019-09-16T10:48:48.852+0800 7fa1a4ce9700 10 bluestore(/clove/xxG/ceph/build/dev/osd0) _write 1.1_head #1:ae0e8960:::rbd_data.10291fa35892.000000000
0000011:head# 0x11000~1000 = 0
2019-09-16T10:48:48.852+0800 7fa1a4ce9700 15 bluestore(/clove/xxG/ceph/build/dev/osd0) _write 1.1_head #1:ae0e8960:::rbd_data.10291fa35892.000000000
0000011:head# 0x15000~3000
2019-09-16T10:48:48.852+0800 7fa1a4ce9700 20 bluestore(/clove/xxG/ceph/build/dev/osd0) _do_write #1:ae0e8960:::rbd_data.10291fa35892.000000000000001
1:head# 0x15000~3000 - have 0x400000 (4194304) bytes fadvise_flags 0x28
2019-09-16T10:48:48.852+0800 7fa1a4ce9700 20 bluestore(/clove/xxG/ceph/build/dev/osd0) _choose_write_options prefer csum_order 12 target_blob_size 0
x80000 compress=0 buffered=0
2019-09-16T10:48:48.852+0800 7fa1a4ce9700 10 bluestore(/clove/xxG/ceph/build/dev/osd0) _do_write_small 0x15000~3000
2019-09-16T10:48:48.852+0800 7fa1a4ce9700 20 bluestore(/clove/xxG/ceph/build/dev/osd0) _do_write_small considering Blob(0x55cfdd9c2150 blob([!~10000
,0x1a560000~10000] csum+has_unused crc32c/0x1000 unused=0xff) use_tracker(0x2*0x10000 0x[0,1000]) SharedBlob(0x55cfdd531180 sbid 0x0)) bstart 0x0
2019-09-16T10:48:48.852+0800 7fa1a4ce9700 20 bluestore(/clove/xxG/ceph/build/dev/osd0) _do_write_small reading head 0x0 and tail 0x0
2019-09-16T10:48:48.852+0800 7fa1a4ce9700 20 bluestore.BufferSpace(0x55cfdd531198 in 0x55cfd3ff7180) _discard 0x15000~3000
2019-09-16T10:48:48.852+0800 7fa1a4ce9700 20 bluestore(/clove/xxG/ceph/build/dev/osd0) _do_write_small deferred write 0x15000~3000 of mutable Blob(
0x55cfdd9c2150 blob([!~10000,0x1a560000~10000] csum+has_unused crc32c/0x1000 unused=0xff) use_tracker(0x2*0x10000 0x[0,1000]) SharedBlob(0x55cfdd531
180 sbid 0x0)) at [0x1a565000~3000]
2019-09-16T10:48:48.852+0800 7fa1a4ce9700 20 bluestore.blob(0x55cfdd9c2150) get_ref 0x15000~3000 Blob(0x55cfdd9c2150 blob([!~10000,0x1a560000~10000]
csum+has_unused crc32c/0x1000 unused=0xff) use_tracker(0x2*0x10000 0x[0,1000]) SharedBlob(0x55cfdd531180 sbid 0x0))
2019-09-16T10:48:48.852+0800 7fa1a4ce9700 20 bluestore(/clove/xxG/ceph/build/dev/osd0) _do_write_small lex 0x15000~3000: 0x15000~3000 Blob(0x55cfdd
9c2150 blob([!~10000,0x1a560000~10000] csum+has_unused crc32c/0x1000 unused=0xff) use_tracker(0x2*0x10000 0x[0,4000]) SharedBlob(0x55cfdd531180 sbid
0x0))
2019-09-16T10:48:48.852+0800 7fa1a4ce9700 20 bluestore(/clove/xxG/ceph/build/dev/osd0) _do_alloc_write txc 0x55cfd807c900 0 blobs
2019-09-16T10:48:48.852+0800 7fa1a4ce9700 20 bluestore(/clove/xxG/ceph/build/dev/osd0) _do_write perform garbage collection for compressed extents,
expected benefit = 0 AUs
2019-09-16T10:48:48.852+0800 7fa1a4ce9700 20 bluestore.extentmap(0x55cfd8a3f770) dirty_range mark inline shard dirty

the second small write 0x15000~3000 was supposed to fill in the unused slot but it did not.
Also note that the unused field of blob (0x55cfdd9c2150) is wrong.


Related issues 3 (0 open3 closed)

Copied to bluestore - Backport #45062: mimic: bluestore: unused calculation is brokenRejectedActions
Copied to bluestore - Backport #45063: octopus: bluestore: unused calculation is brokenResolvedNathan CutlerActions
Copied to bluestore - Backport #45064: nautilus: bluestore: unused calculation is brokenResolvedNathan CutlerActions
Actions #1

Updated by Neha Ojha over 4 years ago

  • Project changed from RADOS to bluestore
  • Category deleted (Correctness/Safety)
Actions #2

Updated by Igor Fedotov over 4 years ago

  • Status changed from New to Fix Under Review
  • Pull request ID set to 30444
Actions #4

Updated by Igor Fedotov about 4 years ago

  • Assignee set to Igor Fedotov
Actions #5

Updated by Kefu Chai about 4 years ago

  • Status changed from Fix Under Review to Resolved
Actions #6

Updated by Igor Fedotov about 4 years ago

  • Status changed from Resolved to Pending Backport
  • Backport set to octopus, nautilus, mimic
Actions #7

Updated by Nathan Cutler about 4 years ago

  • Copied to Backport #45062: mimic: bluestore: unused calculation is broken added
Actions #8

Updated by Nathan Cutler about 4 years ago

  • Copied to Backport #45063: octopus: bluestore: unused calculation is broken added
Actions #9

Updated by Nathan Cutler about 4 years ago

  • Copied to Backport #45064: nautilus: bluestore: unused calculation is broken added
Actions #10

Updated by Nathan Cutler almost 4 years ago

  • Pull request ID changed from 30444 to 33052
Actions #11

Updated by Nathan Cutler about 3 years ago

  • Status changed from Pending Backport to Resolved

While running with --resolve-parent, the script "backport-create-issue" noticed that all backports of this issue are in status "Resolved" or "Rejected".

Actions

Also available in: Atom PDF