| From: | Andres Freund <andres(at)2ndquadrant(dot)com> |
|---|---|
| To: | Steve Singer <steve(at)ssinger(dot)info> |
| Cc: | PostgreSQL-development Hackers <pgsql-hackers(at)postgresql(dot)org> |
| Subject: | Re: "snapshot too large" error when initializing logical replication (9.4) |
| Date: | 2014-10-28 17:27:01 |
| Message-ID: | 20141028172701.GB5873@awork2.anarazel.de |
| Views: | Whole Thread | Raw Message | Download mbox | Resend email |
| Thread: | |
| Lists: | pgsql-hackers |
Hi,
On 2014-10-25 18:09:36 -0400, Steve Singer wrote:
> I sometimes get the error "snapshot too large" from my logical replication
> walsender process when in response to a CREATE_REPLICATION_SLOT.
Yes. That's possible if 'too much' was going on until a consistent point
was reached. I think we can just use a much larger size for the array
if necessary.
I've attached patch for this. Could you try whether that helps? I don't
have a testcase handy that reproduces the problem.
> This is in SnapBuildExportSnapshot in snapbuild.c
>
> newxcnt is 212 at that point
>
> I have max_connections = 200
>
> procArray->maxProcs=212
>
> Should we be testing
> newxcnt > GetMaxSnapshotXidCount()
>
> instead of
> newxcnt >= GetMaxSnapshotXidCount()
It actually looks correct to me new - newxcnt is used as an offset into
an array of size GetMaxSnapshotXidCount().
Greetings,
Andres Freund
--
Andres Freund http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Training & Services
| Attachment | Content-Type | Size |
|---|---|---|
| larger-snapbuildexportsnapshot-xid-array.diff | text/x-diff | 1.2 KB |
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Andres Freund | 2014-10-28 17:31:54 | Re: logical decoding - reading a user catalog table |
| Previous Message | Andres Freund | 2014-10-28 17:12:30 | Re: WIP: Access method extendability |