Subject: Buildfarm: Enabling injection points on basilisk/dogfish (Alpine / musl)

From: Wolfgang Walther <[email-masked]>
Date: Sat, 12 Apr 2025 19:51:06 +0200

I recently enabled more features on my two buildfarm animals basilisk 
and dogfish, which are running on Alpine with musl-libc in a docker 
container.

--with-libnuma and --with-liburing seemed to work fine and have been 
enabled for the last few runs, but --enable-injection-points does not [1].

With injection points enabled, I get the following errors in test_aio:

[15:14:45.408](0.000s) not ok 187 - worker: first hard IO error is 
reported: expected stderr
[15:14:45.409](0.000s)
[15:14:45.409](0.000s) #   Failed test 'worker: first hard IO error is 
reported: expected stderr'
#   at t/001_aio.pl line 810.
[15:14:45.409](0.000s) #                   'psql:<stdin>:88: ERROR:  
could not read blocks 2..2 in file "base/5/16408": I/O error'
#     doesn't match '(?^:ERROR:.*could not read blocks 2\.\.2 in file 
\"base/.*\": Input/output error)'

5 more tests in that suite fail with similar errors. Full logs in the 
artifact downloads of the CI run [2].

It seems like it's just the error message that is different and has 
"I/O" instead of "Input/output"?

On a more general note, does enabling injection points make any sense 
here? I see that coverage in the build farm is not very big. IIUC, those 
are a development tool, so might not be relevant, because nobody is 
developing on Alpine / musl?

Best,

Wolfgang

[1]: https://github.com/technowledgy/postgresql-buildfarm-alpine/pull/100

[2]: 
https://github.com/technowledgy/postgresql-buildfarm-alpine/actions/runs/14420687470?pr=100