Hi, As noted in [1], and also commented on by other previously, we use libpq in blocking mode in libpqwalreceiver, postgres_fdw, etc. This is done knowingly, see e.g. comments like: /* * Submit the query. Since we don't use non-blocking mode, this could * theoretically block. In practice, since we don't send very long query * strings, the risk seems negligible. */
but I don't understand why we do it. It seems like it'd be a fairly small amount of additional code to just do it right, given that we do so for calls to PQgetResult() etc? Greetings, Andres Freund [1] https://postgr.es/m/20230103200520.di5hjebqvi72coql%40awork3.anarazel.de