Skip to content
Snippets Groups Projects
Commit 66e9d8e8 authored by Nicolas Noble's avatar Nicolas Noble
Browse files

Merge pull request #6410 from murgatroid99/ruby_stress_fixes

Ruby: improve server error handling, fix a reference error
parents 5a5dafa7 59dfee88
No related branches found
No related tags found
No related merge requests found
......@@ -11,10 +11,10 @@ AllCops:
- 'pb/test/**/*'
Metrics/CyclomaticComplexity:
Max: 8
Max: 9
Metrics/PerceivedComplexity:
Max: 8
Max: 9
Metrics/ClassLength:
Max: 250
......@@ -332,15 +332,13 @@ module GRPC
# the current thread to terminate it.
def run_till_terminated
GRPC.trap_signals
stopped = false
t = Thread.new do
run
stopped = true
end
t.abort_on_exception = true
wait_till_running
loop do
until running_state == :stopped
sleep SIGNAL_CHECK_PERIOD
break if stopped
break unless GRPC.handle_signals
end
stop
......@@ -416,7 +414,7 @@ module GRPC
GRPC.logger.warn("NOT AVAILABLE: too many jobs_waiting: #{an_rpc}")
noop = proc { |x| x }
c = ActiveCall.new(an_rpc.call, @cq, noop, noop, an_rpc.deadline)
c.send_status(StatusCodes::RESOURCE_EXHAUSTED, '')
c.send_status(GRPC::Core::StatusCodes::RESOURCE_EXHAUSTED, '')
nil
end
......@@ -427,7 +425,7 @@ module GRPC
GRPC.logger.warn("UNIMPLEMENTED: #{an_rpc}")
noop = proc { |x| x }
c = ActiveCall.new(an_rpc.call, @cq, noop, noop, an_rpc.deadline)
c.send_status(StatusCodes::UNIMPLEMENTED, '')
c.send_status(GRPC::Core::StatusCodes::UNIMPLEMENTED, '')
nil
end
......@@ -443,7 +441,12 @@ module GRPC
unless active_call.nil?
@pool.schedule(active_call) do |ac|
c, mth = ac
rpc_descs[mth].run_server_method(c, rpc_handlers[mth])
begin
rpc_descs[mth].run_server_method(c, rpc_handlers[mth])
rescue StandardError
c.send_status(GRPC::Core::StatusCodes::INTERNAL,
'Server handler failed')
end
end
end
rescue Core::CallError, RuntimeError => e
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment