Commit Graph

59 Commits

Author SHA1 Message Date
Joe Thornber 2860b4c0b1 [thin_check] rename --fix-metadata-leaks to --auto-repair
This flag will cover all trivial fixes, such as data leaks.
2020-08-12 10:45:20 +01:00
Ming-Hung Tsai b278f4ffa4 [thin_check] Change the policy of --clear-needs-check-flag to prevent error recurrence
- Disallow clearing the needs_check flag if there's any error,
  i.e., the metadata must be fully examined, and the result must
  be NO_ERROR.
- Disallow combining --clear-needs-check with -m, --super-blocks-only,
  --skip-mappings, --override-mapping-root, or --ignore-non-fatal-errors.
2020-07-30 23:00:50 +08:00
Ming-Hung Tsai 49efa06ffa [thin_check] Support fixing leaked metadata blocks
- The leaked blocks are defined as allocated but not used ones,
  i.e., expected ref-count == 0 and actual ref-count <= 2.
- Blocks with expected ref-count > 0, or actual ref-count > 2,
  are treated as unrepairable leaks.
- The fixing processing won't be executed if there's any
  unrepairable leak or errors.
- The fixing process implicitly clearing the superblock
  needs_check flag if there's no error.
2020-07-30 23:00:50 +08:00
Joe Thornber fec11289b0 [thin_check/dump] Under populated nodes are now 'non fatal errors'
thin_dump always ignores non-fatal-errors.
2020-07-02 16:03:23 +01:00
Joe Thornber 0b5afc6cb0 [thin_check] fix bugs in thin_check -m 2020-06-12 13:41:47 +01:00
Joe Thornber 86704deacb [thin_check] Add support for --metadata-snap.
Not tested yet.
2020-06-09 14:25:19 +01:00
Joe Thornber 16a10d2554 [thin_check] Remove the metadata_checker base class.
It's really only a single method.
2020-05-28 14:43:03 +01:00
Joe Thornber e801cc607b [block_manager] Hard code block size to 4k.
We're never going to use anything other than 4k, and by hard coding it we
avoid making block_manager a template.
2020-04-30 14:30:01 +01:00
Ming-Hung Tsai c85ea5ef76 [thin_check] factor out metadata_checker 2020-02-17 11:42:24 +00:00
Joe Thornber b777a77023 [thin-provisioning] pass the tm by reference to the metadata object 2019-04-04 15:06:41 +01:00
Joe Thornber d1a41d01cc [thin-check] print out some info fields.
These are consumed by lvm.
2018-11-09 12:43:21 +00:00
csonto 5b5aa971a0 Detect XML in *_check tools (#86)
* [*_check] Detect XML in cache_check and era_check

This is based on previous commit b10d8d4440.

* [*_check] Fix typo in check_superblock
2017-10-05 13:47:10 +01:00
Joe Thornber 3c761e6822 [all tools] Factor out open_bm() and open_tm.
Many duplicates of this code.
2017-10-05 11:53:40 +01:00
Joe Thornber 24931b3bda [thin_check] --override-mapping-root 2017-10-04 11:43:13 +01:00
Joe Thornber b10d8d4440 [thin_check] Spot XML and be helpful. 2017-09-15 15:22:04 +01:00
Joe Thornber 3c02151a4f Merge branch 'master' into v0.7-devel
Conflicts:
	persistent-data/file_utils.cc
	persistent-data/file_utils.h
2016-04-05 13:13:10 +01:00
Ming-Hung Tsai f20e2a0f40 [thin_check] cleanup: use metadata_counter 2016-04-05 16:09:58 +08:00
Joe Thornber 8676198e76 [file_utils] rename get_nr_blocks() -> get_nr_metadata_blocks() and introduce get_nr_blocks() 2016-03-04 10:43:58 +00:00
Joe Thornber c93e728ef4 [base] introduce a command type that gets registered with the app 2016-01-08 12:51:52 +00:00
Joe Thornber 5d28c05dc3 [thin_check] detail and mapping trees weren't being counted properly for the metadata snap.
This could result in block counts being unexpectedly non zero.
2015-08-04 15:14:02 +01:00
Joe Thornber 082491d140 thin_check: tidy up some unintuitive code 2015-06-22 11:13:19 +01:00
Joe Thornber 270c0f7041 [thin_check] factor out check_space_map_counts() 2015-04-08 14:07:38 +01:00
Joe Thornber 0fee897fda [thin_check] A space map count being too high should be a NON_FATAL error. 2015-04-08 12:32:31 +01:00
Joe Thornber 20079f3d28 Pass tm's by reference 2015-04-07 13:31:45 +01:00
Joe Thornber ee200ba85b Merge branch 'master' into space-map-checking 2015-04-07 12:18:23 +01:00
Joe Thornber 6f8b7e2914 [all] Build a single executable 2014-08-27 14:01:31 +01:00
Joe Thornber a7c96c0e1e [everything] Fix circular shared pointer references.
We had a cycle from transaction_manager <-> space_map, and also from
the ref_counters back up to the tm.

This prevented objects being destroyed when various programs exited.

From now on we'll try and only use a shared ptr if ownership is
implied.  Otherwise a reference will be used (eg, for up pointers).
2014-08-26 11:14:49 +01:00
Joe Thornber d517684c95 Initial code drop for merging block_cache 2014-07-22 16:41:39 +01:00
Joe Thornber 05b18a5b99 [thin_check] Fix bug in clear needs check logic.
Mixed up bools and int returns.
2014-04-02 13:43:16 +01:00
Joe Thornber c3249ff757 [thin_check] --clear-needs-check-flag 2014-03-27 12:00:17 +00:00
Joe Thornber 50d1a3e7d2 [thin_check] inc superblock and metadata snap in space map checking 2014-02-20 16:36:03 +00:00
Joe Thornber 9f6546f621 put space map checking back in 2014-02-19 16:08:05 +00:00
Joe Thornber 9dc4a97cb7 [thin_check] thin_check wasn't giving a non-zero exit code for damage in mapping trees 2013-10-15 10:40:26 +01:00
Joe Thornber 6615b25e4b WIP on cache tools 2013-09-11 11:40:46 +01:00
Joe Thornber 67551d81f1 Put error_state into into it's own file. 2013-08-16 14:07:04 +01:00
Joe Thornber 94bd3aef3b Put nested_output in it's own file 2013-08-16 13:48:25 +01:00
Joe Thornber 500e508c6d fix up some coverity issues 2013-08-15 16:26:17 +01:00
Joe Thornber 77286e0bc7 Take out some 'typename's to support older versions of gcc (Heinz). 2013-08-15 10:35:07 +01:00
Joe Thornber 0029962f20 Give up with --std=c++11
There are too many distros that use old versions of g++ that don't support it adequately.
2013-08-08 10:49:59 +01:00
Heinz Mauelshagen e16b7c8ea0 Fluff 2013-07-29 12:29:05 +02:00
Heinz Mauelshagen f376fdfb49 thin_check.cc: remove superfluous 'if (enabled)' 2013-06-21 12:35:06 +02:00
Heinz Mauelshagen 9900c91c1b thin_check.cc: support --quiet in nested_output 2013-06-21 12:35:06 +02:00
Heinz Mauelshagen 5d6a3c184b thin_check.cc: remove superfluous 'if (enabled)' 2013-06-19 14:15:53 +02:00
Heinz Mauelshagen 41287e182f thin_check.cc: support --quiet in nested_output 2013-06-19 14:12:44 +02:00
Heinz Mauelshagen 88f9252a03 thin_check.cc: reenable --quiet option 2013-06-19 13:41:29 +02:00
Joe Thornber 5498e0bc46 [thin_check] fluff 2013-05-23 13:57:15 +01:00
Joe Thornber 063769cd12 [thin_check] we don't need to import the persistent_data namespace any more. 2013-05-23 12:00:36 +01:00
Joe Thornber e7303a11c6 [thin_check] --ignore-non-fatal-errors 2013-05-23 11:57:02 +01:00
Joe Thornber 84858ab86e whitespace 2013-05-23 11:46:06 +01:00
Joe Thornber f8efc4f58c [thin_check] Add cucumber test for --skip-mappings 2013-05-23 11:45:08 +01:00