[issue41449] An article on Python 3 stdout and stderr output buffering
New submission from Anatoli Babenia : It is hard to find info why Python 3 buffers stdout/stderr. The buffering causes problems when debugging Python apps in Docker and Kubernetes, and it is unclear if it is Python 3 who starts to buffer stdout if no tty is attached, it is Docker, or it is Kubernetes. The only bit of info that could be searched is the description of -u option https://docs.python.org/3.8/using/cmdline.html?#cmdoption-u which is not linked to any article. The `-u` description also says. > Changed in version 3.7: The text layer of the stdout and stderr streams now > is unbuffered. However, I don't understand what is the text layers of stdout. And there is no description of behaviour when the output is not attached, and when the output is redirected. -- assignee: docs@python components: Documentation messages: 374633 nosy: Anatoli Babenia, docs@python priority: normal severity: normal status: open title: An article on Python 3 stdout and stderr output buffering ___ Python tracker <https://bugs.python.org/issue41449> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue41449] An article on Python 3 stdout and stderr output buffering
Anatoli Babenia added the comment: Not sure I can volunteer - need to find a sustenance ASAP. But given that nothing moved in this direction over the past 6 months, another week spent not writing this stuff won't change anything. In any case it would start with the following problem - "Logs don't show up if running in Kubernetes" - https://github.com/bottlepy/bottle/issues/1130 I've encountered it a 3 days session on adding CI to my favourite cheat sheet server https://github.com/chubin/cheat.sh/pull/224/commits/10bfaab38cc649d765637bf4af4791266d21a3f7 and I am still not sure I am right. That's why I want to read something about it. -- ___ Python tracker <https://bugs.python.org/issue41449> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue41449] An article on Python 3 stdout and stderr output buffering
Anatoli Babenia added the comment: To avoid too much outside reference, the commit message I am unsure of is this. > Run Python 3 in unbuffered mode to see lines in `docker logs` as soon as they > appear. When Python 3 is not attached to a terminal, it turns on the > buffering, like when `docker` runs in a background. I am not sure. 1. How Python detects it is attached to terminal or not. 2. That it is Python that turns on stdout buffering. 3. What happens to stdout with child processes when they run with docker in different modes - foreground, background (-d), interactive (-i), with tty (-t) and without tty. -- resolution: wont fix -> status: closed -> open ___ Python tracker <https://bugs.python.org/issue41449> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue41449] An article on Python 3 stdout and stderr output buffering
Anatoli Babenia added the comment: The point is that without a clear description of buffering in Python 3, it is impossible to understand what goes when Python is wrapped by Docker, supervisord, redirected to file etc. -- ___ Python tracker <https://bugs.python.org/issue41449> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue41449] An article on Python 3 stdout and stderr output buffering
Anatoli Babenia added the comment: I didn't reopen the issue explicitly. Just pressed the submit button again when the notification about edited bug appeared. -- ___ Python tracker <https://bugs.python.org/issue41449> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com