Hi, I just helped somebody debug a postgres performance problem that turned out to be not actually be postgres' fault. It turned out to be because postgres' stdout/stderr were piped to a program, and that program was slow. Whenever the pipe buffer filled up, postgres stopped making progress.
That's not postgres' fault. But we make it too hard to debug such an issue. There's no way to figure this out from within postgres, one pretty much needs to look at stack traces. I think we should add a few wait events for log emission. I think it'd be good to have one wait event for each log destination. That's not perfect - we'd e.g. still not be able to debug where the logger process is stuck, due it not being in pg_stat_activity. But other processes reporting the wait event for writing to the logger process would be a pretty good hint. Greetings, Andres Freund