BUG #17441: shm_mq receive less data than the sender sends

Started by PG Bug reporting formabout 4 years ago3 messagesbugs
Jump to latest
#1PG Bug reporting form
noreply@postgresql.org

The following bug has been logged on the website:

Bug reference: 17441
Logged by: ytf
Email address: fft_665665@163.com
PostgreSQL version: 10.17
Operating system: centos
Description:

Dears,

I launch one dynamic worker as the sender, use shm_mq send data to the
SELECT, which I register a copy hook to receive data from sender.
Each data length is 800.

When I set shm_mq SIZE to 16, there is no problem. Only speed is very
slow.

However, when I set shm_mq Size to 8192 or larger, I meet a problem.

I first receive 800 length data , and after a few times, I only receive 732
length data.

I registered the shm_mq like following :
#define QUEUE_SIZE 8192
mq = shm_mq_create(shm_toc_allocate(pcxt->toc, QUEUE_SIZE), QUEUE_SIZE);
shm_toc_insert(pcxt->toc, COS_KEY_QUEUE, mq);
shm_mq_set_receiver(mq, MyProc);

#2Masahiko Sawada
sawada.mshk@gmail.com
In reply to: PG Bug reporting form (#1)
Re: BUG #17441: shm_mq receive less data than the sender sends

On Sun, Mar 20, 2022 at 9:20 PM PG Bug reporting form
<noreply@postgresql.org> wrote:

The following bug has been logged on the website:

Bug reference: 17441
Logged by: ytf
Email address: fft_665665@163.com
PostgreSQL version: 10.17
Operating system: centos
Description:

Dears,

I launch one dynamic worker as the sender, use shm_mq send data to the
SELECT, which I register a copy hook to receive data from sender.
Each data length is 800.

When I set shm_mq SIZE to 16, there is no problem. Only speed is very
slow.

However, when I set shm_mq Size to 8192 or larger, I meet a problem.

I first receive 800 length data , and after a few times, I only receive 732
length data.

I registered the shm_mq like following :
#define QUEUE_SIZE 8192
mq = shm_mq_create(shm_toc_allocate(pcxt->toc, QUEUE_SIZE), QUEUE_SIZE);
shm_toc_insert(pcxt->toc, COS_KEY_QUEUE, mq);
shm_mq_set_receiver(mq, MyProc);

Could you please provide the reproducible steps and codes for the
problem you're facing? That's very helpful to understand and
investigate the problem.

Regards,

--
Masahiko Sawada
EDB: https://www.enterprisedb.com/

#3Michael Paquier
michael@paquier.xyz
In reply to: Masahiko Sawada (#2)
Re: BUG #17441: shm_mq receive less data than the sender sends

On Wed, Mar 23, 2022 at 11:59:06AM +0900, Masahiko Sawada wrote:

On Sun, Mar 20, 2022 at 9:20 PM PG Bug reporting form
<noreply@postgresql.org> wrote:

I launch one dynamic worker as the sender, use shm_mq send data to the
SELECT, which I register a copy hook to receive data from sender.
Each data length is 800.

Could you please provide the reproducible steps and codes for the
problem you're facing? That's very helpful to understand and
investigate the problem.

Yeah, I'd like to see that with a test that reproduces with core PG.
Now, perhaps this is some custom extension code?
--
Michael