Hello. At Wed, 13 Feb 2019 14:13:09 +0900, Michael Paquier <mich...@paquier.xyz> wrote in <20190213051309.gf5...@paquier.xyz> > Hi all, > > When lacking connection slots, the backend returns a simple "sorry, > too many clients", which is something that has been tweaked by recent > commit ea92368 for WAL senders. However, the same message would show > up for autovacuum workers and bgworkers. Based on the way autovacuum > workers are spawned by the launcher, and the way bgworkers are added, > it seems that this cannot actually happen. Still, in my opinion, > providing more context can be helpful for people trying to work on > features related to such code so as they can get more information than > what would normally happen for normal backends.
I agree to the distinctive messages, but the autovaccum and bgworker cases are in a kind of internal error, and they are not "connection"s. I feel that elog is more suitable for them. > I am wondering as well if this could not help for issues like this > one, which has popped out today and makes me wonder if we don't have > race conditions with the way dynamic bgworkers are spawned: > https://www.postgresql.org/message-id/CAONUJSM5X259vAnnwSpqu=vnrecfgsj-cgrhys4p5yyrvwk...@mail.gmail.com > > There are four code paths which report the original "sorry, too many > clients", and the one of the patch attached can easily track the > type of connection slot used which helps for better context messages > when a process is initialized. > Would that be helpful for at least debugging purposes? I agree that it is helpful. Errors with different causes ought to show distinctive error messages. regards. -- Kyotaro Horiguchi NTT Open Source Software Center