You run an incremental recovery after a segment goes down. The gprecoverseg process fails for an unknown reason and gpstate reports the segment is still marked down.
Checking the segment mirror log shows the following:
2021-09-29 09:30:03.964735 UTC,,,p23780,th1361979520,,,,0,,,seg4,,,,,"PANIC","58P01","could not fsync file ""base/16384/3936047.1"" (is_ao: 1): No such file or directory",,,,,,,0,,"md.c",1321,"Stack trace:
1 0xbf29ec postgres errstart (elog.c:557)
2 0xa83207 postgres mdsync (md.c:1318)
3 0xa52f38 postgres CheckPointBuffers (bufmgr.c:2008)
4 0x7475b7 postgres CreateRestartPoint (xlog.c:9184)
5 0xa03a30 postgres CheckpointerMain (checkpointer.c:527)
6 0x78a42e postgres AuxiliaryProcessMain (bootstrap.c:443)
7 0xa0f5b5 postgres <symbol not found> (postmaster.c:5837)
8 0xa1165c postgres <symbol not found> (postmaster.c:5502)
9 0x7fba4e8eb630 libpthread.so.0 <symbol not found> + 0x4e8eb630
10 0x7fba4dd64a13 libc.so.6 __select + 0x13
11 0x6b2ba8 postgres <symbol not found> (postmaster.c:1894)
12 0xa12c22 postgres PostmasterMain (postmaster.c:1523)
13 0x6b75a1 postgres main (main.c:205)
14 0x7fba4dc91555 libc.so.6 __libc_start_main + 0xf5
15 0x6c32bc postgres <symbol not found> + 0x6c32bc
"
If you look at the file system, you'll see the file exists on the mirror but not the primary.