diff -Naur a/src/python/grpcio/grpc/_cython/_cygrpc/aio/callback_common.pxd.pxi b/src/python/grpcio/grpc/_cython/_cygrpc/aio/callback_common.pxd.pxi --- a/src/python/grpcio/grpc/_cython/_cygrpc/aio/callback_common.pxd.pxi 2024-03-05 18:46:12.903254598 +0800 +++ b/src/python/grpcio/grpc/_cython/_cygrpc/aio/callback_common.pxd.pxi 2024-03-05 18:46:42.989252881 +0800 @@ -48,7 +48,7 @@ @staticmethod cdef void functor_run( grpc_completion_queue_functor* functor, - int succeed) + int succeed) noexcept cdef grpc_completion_queue_functor *c_functor(self) diff -Naur a/src/python/grpcio/grpc/_cython/_cygrpc/aio/callback_common.pyx.pxi b/src/python/grpcio/grpc/_cython/_cygrpc/aio/callback_common.pyx.pxi --- a/src/python/grpcio/grpc/_cython/_cygrpc/aio/callback_common.pyx.pxi 2024-03-05 18:46:12.903254598 +0800 +++ b/src/python/grpcio/grpc/_cython/_cygrpc/aio/callback_common.pyx.pxi 2024-03-05 18:47:00.094251906 +0800 @@ -50,7 +50,7 @@ @staticmethod cdef void functor_run( grpc_completion_queue_functor* functor, - int success): + int success) noexcept: cdef CallbackContext *context = functor cdef object waiter = context.waiter if not waiter.cancelled(): diff -Naur a/src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi b/src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi --- a/src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi 2024-03-05 18:46:12.903254598 +0800 +++ b/src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi 2024-03-05 18:48:02.097248368 +0800 @@ -316,7 +316,7 @@ return credentials cdef grpc_ssl_certificate_config_reload_status _server_cert_config_fetcher_wrapper( - void* user_data, grpc_ssl_server_certificate_config **config) with gil: + void* user_data, grpc_ssl_server_certificate_config **config) noexcept with gil: # This is a credentials.ServerCertificateConfig cdef ServerCertificateConfig cert_config = None if not user_data: diff -Naur a/src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pxd.pxi b/src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pxd.pxi --- a/src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pxd.pxi 2024-03-05 18:46:12.902254598 +0800 +++ b/src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pxd.pxi 2024-03-05 19:16:29.155150966 +0800 @@ -12,10 +12,10 @@ # See the License for the specific language governing permissions and # limitations under the License. -cdef void __prefork() nogil +cdef void __prefork() noexcept nogil -cdef void __postfork_parent() nogil +cdef void __postfork_parent() noexcept nogil -cdef void __postfork_child() nogil \ No newline at end of file +cdef void __postfork_child() noexcept nogil \ No newline at end of file diff -Naur a/src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi b/src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi --- a/src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi 2024-03-05 18:46:12.903254598 +0800 +++ b/src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi 2024-03-05 19:17:17.124148229 +0800 @@ -35,7 +35,7 @@ _fork_handler_failed = False -cdef void __prefork() nogil: +cdef void __prefork() noexcept nogil: with gil: global _fork_handler_failed _fork_handler_failed = False @@ -49,14 +49,14 @@ _fork_handler_failed = True -cdef void __postfork_parent() nogil: +cdef void __postfork_parent() noexcept nogil: with gil: with _fork_state.fork_in_progress_condition: _fork_state.fork_in_progress = False _fork_state.fork_in_progress_condition.notify_all() -cdef void __postfork_child() nogil: +cdef void __postfork_child() noexcept nogil: with gil: try: if _fork_handler_failed: diff -Naur a/src/python/grpcio/grpc/_cython/_cygrpc/vtable.pyx.pxi b/src/python/grpcio/grpc/_cython/_cygrpc/vtable.pyx.pxi --- a/src/python/grpcio/grpc/_cython/_cygrpc/vtable.pyx.pxi 2024-03-05 18:46:12.903254598 +0800 +++ b/src/python/grpcio/grpc/_cython/_cygrpc/vtable.pyx.pxi 2024-03-05 19:17:53.735146140 +0800 @@ -13,16 +13,16 @@ # limitations under the License. # TODO(https://github.com/grpc/grpc/issues/15662): Reform this. -cdef void* _copy_pointer(void* pointer): +cdef void* _copy_pointer(void* pointer) noexcept: return pointer # TODO(https://github.com/grpc/grpc/issues/15662): Reform this. -cdef void _destroy_pointer(void* pointer): +cdef void _destroy_pointer(void* pointer) noexcept: pass -cdef int _compare_pointer(void* first_pointer, void* second_pointer): +cdef int _compare_pointer(void* first_pointer, void* second_pointer) noexcept: if first_pointer < second_pointer: return -1 elif first_pointer > second_pointer: