Re: Using PQexecQuery in pipeline mode produces unexpected Close messages
Kyotaro Horiguchi <horikyota.ntt@gmail.com>
From: Kyotaro Horiguchi <horikyota.ntt@gmail.com>
To: alvherre@alvh.no-ip.org
Cc: tgl@sss.pgh.pa.us, daniele.varrazzo@gmail.com,
pgsql-hackers@lists.postgresql.org
Date: 2022-06-21T08:46:54Z
Lists: pgsql-bugs, pgsql-hackers
Attachments
- v6-0001-Avoid-going-IDLE-in-pipeline-mode.patch (text/x-patch)
At Tue, 21 Jun 2022 14:56:40 +0900 (JST), Kyotaro Horiguchi <horikyota.ntt@gmail.com> wrote in > By the way, I noticed that "libpq_pipeline uniqviol" intermittently > fails for uncertain reasons. > > > result 574/575: pipeline aborted > > ........................................................... > > done writing > > > > libpq_pipeline:1531: got unexpected NULL PQsendQueryPrepared() is called after the conection's state has moved to PGASYNC_IDLE so PQgetResult returns NULL. But actually there are results. So, if pqPipelineProcessorQueue() doesn't move the async state to PGASYNC_IDLE when queue is emtpy, uniqviol can run till the end. But that change breaks almost all of other test items. Finally, I found that the change in pqPipelineProcessorQueue() as attached fixes the uniqviol failure and doesn't break other tests. However, I don't understand what I did by the change for now... X( It seems to me something's wrong in the PQ_PIPELINE_ABORTED mode.. regards. -- Kyotaro Horiguchi NTT Open Source Software Center
Commits
-
001_libpq_pipeline.pl: use Test::Differences if available
- 87e4f24d8293 16.0 landed
-
libpq: Improve idle state handling in pipeline mode
- 93cf9233cd54 15.0 landed
- 7c1f42612384 14.5 landed
- 054325c5eeb3 16.0 landed