On 2022/02/08 7:00, Greg Stark wrote:
Unless I'm misreading this code I think the nevents in WaitLatchOrSocket should really be 4 not 3. At least there are 4 calls to AddWaitEventToSet in it and I think it's possible to trigger all 4.
Good catch! I think you're right. As the quick test, I confirmed that the assertion failure happened when I passed four possible events to WaitLatchOrSocket() in postgres_fdw. TRAP: FailedAssertion("set->nevents < set->nevents_space", File: "latch.c", Line: 868, PID: 54424) 0 postgres 0x0000000107efa49f ExceptionalCondition + 223 1 postgres 0x0000000107cbca0c AddWaitEventToSet + 76 2 postgres 0x0000000107cbd86e WaitLatchOrSocket + 430 3 postgres_fdw.so 0x000000010848b1aa pgfdw_get_result + 218 4 postgres_fdw.so 0x000000010848accb do_sql_command + 75 5 postgres_fdw.so 0x000000010848c6b8 configure_remote_session + 40 6 postgres_fdw.so 0x000000010848c32d connect_pg_server + 1629 7 postgres_fdw.so 0x000000010848aa06 make_new_connection + 566 8 postgres_fdw.so 0x0000000108489a06 GetConnection + 550 9 postgres_fdw.so 0x0000000108497ba4 postgresBeginForeignScan + 260 10 postgres 0x0000000107a7d79f ExecInitForeignScan + 943 11 postgres 0x0000000107a5c8ab ExecInitNode + 683 12 postgres 0x0000000107a5028a InitPlan + 1386 13 postgres 0x0000000107a4fb66 standard_ExecutorStart + 806 14 postgres 0x0000000107a4f833 ExecutorStart + 83 15 postgres 0x0000000107d0277f PortalStart + 735 16 postgres 0x0000000107cfe150 exec_simple_query + 1168 17 postgres 0x0000000107cfd39e PostgresMain + 2110 18 postgres 0x0000000107c07e72 BackendRun + 50 19 postgres 0x0000000107c07438 BackendStartup + 552 20 postgres 0x0000000107c0621c ServerLoop + 716 21 postgres 0x0000000107c039f9 PostmasterMain + 6441 22 postgres 0x0000000107ae20d9 main + 809 23 libdyld.dylib 0x00007fff2045cf3d start + 1 24 ??? 0x0000000000000003 0x0 + 3 Regards, -- Fujii Masao Advanced Computing Technology Center Research and Development Headquarters NTT DATA CORPORATION