Re: [HACKERS] Parallel Append implementation - Mailing list pgsql-hackers

From Rajkumar Raghuwanshi
Subject Re: [HACKERS] Parallel Append implementation
Date
Msg-id CAKcux6nyDxOyE4PA8O=QgF-ugZp_y1G2U+urmf76-=f2knDsWA@mail.gmail.com
Whole thread Raw
In response to Re: [HACKERS] Parallel Append implementation  (amul sul <sulamul@gmail.com>)
Responses Re: [HACKERS] Parallel Append implementation  (amul sul <sulamul@gmail.com>)
List pgsql-hackers
On Thu, Nov 23, 2017 at 9:45 AM, amul sul <sulamul@gmail.com> wrote:
Attaching updated version of "ParallelAppend_v19_rebased" includes this fix.

Hi,

I have applied attached patch and got a crash with below query. please take a look.

CREATE TABLE tbl (a int, b int, c text, d int) PARTITION BY LIST(c);
CREATE TABLE tbl_p1 PARTITION OF tbl FOR VALUES IN ('0000', '0001', '0002', '0003');
CREATE TABLE tbl_p2 PARTITION OF tbl FOR VALUES IN ('0004', '0005', '0006', '0007');
CREATE TABLE tbl_p3 PARTITION OF tbl FOR VALUES IN ('0008', '0009', '0010', '0011');
INSERT INTO tbl SELECT i % 20, i % 30, to_char(i % 12, 'FM0000'), i % 30 FROM generate_series(0, 9999999) i;
ANALYZE tbl;

EXPLAIN ANALYZE SELECT c, sum(a), avg(b), COUNT(*) FROM tbl GROUP BY c HAVING avg(d) < 15 ORDER BY 1, 2, 3;
WARNING:  terminating connection because of crash of another server process
DETAIL:  The postmaster has commanded this server process to roll back the current transaction and exit, because another server process exited abnormally and possibly corrupted shared memory.
HINT:  In a moment you should be able to reconnect to the database and repeat your command.
server closed the connection unexpectedly
    This probably means the server terminated abnormally
    before or while processing the request.
The connection to the server was lost. Attempting reset: Failed.
!>


stack-trace is given below.

Reading symbols from /lib64/libnss_files.so.2...Reading symbols from /usr/lib/debug/lib64/libnss_files-2.12.so.debug...done.
done.
Loaded symbols for /lib64/libnss_files.so.2
Core was generated by `postgres: parallel worker for PID 104999                 '.
Program terminated with signal 11, Segmentation fault.
#0  0x00000000006dc4b3 in ExecProcNode (node=0x7f7f7f7f7f7f7f7e) at ../../../src/include/executor/executor.h:238
238        if (node->chgParam != NULL) /* something changed? */
Missing separate debuginfos, use: debuginfo-install keyutils-libs-1.4-5.el6.x86_64 krb5-libs-1.10.3-65.el6.x86_64 libcom_err-1.41.12-23.el6.x86_64 libselinux-2.0.94-7.el6.x86_64 openssl-1.0.1e-57.el6.x86_64 zlib-1.2.3-29.el6.x86_64
(gdb) bt
#0  0x00000000006dc4b3 in ExecProcNode (node=0x7f7f7f7f7f7f7f7e) at ../../../src/include/executor/executor.h:238
#1  0x00000000006dc72e in ExecAppend (pstate=0x1947ed0) at nodeAppend.c:207
#2  0x00000000006d1e7c in ExecProcNodeInstr (node=0x1947ed0) at execProcnode.c:446
#3  0x00000000006dcef1 in ExecProcNode (node=0x1947ed0) at ../../../src/include/executor/executor.h:241
#4  0x00000000006dd398 in fetch_input_tuple (aggstate=0x1947fe8) at nodeAgg.c:699
#5  0x00000000006e02f7 in agg_fill_hash_table (aggstate=0x1947fe8) at nodeAgg.c:2536
#6  0x00000000006dfb37 in ExecAgg (pstate=0x1947fe8) at nodeAgg.c:2148
#7  0x00000000006d1e7c in ExecProcNodeInstr (node=0x1947fe8) at execProcnode.c:446
#8  0x00000000006d1e4d in ExecProcNodeFirst (node=0x1947fe8) at execProcnode.c:430
#9  0x00000000006c9439 in ExecProcNode (node=0x1947fe8) at ../../../src/include/executor/executor.h:241
#10 0x00000000006cbd73 in ExecutePlan (estate=0x1947590, planstate=0x1947fe8, use_parallel_mode=0 '\000', operation=CMD_SELECT, sendTuples=1 '\001', numberTuples=0,
    direction=ForwardScanDirection, dest=0x192acb0, execute_once=1 '\001') at execMain.c:1718
#11 0x00000000006c9a12 in standard_ExecutorRun (queryDesc=0x194ffc0, direction=ForwardScanDirection, count=0, execute_once=1 '\001') at execMain.c:361
#12 0x00000000006c982e in ExecutorRun (queryDesc=0x194ffc0, direction=ForwardScanDirection, count=0, execute_once=1 '\001') at execMain.c:304
#13 0x00000000006d096c in ParallelQueryMain (seg=0x18aa2a8, toc=0x7f899a227000) at execParallel.c:1271
#14 0x000000000053272d in ParallelWorkerMain (main_arg=1218206688) at parallel.c:1149
#15 0x00000000007e8ca5 in StartBackgroundWorker () at bgworker.c:841
#16 0x00000000007fc035 in do_start_bgworker (rw=0x18ced00) at postmaster.c:5741
#17 0x00000000007fc377 in maybe_start_bgworkers () at postmaster.c:5945
#18 0x00000000007fb406 in sigusr1_handler (postgres_signal_arg=10) at postmaster.c:5134
#19 <signal handler called>
#20 0x0000003dd26e1603 in __select_nocancel () at ../sysdeps/unix/syscall-template.S:82
#21 0x00000000007f6bfa in ServerLoop () at postmaster.c:1721
#22 0x00000000007f63e9 in PostmasterMain (argc=3, argv=0x18a8180) at postmaster.c:1365
#23 0x000000000072cb4c in main (argc=3, argv=0x18a8180) at main.c:228
(gdb)


Thanks & Regards,
Rajkumar Raghuwanshi
QMG, EnterpriseDB Corporation

pgsql-hackers by date:

Previous
From: Rushabh Lathia
Date:
Subject: Typo in ExecBuildSlotPartitionKeyDescription prologue
Next
From: amul sul
Date:
Subject: Re: [HACKERS] Parallel Append implementation