[BUGS] 答复: [BUGS] 答复: [BUGS] BUG #14615: ReplicationOriginShmemInit Memory access cross-border

Поиск
Список
Период
Сортировка
Искать
От
shao bret
Тема
[BUGS] 答复: [BUGS] 答复: [BUGS] BUG #14615: ReplicationOriginShmemInit Memory access cross-border
Дата
Msg-id
HK2PR0201MB0882F868D8EF2A49179C127BE6030@HK2PR0201MB0882.apcprd02.prod.outlook.com
Ответ на
Список
Дерево обсуждения
[BUGS] BUG #14615: ReplicationOriginShmemInit Memory access cross-border bret.shao@outlook.com
Re: [BUGS] BUG #14615: ReplicationOriginShmemInit Memory access cross-border Michael Paquier <michael.paquier@gmail.com>
Re: [BUGS] BUG #14615: ReplicationOriginShmemInit Memory accesscross-border Andres Freund <andres@anarazel.de>
Re: [BUGS] BUG #14615: ReplicationOriginShmemInit Memory access cross-border Michael Paquier <michael.paquier@gmail.com>
[BUGS] 答复: [BUGS] BUG #14615: ReplicationOriginShmemInit Memory access cross-border shao bret <bret.shao@outlook.com>
Re: [BUGS] 答复: [BUGS] BUG #14615: ReplicationOriginShmemInit Memory access cross-border Andres Freund <andres@anarazel.de>
[BUGS] 答复: [BUGS] 答复: [BUGS] BUG #14615: ReplicationOriginShmemInit Memory access cross-border shao bret <bret.shao@outlook.com>
[BUGS] Re: 答复: [BUGS] BUG #14615: ReplicationOriginShmemInit Memory access cross-border Michael Paquier <michael.paquier@gmail.com>
[BUGS] 答复: 答复: [BUGS] BUG #14615: ReplicationOriginShmemInit Memory access cross-border shao bret <bret.shao@outlook.com>

Hi Andres,

 

Yes, your solution is same with my.  I have attached the patch file in former email.

Sorry for my mistake for this code. This code is come from 9.5.3.  after that ,I create a patch file using 9.6.2.

The attachment is the email.

>if (!found)
>        {
>               int                 i;
>               MemSet(replication_states_ctl, 0, ReplicationOriginShmemSize());
>               replication_states_ctl->tranche_id = LWLockNewTrancheId();
>               replication_states_ctl->tranche.name = "ReplicationOrigins";
>               replication_states_ctl->tranche.array_base =
>                      &replication_states[0].lock;
>               replication_states_ctl->tranche.array_stride =
>                      sizeof(ReplicationState);
>
>               //MemSet(replication_states, 0, ReplicationOriginShmemSize());
>
>               for (i = 0; i < max_replication_slots; i++)
>                      LWLockInitialize(&replication_states[i].lock,
>                                                  replication_states_ctl->tranche_id);
>        }

 

Thanks

Bret

 

发送自 Windows 10 邮件应用

 

发件人: Andres Freund
发送时间: 2017411 23:22
收件人: shao bret
抄送: Michael Paquier; PostgreSQL mailing lists
主题: Re: [BUGS] 答复: [BUGS] BUG #14615: ReplicationOriginShmemInit Memory access cross-border

 

On 2017-04-10 07:02:06 +0000, shao bret wrote:
> Hi Michael,
> Thanks for your quickly response!
> I think maybe you have a little misunderstanding with my solution.
>
> My solution is that
>       if (!found)
>        {
>               int                 i;
>               MemSet(replication_states_ctl, 0, ReplicationOriginShmemSize());
>               replication_states_ctl->tranche_id = LWLockNewTrancheId();
>               replication_states_ctl->tranche.name = "ReplicationOrigins";
>               replication_states_ctl->tranche.array_base =
>                      &replication_states[0].lock;
>               replication_states_ctl->tranche.array_stride =
>                      sizeof(ReplicationState);
>
>               //MemSet(replication_states, 0, ReplicationOriginShmemSize());
>
>               for (i = 0; i < max_replication_slots; i++)
>                      LWLockInitialize(&replication_states[i].lock,
>                                                  replication_states_ctl->tranche_id);
>        }
> So I think it
s easier for understanding code.
> What do you think?

That's imo just more work to maintain if additional fields added.

- Andres

 

В списке pgsql-bugs по дате отправления
От: Michael Paquier
Дата:
От: Noah Misch
Дата:
FAQ