From: | amul sul <sulamul(at)gmail(dot)com> |
---|---|
To: | tushar <tushar(dot)ahuja(at)enterprisedb(dot)com> |
Cc: | PostgreSQL-development <pgsql-hackers(at)postgresql(dot)org> |
Subject: | Re: Server crash in pg_replication_slot_advance function |
Date: | 2018-02-16 09:55:00 |
Message-ID: | CAAJ_b9721pXZST4tGs+NPbjRxXF7gmrEomVhTW_Pa2QFD7Lr1A@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
On Fri, Feb 16, 2018 at 3:06 PM, amul sul <sulamul(at)gmail(dot)com> wrote:
> On Fri, Feb 16, 2018 at 1:44 PM, tushar <tushar(dot)ahuja(at)enterprisedb(dot)com> wrote:
>> Hi,
> [....]
>> postgres=# SELECT end_lsn FROM
>> pg_replication_slot_advance('regression_slot1', '0/2000071');
>> server closed the connection unexpectedly
>> This probably means the server terminated abnormally
>> before or while processing the request.
>> !>
>>
>
> I am able to reproduce this on the latest master head, the problem is in the
> following hunk of pg_replication_slot_advance() where oldest LSN value
> is accessed after releasing replication slot:
>
>
> 476 if (moveto < startlsn)
> 477 {
> 478 ReplicationSlotRelease();
> 479 ereport(ERROR,
> 480 (errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
> 481 errmsg("cannot move slot to %X/%X, minimum is %X/%X",
> 482 (uint32) (moveto >> 32), (uint32) moveto,
> 483 (uint32)
> (MyReplicationSlot->data.confirmed_flush >> 32),
> 484 (uint32)
> (MyReplicationSlot->data.confirmed_flush))));
> 485 }
> 486
>
Attached patch proposes a required fix.
Regards,
Amul
Attachment | Content-Type | Size |
---|---|---|
fix_crash_in_pg_replication_slot_advance.patch | application/octet-stream | 678 bytes |
From | Date | Subject | |
---|---|---|---|
Next Message | tushar | 2018-02-16 10:17:46 | Re: Server crash in pg_replication_slot_advance function |
Previous Message | tushar | 2018-02-16 09:51:54 | After an error - pg_replication_slot is dropped |