Обсуждение: segfault with Parallel Scan

Поиск
Список
Период
Сортировка

segfault with Parallel Scan

От
"Liu, Huailing"
Дата:
Hi

When using pgjdbc running querys that causes the server to segfault.

Using Spark to send querys by pgjdbc driver, when running a query ,parallel Scan is used.
send select sql 100 times in 1 second.

The query is like this.
select b from test where a=xxxxx

Query Plan
-----------------------------------------------------------------------------------------------------
  Gather (cost=1000.00..19893.34 rows=1 width=2) (actual time=136.482..137.360 rows=1 loops=1)
    Workers Planned: 2
      Workers Launched: 2 
        Parallel Seq Scan on test (cost=0.00..18893.24 rows=1 width=2) (actual time=103.487..113.051 rows=0 loops=3)
             Filter: ((a)::bigint = xxxx) 
                Rows Removed by Filter: 178703 
                     Planning time: 1.756 ms 
                         Execution time: 142.099 ms
   (8 行)
-----------------------------------------------------------------------------------------------------

There are many messages [stack depth limit exceeded] In Server log
-----------------------------------------------
ERROR:  stack depth limit exceeded
HINT:  Increase the configuration parameter "max_stack_depth" (currently 2048kB), after ensuring the platform's stack
depthlimit is adequate.
 
STATEMENT:  select b from test where a= xxxx 
----------------------------------------------------- 

When segment fault,  stack trace is as follows
-----
> │#0 0x00000000008538c3 in pg_tzset ()
> │#1 0x00000000005e44d2 in check_log_timezone ()
> │#2 0x000000000082cbb5 in call_string_check_hook.isra.14 ()
> │#3 0x000000000082df7b in InitializeOneGUCOption ()
> │#4 0x0000000000832708 in RestoreGUCState ()
> │#5 0x00000000004e402c in ParallelWorkerMain ()
> │#6 0x00000000006a1faa in StartBackgroundWorker ()
> │#7 0x00000000006add6d in maybe_start_bgworkers ()
> │#8 0x00000000006ae965 in sigusr1_handler ()
> │#9 <signal handler called>
> │#10 0x00007f7868107520 in sigprocmask () from /lib64/libc.so.6
> │#11 0x00000000006ae2e6 in reaper ()
> │#12 <signal handler called>
> │#13 0x00000000006ae7f0 in sigusr1_handler ()
> │#14 <signal handler called>
> │#15 0x00007f7868107520 in sigprocmask () from /lib64/libc.so.6
> │#16 0x00000000006ae959 in sigusr1_handler ()
> │#17 <signal handler called>
> │#18 0x00007f7868107520 in sigprocmask () from /lib64/libc.so.6
> │#19 0x00000000006ae2e6 in reaper ()
> │#20 <signal handler called>
> │#21 0x00000000006ae7f0 in sigusr1_handler ()
> │#22 <signal handler called>
> │#23 0x00007f7868107520 in sigprocmask () from /lib64/libc.so.6
> │#24 0x00000000006ae959 in sigusr1_handler ()
> │#25 <signal handler called>
> │#26 0x00007f7868107520 in sigprocmask () from /lib64/libc.so.6
> │#27 0x00000000006ae2e6 in reaper ()
> │#28 <signal handler called>
> │#29 0x00000000006ae7f0 in sigusr1_handler (
 -----


Environment details:
----------------------------------
PostgreSQL version: 10.3
Operating system:   centOS 7.4
メモリ :2TB
PGJDBC 
Spark
------------------------------------
Extensions are used as follows.
shared_preload_libraries = 'pg_bigm, pg_hint_plan, pg_stat_statements, pg_dbms_stats, auto_explain'

Please help us investigate the roots of problem.

     regards, Liu 



Re: segfault with Parallel Scan

От
Michael Paquier
Дата:
On Wed, Nov 04, 2020 at 02:42:54AM +0000, Liu, Huailing wrote:
> PostgreSQL version: 10.3
> Operating system:   centOS 7.4
> メモリ :2TB
> PGJDBC
> Spark

The latest minor release of Postgres in the 10.X series is 10.14.  So,
first, you may want to update to this version first and retry if your
problem happens again.  If it happens again, then a self-contained
test case would help in the reproduction of the issue.
--
Michael

Вложения