1
0
mirror of git://sourceware.org/git/lvm2.git synced 2024-12-21 13:34:40 +03:00
Commit Graph

3341 Commits

Author SHA1 Message Date
David Teigland
4f9215e70f devices file: rename unused system.devices
If lvm.conf has use_devicesfile=0 and /etc/lvm/device/system.devices
exists, then rename it to system.devices-unused.YYYYMMDD.HHMMSS.
This prevents an old, incorrect system.devices from being used in
the future if lvm.conf is changed to use_devicesfile=1.
2024-02-15 11:40:37 -06:00
David Teigland
e59027e4f7 devices file: back up each version
Create backup copies of system.devices in /etc/lvm/devices/backup
named system.devices-YYYYMMDD.HHMMSS.NNNN.  NNNN is the version
counter from the file.

Each time that an lvm command writes a new system.devices file,
it also writes the same file in the backup directory.

A new comment line is added to system.devices with HASH=<num>
where <num> is a crc calculated from the uncommented lines in
system.devices.  This lets lvm detect if the file has been
modified outside of lvm itself.

If system.devices is edited directly, the next time a command
reads the file, the crc will not match the HASH value.  The
command will then rewrite system.devices with the correct HASH
value, and create a backup reflecting the edits.

A default limit of 50 backup files is kept, configurable by
lvm.conf devicesfile_backup_limit (set to 0 to disable backups.)
2024-02-15 11:40:37 -06:00
Zdenek Kabelac
c8f9dd2368 tests: testing creation of compressed thin-pool 2024-01-10 14:02:22 +01:00
David Teigland
e38d974b50 lvmdevices: handle empty fields in new check and update
Expand the recent commit 37773c1055
"lvmdevices: new output and options for check and update"
to specifically cover entries with empty fields.
2023-11-03 15:28:26 -05:00
David Teigland
37773c1055 lvmdevices: new output and options for check and update
- add new comparison between old and new entries, and use this
  as the basis for new dedicated output for check and update
- add new --refresh option to search for missing PVIDs on all
  devices, and possibly update the device ID
- internally, only use the term "refresh" for cases where a
  new device ID may be found and assigned for a missing PVID
2023-11-02 11:46:31 -05:00
David Teigland
ec47f0763d device_id: reduce messages
Don't print messages about devices file entries that are
missing or are being updated.
2023-11-02 11:46:31 -05:00
Zdenek Kabelac
5210f6665c tests: unit test for raid status 2023-10-31 18:53:30 +01:00
Zdenek Kabelac
0e2904d2c5 tests: longer timeout 2023-10-31 18:53:30 +01:00
Tony Asleson
3fa424f893 tests: lvmdbusd handles empty LvCommon.Devices
During vdo testing with smaller block devices the test needs to determine
which PVs in a VG are unused.  This was leveraging LvCommon.Devices, but
that isn't populated when a LV is resides on a LV pool instead of a PV.
This is a known limitation of the code at this time.  For now we will walk
all the PVs in the VG looking for ones that don't have any associated LVs
and use them instead.

Signed-off-by: Tony Asleson <tasleson@redhat.com>
2023-10-31 18:53:07 +01:00
David Teigland
282d947c36 tests: add devicesfile-misc 2023-10-23 15:17:29 -05:00
Zdenek Kabelac
c7851b9c34 tests: longer delay between table reloads
It looks like there is some kernel bug/limitation
that may cause invalid table load processing:

dmsetup load LVMTEST-LV1
device-mapper: reload ioctl on LVMTEST-LV1  failed: Invalid argument
  md/raid:mdX: reshape_position too early for auto-recovery - aborting.
           md: pers->run() failed ...
device-mapper: table: 253:38: raid: Failed to run raid array (-EINVAL)
device-mapper: ioctl: error adding target to table

However ATM there is not much we can do then make delays bigger.
TODO: fixing md core...
2023-10-20 00:21:13 +02:00
Zdenek Kabelac
5d4b2f9ea9 tests: skip on problematic kernel 2023-10-20 00:21:13 +02:00
Zdenek Kabelac
2e56778038 tests: aux kills lvmdbusd more agressively
It's not exactly trivial to kill 'frozen' lvmdbusd.
So skip the test testing interruption and also add killall use.
2023-10-18 01:48:50 +02:00
Zdenek Kabelac
beae68890c tests: wait till snapshot merge is finished
In case test runs with lvmpolld (and lvmlockd) wait till snapshot
merge is finished.
2023-10-18 01:47:13 +02:00
Zdenek Kabelac
8b8c9dea8a tests: init of dmevent may take upto a second
Dynamic load of plugins takes a while...
2023-10-17 23:24:03 +02:00
Zdenek Kabelac
249446e0aa tests: avoid busy looping
While waiting for the change, don't busy loop on CPU.
TODO: fix missing notification about device removal.
2023-10-17 16:49:23 +02:00
Zdenek Kabelac
cb2873ba1c tests: ensure file is removed
Make sure there are no previous loop results.
2023-10-17 16:49:23 +02:00
David Teigland
a836872199 device_id: accept wwids containing QEMU HARDDISK
A wwid may be useful even when it contains the string
"QEMU HARDDISK", so allow these to be used.
2023-10-16 15:21:22 -05:00
Zdenek Kabelac
d12e843e4a tests: aux mdadm_assemble skip path
If the old mdadm fails to assembly array due to its internal buggy logic
skip the test instead of failure.
2023-10-16 00:11:35 +02:00
Zdenek Kabelac
f55dc3006e tests: simplify line counting
No need for pipes
2023-10-15 21:48:22 +02:00
Zdenek Kabelac
098bc780a2 tests: better synchronization 2023-10-15 21:48:22 +02:00
Zdenek Kabelac
dfaa891281 tests: fsck with yes
Fsck may need to update metadata even after clean unmount.
2023-10-15 19:51:43 +02:00
Zdenek Kabelac
d5e58768aa tests: check for blkid
When libblkid is not present (older systems) we can't use new -fs tests at
all so skip these tests.
2023-10-15 14:43:13 +02:00
Zdenek Kabelac
63885da5b9 tests: shorting batch line output 2023-10-15 14:42:14 +02:00
Zdenek Kabelac
5cc54458b7 tests: old way to disable copy contructor
Mark them private.
2023-10-14 23:37:38 +02:00
Zdenek Kabelac
d2d8d0ab5a tests: io stream class saver
Restore io stream when changed by modifiers.
Also simplify getenv access.
2023-10-14 23:14:26 +02:00
Zdenek Kabelac
1a67bfe396 tests: extend the usability for older systems
Extend the test a bit futher so we can keep logic of resize
working similarly well for older and newer systems.

Test uses new 'aux have_fsinfo'function to regnize compiled
version of lvm.
2023-10-14 23:13:46 +02:00
Zdenek Kabelac
26766dcf73 tests: aux add have_fsinfo
Add function to detect whether lvm2 was compiled with
blkid.h with BLKID_SUBLKS_FSINFO

Currently it can be detected by support of '--fs checksize'.
2023-10-14 23:12:57 +02:00
Zdenek Kabelac
0b11b08b6e tests: handle empty table better 2023-10-13 15:00:55 +02:00
Zdenek Kabelac
9fa364414c tests: skip for missing mkfs.xfs 2023-10-13 14:33:56 +02:00
Zdenek Kabelac
1605d39b93 tests: comment about version checking to aux.sh
If there would be futher version checking needed,
make a notice there are now two -V formats.
2023-10-13 14:25:02 +02:00
Zdenek Kabelac
be2b3d5ab8 tests: increase delay 2023-10-13 14:25:02 +02:00
Zdenek Kabelac
061c008e15 tests: some minor enhancement of udev test
Reduce pgrep usage.
2023-10-13 14:25:02 +02:00
Zdenek Kabelac
53da646495 tests: fail tests when machine have suspended devs
If the machine has suspended devices present in the DM table,
it's better to fail the test.
2023-10-13 14:25:02 +02:00
Zdenek Kabelac
627535f33e tests: use function to restart dmeventd
Move restart to single function.
2023-10-13 14:25:02 +02:00
Bryn M. Reeves
0ff027ae2c dmstats: only generate aux data separator if group tag is defined
Fix a bug in _stats_set_aux() that causes bogus data to appear
in the 'userdata' field of stats reports when previously grouped
regions are ungrouped:

/var/tmp/File With Spaces: Created new group with 1 region(s) as group ID 0.

Removed group ID 0 on fedora-root

Name             GrpID RgID ObjType RgStart RgSize  #Areas ArSize  ProgID  UserData
fedora-root          -    0 region    6.39g 100.00m      1 100.00m dmstats #-
                                                                           ^^
This is the aux_data separator character followed by empty user data.
The _stats_set_aux() function should only emit the separator if
there is a valid group descriptor for the region.
2023-10-12 11:31:14 +00:00
Bryn M. Reeves
995c7b503b Add more dmstats integration tests
Add new tests for filemap, group/ungroup, histograms, precise timestamps
and userdata.
2023-10-12 11:31:14 +00:00
David Teigland
f20be398a1 device_id: refresh devname idnames if any are not found
Search for a PV on other devices if it's a devname entry
and the name doesn't exist on the system.  This restores
code that should not have been removed in commit 1901a47df
"device_id: fix conditions for device_ids_refresh"
2023-10-10 11:46:21 -05:00
Zdenek Kabelac
f960fe0578 tests: delay_dev to slowdown pvmove
throtling mirror device is becoming useless with faster CPUS,
as way to many data can be transferred before throttling steps-in.
So prefer using  dm-delay for test and keep throttling as fallback.
2023-10-06 10:51:15 +02:00
Zdenek Kabelac
2c3742039c tests: skip test if the memory cannot be allocated in kernel 2023-10-06 10:51:15 +02:00
Zdenek Kabelac
f5512315d2 tests: ignore failure from stop 2023-10-06 10:51:15 +02:00
Zdenek Kabelac
37329e4184 tests: add delay to let dmevent initalize
There is short time period needed to fully initilize dmeventd and
handle 'kill' signal.
2023-10-06 10:51:15 +02:00
Zdenek Kabelac
bccfd92f4a tests: previous patch wrongly replaced tab
Tab overwrote first char instead of insert.
Actually it should be a single function.
2023-10-05 01:11:54 +02:00
Zdenek Kabelac
ede63b5029 tests: more complex check for resize of reiserfs
Detection of how the command is supposed to behave actually depends on
the configure.h compilation and whether binary is compiled with
HAVE_BLKID_SUBLKS_FSINFO.

This makes it somewhat complicated in a way how to recognize which
behavior is expected.

Currently we can eventually recognize by checking error output
of some 'random' lvresize command and see if the --fs checksize is
actually recognized and rejected.  If this changes - test needs
to be updated.
2023-10-05 00:03:30 +02:00
Zdenek Kabelac
b80404f2c6 tests: utils use read without slash mangling
Do not use backslash as escape character for path.
2023-10-04 23:58:54 +02:00
Zdenek Kabelac
470f1058a8 tests: better coredump lookup
Some bash version may have problem with contruct:
done < <(

Replace it with array reading.
2023-10-04 23:58:54 +02:00
Zdenek Kabelac
e3adccb528 tests: retry removal
After umout we may race with system udevd rule - so
just retry once again after 1s sleep - that should be
enough - otherwise we would need some loop here...
2023-10-04 22:05:22 +02:00
Zdenek Kabelac
e72e130e9d tests: convert to heredoc string
Multi-line echo command are problemat across variety of bash version
and may have produce shorter results.
Convert to stable heredoc string with 'tab' skipping <<- for better
formating.
2023-10-04 22:05:22 +02:00
Zdenek Kabelac
8f61a127b5 tests: fix reader for runner
Since we now push more data into journal, parser reading this file
for --continue mode need to be adapted.
Also properly align batch mode with '.' for max test length name.
2023-10-03 21:32:12 +02:00
Zdenek Kabelac
0e8c631f5e tests: old g++ needs explicit cast 2023-10-03 12:59:38 +02:00