ovs-check-dead-ifs: Flush buffer before calling execvp.
authorGurucharan Shetty <gshetty@nicira.com>
Fri, 20 Dec 2013 17:30:21 +0000 (09:30 -0800)
committerGurucharan Shetty <gshetty@nicira.com>
Fri, 20 Dec 2013 17:45:17 +0000 (09:45 -0800)
According to Python documentation here for execvp:
http://docs.python.org/2/library/os.html
"The current process is replaced immediately. Open file objects
and descriptors are not flushed, so if there may be data buffered
on these open files, you should flush them using sys.stdout.flush()
or os.fsync() before calling an exec* function.

Without the flush, we will miss the print statements before that
if we redirect the o/p to a file.

Signed-off-by: Gurucharan Shetty <gshetty@nicira.com>
Acked-by: Ben Pfaff <blp@nicira.com>
utilities/ovs-check-dead-ifs.in

index 9b806ed..ac54f6c 100755 (executable)
@@ -98,4 +98,5 @@ if bad_pids:
     print """
 The following processes are listening for packets to arrive on network devices
 that no longer exist. You may want to restart them."""
+    sys.stdout.flush()
     os.execvp("ps", ["ps"] + ["%s" % pid for pid in bad_pids])