aboutsummaryrefslogtreecommitdiffstats
path: root/backend
diff options
context:
space:
mode:
authorPapoteur <papoteur@mageia.org>2020-11-28 21:37:11 +0100
committerPapoteur <papoteur@mageia.org>2020-11-28 21:37:11 +0100
commitd4d4cba0dcbedf18ad8c35ffc515a485daf029cc (patch)
tree503ba6e9440093b19d0b95a4dd08fe3b84612021 /backend
parent467dda4bd88130b839971d0ddfb1ad68635939f4 (diff)
downloadisodumper-d4d4cba0dcbedf18ad8c35ffc515a485daf029cc.tar
isodumper-d4d4cba0dcbedf18ad8c35ffc515a485daf029cc.tar.gz
isodumper-d4d4cba0dcbedf18ad8c35ffc515a485daf029cc.tar.bz2
isodumper-d4d4cba0dcbedf18ad8c35ffc515a485daf029cc.tar.xz
isodumper-d4d4cba0dcbedf18ad8c35ffc515a485daf029cc.zip
Add management of error when creating partition with fdisk
Diffstat (limited to 'backend')
-rwxr-xr-xbackend/raw_write.py31
1 files changed, 26 insertions, 5 deletions
diff --git a/backend/raw_write.py b/backend/raw_write.py
index a44eabe..58417f9 100755
--- a/backend/raw_write.py
+++ b/backend/raw_write.py
@@ -244,11 +244,32 @@ class Dumper(object):
process = None
working= False
if rc != 0:
- self.return_state = False
- self.return_message = _("Error {} while doing persistent partition: {}").format(rc, errs.decode('utf-8'))
- logging.error(self.return_message)
- self.finished.set()
- return
+ if rc == 1:
+ # the error is Re-reading the partition table failed.: Device or resource busy
+ logging.error(_("Error {} while doing persistent partition: {}").format(rc, errs.decode('utf-8')))
+ logging.error(_("Try reloading partition table"))
+ p = Popen(["partprobe",target], stdin = PIPE, stderr=PIPE)
+ outs, errs = p.communicate()
+ working=True
+ while working:
+ time.sleep(0.5)
+ p.poll()
+ rc=p.returncode
+ if not (rc is None):
+ process = None
+ working= False
+ else:
+ self.return_state = False
+ self.return_message = _("Unable to reload the partition table: {}").format(errs.decode('utf-8'))
+ logging.error(self.return_message)
+ self.finished.set()
+ return
+ else:
+ self.return_state = False
+ self.return_message = _("Error {} while doing persistent partition: {}").format(rc, errs.decode('utf-8'))
+ logging.error(self.return_message)
+ self.finished.set()
+ return
logging.debug("New partition created")
self._progress = 25