RESOLVED FIXED64669
[Gtk] [NRWT] Xvfb produces a lot of stderr output
https://bugs.webkit.org/show_bug.cgi?id=64669
Summary [Gtk] [NRWT] Xvfb produces a lot of stderr output
Zan Dobersek
Reported 2011-07-17 06:30:17 PDT
On Gtk port, when running tests, an Xvfb process is started. It produces a lot of unnecessary stderr output like this: SCREEN: 0 objects of 176 bytes = 0 total bytes 0 private allocs DEVICE: 4 objects of 48 bytes = 192 total bytes 0 private allocs CLIENT: 0 objects of 184 bytes = 0 total bytes 0 private allocs WINDOW: 0 objects of 48 bytes = 0 total bytes 0 private allocs PIXMAP: 1 objects of 16 bytes = 16 total bytes 0 private allocs GC: 0 objects of 56 bytes = 0 total bytes 0 private allocs CURSOR: 0 objects of 8 bytes = 0 total bytes 0 private allocs CURSOR_BITS: 0 objects of 8 bytes = 0 total bytes 0 private allocs DBE_WINDOW: 0 objects of 24 bytes = 0 total bytes 0 private allocs TOTAL: 5 objects, 208 bytes, 0 allocs 4 DEVICEs still allocated at reset DEVICE: 4 objects of 48 bytes = 192 total bytes 0 private allocs CLIENT: 0 objects of 184 bytes = 0 total bytes 0 private allocs WINDOW: 0 objects of 48 bytes = 0 total bytes 0 private allocs PIXMAP: 1 objects of 16 bytes = 16 total bytes 0 private allocs GC: 0 objects of 56 bytes = 0 total bytes 0 private allocs CURSOR: 0 objects of 8 bytes = 0 total bytes 0 private allocs CURSOR_BITS: 0 objects of 8 bytes = 0 total bytes 0 private allocs DBE_WINDOW: 0 objects of 24 bytes = 0 total bytes 0 private allocs TOTAL: 5 objects, 208 bytes, 0 allocs 1 PIXMAPs still allocated at reset PIXMAP: 1 objects of 16 bytes = 16 total bytes 0 private allocs GC: 0 objects of 56 bytes = 0 total bytes 0 private allocs CURSOR: 0 objects of 8 bytes = 0 total bytes 0 private allocs CURSOR_BITS: 0 objects of 8 bytes = 0 total bytes 0 private allocs DBE_WINDOW: 0 objects of 24 bytes = 0 total bytes 0 private allocs TOTAL: 1 objects, 16 bytes, 0 allocs [dix] Could not init font path element /usr/share/fonts/X11/cyrillic, removing from list! Such output will eventually grow when we move onto using multiple workers when testing unless suppressed.
Attachments
Redirect Xvfb stderr output to a subprocess PIPE (1.56 KB, patch)
2011-07-17 06:45 PDT, Zan Dobersek
no flags
Redirect Xvfb stderr output to /dev/null (1.63 KB, patch)
2011-07-20 08:47 PDT, Zan Dobersek
no flags
Zan Dobersek
Comment 1 2011-07-17 06:45:34 PDT
Created attachment 101116 [details] Redirect Xvfb stderr output to a subprocess PIPE
Philippe Normand
Comment 2 2011-07-18 14:14:42 PDT
Comment on attachment 101116 [details] Redirect Xvfb stderr output to a subprocess PIPE View in context: https://bugs.webkit.org/attachment.cgi?id=101116&action=review > Tools/Scripts/webkitpy/layout_tests/port/gtk.py:46 > + self._xvfb_process = subprocess.Popen(run_xvfb, stderr=subprocess.PIPE) http://stackoverflow.com/questions/699325/suppress-output-in-python-calls-to-executables recommends to open /dev/null instead. Quoting the interesting comment: """ If your search engine lead you to this old question (like me), be aware that Manuel's solution (at this time the most valued), namely using PIPE can lead to deadlocks. Indeed, because pipes are buffered, you can write a certain number of bytes in a pipe, even if no one read it. However the size of buffer is finite. And consequently if your program A has an output larger than the buffer, A will be blocked on writing, while the calling program B awaits the termination of A. """ So the preferred solution would be something like: devnull = open(os.devnull, 'w') self._xvfb_process = subprocess.Popen(run_xvfb, stderr=devnull) devnull.close() Can you please check this would work? Thanks!
Zan Dobersek
Comment 3 2011-07-20 08:46:31 PDT
(In reply to comment #2) > > devnull = open(os.devnull, 'w') > self._xvfb_process = subprocess.Popen(run_xvfb, stderr=devnull) > devnull.close() > > Can you please check this would work? > Thanks! This works just as fine, will upload a patch in a moment. Thanks for the review!
Zan Dobersek
Comment 4 2011-07-20 08:47:51 PDT
Created attachment 101476 [details] Redirect Xvfb stderr output to /dev/null
Philippe Normand
Comment 5 2011-07-20 08:54:32 PDT
Comment on attachment 101476 [details] Redirect Xvfb stderr output to /dev/null Thanks :)
WebKit Review Bot
Comment 6 2011-07-20 09:33:41 PDT
Comment on attachment 101476 [details] Redirect Xvfb stderr output to /dev/null Clearing flags on attachment: 101476 Committed r91374: <http://trac.webkit.org/changeset/91374>
WebKit Review Bot
Comment 7 2011-07-20 09:33:47 PDT
All reviewed patches have been landed. Closing bug.
Ryosuke Niwa
Comment 8 2011-07-20 09:52:29 PDT
Very nice!
Note You need to log in before you can comment on or make changes to this bug.