Skip to content

Commit

Permalink
[debuginfo-tests] Warn, not error, if we can't delete working directory
Browse files Browse the repository at this point in the history
On Windows, an error running the debugger typically leaves a process
hanging around in the working directory. When Dexter exits, it can't then
delete the working directory and produces an exception, masking the problem
in the debugger. (This can be worked around by specifying --save-temps).
Rather than hard-erroring, print a warning when we can't delete the working
directory instead.

It'd be much better to improve our error handling, and make the
WorkingDirectory class aware that something's wrong when it enters exit.
However, this is something that's going to mask genuine errors and make
everyones lives harder right now, so I think this non-ideal fix is
important to get in first.

Differential Revision: https://reviews.llvm.org/D74548
  • Loading branch information
jmorse committed Feb 25, 2020
1 parent bdb24fa commit 0a3b083
Showing 1 changed file with 5 additions and 5 deletions.
10 changes: 5 additions & 5 deletions debuginfo-tests/dexter/dex/utils/WorkingDirectory.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
import time

from dex.utils.Exceptions import Error

from dex.utils.Warning import warn

class WorkingDirectory(object):
def __init__(self, context, *args, **kwargs):
Expand All @@ -35,12 +35,12 @@ def __exit__(self, *args):
self.path))
return

exception = AssertionError('should never be raised')
for _ in range(100):
try:
shutil.rmtree(self.path)
return
except OSError as e:
exception = e
except OSError:
time.sleep(0.1)
raise Error(exception)

warn(self.context, '"{}" left in place (couldn\'t delete)\n'.format(self.path))
return

0 comments on commit 0a3b083

Please sign in to comment.