#1628 profiler: Flush stdout before printing
Merged 2 years ago by lsedlar. Opened 2 years ago by lsedlar.
lsedlar/pungi flush-output  into  master

file modified
+5
@@ -69,6 +69,11 @@ 

  

      @classmethod

      def print_results(cls, stream=sys.stdout):

+         # Ensure all data that was printed to stdout was already flushed. If

+         # the caller is redirecting stderr to stdout, and there's buffered

+         # data, we may end up in a situation where the stderr output printed

+         # below ends up mixed with the stdout lines.

+         sys.stdout.flush()

          print("Profiling results:", file=stream)

          results = cls._data.items()

          results = sorted(results, key=lambda x: x[1]["time"], reverse=True)

Apparently redirecting stderr to the same pipe as stdout does not guarantee that the data will not be mangled together.

Flushing stdout before the profiler data is printed should ensure that it does not end up in the middle of some RPM path.

Looks good to me. :thumbsup:

rebased onto c7121f9

2 years ago

Pull-Request has been merged by lsedlar

2 years ago
Metadata