Re: BUG #14344: string_agg(DISTINCT ..) crash - Mailing list pgsql-bugs
From | Michael Paquier |
---|---|
Subject | Re: BUG #14344: string_agg(DISTINCT ..) crash |
Date | |
Msg-id | CAB7nPqSh1_yyeUHt78juTGCFH9yysoXT_OEQ-KJ0pSETLa2dRg@mail.gmail.com Whole thread Raw |
In response to | Re: BUG #14344: string_agg(DISTINCT ..) crash (Michael Paquier <michael.paquier@gmail.com>) |
List | pgsql-bugs |
On Wed, Sep 28, 2016 at 9:23 PM, Michael Paquier <michael.paquier@gmail.com> wrote: > On Wed, Sep 28, 2016 at 9:10 PM, Tom Lane <tgl@sss.pgh.pa.us> wrote: >> lr@pcorp.us writes: >>> Let me know if you need more info or if this has already been fixed. >> regression=# SELECT string_agg(DISTINCT state, ',' ORDER BY state) >> FROM string_agg_crash_test; >> string_agg >> ------------------- >> HI,IL,KS,MA,MA,NY >> (1 row) >> >> But I see no post-rc1 fixes that look like they might explain this. > > No problems on OSX or Linux, but I am getting a crash on Windows > (Win7, MSVC 2010) even with latest REL9_6_STABLE. Oops. After rolling in crashdumps/ and remembering some stuff about windbg: - .sympath to point to symbols - !analyze -v to load the backtrace: 00000000`0042eff0 00000001`40380293 : 000007fe`fda07a01 000007fe`fda07a11 00000000`ffff0000 00000000`000004e4 : postgres!toast_raw_datum_size+0x4 [c:\users\ioltas\git\postgres\src\backend\access\heap\tuptoaster.c @ 358] 00000000`0042f030 00000001`403ab6dc : 00000000`009f0000 00000000`00000002 00000000`008491f8 00000000`008f3caa : postgres!texteq+0x33 [c:\users\ioltas\git\postgres\src\backend\utils\adt\varlena.c @ 1616] 00000000`0042f060 00000001`4012a29e : 00000000`00000002 00000000`008491f8 00000000`008f3caa 00000000`00000001 : postgres!FunctionCall2Coll+0x5c [c:\users\ioltas\git\postgres\src\backend\utils\fmgr\fmgr.c @ 1322] 00000000`0042f450 00000001`4013d05c : 00000000`00000002 00000000`01b33b30 00000000`008f3b00 00000000`008f3830 : postgres!execTuplesMatch+0xae [c:\users\ioltas\git\postgres\src\backend\executor\execgrouping.c @ 101] 00000000`0042f4a0 00000001`4013d61c : 00000000`00895f00 00000000`00000000 00000000`01b359d8 00000000`00849308 : postgres!process_ordered_aggregate_multi+0xfc [c:\users\ioltas\git\postgres\src\backend\executor\nodeagg.c @ 1248] 00000000`0042f520 00000001`4013f081 : 00000000`00000001 00000000`00000000 00000000`01b33f98 00000000`00000000 : postgres!finalize_aggregates+0x9c [c:\users\ioltas\git\postgres\src\backend\executor\nodeagg.c @ 1557] 00000000`0042f580 00000001`4013fe9a : 00000000`008ee800 00000000`00000003 00000000`01b33ee8 00000000`01b33f98 : postgres!agg_retrieve_direct+0x461 [c:\users\ioltas\git\postgres\src\backend\executor\nodeagg.c @ 2163] 00000000`0042f620 00000001`40130352 : 00000000`00000054 00000001`4029eaea 00000000`00000000 00000000`00000001 : postgres!ExecAgg+0x4a [c:\users\ioltas\git\postgres\src\backend\executor\nodeagg.c @ 1838] 00000000`0042f650 00000001`4012c98d : 00000000`01b33a20 00000001`4000a42c 00000000`ffffffff 00000000`00000001 : postgres!ExecProcNode+0x202 [c:\users\ioltas\git\postgres\src\backend\executor\execprocnode.c @ 503] 00000000`0042f680 00000001`4012dc58 : 00000000`008d9b60 00000000`00000001 00000000`01b33a20 00000000`00000000 : postgres!ExecutePlan+0x7d [c:\users\ioltas\git\postgres\src\backend\executor\execmain.c @ 1573] 00000000`0042f6d0 00000001`4029f659 : 00000000`008df510 00000000`00000000 00000000`008df510 00000001`403cb144 : postgres!standard_ExecutorRun+0xb8 [c:\users\ioltas\git\postgres\src\backend\executor\execmain.c @ 350] 00000000`0042f740 00000001`4029fe6a : 00000000`008df510 00000000`008df510 00000000`00843d50 00000000`0042f8b0 : postgres!PortalRunSelect+0x99 [c:\users\ioltas\git\postgres\src\backend\tcop\pquery.c @ 949] 00000000`0042f7a0 00000001`4029d723 : 00000000`00000000 00000000`00843d50 00000000`00000000 00000000`00000000 : postgres!PortalRun+0x1ca [c:\users\ioltas\git\postgres\src\backend\tcop\pquery.c @ 796] 00000000`0042f980 00000001`4029e1fc : 00000000`00000051 00000000`00894e60 00000000`0042fb70 00000000`009f8220 : postgres!exec_simple_query+0x573 [c:\users\ioltas\git\postgres\src\backend\tcop\postgres.c @ 1101] 00000000`0042fa70 00000001`4022eaea : 00000001`405f4300 00000001`404a37b8 00000000`000010a6 00000001`404a3938 : postgres!PostgresMain+0x63c [c:\users\ioltas\git\postgres\src\backend\tcop\postgres.c @ 4072] 00000000`0042fc60 00000001`40232645 : 00000001`00000001 00000000`000861df 00000000`1f7f5412 00000000`00000000 : postgres!BackendRun+0x1ca [c:\users\ioltas\git\postgres\src\backend\postmaster\postmaster.c @ 4271] 00000000`0042fcc0 00000001`4016ca71 : 00000000`00000003 00000000`009f2329 00000000`00000003 00000000`00000000 : postgres!SubPostmasterMain+0x255 [c:\users\ioltas\git\postgres\src\backend\postmaster\postmaster.c @ 4762] 00000000`0042ff00 00000001`403f1bfa : 00000000`00000000 00000000`00000001 00000000`00000000 00000000`00000000 : postgres!main+0x3c1 [c:\users\ioltas\git\postgres\src\backend\main\main.c @ 216] 00000000`0042ff30 00000000`76cc59cd : 00000000`00000000 00000000`00000000 00000000`00000000 00000000`00000000 : postgres!__tmainCRTStartup+0x11a [f:\dd\vctools\crt_bld\self_64_amd64\crt\src\crtexe.c @ 555] 00000000`0042ff60 00000000`76efa2e1 : 00000000`00000000 00000000`00000000 00000000`00000000 00000000`00000000 : kernel32!BaseThreadInitThunk+0xd 00000000`0042ff90 00000000`00000000 : 00000000`00000000 00000000`00000000 00000000`00000000 00000000`00000000 : ntdll!RtlUserThreadStart+0x21 STACK_COMMAND: ~0s; .ecxr ; kb FAULTING_SOURCE_CODE: 354: { 355: struct varlena *attr = (struct varlena *) DatumGetPointer(value); 356: Size result; 357: > 358: if (VARATT_IS_EXTERNAL_ONDISK(attr)) 359: { 360: /* va_rawsize is the size of the original datum -- including header */ 361: struct varatt_external toast_pointer; 362: 363: VARATT_EXTERNAL_GET_POINTER(toast_pointer, attr); -- Michael
pgsql-bugs by date: