[rabbitmq-discuss] RabbitMQ Erlang API questions

Lev Walkin vlm at lionet.info
Fri Apr 10 10:54:32 BST 2009


Matthias Radestock wrote:
> Lev,
> 
> Lev Walkin wrote:
>> Lev Walkin wrote:
>>> Matthias Radestock wrote:
>>>>> 1. lib_amqp:close_channel(lib_amqp:start_channel()) leaks processes:
>>>> That looks like a bug. Do you get the same results against the 
>>>> default branch (of the erlang-client and rabbitmq-server)?
>>>
>>> Have not tried the default branch.
>>
>> The default branch for the client won't work with 1.5.4 server:
> 
> That is expected.
> 
>> If I check out the default branch server and the client, the following 
>> happens (pretty close to the above mismatch errors):
> 
>> direct_client_test:basic_qos_test...*timed out*
> 
> That's actually just one of the tests timing out. This has been fixed 
> but the changes haven't been qa'ed yet so they are not on 'default' yet.
> 
> Did you try running your tests to see whether you get the same process 
> leaks you experienced in 1.5.x?

Heck, let's do it now... Here it is:

1> code:add_pathsa(["./rabbitmq-server/ebin", 
"./rabbitmq-erlang-client/ebin"]).
ok
2> Connection = lib_amqp:start_connection("amq1").
<0.33.0>
3> {length(processes()), "Processes before RabbitMQ Client leaks"}.
{30,"Processes before RabbitMQ Client leaks"}
4> lib_amqp:close_channel(lib_amqp:start_channel(Connection)).
ok
5> {length(processes()), "Processes after RabbitMQ Client leak test 1"}.
{31,"Processes after RabbitMQ Client leak test 1"}
6> lib_amqp:close_channel(lib_amqp:start_channel(Connection)).
ok
7> {length(processes()), "Processes after RabbitMQ Client leak test 1"}.
{32,"Processes after RabbitMQ Client leak test 1"}
8> lib_amqp:close_channel(lib_amqp:start_channel(Connection)).
ok
9> {length(processes()), "Processes after RabbitMQ Client leak test 1"}.
{33,"Processes after RabbitMQ Client leak test 1"}
10> {now(), begin 
[lib_amqp:close_channel(lib_amqp:start_channel(Connection))
	|| _ <- lists:seq(1, 5000)], ok end, now()}.
{{1239,357113,299622},ok,{1239,357116,128088}}
11> {length(processes()), "Processes after many leak tests"}. 

{5033,"Processes after many leak tests"}
12>
Connection: Handling exit from <0.37.0> --> 
connection_socket_closed_unexpectedly
Broker forced connection: 320 -> <<"CONNECTION_FORCED - broker forced 
connection closure with reason 'shutdown'">>
12> {length(processes()), "Processes after RabbitMQ Server shutdown"}.
{5029,"Processes after RabbitMQ Server shutdown"}
13>

-- 
Lev Walkin
vlm at lionet.info




More information about the rabbitmq-discuss mailing list