This revision was automatically updated to reflect the committed changes.
Closed by commit rL246870: Sleep-and-retry after a failure to delete a log 
file, which may be because… (authored by amccarth).

Changed prior to commit:
  http://reviews.llvm.org/D12641?vs=34063&id=34071#toc

Repository:
  rL LLVM

http://reviews.llvm.org/D12641

Files:
  lldb/trunk/test/lldbtest.py

Index: lldb/trunk/test/lldbtest.py
===================================================================
--- lldb/trunk/test/lldbtest.py
+++ lldb/trunk/test/lldbtest.py
@@ -1791,7 +1791,17 @@
         else:
             # success!  (and we don't want log files) delete log files
             for log_file in log_files_for_this_test:
-                os.unlink(log_file)
+                try:
+                    os.unlink(log_file)
+                except:
+                    # We've seen consistent unlink failures on Windows, 
perhaps because the
+                    # just-created log file is being scanned by anti-virus.  
Empirically, this
+                    # sleep-and-retry approach allows tests to succeed much 
more reliably.
+                    # Attempts to figure out exactly what process was still 
holding a file handle
+                    # have failed because running instrumentation like Process 
Monitor seems to
+                    # slow things down enough that the problem becomes much 
less consistent.
+                    time.sleep(0.5)
+                    os.unlink(log_file)
 
     # ====================================================
     # Config. methods supported through a plugin interface


Index: lldb/trunk/test/lldbtest.py
===================================================================
--- lldb/trunk/test/lldbtest.py
+++ lldb/trunk/test/lldbtest.py
@@ -1791,7 +1791,17 @@
         else:
             # success!  (and we don't want log files) delete log files
             for log_file in log_files_for_this_test:
-                os.unlink(log_file)
+                try:
+                    os.unlink(log_file)
+                except:
+                    # We've seen consistent unlink failures on Windows, perhaps because the
+                    # just-created log file is being scanned by anti-virus.  Empirically, this
+                    # sleep-and-retry approach allows tests to succeed much more reliably.
+                    # Attempts to figure out exactly what process was still holding a file handle
+                    # have failed because running instrumentation like Process Monitor seems to
+                    # slow things down enough that the problem becomes much less consistent.
+                    time.sleep(0.5)
+                    os.unlink(log_file)
 
     # ====================================================
     # Config. methods supported through a plugin interface
_______________________________________________
lldb-commits mailing list
lldb-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits

Reply via email to