> I don't know if this is the only problem > I'll be in this general area today, so will mention if I stumble over > anything that looks broken.
I was testing the same patch with a large dataset and got a different segfault: > hasegeli=# explain select * from only mp_notification_20170225 where > server_id = 7; > QUERY PLAN > ---------------------------------------------------------------------------------------------------------- > Gather (cost=26682.94..476995.88 rows=1 width=215) > Workers Planned: 2 > -> Parallel Bitmap Heap Scan on mp_notification_20170225 > (cost=25682.94..475995.78 rows=1 width=215) > Recheck Cond: (server_id = 7) > -> Bitmap Index Scan on mp_notification_block_idx > (cost=0.00..25682.94 rows=4557665 width=0) > Index Cond: (server_id = 7) > (6 rows) > > hasegeli=# select * from only mp_notification_20170225 where server_id = 7; > 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. > * thread #1: tid = 0x5045a8f, 0x000000010ae44558 > postgres`brin_deform_tuple(brdesc=0x00007fea3c86a3a8, > tuple=0x00007fea3c891040) + 40 at brin_tuple.c:414, queue = > 'com.apple.main-thread', stop reason = signal SIGUSR1 > * frame #0: 0x000000010ae44558 > postgres`brin_deform_tuple(brdesc=0x00007fea3c86a3a8, > tuple=0x00007fea3c891040) + 40 at brin_tuple.c:414 [opt] > frame #1: 0x000000010ae4000c > postgres`bringetbitmap(scan=0x00007fea3c875c20, tbm=<unavailable>) + 428 at > brin.c:398 [opt] > frame #2: 0x000000010ae9b451 > postgres`index_getbitmap(scan=0x00007fea3c875c20, bitmap=<unavailable>) + 65 > at indexam.c:726 [opt] > frame #3: 0x000000010b0035a9 > postgres`MultiExecBitmapIndexScan(node=<unavailable>) + 233 at > nodeBitmapIndexscan.c:91 [opt] > frame #4: 0x000000010b002840 postgres`BitmapHeapNext(node=<unavailable>) + > 400 at nodeBitmapHeapscan.c:143 [opt] > frame #5: 0x000000010afef5d0 > postgres`ExecProcNode(node=0x00007fea3c873948) + 224 at execProcnode.c:459 > [opt] > frame #6: 0x000000010b004cc9 postgres`ExecGather [inlined] > gather_getnext(gatherstate=<unavailable>) + 520 at nodeGather.c:276 [opt] > frame #7: 0x000000010b004ac1 postgres`ExecGather(node=<unavailable>) + 497 > at nodeGather.c:212 [opt] > frame #8: 0x000000010afef6b2 > postgres`ExecProcNode(node=0x00007fea3c872f58) + 450 at execProcnode.c:541 > [opt] > frame #9: 0x000000010afeaf90 postgres`standard_ExecutorRun [inlined] > ExecutePlan(estate=<unavailable>, planstate=<unavailable>, > use_parallel_mode=<unavailable>, operation=<unavailable>, numberTuples=0, > direction=<unavailable>, dest=<unavailable>) + 29 at execMain.c:1616 [opt] > frame #10: 0x000000010afeaf73 > postgres`standard_ExecutorRun(queryDesc=<unavailable>, > direction=<unavailable>, count=0) + 291 at execMain.c:348 [opt] > frame #11: 0x000000010af8b108 > postgres`ExplainOnePlan(plannedstmt=0x00007fea3c871040, > into=0x0000000000000000, es=0x00007fea3c805360, queryString=<unavailable>, > params=<unavailable>, planduration=<unavailable>) + 328 at explain.c:533 [opt] > frame #12: 0x000000010af8ab98 > postgres`ExplainOneQuery(query=0x00007fea3c805890, > cursorOptions=<unavailable>, into=0x0000000000000000, es=0x00007fea3c805360, > queryString=<unavailable>,params=0x0000000000000000) + 280 at explain.c:369 > [opt] > frame #13: 0x000000010af8a773 postgres`ExplainQuery(pstate=<unavailable>, > stmt=0x00007fea3d005450, queryString="explain analyze select * from only > mp_notification_20170225 where server_id > 6;",params=0x0000000000000000, > dest=0x00007fea3c8052c8) + 819 at explain.c:254 [opt] > frame #14: 0x000000010b13b660 > postgres`standard_ProcessUtility(pstmt=0x00007fea3d005fa8, > queryString="explain analyze select * from only mp_notification_20170225 > where server_id > 6;",context=PROCESS_UTILITY_TOPLEVEL, > params=0x0000000000000000, dest=0x00007fea3c8052c8, > completionTag=<unavailable>) + 1104 at utility.c:675 [opt] > frame #15: 0x000000010b13ad2a > postgres`PortalRunUtility(portal=0x00007fea3c837640, > pstmt=0x00007fea3d005fa8, isTopLevel='\x01', setHoldSnapshot=<unavailable>, > dest=0x00007fea3c8052c8, completionTag=<unavailable>) + 90 at pquery.c:1165 > [opt] > frame #16: 0x000000010b139f56 > postgres`FillPortalStore(portal=0x00007fea3c837640, isTopLevel='\x01') + 182 > at pquery.c:1025 [opt] > frame #17: 0x000000010b139c22 > postgres`PortalRun(portal=0x00007fea3c837640, count=<unavailable>, > isTopLevel='\x01', dest=<unavailable>, altdest=<unavailable>, > completionTag=<unavailable>) + 402 at pquery.c:757 [opt] > frame #18: 0x000000010b13789b postgres`PostgresMain + 44 at > postgres.c:1101 [opt] > frame #19: 0x000000010b13786f postgres`PostgresMain(argc=<unavailable>, > argv=<unavailable>, dbname=<unavailable>, username=<unavailable>) + 8927 at > postgres.c:4066 [opt] > frame #20: 0x000000010b0ba113 postgres`PostmasterMain [inlined] BackendRun > + 7587 at postmaster.c:4317 [opt] > frame #21: 0x000000010b0ba0e8 postgres`PostmasterMain [inlined] > BackendStartup at postmaster.c:3989 [opt] > frame #22: 0x000000010b0ba0e8 postgres`PostmasterMain at postmaster.c:1729 > [opt] > frame #23: 0x000000010b0ba0e8 postgres`PostmasterMain(argc=<unavailable>, > argv=<unavailable>) + 7544 at postmaster.c:1337 [opt] > frame #24: 0x000000010b0332af postgres`main(argc=<unavailable>, > argv=<unavailable>) + 1567 at main.c:228 [opt] > frame #25: 0x00007fffb4e28255 libdyld.dylib`start + 1 I can try to provide a test case, if that wouldn't be enough to spot the problem. -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers