Send patches - preferably formatted by git format-patch - to patches at archlinux32 dot org.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAnton Hvornum <anton@hvornum.se>2021-11-18 13:07:28 +0000
committerGitHub <noreply@github.com>2021-11-18 13:07:28 +0000
commit776823adfb2d9ea140b9d849ee9a1dd07991a94c (patch)
tree39d73ecbcacf969398185d0da93e354ebbda09ad
parent7d991ecb9f87f863e1e78ce7e2d06c4d2f9568db (diff)
Increased disk delays by 100% (for unsuccessful operations), successful should still be quick. (#730)
Co-authored-by: Anton Hvornum <anton.feeds@gmail.com>
-rw-r--r--archinstall/lib/disk/filesystem.py4
-rw-r--r--archinstall/lib/disk/partition.py4
-rw-r--r--archinstall/lib/storage.py4
3 files changed, 7 insertions, 5 deletions
diff --git a/archinstall/lib/disk/filesystem.py b/archinstall/lib/disk/filesystem.py
index fe7be498..93b0f375 100644
--- a/archinstall/lib/disk/filesystem.py
+++ b/archinstall/lib/disk/filesystem.py
@@ -33,7 +33,7 @@ class Filesystem:
return True
def partuuid_to_index(self, uuid):
- for i in range(10):
+ for i in range(storage['DISK_RETRY_ATTEMPTS']):
self.partprobe()
output = json.loads(SysCommand(f"lsblk --json -o+PARTUUID {self.blockdevice.device}").decode('UTF-8'))
@@ -42,7 +42,7 @@ class Filesystem:
if (partuuid := partition.get('partuuid', None)) and partuuid.lower() == uuid:
return index
- time.sleep(1)
+ time.sleep(storage['DISK_TIMEOUTS'])
raise DiskError(f"Failed to convert PARTUUID {uuid} to a partition index number on blockdevice {self.blockdevice.device}")
diff --git a/archinstall/lib/disk/partition.py b/archinstall/lib/disk/partition.py
index faa0838f..90e1aeea 100644
--- a/archinstall/lib/disk/partition.py
+++ b/archinstall/lib/disk/partition.py
@@ -147,7 +147,7 @@ class Partition:
This is more reliable than relying on /dev/disk/by-partuuid as
it doesn't seam to be able to detect md raid partitions.
"""
- for i in range(10):
+ for i in range(storage['DISK_RETRY_ATTEMPTS']):
self.partprobe()
partuuid_struct = SysCommand(f'lsblk -J -o+PARTUUID {self.path}')
@@ -155,7 +155,7 @@ class Partition:
if partition_information := next(iter(json.loads(partuuid_struct.decode('UTF-8'))['blockdevices']), None):
return partition_information.get('partuuid', None)
- time.sleep(1)
+ time.sleep(storage['DISK_TIMEOUTS'])
raise DiskError(f"Could not get PARTUUID for {self.path} using 'lsblk -J -o+PARTUUID {self.path}'")
diff --git a/archinstall/lib/storage.py b/archinstall/lib/storage.py
index ae330382..d6380de3 100644
--- a/archinstall/lib/storage.py
+++ b/archinstall/lib/storage.py
@@ -19,5 +19,7 @@ storage = {
'LOG_PATH': '/var/log/archinstall',
'LOG_FILE': 'install.log',
'MOUNT_POINT': '/mnt/archinstall',
- 'ENC_IDENTIFIER': 'ainst'
+ 'ENC_IDENTIFIER': 'ainst',
+ 'DISK_TIMEOUTS' : 1, # seconds
+ 'DISK_RETRY_ATTEMPTS' : 20, # RETRY_ATTEMPTS * DISK_TIMEOUTS is used in disk operations
}