New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Support future kernel scrub output #2342
Comments
Example scrub output from a default openSUSE Leap 15.3 kernel:
And example 5.15 kernel scrub output, as supplied by dunkelfalke
As such our parsing function will require an additional 'personality' to switch to if needed: |
Linking to potentially related work-done in the interim: Scrub UI - Integer Out of Range #2397 #2398 @Hooverdan96 And to a prior adaptation on scrub format changes: BTRFS SCRUB status enhancements for rockstor #2157 @ubenmackin @FroggyFlox |
Taking a fresh look re my comment here: https://forum.rockstor.com/t/integer-out-of-range/8183/12
The referenced issue is this one! Our test coverage is actually likely broken due to the addition of a new run_command added in the last major change reverenced earlier: self.patch_run_command = patch("fs.btrfs.run_command") Existing 'personalities' for our existing scrub_status() function: if parse_version(btrfsProgsVers) < parse_version("v5.1.2"): It looks like we need to move-on (deprecate) legacy progs version support if we are not to build up an ever longer list of variations here. At least until we have a json output to process, or post our move to libbtrfsutil. |
As of comment date: Stable Kernel Backport (and filesystem) as per: https://rockstor.com/docs/howtos/stable_kernel_backport.htmlAs performed on a Leap 15.4 base.
Default Leap 15.4 fully updated:
Now EOL Leap 15.3:
|
Currently re-factoring scrub status code to address the follow-up suggestions in the review of the last major change in this area: BTRFS SCRUB status enhancements for rockstor #2157 @ubenmackin @FroggyFlox And developing the unit tests that were not submitted with those changes, in order that we can return, before our next stable update, to having better unit test coverage of this newer btrfs-progs output and our additional newer feature of extracting from non raw output also the ETA etc. |
Previous scrub status enhancements lacked test coverage. By refactoring our scrub status parsing mechanisms we can return almost full test coverage to this capability. Replaces all-in-one scrub_status() with a wrapper that invokes: 1. scrub_status_raw() 'btrfs scrub status -R' parser. 2. scrub_status_extra() non '-R' variant of 1. Combining the results there-after. ## Includes - Replacing pkg_resources (setuptools) 'parse_version' with custom btrfsprogs_legacy() function. - Tests for btrfsprogs_legacy() and previously missing scrub status parsing extensions now refactored into (1.) and (2.) above.
…rub_output Refactor scrub status parsing to enhance/enable testing #2342
Closing as having its last outstanding elements: testability & mostly full tests addressed via: |
Thanks to forum member dunkelfalke for highlighting this issue. If one runs a non default kernel e.g. a Stable backports kernel such as is referenced in the following pull request:
"Remarked Kernel_Head & Kernel_stable_Backport + filesystems repos ..."
See: rockstor/rockstor-installer#88
The btrfs scrub status output is radically changed. This in turn throws our scrub reporting and ends up in a database error akin to:
As detailed in the following forum thread:
https://forum.rockstor.com/t/integer-out-of-range/8183
[EDIT]
From a mostly functional point of view this issue has been addressed: see the comment copied from below:
But is now awaiting the initially missed test coverage: See the following linked pull request below for this connection.
Refactor scrub status parsing to enhance/enable testing #2342 #2493
The text was updated successfully, but these errors were encountered: