Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(238)

Unified Diff: tools/valgrind/memcheck_analyze.py

Issue 2831008: Don't wait for dead valgrinds to end their logs (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: '' Created 10 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: tools/valgrind/memcheck_analyze.py
===================================================================
--- tools/valgrind/memcheck_analyze.py (revision 49905)
+++ tools/valgrind/memcheck_analyze.py (working copy)
@@ -12,6 +12,7 @@
import logging
import optparse
import os
+import re
import subprocess
import sys
import time
@@ -368,14 +369,29 @@
# Wait up to three minutes for valgrind to finish writing all files,
# but after that, just skip incomplete files and warn.
f = open(file, "r+")
+ pid = re.match(".*\.([0-9]+)$", file)
+ if pid:
+ pid = pid.groups()[0]
found = False
+ running = True
firstrun = True
origsize = os.path.getsize(file)
- while (not found and (firstrun or ((time.time() - start) < 180.0))):
+ while (running and not found and
+ (firstrun or ((time.time() - start) < 180.0))):
firstrun = False
f.seek(0)
+ if pid:
+ # Make sure the process is still running so we don't wait for
+ # 3 minutes if it was killed. See http://crbug.com/17453
+ ps_out = subprocess.Popen("ps p %s" % pid, shell=True,
+ stdout=subprocess.PIPE).stdout
+ if ps_out.readlines() < 2:
+ running = False
found = find_and_truncate(f)
- if not found:
+ if not running and not found:
+ logging.warn("Valgrind process PID = %s is not running but "
+ "its XML log has not been finished correctly" % pid)
+ if running and not found:
time.sleep(1)
f.close()
if not found:
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698