fixing failing basic_qos_test
This commit is contained in:
		
							parent
							
								
									e7687ed879
								
							
						
					
					
						commit
						1ff98dcc84
					
				|  | @ -43,6 +43,9 @@ | |||
| -export([register_return_handler/2]). | ||||
| -export([register_flow_handler/2]). | ||||
| 
 | ||||
| -define(TIMEOUT_FLUSH, 60000). | ||||
| -define(TIMEOUT_CLOSE_OK, 3000). | ||||
| 
 | ||||
| %% This diagram shows the interaction between the different component | ||||
| %% processes in an AMQP client scenario. | ||||
| %% | ||||
|  | @ -483,6 +486,19 @@ handle_info(shutdown, State) -> | |||
| handle_info({shutdown, Reason}, State) -> | ||||
|     shutdown_with_reason(Reason, State); | ||||
| 
 | ||||
| %% @private | ||||
| handle_info({shutdown, FailShutdownReason, InitialReason}, | ||||
|             #channel_state{number = Number} = State) -> | ||||
|     case FailShutdownReason of | ||||
|         {connection_closing, timed_out_flushing_channel} -> | ||||
|             ?LOG_WARN("Channel ~p closing: timed out flushing while connection " | ||||
|                       "closing~n", [Number]); | ||||
|         {connection_closing, timed_out_waiting_close_ok} -> | ||||
|             ?LOG_WARN("Channel ~p closing: timed out waiting for " | ||||
|                       "channel.close_ok while connection closing~n", [Number]) | ||||
|     end, | ||||
|     {stop, {FailShutdownReason, InitialReason}, State}; | ||||
| 
 | ||||
| %% Handles the situation when the connection closes without closing the channel | ||||
| %% beforehand. The channel must block all further RPCs, | ||||
| %% flush the RPC queue (optional), and terminate | ||||
|  | @ -492,7 +508,17 @@ handle_info({connection_closing, CloseType, Reason}, | |||
|                            closing = Closing} = State) -> | ||||
|     case {CloseType, Closing, queue:is_empty(RpcQueue)} of | ||||
|         {flush, false, false} -> | ||||
|             erlang:send_after(?TIMEOUT_FLUSH, self(), | ||||
|                               {shutdown, | ||||
|                                {connection_closing, timed_out_flushing_channel}, | ||||
|                                Reason}), | ||||
|             {noreply, State#channel_state{closing = {connection, Reason}}}; | ||||
|         {flush, just_channel, false} -> | ||||
|             erlang:send_after(?TIMEOUT_CLOSE_OK, self(), | ||||
|                               {shutdown, | ||||
|                                {connection_closing, timed_out_waiting_close_ok}, | ||||
|                                Reason}), | ||||
|             {noreply, State}; | ||||
|         _ -> | ||||
|             shutdown_with_reason(Reason, State) | ||||
|     end; | ||||
|  |  | |||
|  | @ -134,8 +134,14 @@ receive_writer_send_command_signal(Writer) -> | |||
| %--------------------------------------------------------------------------- | ||||
| 
 | ||||
| send_frame(Channel, Frame) -> | ||||
|     {framing_pid, FramingPid} = resolve_framing_channel({channel, Channel}), | ||||
|     rabbit_framing_channel:process(FramingPid, Frame). | ||||
|     case resolve_framing_channel({channel, Channel}) of | ||||
|         {framing_pid, FramingPid} -> | ||||
|             rabbit_framing_channel:process(FramingPid, Frame); | ||||
|         undefined -> | ||||
|             ?LOG_INFO("Dropping frame ~p for invalid or closed channel " | ||||
|                       "number ~p~n", [Frame, Channel]), | ||||
|             ok | ||||
|     end. | ||||
| 
 | ||||
| recv(#connection_state{main_reader_pid = MainReaderPid}) -> | ||||
|     receive | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue