On 3/23/24 01:26, Melanie Plageman wrote:
> On Fri, Mar 22, 2024 at 08:22:11PM -0400, Melanie Plageman wrote:
>> On Tue, Mar 19, 2024 at 02:33:35PM +0200, Heikki Linnakangas wrote:
>>> On 18/03/2024 17:19, Melanie Plageman wrote:
>>>> I've attached v7 rebased over this commit.
>>>
>>> If we delayed table_beginscan_bm() call further, after starting the TBM
>>> iterator, we could skip it altogether when the iterator is empty.
>>>
>>> That's a further improvement, doesn't need to be part of this patch set.
>>> Just caught my eye while reading this.
>>
>> Hmm. You mean like until after the first call to tbm_[shared]_iterate()?
>> AFAICT, tbm_begin_iterate() doesn't tell us anything about whether or
>> not the iterator is "empty". Do you mean cases when the bitmap has no
>> blocks in it? It seems like we should be able to tell that from the
>> TIDBitmap.
>>
>>>
>>>> v7-0003-Push-BitmapHeapScan-skip-fetch-optimization-into-.patch
>>>
>>> I suggest to avoid the double negative with SO_CAN_SKIP_FETCH, and call the
>>> flag e.g. SO_NEED_TUPLE.
>>
>> Agreed. Done in attached v8. Though I wondered if it was a bit weird
>> that the flag is set in the common case and not set in the uncommon
>> case...
>
> v8 actually attached this time
I tried to run the benchmarks with v8, but unfortunately it crashes for
me very quickly (I've only seen 0015 to crash, so I guess the bug is in
that patch).
The backtrace attached, this doesn't seem right:
(gdb) p hscan->rs_cindex
$1 = 543516018
regards
--
Tomas Vondra
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company
Core was generated by `postgres: postgres test-1000000 [local] SELECT
'.
Program terminated with signal SIGSEGV, Segmentation fault.
#0 0x0000556f99ca7cd0 in heapam_scan_bitmap_next_tuple (scan=0x556f9b9e6960,
slot=0x556f9b9ef440, recheck=0x556f9b9eec10, lossy_pages=0x556f9b9eebf8,
exact_pages=0x556f9b9eebf0)
at heapam_handler.c:2576
warning: Source file is more recent than executable.
2576 targoffset = hscan->rs_vistuples[hscan->rs_cindex];
(gdb) bt
#0 0x0000556f99ca7cd0 in heapam_scan_bitmap_next_tuple (scan=0x556f9b9e6960,
slot=0x556f9b9ef440, recheck=0x556f9b9eec10, lossy_pages=0x556f9b9eebf8,
exact_pages=0x556f9b9eebf0)
at heapam_handler.c:2576
#1 0x0000556f99e17adb in table_scan_bitmap_next_tuple
(exact_pages=0x556f9b9eebf0, lossy_pages=0x556f9b9eebf8,
recheck=0x556f9b9eec10, slot=0x556f9b9ef440, scan=0x556f9b9e6960)
at ../../../src/include/access/tableam.h:2003
#2 BitmapHeapNext (node=0x556f9b9eeb00) at nodeBitmapHeapscan.c:227
#3 0x0000556f99e1a331 in ExecProcNode (node=0x556f9b9eeb00) at
../../../src/include/executor/executor.h:274
#4 gather_getnext (gatherstate=0x556f9b9ee970) at nodeGather.c:287
#5 ExecGather (pstate=0x556f9b9ee970) at nodeGather.c:222
#6 0x0000556f99e24ac3 in ExecProcNode (node=0x556f9b9ee970) at
../../../src/include/executor/executor.h:274
#7 ExecLimit (pstate=0x556f9b9ee698) at nodeLimit.c:95
#8 0x0000556f99e0174a in ExecProcNode (node=0x556f9b9ee698) at
../../../src/include/executor/executor.h:274
#9 ExecutePlan (execute_once=<optimized out>, dest=0x556f9b9f2360,
direction=<optimized out>, numberTuples=0, sendTuples=true,
operation=CMD_SELECT, use_parallel_mode=<optimized out>,
planstate=0x556f9b9ee698, estate=0x556f9b9ee458) at execMain.c:1644
#10 standard_ExecutorRun (queryDesc=0x556f9b944f88, direction=<optimized out>,
count=0, execute_once=<optimized out>) at execMain.c:363
#11 0x0000556f99f9cc7f in PortalRunSelect (portal=portal@entry=0x556f9b997008,
forward=forward@entry=true, count=0, count@entry=9223372036854775807,
dest=dest@entry=0x556f9b9f2360)
at pquery.c:924
#12 0x0000556f99f9dffa in PortalRun (portal=portal@entry=0x556f9b997008,
count=count@entry=9223372036854775807, isTopLevel=isTopLevel@entry=true,
run_once=run_once@entry=true,
dest=dest@entry=0x556f9b9f2360, altdest=altdest@entry=0x556f9b9f2360,
qc=0x7ffc123a0b60) at pquery.c:768
#13 0x0000556f99f9a57c in exec_simple_query (query_string=0x556f9b91ab18
"SELECT * FROM linear WHERE (a BETWEEN 2013 AND 8061) OFFSET 1000000;") at
postgres.c:1274
#14 0x0000556f99f9c051 in PostgresMain (dbname=<optimized out>,
username=<optimized out>) at postgres.c:4680
#15 0x0000556f99f96def in BackendMain (startup_data=<optimized out>,
startup_data_len=<optimized out>) at backend_startup.c:101
#16 0x0000556f99f0c564 in postmaster_child_launch
(child_type=child_type@entry=B_BACKEND,
startup_data=startup_data@entry=0x7ffc123a0f90 "",
startup_data_len=startup_data_len@entry=4,
client_sock=client_sock@entry=0x7ffc123a0fb0) at launch_backend.c:265
#17 0x0000556f99f0fea9 in BackendStartup (client_sock=0x7ffc123a0fb0) at
postmaster.c:3593
#18 ServerLoop () at postmaster.c:1674
#19 0x0000556f99f11b50 in PostmasterMain (argc=argc@entry=3,
argv=argv@entry=0x556f9b915260) at postmaster.c:1372
#20 0x0000556f99c5b0c3 in main (argc=3, argv=0x556f9b915260) at main.c:197
(gdb) p hscan->rs_cindex
$1 = 543516018
(gdb) p hscan
$2 = (HeapScanDesc) 0x556f9b9e6960
(gdb) p *hscan
$3 = {rs_base = {rs_rd = 0x7f65fb83e130, rs_snapshot = 0x556f9b94cf60, rs_nkeys
= 0, rs_key = 0x0, rs_mintid = {ip_blkid = {bi_hi = 31090, bi_lo = 25673},
ip_posid = 12320}, rs_maxtid = {
ip_blkid = {bi_hi = 14880, bi_lo = 24936}, ip_posid = 21107},
rs_tbmiterator = 0x556f9ba18f80, rs_pf_tbmiterator = 0x0, prefetch_maximum = 8,
bm_parallel = 0x7f65fb7991c0,
blockno = 4294967295, rs_flags = 1282, rs_parallel = 0x0}, rs_nblocks =
41667, rs_startblock = 0, rs_numblocks = 4294967295, rs_inited = false,
rs_coffset = 28257,
rs_cblock = 4294967295, rs_cbuf = 0, rs_strategy = 0x0, rs_ctup = {t_len =
1819234926, t_self = {ip_blkid = {bi_hi = 65535, bi_lo = 65535}, ip_posid = 0},
t_tableOid = 16416,
t_data = 0x0}, rs_parallelworkerdata = 0x0, rs_vmbuffer = 0,
rs_empty_tuples_pending = 0, pvmbuffer = 0, prefetch_target = -1,
prefetch_pages = 0, pfblockno = 4294967295,
rs_cindex = 543516018, rs_ntuples = 1414087291, rs_vistuples = {16717, 18512,
16709, 21328, 16707, 8270, 29498, 24931, 11886, 27760, 28257, 29486, 24948,
29810, 28789, 25439, 29551,
8308, 14646, 13364, 14638, 13362, 13618, 14880, 25459, 28257, 28718, 24940,
11886, 28532, 24948, 24428, 28515, 29811, 13600, 13106, 13618, 13102, 13365,
13618, 12336, 12336, 12336,
8244, 29498, 24931, 11886, 27760, 28257, 28718, 24940, 24430, 28530, 29559,
12576, 12341, 12856, 8249, 29498, 24931, 11886, 27760, 28257, 28718, 24940,
24430, 26999, 29796, 8296,
14644, 14880, 25459, 28257, 28718, 24940, 11886, 24944, 24946, 27756,
27749, 24927, 24951, 25970, 29728, 30066, 8293, 29498, 24931, 11886, 27760,
28257, 28718, 29281, 27745, 25964,
24428, 24947, 25958, 29728, 30066, 8293, 29498, 24931, 11886, 27760, 28257,
24878, 31091, 25454, 25439, 28769, 25185, 25964, 26144, 27745, 25971, 14880,
25459, 28257, 28718, 24940,
11886, 27760, 28257, 28255, 25711, 24421, 25705, 12832, 14880, 25459,
28257, 28718, 24940, 11886, 24948, 26482, 29797, 26988, 29811, 10272, 21627,
21057, 17735, 17748, 21582, 22866,
14880, 30821, 29296, 31520, 16726, 8274, 30266, 29281, 28526, 12576, 14880,
24950, 24946, 29812, 28526, 12576, 14880, 24950, 29810, 28793, 8293, 12338,
14880, 24950, 29810, 28793,
28525, 8292, 12589, 14880, 24950, 25458, 27759, 26988, 8292, 8240, 30266,
29281, 30062, 27756, 28265, 29287, 27749, 8307, 25128, 8233, 30266, 29281,
25964, 25974, 29548, 28789,
12320...}}
(gdb) bt full
#0 0x000055e7d81c6cd0 in heapam_scan_bitmap_next_tuple (scan=0x55e7d98fd140,
slot=0x55e7d98eb440, recheck=0x55e7d98eac10, lossy_pages=0x55e7d98eabf8,
exact_pages=0x55e7d98eabf0)
at heapam_handler.c:2576
hscan = 0x55e7d98fd140
targoffset = <optimized out>
page = <optimized out>
lp = <optimized out>
__func__ = "heapam_scan_bitmap_next_tuple"
#1 0x000055e7d8336adb in table_scan_bitmap_next_tuple
(exact_pages=0x55e7d98eabf0, lossy_pages=0x55e7d98eabf8,
recheck=0x55e7d98eac10, slot=0x55e7d98eb440, scan=0x55e7d98fd140)
at ../../../src/include/access/tableam.h:2003
__func__ = "table_scan_bitmap_next_tuple"
__errno_location = <optimized out>
#2 BitmapHeapNext (node=0x55e7d98eab00) at nodeBitmapHeapscan.c:227
econtext = 0x55e7d98ead08
scan = 0x55e7d98fd140
tbm = <optimized out>
slot = 0x55e7d98eb440
dsa = <optimized out>
__func__ = "BitmapHeapNext"
#3 0x000055e7d8339331 in ExecProcNode (node=0x55e7d98eab00) at
../../../src/include/executor/executor.h:274
No locals.
#4 gather_getnext (gatherstate=0x55e7d98ea970) at nodeGather.c:287
estate = 0x55e7d98ea458
outerPlan = 0x55e7d98eab00
outerTupleSlot = <optimized out>
fslot = 0x55e7d98ebf10
tup = <optimized out>
outerPlan = <optimized out>
outerTupleSlot = <optimized out>
fslot = <optimized out>
tup = <optimized out>
estate = <optimized out>
#5 ExecGather (pstate=0x55e7d98ea970) at nodeGather.c:222
node = <optimized out>
slot = <optimized out>
econtext = 0x55e7d98eaa78
#6 0x000055e7d8343ac3 in ExecProcNode (node=0x55e7d98ea970) at
../../../src/include/executor/executor.h:274
No locals.
#7 ExecLimit (pstate=0x55e7d98ea698) at nodeLimit.c:95
node = 0x55e7d98ea698
econtext = 0x55e7d98ea8a0
direction = <optimized out>
slot = <optimized out>
outerPlan = 0x55e7d98ea970
__func__ = "ExecLimit"
#8 0x000055e7d832074a in ExecProcNode (node=0x55e7d98ea698) at
../../../src/include/executor/executor.h:274
No locals.
#9 ExecutePlan (execute_once=<optimized out>, dest=0x55e7d98ee380,
direction=<optimized out>, numberTuples=0, sendTuples=true,
operation=CMD_SELECT, use_parallel_mode=<optimized out>,
planstate=0x55e7d98ea698, estate=0x55e7d98ea458) at execMain.c:1644
slot = <optimized out>
--Type <RET> for more, q to quit, c to continue without paging--
current_tuple_count = 0
slot = <optimized out>
current_tuple_count = <optimized out>
#10 standard_ExecutorRun (queryDesc=0x55e7d9840f88, direction=<optimized out>,
count=0, execute_once=<optimized out>) at execMain.c:363
estate = 0x55e7d98ea458
operation = CMD_SELECT
dest = 0x55e7d98ee380
sendTuples = <optimized out>
oldcontext = 0x55e7d9840e90
__func__ = "standard_ExecutorRun"
#11 0x000055e7d84bbc7f in PortalRunSelect (portal=portal@entry=0x55e7d9893008,
forward=forward@entry=true, count=0, count@entry=9223372036854775807,
dest=dest@entry=0x55e7d98ee380)
at pquery.c:924
queryDesc = 0x55e7d9840f88
direction = <optimized out>
nprocessed = <optimized out>
__func__ = "PortalRunSelect"
#12 0x000055e7d84bcffa in PortalRun (portal=portal@entry=0x55e7d9893008,
count=count@entry=9223372036854775807, isTopLevel=isTopLevel@entry=true,
run_once=run_once@entry=true,
dest=dest@entry=0x55e7d98ee380, altdest=altdest@entry=0x55e7d98ee380,
qc=0x7ffd7aceec20) at pquery.c:768
_save_exception_stack = 0x7ffd7aceee60
_save_context_stack = 0x0
_local_sigjmp_buf = {{__jmpbuf = {1, 6450011384570971824,
140726663834656, 94454275826560, 94454275452936, 94454274947640,
988062591367775920, 6450008691990202032},
__mask_was_saved = 0, __saved_mask = {__val = {94453442954861,
94450625806337, 0, 94450625806336, 94454256175041, 0, 94454275461144,
94454257765830, 94454275452936,
94454257765830, 1, 94454275825720, 0, 94454274947640,
11208266538747310592, 94454274947976}}}}
_do_rethrow = <optimized out>
result = <optimized out>
nprocessed = <optimized out>
saveTopTransactionResourceOwner = 0x55e7d984e6e0
saveTopTransactionContext = 0x55e7d9848e40
saveActivePortal = 0x0
saveResourceOwner = 0x55e7d984e6e0
savePortalContext = 0x0
saveMemoryContext = 0x55e7d9848e40
__func__ = "PortalRun"
#13 0x000055e7d84b957c in exec_simple_query (query_string=0x55e7d9816b18
"SELECT * FROM cyclic_fuzz WHERE (a BETWEEN 66 AND 82) OFFSET 1000000;") at
postgres.c:1274
cmdtaglen = 6
snapshot_set = <optimized out>
per_parsetree_context = 0x0
plantree_list = <optimized out>
parsetree = 0x55e7d9817a10
commandTag = <optimized out>
qc = {commandTag = CMDTAG_UNKNOWN, nprocessed = 0}
querytree_list = <optimized out>
portal = 0x55e7d9893008
receiver = 0x55e7d98ee380
format = 0
cmdtagname = <optimized out>
parsetree_item__state = {l = 0x55e7d9817a38, i = 0}
dest = DestRemote
oldcontext = 0x55e7d9848e40
--Type <RET> for more, q to quit, c to continue without paging--
parsetree_list = 0x55e7d9817a38
parsetree_item = <optimized out>
save_log_statement_stats = false
was_logged = false
use_implicit_block = false
msec_str =
"\000\000\000\000\000\000\000\000\0002\356u\bË\233\340\216\224\330\347U\000\000\000
\000\000\000\000\000"
__func__ = "exec_simple_query"
#14 0x000055e7d84bb051 in PostgresMain (dbname=<optimized out>,
username=<optimized out>) at postgres.c:4680
query_string = 0x55e7d9816b18 "SELECT * FROM cyclic_fuzz WHERE (a
BETWEEN 66 AND 82) OFFSET 1000000;"
firstchar = <optimized out>
input_message = {data = 0x55e7d9816b18 "SELECT * FROM cyclic_fuzz WHERE
(a BETWEEN 66 AND 82) OFFSET 1000000;", len = 70, maxlen = 1024, cursor = 70}
local_sigjmp_buf = {{__jmpbuf = {140726663835040, 6450011346656560816,
94454254631152, 140726663835760, 140726663835760, 140726663835928,
988062591193712304, 6450008694811133616},
__mask_was_saved = 1, __saved_mask = {__val = {4194304, 0, 0, 0, 0,
0, 0, 0, 140311975264413, 94454275173984, 0, 0, 140311975264413,
94454275190384, 140311976438464, 1023}}}}
send_ready_for_query = false
idle_in_transaction_timeout_enabled = false
idle_session_timeout_enabled = false
__func__ = "PostgresMain"
#15 0x000055e7d84b5def in BackendMain (startup_data=<optimized out>,
startup_data_len=<optimized out>) at backend_startup.c:101
bsdata = <optimized out>
#16 0x000055e7d842b564 in postmaster_child_launch
(child_type=child_type@entry=B_BACKEND,
startup_data=startup_data@entry=0x7ffd7acef050 "",
startup_data_len=startup_data_len@entry=4,
client_sock=client_sock@entry=0x7ffd7acef070) at launch_backend.c:265
pid = <optimized out>
#17 0x000055e7d842eea9 in BackendStartup (client_sock=0x7ffd7acef070) at
postmaster.c:3593
bn = 0x55e7d9818940
pid = <optimized out>
startup_data = {canAcceptConnections = CAC_OK}
bn = <optimized out>
pid = <optimized out>
startup_data = <optimized out>
__func__ = "BackendStartup"
__errno_location = <optimized out>
__errno_location = <optimized out>
save_errno = <optimized out>
__errno_location = <optimized out>
__errno_location = <optimized out>
#18 ServerLoop () at postmaster.c:1674
s = {sock = 9, raddr = {addr = {ss_family = 1,
__ss_padding =
"\000\000\347U\000\000\254gy\330\347U\000\0008709", '\000' <repeats 21 times>,
"\004\000\000\000\000\000\000\272Ja\330\347U\000\000\360\360\316z\375\177\000\000`\251s\330\347U\000\000\360\360\316z\375\177\000\000\357\001_\330\347U",
'\000' <repeats 18 times>, " j\201\331\347U\000\000ZJ\a\330\347U\000",
__ss_align = 4269206038}, salen = 2}}
i = 0
now = <optimized out>
last_lockfile_recheck_time = 1711283252
last_touch_time = 1711283252
events = {{pos = 2, events = 2, fd = 7, user_data = 0x0}, {pos =
-303599753, events = 32668, fd = 5, user_data = 0x7f9ced682d70}, {pos = 1,
events = 0, fd = 0, user_data = 0x1}, {
pos = -303439168, events = 32668, fd = 0, user_data =
0x7f9cede9e2c0}, {pos = 1, events = 21991, fd = 2060382680, user_data =
0x7f9cede9e648}, {pos = 0, events = 0, fd = 0,
user_data = 0x55e7d9840910}, {pos = -1, events = 0, fd =
2060382680, user_data = 0x7ffd7acef1e7}, {pos = 0, events = 0, fd = 2060382692,
user_data = 0x7f9ced797d0e <inet_aton_end+110>}, {pos = 2060382780,
events = 32765, fd = 2060382784, user_data = 0x55e7d9841d80}, {pos =
-645658351, events = 21991, fd = 6,
user_data = 0x9b8bc30875ee3200}, {pos = 268, events = 0, fd =
2060383156, user_data = 0x7ffd7acef9d0}, {pos = -310803038, events = 32668, fd
= 0,
user_data = 0x100000000000000}, {pos = -645648096, events = 21991,
fd = 1978544640, user_data = 0x55e7d9818740}, {pos = -645643304, events =
21991, fd = 10,
--Type <RET> for more, q to quit, c to continue without paging--
user_data = 0x7f9ced7495dc <gaih_result_reset+28>}, {pos = 10,
events = 0, fd = -311115396, user_data = 0x55e7d9811260}, {pos = 3, events = 0,
fd = -664429546,
user_data = 0x7f9cede7f35a <_dl_runtime_resolve_xsave+138>}, {pos =
2060384808, events = 32765, fd = -645667952, user_data = 0x37}, {pos = 1,
events = 0, fd = 2060383216,
user_data = 0x0}, {pos = 0, events = 0, fd = 2060383376, user_data
= 0x7ffd7acef330}, {pos = -645643304, events = 21991, fd = 1, user_data =
0x7ffd7acefa40}, {pos = 10,
events = 32765, fd = 76, user_data = 0x2e2f706d742f}, {pos =
1364412240, events = 875900492, fd = -645653120, user_data = 0x0}, {pos = 0,
events = 0, fd = -661294368,
user_data = 0x55e7d874e4b5}, {pos = -664536538, events = 21991, fd
= 0, user_data = 0x0}, {pos = 0, events = 0, fd = 0, user_data =
0x7f9cede6c540}, {pos = 2060383256,
events = 32765, fd = 1918989871, user_data = 0x65726774736f702f},
{pos = 796091500, events = 1882023792, fd = 1751348321, user_data = 0xff}, {pos
= 0, events = 0, fd = 255,
user_data = 0x0}, {pos = 0, events = 0, fd = 0, user_data = 0xa},
{pos = 0, events = 0, fd = 16777216, user_data = 0x0}, {pos = 0, events = 0, fd
= 0, user_data = 0x0}, {
pos = 0, events = 0, fd = 1, user_data = 0x100000000}, {pos = 2,
events = 17, fd = -303603420, user_data = 0x7f9cede6c540}, {pos = -311915736,
events = 32668, fd = 2090263927,
user_data = 0x7f9ced687e9c}, {pos = 2060383508, events = 32765, fd
= -303602277, user_data = 0x8e3}, {pos = -311841864, events = 32668, fd =
-303643328,
user_data = 0x7ffd7acef518}, {pos = 2060383508, events = 32765, fd
= 0, user_data = 0x55e7d8074923}, {pos = 0, events = 0, fd = -670870984,
user_data = 0x1f25b95}, {
pos = 2060383728, events = 32765, fd = 2060383720, user_data =
0x7f9ced682ce8}, {pos = 0, events = 0, fd = 10, user_data = 0x0}, {pos = 0,
events = 0, fd = -303603420,
user_data = 0x7f9cede6c540}, {pos = -311915736, events = 32668, fd
= 259272455, user_data = 0x7f9ced686728}, {pos = 2060383700, events = 32765, fd
= -303602277,
user_data = 0x306}, {pos = -311841864, events = 32668, fd =
-303643328, user_data = 0x0}, {pos = 2060383700, events = 32765, fd =
-670611165, user_data = 0x7c96e577}, {
pos = -311939728, events = 32668, fd = -303438264, user_data =
0x7ffd7acef5e8}, {pos = 2060383872, events = 32765, fd = -303599753, user_data
= 0x5}, {pos = -311939728,
events = 32668, fd = 1, user_data = 0x0}, {pos = 1, events = 0, fd
= -303439168, user_data = 0x55e7d875284d}, {pos = -303439168, events = 32668,
fd = 1,
user_data = 0x7ffd7acef5f0}, {pos = -303438264, events = 32668, fd
= 0, user_data = 0x55e7d8659a89}, {pos = -311163099, events = 32668, fd = 0,
user_data = 0x8}, {
pos = 2060383728, events = 32765, fd = -1, user_data =
0x7f9ced696070}, {pos = -303643328, events = 32668, fd = 2, user_data =
0x46000041c0}, {pos = 70, events = 0, fd = 0,
user_data = 0x1000}, {pos = -303439168, events = 32668, fd = 245,
user_data = 0x55e7d80f3750}, {pos = -661461080, events = 21991, fd = 3,
user_data = 0x55e7d875284d}, {
pos = -303574238, events = 32668, fd = 1, user_data = 0x0}, {pos =
-663359120, events = 21991, fd = -663359139, user_data = 0x7f9ced696070}, {pos
= -311128592, events = 32668,
fd = -661290912, user_data = 0x7ffd7acefa40}, {pos = 2060384864,
events = 32765, fd = 0, user_data = 0x0}, {pos = -303565990, events = 32668, fd
= 0,
user_data = 0x7f9ced70fd84 <__GI___pthread_sigmask+68>}, {pos = 0,
events = 0, fd = -661344352, user_data = 0x2}, {pos = 739479668, events = 0, fd
= 2060746880,
user_data = 0x55e7d80f3330}}
nevents = <optimized out>
__func__ = "ServerLoop"
#19 0x000055e7d8430b50 in PostmasterMain (argc=argc@entry=3,
argv=argv@entry=0x55e7d9811260) at postmaster.c:1372
opt = <optimized out>
status = <optimized out>
userDoption = <optimized out>
listen_addr_saved = <optimized out>
output_config_variable = <optimized out>
__func__ = "PostmasterMain"
#20 0x000055e7d817a0c3 in main (argc=3, argv=0x55e7d9811260) at main.c:197
do_check_root = <optimized out>