[v9.x backport] This is backporting multiple commits that were requested
This is a backport of multiple commits that were requested to be backported. It just seemed easier for me to do this in one batch. I can also split this into multiple PRs if requested.
#18610 #18669 #18745 #18758 #18831 #18857 #17919
Checklist
-
make -j4 test
(UNIX), orvcbuild test
(Windows) passes -
tests and/or benchmarks are included -
documentation is changed or added -
commit message follows commit guidelines