[LU-12262] Improve sbi_flags checking Created: 01/May/19 Updated: 10/Oct/21 Resolved: 10/Oct/21 |
|
| Status: | Resolved |
| Project: | Lustre |
| Component/s: | None |
| Affects Version/s: | Lustre 2.13.0 |
| Fix Version/s: | Lustre 2.15.0 |
| Type: | Bug | Priority: | Minor |
| Reporter: | Patrick Farrell (Inactive) | Assignee: | James A Simmons |
| Resolution: | Fixed | Votes: | 0 |
| Labels: | None | ||
| Issue Links: |
|
||||||||||||||||
| Severity: | 3 | ||||||||||||||||
| Rank (Obsolete): | 9223372036854775807 | ||||||||||||||||
| Description |
|
In Nowadays if we do get_param on lustre-....sbi_flags we get back: error: get_param: reading 'llite.lustre-ffff88009a0ca800.sbi_flags': Invalid argument and then in the kernel [ 788.311079] LustreError: 10351:0:(lproc_llite.c:967:ll_sbi_flags_seq_show()) lustre: Revise array LL_SBI_FLAGS to match sbi flags please. The result is of course every test that checks feature flags is now not finding anything it's looking for and skips. in particular al layoutswaps (test 184*) and a bunch of other stuff is now in perma-skip mode. This was broken in Also I think we ned to convert that error message into an assertion. Problems like here we'd catch sooner and if some client has some flags set incorrectly we are probably ok panicking there as well as there's clearly some unexpected memory corruption or whatnot going on?" This ticket is to capture his suggestions at the end, to improve checking so we can't accidentally remove a flag like this in the future. |
| Comments |
| Comment by Andreas Dilger [ 29/Oct/19 ] |
|
It looks like this was fixed in patch https://review.whamcloud.com/34187 " |
| Comment by Andreas Dilger [ 29/Oct/19 ] |
|
Note that the actual LL_SBI_* values are not exposed outside of the lustre/llite code. The real bug was that a flag value was removed, and the corresponding line in the LL_SBI_FLAGS array was also removed, but LL_SBI_FLAGS needs to be a contiguous array in LL_SBI_* order. |
| Comment by James A Simmons [ 30/Oct/19 ] |
|
I think Patrick was trying to prevent the lose of your idea: enum ll_sbi_flags {
LL_SBI_NOLCK, /* DLM locking disabled (O_DIRECT only) */
:
:
LL_SBI_TINY_WRITE, /* tiny write support */
LL_SBI_LAST /* sentinel at end of list */
};
#define LL_SBI_FLAGS { \
[LL_SBI_NOLCK] = "nolck", \
[LL_SBI_CHECKSUM] = "checksum", \
|
| Comment by Andreas Dilger [ 29/May/21 ] |
|
Andreas Dilger (adilger@whamcloud.com) uploaded a new patch: https://review.whamcloud.com/43871 |
| Comment by Gerrit Updater [ 10/Aug/21 ] |
|
"James Simmons <jsimmons@infradead.org>" uploaded a new patch: https://review.whamcloud.com/44541 |
| Comment by Gerrit Updater [ 10/Oct/21 ] |
|
"Oleg Drokin <green@whamcloud.com>" merged in patch https://review.whamcloud.com/44541/ |