Re: libpq async duplicate error results
От | Tom Lane |
---|---|
Тема | Re: libpq async duplicate error results |
Дата | |
Msg-id | 2889550.1651847333@sss.pgh.pa.us обсуждение исходный текст |
Ответ на | Re: libpq async duplicate error results (Peter Eisentraut <peter.eisentraut@enterprisedb.com>) |
Ответы |
Re: libpq async duplicate error results
|
Список | pgsql-hackers |
Peter Eisentraut <peter.eisentraut@enterprisedb.com> writes: > I took another look at this. The output from the test program at the > beginning of the thread is now (master branch): > ... > command = SELECT 'after'; > PQsendQuery() error: FATAL: terminating connection due to administrator > command > server closed the connection unexpectedly > This probably means the server terminated abnormally > before or while processing the request. > no connection to the server > It appears the "after" query is getting the error message from the > previous cycle somehow. What is happening is that this bit in PQsendQueryStart is deciding not to clear the message buffer because conn->cmd_queue_head isn't NULL: /* * If this is the beginning of a query cycle, reset the error state. * However, in pipeline mode with something already queued, the error * buffer belongs to that command and we shouldn't clear it. */ if (newQuery && conn->cmd_queue_head == NULL) pqClearConnErrorState(conn); So apparently the fault is with the pipelined-query logic. I'm not sure what cleanup step is missing though. regards, tom lane
В списке pgsql-hackers по дате отправления: