Improve logging while calling core API (#32059)

* Improve logging while calling core API

* Use NULL for _core_error_string

* Don't raise inside Exception hanlder

* Changes based on comment

* Remove unused enum

* Decode and add qoutes for grpc_call_error_string.
pull/32131/head
Xuan Wang 2 years ago committed by GitHub
parent 356e3fd775
commit 47871b1e48
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 3
      src/python/grpcio/grpc/_cython/_cygrpc/aio/callback_common.pyx.pxi
  2. 20
      src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi
  3. 1
      src/python/grpcio/grpc/_cython/_cygrpc/grpc.pxi

@ -93,7 +93,8 @@ async def execute_batch(GrpcCallWrapper grpc_call_wrapper,
wrapper.c_functor(), NULL)
if error != GRPC_CALL_OK:
raise ExecuteBatchError("Failed grpc_call_start_batch: {}".format(error))
grpc_call_error_string = grpc_call_error_to_string(error).decode()
raise ExecuteBatchError("Failed grpc_call_start_batch: {} with grpc_call_error value: '{}'".format(error, grpc_call_error_string))
await future

@ -716,14 +716,18 @@ async def _handle_exceptions(RPCState rpc_state, object rpc_coro, object loop):
status_code = rpc_state.status_code
rpc_state.status_sent = True
await _send_error_status_from_server(
rpc_state,
status_code,
'Unexpected %s: %s' % (type(e), e),
rpc_state.trailing_metadata,
rpc_state.create_send_initial_metadata_op_if_not_sent(),
loop
)
try:
await _send_error_status_from_server(
rpc_state,
status_code,
'Unexpected %s: %s' % (type(e), e),
rpc_state.trailing_metadata,
rpc_state.create_send_initial_metadata_op_if_not_sent(),
loop
)
except ExecuteBatchError:
_LOGGER.exception('Failed sending error status from server')
traceback.print_exc()
cdef _add_callback_handler(object rpc_task, RPCState rpc_state):

@ -396,6 +396,7 @@ cdef extern from "grpc/grpc.h":
grpc_call_error grpc_call_start_batch(
grpc_call *call, const grpc_op *ops, size_t nops, void *tag,
void *reserved) nogil
const char* grpc_call_error_to_string(grpc_call_error error) nogil
grpc_call_error grpc_call_cancel(grpc_call *call, void *reserved) nogil
grpc_call_error grpc_call_cancel_with_status(grpc_call *call,
grpc_status_code status,

Loading…
Cancel
Save