Re: BUG #16327: Too many files in pg_replslot folder

From: Dmitry <romdn(at)inbox(dot)ru>
To: Euler Taveira <euler(dot)taveira(at)2ndquadrant(dot)com>, pgsql-bugs(at)lists(dot)postgresql(dot)org
Subject: Re: BUG #16327: Too many files in pg_replslot folder
Date: 2020-03-30 20:20:21
Message-ID: a8d057e5-4cc5-fdd9-959f-f10d60a719c8@inbox.ru
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-bugs

29.03.2020 22:52, Euler Taveira пишет:
> On Sun, 29 Mar 2020 at 11:49, PG Bug reporting form
> <noreply(at)postgresql(dot)org <mailto:noreply(at)postgresql(dot)org>> wrote:
>
>
> P.S. Replication on PostgreSql 11.1 (with default settings) worked
> fine with
> inserting 4.5 million rows. The xid - * - lsn - * - *. Snap files were
> smaller and larger in size. But if there were several inserts in a
> row of
> 4.5 million lines, an error appeared: ERROR: out of memory.
>
> Could you provide a test case? Are you using subtransactions?
> logical_decoding_work_mem [1] was added in v13 to ameliorate some high
> memory usage while decoding transactions. It is weird that it does not
> 'out of memory' in v11 too (v11 introduced Generational memory
> allocator to reduce logical decoding memory usage); I expect a high
> memory usage in v10 in a big transaction scenario.
>
> If you are looking for a workaround, you should try to disable all
> subscriptions and then enable only one at a time.
>
>
> [1]
> https://git.postgresql.org/gitweb/?p=postgresql.git;a=commit;h=cec2edfa7859279f36d2374770ca920c59c73dd8
>
> Regards,
>
> --
> Euler Taveira http://www.2ndQuadrant.com/
> PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services

Thanks for the answer!

> Could you provide a test case?
I will try to do a test in the coming days.

> Are you using subtransactions?
No. Functions are called sequentially from the windws scheduler. A large
file is loaded into a temporary table. In the cursor, entries are
processed line by line and placed in another temporary table. From which
they are already transferred to the main table.

> If you are looking for a workaround, you should try to disable all
subscriptions and then enable only one at a time.
Good, but it will be inconvenient for the administrator. Or back to v11.1.

Today noticed in the repetition process.
Select from pg_stat_replication after a while gives:
pid  application_name client_port backend_start       state    
sent_lsn   write_lsn write_lag     replay_lag    reply_time
4916 sub_255590       2020-03-30 20:38:20 streaming 5/3344C598
5/3344A7D0 00:00:00.0058 00:00:00.0058 2020-03-30 21:42:50
4724 sub_3            558282020-03-30 20:38:34 streaming 5/3344C598
5/3344A7D0 00:00:00.0015 00:00:00.0015 2020-03-30 21:42:50
928  sub_4            59003       2020-03-30 20:38:56 streaming
5/3344C598 5/334442F0 2020-03-30 21:42:49
3328 sub_2            61992       2020-03-30 21:47:44 startup

And on server 2:
ERROR: failed to start broadcast WAL: ERROR: replication slot "sub_2" is
busy processing with PID 4916

And even later:
pid  application_name client_port backend_start       state    
sent_lsn   write_lsn write_lag     replay_lag    reply_time
4536 sub_250299       2020-03-30 22:33:33 startup
528  sub_3            53671      2020-03-30 22:31:28 startup
364  sub_4            51630 2020-03-30 22:28:29 startup

Best regards, Dmitry

In response to

Browse pgsql-bugs by date

  From Date Subject
Next Message Fan Liu 2020-03-31 01:24:13 RE: why wal_max_size does not work?
Previous Message Alvaro Herrera 2020-03-30 15:48:51 Re: BUG #16330: psql accesses null pointer in connect.c:do_connect