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

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

From
PG Bug reporting form
Date:
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);


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

From
Masahiko Sawada
Date:
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/



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

From
Michael Paquier
Date:
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

Attachment