Openembedded Core Discussions
 help / color / mirror / Atom feed
* [PATCH] wic/direct.py: Avoid exception if using multiple rawcopy/no-table entries.
@ 2017-03-09  7:25 Kristian Amlie
  2017-03-09 13:28 ` Ed Bartosh
  0 siblings, 1 reply; 3+ messages in thread
From: Kristian Amlie @ 2017-03-09  7:25 UTC (permalink / raw)
  To: openembedded-core

If we are both having a bootloader and a U-Boot environment file, we
can end up with two entries using "--source rawcopy" and "--no-table",
and since they reuse the same file [1], their cleanup handlers will
try to delete the same file twice. So just ignore the error if the
file doesn't exist.

[1] Although they reuse the same file, the resulting output is
correct, so it appears the file is accessed in properly sequential
order.

Signed-off-by: Kristian Amlie <kristian.amlie@mender.io>
---
 scripts/lib/wic/plugins/imager/direct.py | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/scripts/lib/wic/plugins/imager/direct.py b/scripts/lib/wic/plugins/imager/direct.py
index b7e324a..0e8d436 100644
--- a/scripts/lib/wic/plugins/imager/direct.py
+++ b/scripts/lib/wic/plugins/imager/direct.py
@@ -548,7 +548,10 @@ class PartitionedImage():
     def cleanup(self):
         # remove partition images
         for image in self.partimages:
-            os.remove(image)
+            try:
+                os.remove(image)
+            except FileNotFoundError:
+                pass
 
     def assemble(self):
         logger.debug("Installing partitions")
-- 
2.7.4



^ permalink raw reply related	[flat|nested] 3+ messages in thread

* Re: [PATCH] wic/direct.py: Avoid exception if using multiple rawcopy/no-table entries.
  2017-03-09  7:25 [PATCH] wic/direct.py: Avoid exception if using multiple rawcopy/no-table entries Kristian Amlie
@ 2017-03-09 13:28 ` Ed Bartosh
  2017-03-09 14:37   ` [PATCH v2] " Kristian Amlie
  0 siblings, 1 reply; 3+ messages in thread
From: Ed Bartosh @ 2017-03-09 13:28 UTC (permalink / raw)
  To: Kristian Amlie; +Cc: openembedded-core

On Thu, Mar 09, 2017 at 08:25:16AM +0100, Kristian Amlie wrote:
> If we are both having a bootloader and a U-Boot environment file, we
> can end up with two entries using "--source rawcopy" and "--no-table",
> and since they reuse the same file [1], their cleanup handlers will
> try to delete the same file twice. So just ignore the error if the
> file doesn't exist.
> 
> [1] Although they reuse the same file, the resulting output is
> correct, so it appears the file is accessed in properly sequential
> order.
> 
> Signed-off-by: Kristian Amlie <kristian.amlie@mender.io>
> ---
>  scripts/lib/wic/plugins/imager/direct.py | 5 ++++-
>  1 file changed, 4 insertions(+), 1 deletion(-)
> 
> diff --git a/scripts/lib/wic/plugins/imager/direct.py b/scripts/lib/wic/plugins/imager/direct.py
> index b7e324a..0e8d436 100644
> --- a/scripts/lib/wic/plugins/imager/direct.py
> +++ b/scripts/lib/wic/plugins/imager/direct.py
> @@ -548,7 +548,10 @@ class PartitionedImage():
>      def cleanup(self):
>          # remove partition images
>          for image in self.partimages:
> -            os.remove(image)
> +            try:
> +                os.remove(image)
> +            except FileNotFoundError:
> +                pass
>  
>      def assemble(self):
>          logger.debug("Installing partitions")
Would it be better to just skip removing files that have already been
removed?

# remove partition images
for image in set(self.partimages):
    os.remove(image)

--
Regards,
Ed


^ permalink raw reply	[flat|nested] 3+ messages in thread

* [PATCH v2] wic/direct.py: Avoid exception if using multiple rawcopy/no-table entries.
  2017-03-09 13:28 ` Ed Bartosh
@ 2017-03-09 14:37   ` Kristian Amlie
  0 siblings, 0 replies; 3+ messages in thread
From: Kristian Amlie @ 2017-03-09 14:37 UTC (permalink / raw)
  To: ed.bartosh; +Cc: openembedded-core

If we are both having a bootloader and a U-Boot environment file, we
can end up with two entries using "--source rawcopy" and "--no-table",
and since they reuse the same file [1], their cleanup handlers will
try to delete the same file twice. So make sure we only do it once.

[1] Although they reuse the same file, the resulting output is
correct, so it appears the file is accessed in properly sequential
order.

Signed-off-by: Kristian Amlie <kristian.amlie@mender.io>
---
 scripts/lib/wic/plugins/imager/direct.py | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/scripts/lib/wic/plugins/imager/direct.py b/scripts/lib/wic/plugins/imager/direct.py
index 481d24d..67450a2 100644
--- a/scripts/lib/wic/plugins/imager/direct.py
+++ b/scripts/lib/wic/plugins/imager/direct.py
@@ -548,7 +548,7 @@ class PartitionedImage():
 
     def cleanup(self):
         # remove partition images
-        for image in self.partimages:
+        for image in set(self.partimages):
             os.remove(image)
 
     def assemble(self):
-- 
2.7.4



^ permalink raw reply related	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2017-03-09 14:37 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2017-03-09  7:25 [PATCH] wic/direct.py: Avoid exception if using multiple rawcopy/no-table entries Kristian Amlie
2017-03-09 13:28 ` Ed Bartosh
2017-03-09 14:37   ` [PATCH v2] " Kristian Amlie

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox