Re: "buffer overflow detected" when running SHOW POOL_STATUS

From: zam bak <zam6ak(at)gmail(dot)com>
To: Tatsuo Ishii <ishii(at)postgresql(dot)org>
Cc: pgpool-general(at)lists(dot)postgresql(dot)org
Subject: Re: "buffer overflow detected" when running SHOW POOL_STATUS
Date: 2025-12-01 14:42:40
Message-ID: CAEy4EGXPw9cU6C6TSCK1FODs0ZK3P3COmsoGU69UFzWeip4b_w@mail.gmail.com
Views: Whole Thread | Raw Message | Download mbox | Resend email
Thread:
Lists: pgpool-general

On Sat, Nov 29, 2025 at 8:27 PM Tatsuo Ishii <ishii(at)postgresql(dot)org> wrote:
>
> Hello,
>
> Thank you for the report!
>
> Unfortunately, I was not able to reproduce the issue on my Ubuntu 24
> and Rocky Linux 10.1 box (pgpool is compiled from source code).
> So there are some questions:
>
> - Is the issue occurred even when you execute other pgpool command?
> (for example "show pool_processes")

No. Only getting this issue when running SHOW POOL_STATUS

>
> - I found a problem with the output of "show pool_status". The value
> of "memqcache_stats_start_time" is shown with newline and an empty
> item followed. I am not sure if this is related to your issue. If
> possible, can you please try the attached patch?

I suspect you want me to compile it from source (after applying this patch).
I don't have the setup for this unfortunately.
As I mentioned, I did install from RPMs using Rocky Linux 10.1 (with
minimal install option)
Is there a way to provide RPM instead of the patch?

>
> Best regards,
> --
> Tatsuo Ishii
> SRA OSS K.K.
> English: http://www.sraoss.co.jp/index_en/
> Japanese:http://www.sraoss.co.jp
>
> > Hello
> >
> > I am using the latest pgpool-II v4.6.4 on Rocky Linux v10.1
> > (installation via RPMs) with PostgreSQL 18 (one primary, one replica,
> > streaming replication)
> > When attempting to run POOL_STATUS command, either as SQL or via pcp,
> > I am getting "buffer overflow detected" in the log.
> > Here are the contents of the log from both SQL and pcp commands:
> >
> > 1)
> > sudo -u postgres pcp_pool_status -w -v -h localhost -p 9898 -U postgres
> >
> > 2025-11-27 13:30:19.298 [4486]: [3-1] user=[No Connection],db=[No
> > Connection],app=pcp_main LOG: forked new pcp worker, pid=4495
> > socket=7
> > 2025-11-27 13:30:19.298 [4486]: [4-1] user=[No Connection],db=[No
> > Connection],app=pcp_main LOCATION: pcp_child.c:327
> > *** buffer overflow detected ***: terminated
> > 2025-11-27 13:30:20.315 [4486]: [5-1] user=[No Connection],db=[No
> > Connection],app=pcp_main LOG: PCP process with pid: 4495 exits with
> > status 134 by signal 6
> > 2025-11-27 13:30:20.315 [4486]: [6-1] user=[No Connection],db=[No
> > Connection],app=pcp_main LOCATION: pcp_child.c:394
> >
> > 2)
> > sudo -u postgres psql -w -h localhost -p 9999 -U postgres -c "SHOW POOL_STATUS"
> >
> > 2025-11-27 13:31:34.385 [4390]: [1-1]
> > user=postgres,db=postgres,app=psql LOG: DB node id: 0 backend pid:
> > 10166 statement: SELECT pg_catalog.version()
> > 2025-11-27 13:31:34.385 [4390]: [2-1]
> > user=postgres,db=postgres,app=psql LOCATION:
> > pool_proto_modules.c:3803
> > *** buffer overflow detected ***: terminated
> >
> >
> >
> > And here is my pgpool.conf file (only changed lines - diff compared to
> > pgpool.conf.sample)
> > diff --unchanged-line-format= --old-line-format=
> > --new-line-format='%L' pgpool.conf.sample pgpool.conf
> >
> > listen_addresses = '*'
> > unix_socket_directories = '/var/run/pgpool'
> > pcp_socket_dir = '/var/run/pgpool'
> > serialize_accept = on
> > backend_hostname0 = '192.168.68.104'
> > backend_port0 = 5432
> > backend_weight0 = 1
> > backend_data_directory0 = '/data/pgdata/18'
> > backend_flag0 = 'ALWAYS_PRIMARY'
> > backend_application_name0 = 'primary'
> > backend_hostname1 = '192.168.68.105'
> > backend_port1 = 5432
> > backend_weight1 = 1
> > backend_data_directory1 = '/data/pgdata/18'
> > backend_flag1 = 'DISALLOW_TO_FAILOVER'
> > backend_application_name1 = 'replica_1'
> > num_init_children = 96
> > max_pool = 2
> > child_life_time = 0
> > log_line_prefix = '%m [%p]: [%l-1] user=%u,db=%d,app=%a ' #
> > printf-style string to output at beginning of each log line.
> > log_connections = off
> > log_disconnections = off
> > log_per_node_statement = on
> > log_standby_delay = 'always'
> > log_error_verbosity = verbose # terse, default, or verbose messages
> > log_filename = 'pgpool-01-%a.log'
> > write_function_list =
> > 'currval,lastval,nextval,setval,public.upgrade_.*,upgrade_.*,public.update_.*,update_.*,public.selsert_.*,selsert_.*,public.purge_.*,purge_.*,public.process_.*,process_.*,public.move_.*,move_.*,public.merge_.*,merge_.*,public.mark_.*,mark_.*,billing.can_ahs_claim_charge,billing.can_ahs_apply_.*'
> > statement_level_load_balance = on
> > sr_check_period = 5s
> > sr_check_user = 'pgpool_monitor'
> > delay_threshold_by_time = 500ms
> > health_check_period = 10
> > health_check_timeout = 30
> > health_check_user = 'pgpool_monitor'
> > health_check_max_retries = 10
> > failover_on_backend_error = off
> > check_temp_table = trace
> >
> >

In response to

Responses

Browse pgpool-general by date

  From Date Subject
Next Message Tatsuo Ishii 2025-12-02 05:02:05 Re: "buffer overflow detected" when running SHOW POOL_STATUS
Previous Message Tatsuo Ishii 2025-11-30 01:27:12 Re: "buffer overflow detected" when running SHOW POOL_STATUS