From 0x6e6562 at gmail.com Sun Feb 1 00:28:03 2009 From: 0x6e6562 at gmail.com (Ben Hood) Date: Sun, 1 Feb 2009 00:28:03 +0000 Subject: [rabbitmq-discuss] RabbitMQ or other AMQP Client on Embedded Systems In-Reply-To: <4984E4A6.8040709@gmail.com> References: <4984E4A6.8040709@gmail.com> Message-ID: <269388e30901311628j433bb88cw59071efffbed7df0@mail.gmail.com> Angus, On Sat, Jan 31, 2009 at 11:54 PM, Angus Davis wrote: > We could consider, for example, a Linksys WRT54G running > OpenWRT Linux - does anyone have experience running RabbitMQ or another > RabbitMQ-compatible AMQP client in such an environment, perhaps on an > Linksys WRT54G or similar embedded device? FWIW we use bunch of Linksys NSLU2 SLUGs to test Rabbit broker clustering. However, you are more interested in the client rather than the broker. Considering that the server can run in a resource constrained environment, it is likely that a client scenario would work as well. Depending on your actual resource constraints, you might want to use a native client in order to avoid the overhead of a VM. Were that the case, you might want to look at OpenAMQ's C client, I should imagine it compiles on a variety of architectures. But I don't know if you had any specific client language or bindings in mind. HTH, Ben From ch at murgatroid.com Sun Feb 1 01:09:28 2009 From: ch at murgatroid.com (christopher hoover) Date: Sat, 31 Jan 2009 17:09:28 -0800 Subject: [rabbitmq-discuss] getting started, broker runs; can't get status In-Reply-To: <4984E351.5030202@lshift.net> References: <3d5db09e0901201356r1cafa64aud71de1a8c2d28cef@mail.gmail.com> <49765E86.605@lshift.net> <9F62222D-82AD-4CB1-9FDA-668ED6D797B4@gmail.com> <3d5db09e0901221407p21994b0ck880062a66c6f8536@mail.gmail.com> <497A07F9.9020907@lshift.net> <4983B7EB.5070500@interactivemediums.com> <498409CD.6060600@lshift.net> <921b71e30901311048k3a96f0c8o7a303b1b89e16d99@mail.gmail.com> <4984A903.7060804@lshift.net> <921b71e30901311213h5c9b072ftff66b3addd2a0466@mail.gmail.com> <4984B9E6.5050804@lshift.net> <4984BDAD.9040502@cohesiveft.com> <4984BE9D.6080909@lshift.net> <4984C4DC.1080105@cohesiveft.com> <4984E351.5030202@lshift.net> Message-ID: <00de01c98409$bb7af760$3270e620$@com> > Dave, Christopher, to test the above theory, please re-enable Nagle by > changing the following lines in the rabbitmq-server script from > > [ "x" = "x$RABBITMQ_SERVER_ERL_ARGS" ] && RABBITMQ_SERVER_ERL_ARGS="+K > true +A30 \ > -kernel inet_default_listen_options > [{nodelay,true},{sndbuf,16384},{recbuf,4096}] \ > -kernel inet_default_connect_options [{nodelay,true}]" > > to > > [ "x" = "x$RABBITMQ_SERVER_ERL_ARGS" ] && RABBITMQ_SERVER_ERL_ARGS="+K > true +A30" > > (Alternatively you can override the value by setting > RABBITMQ_SERVER_ERL_ARGS in your shell or SERVER_ERL_ARGS in > /etc/default/rabbitmq) The /etc/init.d script invokes rabbitmq-multi, not rabbitmq-server. When I add those args to rabbitmq-multi (via RABBITMQ_MULTI_ERL_ARGS), I see they get passed to erl. But if the cwd is "/" the startup still fails (whereas if it is /var/lib/rabbitmq it works). I have a clean ubuntu that I upgrade to jaunty, but I'm having trouble reproducing the problem cleanly. I can't make it fail yet. I will continue to try. I've spent a lot of time with strace so far without getting a clue. I'm suspicious of the node name handling in the erlang runtime/kernel, but even running all-but-identical /etc/hosts and identical /etc/resolv.conf, /etc/nsswitch.conf, /etc/hosts.conf hasn't shed a clue. -ch From matthias at lshift.net Sun Feb 1 08:52:50 2009 From: matthias at lshift.net (Matthias Radestock) Date: Sun, 01 Feb 2009 08:52:50 +0000 Subject: [rabbitmq-discuss] getting started, broker runs; can't get status In-Reply-To: <00de01c98409$bb7af760$3270e620$@com> References: <3d5db09e0901201356r1cafa64aud71de1a8c2d28cef@mail.gmail.com> <49765E86.605@lshift.net> <9F62222D-82AD-4CB1-9FDA-668ED6D797B4@gmail.com> <3d5db09e0901221407p21994b0ck880062a66c6f8536@mail.gmail.com> <497A07F9.9020907@lshift.net> <4983B7EB.5070500@interactivemediums.com> <498409CD.6060600@lshift.net> <921b71e30901311048k3a96f0c8o7a303b1b89e16d99@mail.gmail.com> <4984A903.7060804@lshift.net> <921b71e30901311213h5c9b072ftff66b3addd2a0466@mail.gmail.com> <4984B9E6.5050804@lshift.net> <4984BDAD.9040502@cohesiveft.com> <4984BE9D.6080909@lshift.net> <4984C4DC.1080105@cohesiveft.com> <4984E351.5030202@lshift.net> <00de01c98409$bb7af760$3270e620$@com> Message-ID: <498562E2.6030709@lshift.net> Christopher, christopher hoover wrote: > The /etc/init.d script invokes rabbitmq-multi, not rabbitmq-server. > > When I add those args to rabbitmq-multi (via RABBITMQ_MULTI_ERL_ARGS), I see > they get passed to erl. rabbitmq-multi invokes rabbitmq-server, so you do need to set the RABBITMQ_SERVER_ERL_ARGS var in the way I described. > I have a clean ubuntu that I upgrade to jaunty, but I'm having trouble > reproducing the problem cleanly. I can't make it fail yet. It might be worth comparing what packages you have installed. Matthias. From sustrik at imatix.com Sun Feb 1 09:33:20 2009 From: sustrik at imatix.com (Martin Sustrik) Date: Sun, 01 Feb 2009 10:33:20 +0100 Subject: [rabbitmq-discuss] RabbitMQ or other AMQP Client on Embedded Systems In-Reply-To: <269388e30901311628j433bb88cw59071efffbed7df0@mail.gmail.com> References: <4984E4A6.8040709@gmail.com> <269388e30901311628j433bb88cw59071efffbed7df0@mail.gmail.com> Message-ID: <49856C60.60206@imatix.com> Angus, > Were that the case, you might want to look at OpenAMQ's C client, I > should imagine it compiles on a variety of architectures. You may also have a look at 0MQ project (www.zeromq.org). It doesn't include AMQP broker so you would have to use RabbitMQ broker as the central point, however, upcoming 0.5 release is able to play part of AMQP client. The advantages for embedded devices that it works on wide variety of platforms including real-time ones like QNX, it supports ARM microarchitecture, it's small (requires few kB of memory & disk space), and it's specifically tuned for real-time environments. Martin From holger at wizards.de Sun Feb 1 14:28:05 2009 From: holger at wizards.de (=?ISO-8859-1?Q?Holger_Hoffst=E4tte?=) Date: Sun, 01 Feb 2009 15:28:05 +0100 Subject: [rabbitmq-discuss] High(er) latency with 1.5.1? In-Reply-To: <497D9F56.4080908@wizards.de> References: <497D8CBE.10702@wizards.de> <497D992C.5070707@lshift.net> <497D9F56.4080908@wizards.de> Message-ID: <4985B175.90502@wizards.de> For your Sunday afternoon delight.. Holger Hoffst?tte wrote: > Matthias Radestock wrote: >> The scalability improvement in 1.5.x affect latency somewhat, but not by >> a factor of 3. And I cannot think of any other changes off the top of my >> head that would cause this. > > hmm..okay. I ran the test on two very different systems (dual-core Windows > laptop and rusty single-core Linux box) and both showed essentially the > same numbers, which made me curious. I still had the results from the > previous runs back when we found the Nagle bug, and those were on the > order of 280,320,500us with a Nagle-disabled 1.4 rabbit. As it turns out the higher latency was simply caused by my laptop deciding to power the CPU cores down by a factor of 2.. <:-) Switching the system to "Maximum Performance" immediately lowered the numbers, to the order of 350/450/600us. Running the Java client with -server -XX:CompileThreshold=100 brought it further down to the previous 290/350/550us; anything beyond that is probably thread/OS scheduling noise, considering that this is Windows and the broker runs on the same host too. So all is well. cheerz Holger From robert.clutton at gmail.com Mon Feb 2 08:03:23 2009 From: robert.clutton at gmail.com (Robbie Clutton) Date: Mon, 2 Feb 2009 08:03:23 +0000 Subject: [rabbitmq-discuss] Channel Error - 404 Message-ID: <671c46500902020003m64d43de7re71f554876c5b437@mail.gmail.com> Hi, I'm just having a play with RabbitMQ and I'm getting some connection issues when connecting with Java, however, if I connect with a Ruby client to the same channel it's fine, and then it seems to create the channel and the Java client plays nicely after that. Am I missing some 'create channel' call? Cheers Robbie ConnectionParameters params = new ConnectionParameters(); params.setRequestedHeartbeat(0); ConnectionFactory factory = new ConnectionFactory(params); Connection conn = factory.newConnection("localhost"); Channel channel = conn.createChannel(); channel.exchangeDeclare("allqueues", "direct"); channel.queueDeclare("queue name"); channel.queueBind("queue name", "all queues", "routingKey"); byte[] messageBodyBytes = "Hello, world!".getBytes(); channel.basicPublish("all queues", "routingKey", null, messageBodyBytes); Ruby: require 'mq' require 'pp' EM.run do connection = AMQP.connect(:host => 'localhost', :logging => false) channel = MQ.new(connection) queue = MQ::Queue.new(channel, 'queue name') exchange = MQ::Exchange.new(channel, :fanout, 'all queues') queue.bind(exchange) exchange.publish('') exchange.publish('some more stuff') end Here's the exception I get from the Java client: com.rabbitmq.client.ShutdownSignalException (channel error; reason: {#method(reply-code=404,reply-text=NOT_FOUND - no exchange 'all queues' in vhost '/',class-id=50,method-id=20),null,""}) at com.rabbitmq.client.impl.ChannelN.processAsync(ChannelN.java:191) at com.rabbitmq.client.impl.AMQChannel.handleCompleteInboundCommand(AMQChannel.java:159) at com.rabbitmq.client.impl.AMQChannel.handleFrame(AMQChannel.java:110) at com.rabbitmq.client.impl.AMQConnection$MainLoop.run(AMQConnection.java:456) From matthias at lshift.net Mon Feb 2 08:12:03 2009 From: matthias at lshift.net (Matthias Radestock) Date: Mon, 02 Feb 2009 08:12:03 +0000 Subject: [rabbitmq-discuss] Channel Error - 404 In-Reply-To: <671c46500902020003m64d43de7re71f554876c5b437@mail.gmail.com> References: <671c46500902020003m64d43de7re71f554876c5b437@mail.gmail.com> Message-ID: <4986AAD3.2090000@lshift.net> Robbie, Robbie Clutton wrote: > channel.exchangeDeclare("allqueues", "direct"); > ... > channel.basicPublish("all queues", "routingKey", null, messageBodyBytes); [...] > com.rabbitmq.client.ShutdownSignalException (channel error; reason: > {#method(reply-code=404,reply-text=NOT_FOUND - no > exchange 'all queues' in vhost '/',class-id=50,method-id=20),null,""}) The server tells you exactly what is wrong :) You are declaring an exchange "allqueues" but try to publish to an exchange "all queues". Matthias. From robert.clutton at gmail.com Mon Feb 2 08:17:50 2009 From: robert.clutton at gmail.com (Robbie Clutton) Date: Mon, 2 Feb 2009 08:17:50 +0000 Subject: [rabbitmq-discuss] Channel Error - 404 In-Reply-To: <4986AAD3.2090000@lshift.net> References: <671c46500902020003m64d43de7re71f554876c5b437@mail.gmail.com> <4986AAD3.2090000@lshift.net> Message-ID: <671c46500902020017y123f0a14pd875da0c3abd4a3c@mail.gmail.com> 2009/2/2 Matthias Radestock : > Robbie, > > Robbie Clutton wrote: >> >> channel.exchangeDeclare("allqueues", "direct"); >> ... >> channel.basicPublish("all queues", "routingKey", null, >> messageBodyBytes); > > [...] > >> com.rabbitmq.client.ShutdownSignalException (channel error; reason: >> {#method(reply-code=404,reply-text=NOT_FOUND - no >> exchange 'all queues' in vhost '/',class-id=50,method-id=20),null,""}) > > The server tells you exactly what is wrong :) > > You are declaring an exchange "allqueues" but try to publish to an exchange > "all queues". > that's definitely an 'aha' moment. Thanks. > > Matthias. > From tonyg at lshift.net Mon Feb 2 13:23:39 2009 From: tonyg at lshift.net (Tony Garnock-Jones) Date: Mon, 02 Feb 2009 13:23:39 +0000 Subject: [rabbitmq-discuss] Mercurial usage: "default", not "tip" In-Reply-To: <038DC6DE-C4F1-4550-B6B5-431BCD02900B@soundcloud.com> References: <4982F575.6050209@lshift.net> <038DC6DE-C4F1-4550-B6B5-431BCD02900B@soundcloud.com> Message-ID: <4986F3DB.2090903@lshift.net> Sean Treadway wrote: > The two URLs that we used to build our latest installation were from: > http://www.rabbitmq.com/server.html > http://www.rabbitmq.com/download.html I've fixed those two pages to point to the "default.zip", now. Regards, Tony -- [][][] Tony Garnock-Jones | Mob: +44 (0)7905 974 211 [][] LShift Ltd | Tel: +44 (0)20 7729 7060 [] [] http://www.lshift.net/ | Email: tonyg at lshift.net From billy.chasen at gmail.com Mon Feb 2 17:30:16 2009 From: billy.chasen at gmail.com (Billy Chasen) Date: Mon, 2 Feb 2009 12:30:16 -0500 Subject: [rabbitmq-discuss] error on startup Message-ID: I'm on fc4 and installed rabbitmq with: yum install erlang rpm -i rabbitmq-server-1.5.1-1.i386.rpm Everything installed fine, but on startup, I get: Starting rabbitmq-server: FAILED - check /var/log/rabbitmq/startup_log, _err Output of that log file is: Starting all nodes... Starting node rabbit at domU-11-22-33-01-BA-45... {error_logger,{{2009,2,2},{12,19,53}},"Protocol: ~p: register error: ~p~n",["inet_tcp",{function_clause,[{prim_inet,enc_opt_val,[[t],[22,[0,0,0,0],23,[0,0,0,2]\ ]]},{prim_inet,setopts,2},{inet,open,7},{inet_tcp,listen,2},{inet_tcp_dist,do_listen,3},{inet_tcp_dist,listen,1},{net_kernel,start_protos,4},{net_kernel,start_\ protos,3}]}]}^M {error_logger,{{2009,2,2},{12,19,53}},crash_report,[[{pid,<0.22.0>},{registered_name,net_kernel},{error_info,{error,badarg}},{initial_call,{gen,init_it,[gen_se\ rver,<0.19.0>,<0.19.0>,{local,net_kernel},net_kernel,{rabbit,shortnames,15000},[]]}},{ancestors,[net_sup,kernel_sup,<0.9.0>]},{messages,[]},{links,[<0.19.0>,#P\ ort<0.10>]},{dictionary,[{longnames,false}]},{trap_exit,true},{status,running},{heap_size,377},{stack_size,21},{reductions,266}],[]]}^M {error_logger,{{2009,2,2},{12,19,53}},supervisor_report,[{supervisor,{local,net_sup}},{errorContext,start_error},{reason,{'EXIT',nodistribution}},{offender,[{p\ id,undefined},{name,net_kernel},{mfa,{net_kernel,start_link,[[rabbit,shortnames]]}},{restart_type,permanent},{shutdown,2000},{child_type,worker}]}]}^M {error_logger,{{2009,2,2},{12,19,53}},supervisor_report,[{supervisor,{local,kernel_sup}},{errorContext,start_error},{reason,shutdown},{offender,[{pid,undefined\ },{name,net_sup},{mfa,{erl_distribution,start_link,[]}},{restart_type,permanent},{shutdown,infinity},{child_type,supervisor}]}]}^M {error_logger,{{2009,2,2},{12,19,53}},crash_report,[[{pid,<0.8.0>},{registered_name,[]},{error_info,{shutdown,{kernel,start,[normal,[]]}}},{initial_call,{appli\ cation_master,init,[<0.6.0>,<0.7.0>,{appl_data,kernel,[application_controller,erl_reply,auth,boot_server,code_server,disk_log_server,disk_log_sup,erl_prim_load\ er,error_logger,file_server,file_server_2,fixtable_server,global_group,global_name_server,heart,init,kernel_config,kernel_sup,net_kernel,net_sup,rex,user,os_se\ rver,ddll_server,erl_epmd,inet_db,pg2],undefined,{kernel,[]},[application,application_controller,application_master,application_starter,auth,code,code_aux,pack\ ages,code_server,dist_util,erl_boot_server,erl_distribution,erl_prim_loader,erl_reply,erlang,error_handler,error_logger,file,file_server,old_file_server,file_i\ o_server,prim_file,global,global_group,global_search,group,heart,hipe_unified_loader,inet6_tcp,inet6_tcp_dist,inet6_udp,inet_config,inet_hosts,inet_gethost_nat\ ive,inet_tcp_dist,init,kernel,kernel_config,net,net_adm,net_kernel,os,ram_file,rpc,user,user_drv,user_sup,disk_log,disk_log_1,disk_log_server,disk_log_sup,dist\ _ac,erl_ddll,erl_epmd,erts_debug,gen_tcp,gen_udp,prim_inet,inet,inet_db,inet_dns,inet_parse,inet_res,inet_tcp,inet_udp,pg2,seq_trace,wrap_log_reader,zlib,otp_r\ ing0],[],infinity,infinity},normal]}},{ancestors,[<0.7.0>]},{messages,[{'EXIT',<0.9.0>,normal}]},{links,[<0.7.0>,<0.6.0>]},{dictionary,[]},{trap_exit,true},{st\ atus,running},{heap_size,987},{stack_size,21},{reductions,2063}],[]]}^M {error_logger,{{2009,2,2},{12,19,53}},std_info,[{application,kernel},{exited,{shutdown,{kernel,start,[normal,[]]}}},{type,permanent}]}^M {"Kernel pid terminated",application_controller,"{application_start_failure,kernel,{shutdown,{kernel,start,[normal,[]]}}}"}^M Any ideas what could be happening? thanks, billy From matthias at lshift.net Mon Feb 2 18:38:14 2009 From: matthias at lshift.net (Matthias Radestock) Date: Mon, 02 Feb 2009 18:38:14 +0000 Subject: [rabbitmq-discuss] error on startup In-Reply-To: References: Message-ID: <49873D96.8020302@lshift.net> Billy, Billy Chasen wrote: > I'm on fc4 and installed rabbitmq with: > > yum install erlang > rpm -i rabbitmq-server-1.5.1-1.i386.rpm > > Everything installed fine, but on startup, I get: > > Starting rabbitmq-server: FAILED - check /var/log/rabbitmq/startup_log, _err > > Output of that log file is: > > Starting all nodes... > Starting node rabbit at domU-11-22-33-01-BA-45... > {error_logger,{{2009,2,2},{12,19,53}},"Protocol: ~p: register error: > ~p~n",["inet_tcp",{function_clause,[{prim_inet,enc_opt_val,[[t],[22,[0,0,0,0],23,[0,0,0,2]\ > ]]},{prim_inet,setopts,2},{inet,open,7},{inet_tcp,listen,2},{inet_tcp_dist,do_listen,3},{inet_tcp_dist,listen,1},{net_kernel,start_protos,4},{net_kernel,start_\ > protos,3}]}]} That's a new one. Looks like Erlang is unhappy about some tcp socket options it was told to use. What version of erlang are you running? Just start an erlang shell with 'erl' and report the number it displays. Also, try running the following: erl -sname test -kernel inet_default_listen_options \ '[{nodelay,true},{sndbuf,16384},{recbuf,4096}]' and let me know whether that starts an erlang shell ok. Finally, locate the rabbitmq-server script - it should live under /usr/lib/rabbitmq/bin/ - and change the line that reads exec erl \ to echo erl \ Then try to start the server normally (e.g. with "/etc/init.d/rabbitmq-server start") and send me the output of /var/log/rabbitmq/startup_log. That will tell me which options erlang is being started with. Matthias. From billy.chasen at gmail.com Mon Feb 2 18:57:57 2009 From: billy.chasen at gmail.com (Billy Chasen) Date: Mon, 2 Feb 2009 13:57:57 -0500 Subject: [rabbitmq-discuss] error on startup In-Reply-To: <49873D96.8020302@lshift.net> References: <49873D96.8020302@lshift.net> Message-ID: Erlang (BEAM) emulator version 5.5 [source] [async-threads:0] [hipe] Eshell V5.5 (abort with ^G) The command: erl -sname test -kernel inet_default_listen_options \ '[{nodelay,true},{sndbuf,16384},{recbuf,4096}]' ran and put me inside the shell with no errors and this is the output you wanted: erl -pa /usr/lib/rabbitmq/bin/../ebin -noinput -s rabbit -sname rabbit -boot start_sasl +W w +K true +A30 -kernel inet_default_listen_options t -kernel inet_de\ fault_connect_options t -rabbit tcp_listeners [{"0.0.0.0", 5672}] -sasl errlog_type error -kernel error_logger {file,"/var/log/rabbitmq/rabbit.log"} -sasl sasl\ _error_logger {file,"/var/log/rabbitmq/rabbit-sasl.log"} -os_mon start_cpu_sup true -os_mon start_disksup false -os_mon start_memsup false -os_mon start_os_sup\ false -os_mon memsup_system_only true -os_mon system_memory_high_watermark 0.95 -mnesia dir "/var/lib/rabbitmq/mnesia/rabbit" -noinput thanks, billy On Mon, Feb 2, 2009 at 1:38 PM, Matthias Radestock wrote: > Billy, > > Billy Chasen wrote: >> >> I'm on fc4 and installed rabbitmq with: >> >> yum install erlang >> rpm -i rabbitmq-server-1.5.1-1.i386.rpm >> >> Everything installed fine, but on startup, I get: >> >> Starting rabbitmq-server: FAILED - check /var/log/rabbitmq/startup_log, >> _err >> >> Output of that log file is: >> >> Starting all nodes... >> Starting node rabbit at domU-11-22-33-01-BA-45... >> {error_logger,{{2009,2,2},{12,19,53}},"Protocol: ~p: register error: >> >> ~p~n",["inet_tcp",{function_clause,[{prim_inet,enc_opt_val,[[t],[22,[0,0,0,0],23,[0,0,0,2]\ >> >> ]]},{prim_inet,setopts,2},{inet,open,7},{inet_tcp,listen,2},{inet_tcp_dist,do_listen,3},{inet_tcp_dist,listen,1},{net_kernel,start_protos,4},{net_kernel,start_\ >> protos,3}]}]} > > That's a new one. Looks like Erlang is unhappy about some tcp socket options > it was told to use. > > What version of erlang are you running? Just start an erlang shell with > 'erl' and report the number it displays. > > Also, try running the following: > > erl -sname test -kernel inet_default_listen_options \ > '[{nodelay,true},{sndbuf,16384},{recbuf,4096}]' > > and let me know whether that starts an erlang shell ok. > > Finally, locate the rabbitmq-server script - it should live under > /usr/lib/rabbitmq/bin/ - and change the line that reads > exec erl \ > to > echo erl \ > Then try to start the server normally (e.g. with > "/etc/init.d/rabbitmq-server start") and send me the output of > /var/log/rabbitmq/startup_log. That will tell me which options erlang is > being started with. > > > Matthias. > From matthias at lshift.net Mon Feb 2 19:07:58 2009 From: matthias at lshift.net (Matthias Radestock) Date: Mon, 02 Feb 2009 19:07:58 +0000 Subject: [rabbitmq-discuss] error on startup In-Reply-To: References: <49873D96.8020302@lshift.net> Message-ID: <4987448E.5020703@lshift.net> Billy, Billy Chasen wrote: > erl -pa /usr/lib/rabbitmq/bin/../ebin -noinput -s rabbit -sname rabbit > -boot start_sasl +W w +K true +A30 -kernel inet_default_listen_options > t -kernel inet_de\ > fault_connect_options t -rabbit tcp_listeners [{"0.0.0.0", 5672}] Something is not right here. Notice how the inet_default_listen_options and inet_default_connect_options just say 't', which is precisely what Erlang is complaining about. Did you modify the script or override SERVER_ERL_ARGS or RABBITMQ_SERVER_ERL_ARGS? The script should have the following line in it: [ "x" = "x$RABBITMQ_SERVER_ERL_ARGS" ] && RABBITMQ_SERVER_ERL_ARGS="+K true +A30 \ -kernel inet_default_listen_options [{nodelay,true},{sndbuf,16384},{recbuf,4096}] \ -kernel inet_default_connect_options [{nodelay,true}]" Is that there? If so try putting single quotes around the option value, i.e. [ "x" = "x$RABBITMQ_SERVER_ERL_ARGS" ] && RABBITMQ_SERVER_ERL_ARGS="+K true +A30 \ -kernel inet_default_listen_options '[{nodelay,true},{sndbuf,16384},{recbuf,4096}]' \ -kernel inet_default_connect_options '[{nodelay,true}]'" Matthias. From billy.chasen at gmail.com Mon Feb 2 19:13:38 2009 From: billy.chasen at gmail.com (Billy Chasen) Date: Mon, 2 Feb 2009 14:13:38 -0500 Subject: [rabbitmq-discuss] error on startup In-Reply-To: <4987448E.5020703@lshift.net> References: <49873D96.8020302@lshift.net> <4987448E.5020703@lshift.net> Message-ID: I have that exact line. Tried putting single quotes around both, same error and log file. -billy On Mon, Feb 2, 2009 at 2:07 PM, Matthias Radestock wrote: > Billy, > > Billy Chasen wrote: >> >> erl -pa /usr/lib/rabbitmq/bin/../ebin -noinput -s rabbit -sname rabbit >> -boot start_sasl +W w +K true +A30 -kernel inet_default_listen_options >> t -kernel inet_de\ >> fault_connect_options t -rabbit tcp_listeners [{"0.0.0.0", 5672}] > > Something is not right here. Notice how the inet_default_listen_options and > inet_default_connect_options just say 't', which is precisely what Erlang is > complaining about. > > Did you modify the script or override SERVER_ERL_ARGS or > RABBITMQ_SERVER_ERL_ARGS? > > The script should have the following line in it: > > [ "x" = "x$RABBITMQ_SERVER_ERL_ARGS" ] && RABBITMQ_SERVER_ERL_ARGS="+K true > +A30 \ > -kernel inet_default_listen_options > [{nodelay,true},{sndbuf,16384},{recbuf,4096}] \ > -kernel inet_default_connect_options [{nodelay,true}]" > > Is that there? If so try putting single quotes around the option value, i.e. > > [ "x" = "x$RABBITMQ_SERVER_ERL_ARGS" ] && RABBITMQ_SERVER_ERL_ARGS="+K true > +A30 \ > -kernel inet_default_listen_options > '[{nodelay,true},{sndbuf,16384},{recbuf,4096}]' \ > -kernel inet_default_connect_options '[{nodelay,true}]'" > > > Matthias. > From matthias at lshift.net Mon Feb 2 19:29:57 2009 From: matthias at lshift.net (Matthias Radestock) Date: Mon, 02 Feb 2009 19:29:57 +0000 Subject: [rabbitmq-discuss] error on startup In-Reply-To: References: <49873D96.8020302@lshift.net> <4987448E.5020703@lshift.net> Message-ID: <498749B5.7010806@lshift.net> Billy, Billy Chasen wrote: > I have that exact line. Tried putting single quotes around both, same > error and log file. *sigh*. Two more things to try: 1) drop all the inet options from the line, i.e. make it read [ "x" = "x$RABBITMQ_SERVER_ERL_ARGS" ] && RABBITMQ_SERVER_ERL_ARGS="+K true +A30" 2) at the top of the file, change the line #!/bin/sh to #!/bin/bash If neither of these work, please find a way of getting me access to the machine or an image of it. Matthias. From tonyg at lshift.net Mon Feb 2 19:43:22 2009 From: tonyg at lshift.net (Tony Garnock-Jones) Date: Mon, 02 Feb 2009 19:43:22 +0000 Subject: [rabbitmq-discuss] error on startup In-Reply-To: References: <49873D96.8020302@lshift.net> Message-ID: <49874CDA.6090304@lshift.net> Billy Chasen wrote: > Erlang (BEAM) emulator version 5.5 [source] [async-threads:0] [hipe] Version 5.5? Is that R11B-0? If so, that's pretty old. The oldest we support is, I think R11B-5 (though I could be wrong). Regards, Tony From billy.chasen at gmail.com Mon Feb 2 19:54:43 2009 From: billy.chasen at gmail.com (Billy Chasen) Date: Mon, 2 Feb 2009 14:54:43 -0500 Subject: [rabbitmq-discuss] error on startup In-Reply-To: <498749B5.7010806@lshift.net> References: <49873D96.8020302@lshift.net> <4987448E.5020703@lshift.net> <498749B5.7010806@lshift.net> Message-ID: > 1) drop all the inet options from the line, i.e. make it read > [ "x" = "x$RABBITMQ_SERVER_ERL_ARGS" ] && RABBITMQ_SERVER_ERL_ARGS="+K true > +A30" > That worked. Any negative side effects of dropping those args? thanks for the help, billy From matthias at lshift.net Mon Feb 2 20:41:11 2009 From: matthias at lshift.net (Matthias Radestock) Date: Mon, 02 Feb 2009 20:41:11 +0000 Subject: [rabbitmq-discuss] error on startup In-Reply-To: References: <49873D96.8020302@lshift.net> <4987448E.5020703@lshift.net> <498749B5.7010806@lshift.net> Message-ID: <49875A67.10104@lshift.net> Billy, Billy Chasen wrote: >> 1) drop all the inet options from the line, i.e. make it read >> [ "x" = "x$RABBITMQ_SERVER_ERL_ARGS" ] && RABBITMQ_SERVER_ERL_ARGS="+K true >> +A30" >> > > That worked. Any negative side effects of dropping those args? Without the option there is an increase in latency and a reduction in throughput. Do you know what shell /bin/sh is on your system? And did the second option, i.e. switching the shell to 'bash', work? Matthias. From mark.geib at echostar.com Mon Feb 2 20:53:24 2009 From: mark.geib at echostar.com (Mark Geib) Date: Mon, 02 Feb 2009 13:53:24 -0700 Subject: [rabbitmq-discuss] Can't read messages with erlang client In-Reply-To: <269388e30901311108w415e1f62te6e0886e048f6476@mail.gmail.com> References: <4983985B.3000304@echostar.com> <269388e30901301734x5978b4e9pee6a3b67d7e06703@mail.gmail.com> <60774C345843F8489D49A4F3A817D83301739ACC@MER2-EXCHA1.echostar.com> <269388e30901310042r76306669tcac7a00ae8d79226@mail.gmail.com> <49848865.1010001@echostar.com> <269388e30901311108w415e1f62te6e0886e048f6476@mail.gmail.com> Message-ID: <49875D44.2070006@echostar.com> Followup. Turns out this was an issue totally unrelated to rabbitmq, erlang, etc. Thanks for the help. Mark. Ben Hood wrote: > Mark, > > On Sat, Jan 31, 2009 at 5:20 PM, Mark Geib wrote: >> For the producer I do... > > Ok, let's start with first principles - what behavior do you see when > you rearrange your code in this way: > > test() -> > Connection = lib_amqp:start_connection("localhost"), > Channel = lib_amqp:start_channel(Connection), > X = <<"cse.sms.commands">>, > K = <<"test.messages">>, > lib_amqp:declare_exchange(Channel, X, <<"topic">>), > Q = lib_amqp:declare_queue(Channel), > lib_amqp:bind_queue(Channel, X, Q, K), > lib_amqp:publish(Channel, X, K, <<"This is a test message">>), > lib_amqp:get(Channel, Q, false). > > > Ben > -- Principal Engineer Cheyenne Software Engineering mark.geib at echostar.com / 35-215 From dave at interactivemediums.com Mon Feb 2 20:54:56 2009 From: dave at interactivemediums.com (Dave Farkas) Date: Mon, 2 Feb 2009 14:54:56 -0600 Subject: [rabbitmq-discuss] getting started, broker runs; can't get status In-Reply-To: <4984E351.5030202@lshift.net> References: <3d5db09e0901201356r1cafa64aud71de1a8c2d28cef@mail.gmail.com> <498409CD.6060600@lshift.net> <921b71e30901311048k3a96f0c8o7a303b1b89e16d99@mail.gmail.com> <4984A903.7060804@lshift.net> <921b71e30901311213h5c9b072ftff66b3addd2a0466@mail.gmail.com> <4984B9E6.5050804@lshift.net> <4984BDAD.9040502@cohesiveft.com> <4984BE9D.6080909@lshift.net> <4984C4DC.1080105@cohesiveft.com> <4984E351.5030202@lshift.net> Message-ID: <921b71e30902021254l4c6f5db4ga7c905c9aa9f2370@mail.gmail.com> Matthias, Dmitriy, Christopher On Sat, Jan 31, 2009 at 5:48 PM, Matthias Radestock wrote: > Dave, Christopher, to test the above theory, please re-enable Nagle by > changing the following lines in the rabbitmq-server script from > > [ "x" = "x$RABBITMQ_SERVER_ERL_ARGS" ] && RABBITMQ_SERVER_ERL_ARGS="+K true > +A30 \ > -kernel inet_default_listen_options > [{nodelay,true},{sndbuf,16384},{recbuf,4096}] \ > -kernel inet_default_connect_options [{nodelay,true}]" > > to > > [ "x" = "x$RABBITMQ_SERVER_ERL_ARGS" ] && RABBITMQ_SERVER_ERL_ARGS="+K true > +A30" > > (Alternatively you can override the value by setting > RABBITMQ_SERVER_ERL_ARGS in your shell or SERVER_ERL_ARGS in > /etc/default/rabbitmq) > > > Then try starting the server and invoking rabbitmqctl. > > > Matthias. > I don't have snoopy installed, anything in /etc/ld.so.preload or can find a place where LD_PRELOAD is being set. SELinux is also disabled: [root at db1 selinux]# more /etc/selinux/config # This file controls the state of SELinux on the system. # SELINUX= can take one of these three values: # enforcing - SELinux security policy is enforced. # permissive - SELinux prints warnings instead of enforcing. # disabled - No SELinux policy is loaded. SELINUX=disabled # SELINUXTYPE= can take one of these two values: # targeted - Only targeted network daemons are protected. # strict - Full SELinux protection. SELINUXTYPE=targeted I've also tried to re-enable Nagle by changing the lines in the rabbitmq-server script with the same results. Thanks, Dave From mark.geib at echostar.com Mon Feb 2 20:58:57 2009 From: mark.geib at echostar.com (Mark Geib) Date: Mon, 02 Feb 2009 13:58:57 -0700 Subject: [rabbitmq-discuss] question on exchange type Message-ID: <49875E91.8020202@echostar.com> I think I know the answer to this question, but it never hurts to ask. Is there an exchange that will 'queue' messages, backed by disk, until a queue binding appears where the messages would be routed. That is, messages that are excepted by an exchange are NEVER dropped. If there is no existing route for a message then queue it for later. Then when ever a new binding is created check all the queued messages if they can be routed. Mark. -- Principal Engineer Cheyenne Software Engineering mark.geib at echostar.com / 35-215 From billy.chasen at gmail.com Mon Feb 2 21:05:34 2009 From: billy.chasen at gmail.com (Billy Chasen) Date: Mon, 2 Feb 2009 16:05:34 -0500 Subject: [rabbitmq-discuss] error on startup In-Reply-To: <49875A67.10104@lshift.net> References: <49873D96.8020302@lshift.net> <4987448E.5020703@lshift.net> <498749B5.7010806@lshift.net> <49875A67.10104@lshift.net> Message-ID: > > Do you know what shell /bin/sh is on your system? it's bash > > And did the second option, i.e. switching the shell to 'bash', work? no, sh is a symlink to bash. This is all very weird, because if I start quoting things, it will work. I changed: erl -pa /usr/lib/rabbitmq/bin/../ebin -noinput -s rabbit -sname rabbit -boot start_sasl +W w +K true +A30 -kernel inet_default_listen_options '[{nodelay,true},{sndbuf,16384},{recbuf,4096}]' -kernel inet_default_connect_options '[{nodelay,true}]' -rabbit tcp_listeners [{"0.0.0.0", 5672}] -sasl errlog_type error -kernel error_logger {file,"/var/log/rabbitmq/rabbit.log"} -sasl sasl_error_logger {file,"/var/log/rabbitmq/rabbit-sasl.log"} -os_mon start_cpu_sup true -os_mon start_disksup false -os_mon start_memsup false -os_mon start_os_sup false -os_mon memsup_system_only true -os_mon system_memory_high_watermark 0.95 -mnesia dir "/var/lib/rabbitmq/mnesia/rabbit" -noinput to: erl -pa /usr/lib/rabbitmq/bin/../ebin -noinput -s rabbit -sname rabbit -boot start_sasl +W w +K true +A30 -kernel inet_default_listen_options '[{nodelay,true},{sndbuf,16384},{recbuf,4096}]' -kernel inet_default_connect_options '[{nodelay,true}]' -rabbit tcp_listeners '[{"0.0.0.0", 5672}]' -sasl errlog_type error -kernel error_logger '{file,"/var/log/rabbitmq/rabbit.log"}' -sasl sasl_error_logger '{file,"/var/log/rabbitmq/rabbit-sasl.log"}' -os_mon start_cpu_sup true -os_mon start_disksup false -os_mon start_memsup false -os_mon start_os_sup false -os_mon memsup_system_only true -os_mon system_memory_high_watermark 0.95 -noinput and it worked. however, for some reason, in the latter, I had to take out -mnesia dir "var/lib/rabbitmq/mnesia/rabbit" because it returned {"init terminating in do_boot",{aborted,{aborted,{application_load_error,{bad_environment_value,"var/lib/rabbitmq/mnesia/rabbit"}}}}} I upgraded bash to 3.2.48, same problem -billy > > > Matthias. > From billy.chasen at gmail.com Mon Feb 2 21:40:53 2009 From: billy.chasen at gmail.com (Billy Chasen) Date: Mon, 2 Feb 2009 16:40:53 -0500 Subject: [rabbitmq-discuss] error on startup In-Reply-To: References: <49873D96.8020302@lshift.net> <4987448E.5020703@lshift.net> <498749B5.7010806@lshift.net> <49875A67.10104@lshift.net> Message-ID: I think this stems from a conflict or misconfiguration on this image (only major addition was daemontools). I was able to successfully install rabbitmq on a fresh image from a few months ago On Mon, Feb 2, 2009 at 4:05 PM, Billy Chasen wrote: >> >> Do you know what shell /bin/sh is on your system? > > it's bash > >> >> And did the second option, i.e. switching the shell to 'bash', work? > > no, sh is a symlink to bash. This is all very weird, because if I > start quoting things, it will work. > > I changed: > > erl -pa /usr/lib/rabbitmq/bin/../ebin -noinput -s rabbit -sname rabbit > -boot start_sasl +W w +K true +A30 -kernel inet_default_listen_options > '[{nodelay,true},{sndbuf,16384},{recbuf,4096}]' -kernel > inet_default_connect_options '[{nodelay,true}]' -rabbit tcp_listeners > [{"0.0.0.0", 5672}] -sasl errlog_type error -kernel error_logger > {file,"/var/log/rabbitmq/rabbit.log"} -sasl sasl_error_logger > {file,"/var/log/rabbitmq/rabbit-sasl.log"} -os_mon start_cpu_sup true > -os_mon start_disksup false -os_mon start_memsup false -os_mon > start_os_sup false -os_mon memsup_system_only true -os_mon > system_memory_high_watermark 0.95 -mnesia dir > "/var/lib/rabbitmq/mnesia/rabbit" -noinput > > to: > > erl -pa /usr/lib/rabbitmq/bin/../ebin -noinput -s rabbit -sname rabbit > -boot start_sasl +W w +K true +A30 -kernel inet_default_listen_options > '[{nodelay,true},{sndbuf,16384},{recbuf,4096}]' -kernel > inet_default_connect_options '[{nodelay,true}]' -rabbit tcp_listeners > '[{"0.0.0.0", 5672}]' -sasl errlog_type error -kernel error_logger > '{file,"/var/log/rabbitmq/rabbit.log"}' -sasl sasl_error_logger > '{file,"/var/log/rabbitmq/rabbit-sasl.log"}' -os_mon start_cpu_sup > true -os_mon start_disksup false -os_mon start_memsup false -os_mon > start_os_sup false -os_mon memsup_system_only true -os_mon > system_memory_high_watermark 0.95 -noinput > > and it worked. > > however, for some reason, in the latter, I had to take out -mnesia > dir "var/lib/rabbitmq/mnesia/rabbit" because it returned {"init > terminating in do_boot",{aborted,{aborted,{application_load_error,{bad_environment_value,"var/lib/rabbitmq/mnesia/rabbit"}}}}} > > I upgraded bash to 3.2.48, same problem > > -billy > >> >> >> Matthias. >> > From matthias at lshift.net Mon Feb 2 21:50:29 2009 From: matthias at lshift.net (Matthias Radestock) Date: Mon, 02 Feb 2009 21:50:29 +0000 Subject: [rabbitmq-discuss] error on startup In-Reply-To: References: <49873D96.8020302@lshift.net> <4987448E.5020703@lshift.net> <498749B5.7010806@lshift.net> <49875A67.10104@lshift.net> Message-ID: <49876AA5.4090806@lshift.net> Billy, Billy Chasen wrote: > I think this stems from a conflict or misconfiguration on this image > (only major addition was daemontools). I was able to successfully > install rabbitmq on a fresh image from a few months ago I cannot image daemontools, or any other package, breaking bash's escaping/expansion in such a weird way. Are you sure you were running the exact same version of the rabbitmq-server script as shipped? The md5sum should have been this: $ md5sum /usr/lib/rabbitmq/bin/rabbitmq-server 1c5191093839be2250e605cc6e72422c /usr/lib/rabbitmq/bin/rabbitmq-server Regards, Matthias. From matthias at lshift.net Mon Feb 2 22:01:40 2009 From: matthias at lshift.net (Matthias Radestock) Date: Mon, 02 Feb 2009 22:01:40 +0000 Subject: [rabbitmq-discuss] getting started, broker runs; can't get status In-Reply-To: <921b71e30902021254l4c6f5db4ga7c905c9aa9f2370@mail.gmail.com> References: <3d5db09e0901201356r1cafa64aud71de1a8c2d28cef@mail.gmail.com> <498409CD.6060600@lshift.net> <921b71e30901311048k3a96f0c8o7a303b1b89e16d99@mail.gmail.com> <4984A903.7060804@lshift.net> <921b71e30901311213h5c9b072ftff66b3addd2a0466@mail.gmail.com> <4984B9E6.5050804@lshift.net> <4984BDAD.9040502@cohesiveft.com> <4984BE9D.6080909@lshift.net> <4984C4DC.1080105@cohesiveft.com> <4984E351.5030202@lshift.net> <921b71e30902021254l4c6f5db4ga7c905c9aa9f2370@mail.gmail.com> Message-ID: <49876D44.2070404@lshift.net> Dave, Dave Farkas wrote: > I don't have snoopy installed, anything in /etc/ld.so.preload or can > find a place where LD_PRELOAD is being set. SELinux is also disabled: > [...] > I've also tried to re-enable Nagle by changing the lines in the > rabbitmq-server script with the same results. Is there any way you could give me access to the machine or an image of it? Matthias. From 0x6e6562 at gmail.com Mon Feb 2 22:02:54 2009 From: 0x6e6562 at gmail.com (Ben Hood) Date: Mon, 2 Feb 2009 22:02:54 +0000 Subject: [rabbitmq-discuss] Can't read messages with erlang client In-Reply-To: <49875D44.2070006@echostar.com> References: <4983985B.3000304@echostar.com> <269388e30901301734x5978b4e9pee6a3b67d7e06703@mail.gmail.com> <60774C345843F8489D49A4F3A817D83301739ACC@MER2-EXCHA1.echostar.com> <269388e30901310042r76306669tcac7a00ae8d79226@mail.gmail.com> <49848865.1010001@echostar.com> <269388e30901311108w415e1f62te6e0886e048f6476@mail.gmail.com> <49875D44.2070006@echostar.com> Message-ID: <269388e30902021402r76534440r49df0c82803cb70b@mail.gmail.com> Mark, On Mon, Feb 2, 2009 at 8:53 PM, Mark Geib wrote: > Followup. Turns out this was an issue totally unrelated to rabbitmq, erlang, > etc. Good to know, thanks for letting us know. Ben From jasonjwwilliams at gmail.com Mon Feb 2 22:09:14 2009 From: jasonjwwilliams at gmail.com (Jason J. W. Williams) Date: Mon, 2 Feb 2009 15:09:14 -0700 Subject: [rabbitmq-discuss] Clustering Q Message-ID: <3b949f090902021409u72303ac6ud176f5a9917fb29f@mail.gmail.com> When adding nodes to a cluster, is the only requirement that the host name after the @ be present in DNS? I've noticed using IP addresses doesn't work in testing. -J From billy.chasen at gmail.com Mon Feb 2 22:23:04 2009 From: billy.chasen at gmail.com (Billy Chasen) Date: Mon, 2 Feb 2009 17:23:04 -0500 Subject: [rabbitmq-discuss] error on startup In-Reply-To: <49876AA5.4090806@lshift.net> References: <4987448E.5020703@lshift.net> <498749B5.7010806@lshift.net> <49875A67.10104@lshift.net> <49876AA5.4090806@lshift.net> Message-ID: > Are you sure you were running the exact same version of the rabbitmq-server > script as shipped? The md5sum should have been this: > > $ md5sum /usr/lib/rabbitmq/bin/rabbitmq-server > 1c5191093839be2250e605cc6e72422c /usr/lib/rabbitmq/bin/rabbitmq-server I have that exact file. I guess something is funky with bash on that box From 0x6e6562 at gmail.com Mon Feb 2 22:25:48 2009 From: 0x6e6562 at gmail.com (Ben Hood) Date: Mon, 2 Feb 2009 22:25:48 +0000 Subject: [rabbitmq-discuss] question on exchange type In-Reply-To: <49875E91.8020202@echostar.com> References: <49875E91.8020202@echostar.com> Message-ID: <269388e30902021425n58efd706jd408fd443c9abae6@mail.gmail.com> Mark, On Mon, Feb 2, 2009 at 8:58 PM, Mark Geib wrote: > Is there an exchange that will 'queue' messages, backed by disk, until a > queue binding appears where the messages would be routed. That is, > messages that are excepted by an exchange are NEVER dropped. If there is > no existing route for a message then queue it for later. Then when ever > a new binding is created check all the queued messages if they can be > routed. No, there isn't an exchange type that will do this OOTB. However, there are some building blocks that will let you achieve this behavior yourself: - Setting the persistent flag when you send messages; - Declaring your own queue to catch all messages; - Marking exchanges/queues as durable (note the difference to persistent messages); Having said that, these may not be as good as a custom exchange solution for your particular problem, which is going to depend on your actual use case. Coincidentally I find this an interesting question because it touches on a number of cross cutting concerns that are currently being discussed on the list in various threads: - Last value caching on a per exchange/routing key basis - this has some similarities with what (I think) you're trying to achieve - please read the relevant thread for the background; - Whether or not AMQP events should be published so that application code can subscribe and implement custom behavior (reminiscent of a micro-kernel architecture); - The age old question of why persistence is defined on a per-message basis as opposed to a per-queue basis (this is more of a protocol revision question - the implementors of other AMQP brokers may have something to say about this); Having said this, there are a few more general questions you might to address, which will be influenced by your actual requirements: - The resource consumption aspect of saving *everything*, including stuff that nobody cares about - which ties into the next point; - In general, the flavor of AMQP is consumer-driven messaging, i.e. if you care about something, you'll take the necessary steps to get that something - part of your suggestion contradicts this principle to an extent - whether or not that is bad is up to interpretation; Hopefully this can serve as a starting point for a discussion, Ben From jasonjwwilliams at gmail.com Mon Feb 2 22:32:58 2009 From: jasonjwwilliams at gmail.com (Jason J. W. Williams) Date: Mon, 2 Feb 2009 15:32:58 -0700 Subject: [rabbitmq-discuss] py-amqplib doesn't like Rabbit user refusals Message-ID: <3b949f090902021432s69c6b947i3e2a3a3540d3a06e@mail.gmail.com> Hi, It appears that py-amqplib really doesn't like it when you try to log on to a vhost with a user that lacks authorization. Instead of specific exception, a struct.error exception is raised with this traceback: 2009-02-02 22:13:17+0000 [-] Traceback (most recent call last): 2009-02-02 22:13:17+0000 [-] File "zzzz.py", line 377, in yyyy 2009-02-02 22:13:17+0000 [-] self.mq_connect() 2009-02-02 22:13:17+0000 [-] File "zzzz.py", line 145, in mq_connect 2009-02-02 22:13:17+0000 [-] connect_timeout=5) 2009-02-02 22:13:17+0000 [-] File "/usr/lib64/python2.5/site-packages/amqplib/client_0_8.py", line 298, in __init__ 2009-02-02 22:13:17+0000 [-] (10, 30), # tune 2009-02-02 22:13:17+0000 [-] File "/usr/lib64/python2.5/site-packages/amqplib/client_0_8.py", line 183, in wait 2009-02-02 22:13:17+0000 [-] frame_type, payload = self._next_frame() 2009-02-02 22:13:17+0000 [-] File "/usr/lib64/python2.5/site-packages/amqplib/client_0_8.py", line 123, in _next_frame 2009-02-02 22:13:17+0000 [-] return self.connection._wait_channel(self.channel_id) 2009-02-02 22:13:17+0000 [-] File "/usr/lib64/python2.5/site-packages/amqplib/client_0_8.py", line 414, in _wait_channel 2009-02-02 22:13:17+0000 [-] frame_type, frame_channel, payload = self._wait_frame() 2009-02-02 22:13:17+0000 [-] File "/usr/lib64/python2.5/site-packages/amqplib/client_0_8.py", line 395, in _wait_frame 2009-02-02 22:13:17+0000 [-] frame_type = self.input.read_octet() 2009-02-02 22:13:17+0000 [-] File "/usr/lib64/python2.5/site-packages/amqplib/util_0_8.py", line 96, in read_octet 2009-02-02 22:13:17+0000 [-] return unpack('B', self.input.read(1))[0] 2009-02-02 22:13:17+0000 [-] File "/usr/lib64/python2.5/struct.py", line 87, in unpack 2009-02-02 22:13:17+0000 [-] return o.unpack(s) 2009-02-02 22:13:17+0000 [-] error: unpack requires a string argument of length 1 The RabbitMQ side reports a rather sane error: {channel0_error,starting, {amqp,access_refused,"login refused for user 'argus'", 'connection.start_ok'}} Is py-amqplib just not set up to cleanly handle user refusals, or is this an unknown bug? -J From matthias at lshift.net Mon Feb 2 22:33:02 2009 From: matthias at lshift.net (Matthias Radestock) Date: Mon, 02 Feb 2009 22:33:02 +0000 Subject: [rabbitmq-discuss] error on startup In-Reply-To: References: <4987448E.5020703@lshift.net> <498749B5.7010806@lshift.net> <49875A67.10104@lshift.net> <49876AA5.4090806@lshift.net> Message-ID: <4987749E.7040403@lshift.net> Billy, Billy Chasen wrote: > I guess something is funky with bash on that box Makes you wonder how anything else managed to work on that machine. Anyway, I suppose we'll have to leave it at that. If you run into the same problem again then please let us know. Matthias. From matthias at lshift.net Mon Feb 2 22:47:39 2009 From: matthias at lshift.net (Matthias Radestock) Date: Mon, 02 Feb 2009 22:47:39 +0000 Subject: [rabbitmq-discuss] py-amqplib doesn't like Rabbit user refusals In-Reply-To: <3b949f090902021432s69c6b947i3e2a3a3540d3a06e@mail.gmail.com> References: <3b949f090902021432s69c6b947i3e2a3a3540d3a06e@mail.gmail.com> Message-ID: <4987780B.3020201@lshift.net> Jason, Jason J. W. Williams wrote: > It appears that py-amqplib really doesn't like it when you try to log > on to a vhost with a user that lacks authorization. Instead of > specific exception, a struct.error exception is raised with this > traceback: > [...] > The RabbitMQ side reports a rather sane error: > > {channel0_error,starting, > {amqp,access_refused,"login refused for user 'argus'", > 'connection.start_ok'}} > > Is py-amqplib just not set up to cleanly handle user refusals, or is > this an unknown bug? The server does not pass any information to the client in this case. That is a requirement of the spec. See section 2.2.4 of the AMQP 0-9-1 spec: "prior to sending or receiving Open or Open-Ok, a peer that detects an error MUST close the socket without sending any further data." Matthias. From jasonjwwilliams at gmail.com Mon Feb 2 22:54:58 2009 From: jasonjwwilliams at gmail.com (Jason J. W. Williams) Date: Mon, 2 Feb 2009 15:54:58 -0700 Subject: [rabbitmq-discuss] py-amqplib doesn't like Rabbit user refusals In-Reply-To: <4987780B.3020201@lshift.net> References: <3b949f090902021432s69c6b947i3e2a3a3540d3a06e@mail.gmail.com> <4987780B.3020201@lshift.net> Message-ID: <3b949f090902021454je25fb18q99a6e97dd3c649a1@mail.gmail.com> That explains the error then. py-amqplib is calling a next_frame, but there is no data. -J On Mon, Feb 2, 2009 at 3:47 PM, Matthias Radestock wrote: > Jason, > > Jason J. W. Williams wrote: >> >> It appears that py-amqplib really doesn't like it when you try to log >> on to a vhost with a user that lacks authorization. Instead of >> specific exception, a struct.error exception is raised with this >> traceback: >> [...] >> The RabbitMQ side reports a rather sane error: >> >> {channel0_error,starting, >> {amqp,access_refused,"login refused for user 'argus'", >> 'connection.start_ok'}} >> >> Is py-amqplib just not set up to cleanly handle user refusals, or is >> this an unknown bug? > > The server does not pass any information to the client in this case. That is > a requirement of the spec. See section 2.2.4 of the AMQP 0-9-1 spec: "prior > to sending or receiving Open or Open-Ok, a peer that detects an error MUST > close the socket without sending any further data." > > > Matthias. > From mark.geib at echostar.com Mon Feb 2 22:59:02 2009 From: mark.geib at echostar.com (Mark Geib) Date: Mon, 02 Feb 2009 15:59:02 -0700 Subject: [rabbitmq-discuss] question on exchange type In-Reply-To: <269388e30902021425n58efd706jd408fd443c9abae6@mail.gmail.com> References: <49875E91.8020202@echostar.com> <269388e30902021425n58efd706jd408fd443c9abae6@mail.gmail.com> Message-ID: <49877AB6.40508@echostar.com> Ben, Thanks for the reply and suggestions. I will look at the list threads. The system I am building is, from the amqp broker point of view at least, very producer oriented for sure. What is vital is that a producer can safely hand off a message to the broker, knowing that at some time a consumer will get it. That is, once the message is published the responsibility of that message is moved to the broker...even if no consumer currently exists. The issue I am struggling with is that if I have to create and bind a queue in the producer to make this happen then I have already routed the message. This eliminates what consumers can do in the way of 'subscribing' to exchanges to have messages routed to it. Mark. Ben Hood wrote: > Mark, > > On Mon, Feb 2, 2009 at 8:58 PM, Mark Geib wrote: >> Is there an exchange that will 'queue' messages, backed by disk, until a >> queue binding appears where the messages would be routed. That is, >> messages that are excepted by an exchange are NEVER dropped. If there is >> no existing route for a message then queue it for later. Then when ever >> a new binding is created check all the queued messages if they can be >> routed. > > No, there isn't an exchange type that will do this OOTB. > > However, there are some building blocks that will let you achieve this > behavior yourself: > > - Setting the persistent flag when you send messages; > - Declaring your own queue to catch all messages; > - Marking exchanges/queues as durable (note the difference to > persistent messages); > > Having said that, these may not be as good as a custom exchange > solution for your particular problem, which is going to depend on your > actual use case. > > Coincidentally I find this an interesting question because it touches > on a number of cross cutting concerns that are currently being > discussed on the list in various threads: > > - Last value caching on a per exchange/routing key basis - this has > some similarities with what (I think) you're trying to achieve - > please read the relevant thread for the background; > - Whether or not AMQP events should be published so that application > code can subscribe and implement custom behavior (reminiscent of a > micro-kernel architecture); > - The age old question of why persistence is defined on a per-message > basis as opposed to a per-queue basis (this is more of a protocol > revision question - the implementors of other AMQP brokers may have > something to say about this); > > Having said this, there are a few more general questions you might to > address, which will be influenced by your actual requirements: > > - The resource consumption aspect of saving *everything*, including > stuff that nobody cares about - which ties into the next point; > - In general, the flavor of AMQP is consumer-driven messaging, i.e. if > you care about something, you'll take the necessary steps to get that > something - part of your suggestion contradicts this principle to an > extent - whether or not that is bad is up to interpretation; > > Hopefully this can serve as a starting point for a discussion, > > Ben > -- Principal Engineer Cheyenne Software Engineering mark.geib at echostar.com / 35-215 From 0x6e6562 at gmail.com Mon Feb 2 23:51:13 2009 From: 0x6e6562 at gmail.com (Ben Hood) Date: Mon, 2 Feb 2009 23:51:13 +0000 Subject: [rabbitmq-discuss] Clustering Q In-Reply-To: <3b949f090902021409u72303ac6ud176f5a9917fb29f@mail.gmail.com> References: <3b949f090902021409u72303ac6ud176f5a9917fb29f@mail.gmail.com> Message-ID: <269388e30902021551h797fb87bsd616b64e7ac9b673@mail.gmail.com> Jason, On Mon, Feb 2, 2009 at 10:09 PM, Jason J. W. Williams wrote: > When adding nodes to a cluster, is the only requirement that the host > name after the @ be present in DNS? I've noticed using IP addresses > doesn't work in testing. This is what the documentation says about node naming for the erl command: "-sname Name Makes the Erlang runtime system into a distributed node, similar to -name, but the host name portion of the node name Name at Host will be the short name, not fully qualified. This is sometimes the only way to run distributed Erlang if the DNS (Domain Name System) is not running. There can be no communication between nodes running with the -sname flag and those running with the -name flag, as node names must be unique in distributed Erlang systems." HTH, Ben From 0x6e6562 at gmail.com Mon Feb 2 23:55:37 2009 From: 0x6e6562 at gmail.com (Ben Hood) Date: Mon, 2 Feb 2009 23:55:37 +0000 Subject: [rabbitmq-discuss] question on exchange type In-Reply-To: <49877AB6.40508@echostar.com> References: <49875E91.8020202@echostar.com> <269388e30902021425n58efd706jd408fd443c9abae6@mail.gmail.com> <49877AB6.40508@echostar.com> Message-ID: <269388e30902021555u260f14bp161fcb6803179357@mail.gmail.com> Mark, On Mon, Feb 2, 2009 at 10:59 PM, Mark Geib wrote: > The system I am building is, from the amqp broker point of view at least, > very producer oriented for sure. What is vital is that a producer can safely > hand off a message to the broker, knowing that at some time a consumer will > get it. That is, once the message is published the responsibility of that > message is moved to the broker...even if no consumer currently exists. The > issue I am struggling with is that if I have to create and bind a queue in > the producer to make this happen then I have already routed the message. > This eliminates what consumers can do in the way of 'subscribing' to > exchanges to have messages routed to it. Another variant make to route messages to a catch-all queue and then use a message selector as a predicate for subscriptions. That way you don't loose any messages and the consumer can still pick and choose. The selector is, of course, currently just vaporware :-( Ben From jasonjwwilliams at gmail.com Tue Feb 3 00:19:27 2009 From: jasonjwwilliams at gmail.com (Jason J. W. Williams) Date: Mon, 2 Feb 2009 17:19:27 -0700 Subject: [rabbitmq-discuss] Clustering Q In-Reply-To: <269388e30902021551h797fb87bsd616b64e7ac9b673@mail.gmail.com> References: <3b949f090902021409u72303ac6ud176f5a9917fb29f@mail.gmail.com> <269388e30902021551h797fb87bsd616b64e7ac9b673@mail.gmail.com> Message-ID: <3b949f090902021619u5a6473a3obd60931e0fcf0973@mail.gmail.com> Hi Ben, It does help. The issue is I was trying to create a cluster between my dev machine (no DNS for it's IP) and the test server, which unfortunately, are on different subnets. So I was hoping @IP would work. But I guess not. Thank you for the clarification. -J On Mon, Feb 2, 2009 at 4:51 PM, Ben Hood <0x6e6562 at gmail.com> wrote: > Jason, > > On Mon, Feb 2, 2009 at 10:09 PM, Jason J. W. Williams > wrote: >> When adding nodes to a cluster, is the only requirement that the host >> name after the @ be present in DNS? I've noticed using IP addresses >> doesn't work in testing. > > This is what the documentation says about node naming for the erl command: > > "-sname Name > Makes the Erlang runtime system into a distributed node, similar to > -name, but the host name portion of the node name Name at Host will be > the short name, not fully qualified. > > This is sometimes the only way to run distributed Erlang if the DNS > (Domain Name System) is not running. There can be no communication > between nodes running with the -sname flag and those running with the > -name flag, as node names must be unique in distributed Erlang > systems." > > HTH, > > Ben > From 0x6e6562 at gmail.com Tue Feb 3 00:23:46 2009 From: 0x6e6562 at gmail.com (Ben Hood) Date: Tue, 3 Feb 2009 00:23:46 +0000 Subject: [rabbitmq-discuss] question on exchange type In-Reply-To: <2fff50390902021606x1e5a08d1q9cb413002359ab9c@mail.gmail.com> References: <49875E91.8020202@echostar.com> <269388e30902021425n58efd706jd408fd443c9abae6@mail.gmail.com> <49877AB6.40508@echostar.com> <269388e30902021555u260f14bp161fcb6803179357@mail.gmail.com> <2fff50390902021606x1e5a08d1q9cb413002359ab9c@mail.gmail.com> Message-ID: <269388e30902021623i228baf20qdd65bda4e0998dff@mail.gmail.com> Daniel, On Tue, Feb 3, 2009 at 12:06 AM, Daniel N wrote: > Would a selector be able to be applied to things like delayed routing (use > it after an activation time is reached) or priority queuing? Interesting concept - TTL based routing :-) I haven't heard of that one, but I imagine that you could specify some kind of routing rule that is executed after a TTL expires. There are a few considerations for this: - The implementation of TTLs in Rabbit has just kicked off but there is not ETA on this; - The current thinking is to just turf the message after expiry, so we'd need to consider how and why you might want to configure post-routing; - TTLs are will probably expire after having been resident in a queue, i.e. after routing has taken place - so you would have to apply a second phase of routing; - Then you would have to think about the types of routing that could applied here - off the top of my head, I don't see why any routing algorithm is ruled out per se, but this may require analysis; - Another approach would be to build some kind of exchange in a compositional fashion - so that you build an macro-exchange out of a micro-exchange/binding/queue combination - essentially this would require AMQP to eat its own dogfood - this might be an application for an embedded client; As for combining priority queueing and selectors, I'm not quite sure I follow this example. Can you elaborate? Ben From 0x6e6562 at gmail.com Tue Feb 3 00:25:22 2009 From: 0x6e6562 at gmail.com (Ben Hood) Date: Tue, 3 Feb 2009 00:25:22 +0000 Subject: [rabbitmq-discuss] Clustering Q In-Reply-To: <3b949f090902021619u5a6473a3obd60931e0fcf0973@mail.gmail.com> References: <3b949f090902021409u72303ac6ud176f5a9917fb29f@mail.gmail.com> <269388e30902021551h797fb87bsd616b64e7ac9b673@mail.gmail.com> <3b949f090902021619u5a6473a3obd60931e0fcf0973@mail.gmail.com> Message-ID: <269388e30902021625k72c61b99xc33a9fafe27ba1c4@mail.gmail.com> Jason, On Tue, Feb 3, 2009 at 12:19 AM, Jason J. W. Williams wrote: > It does help. The issue is I was trying to create a cluster between my > dev machine (no DNS for it's IP) and the test server, which > unfortunately, are on different subnets. So I was hoping @IP would > work. But I guess not. Thank you for the clarification. So did -sname solve your problem? Ben From jasonjwwilliams at gmail.com Tue Feb 3 00:30:14 2009 From: jasonjwwilliams at gmail.com (Jason J. W. Williams) Date: Mon, 2 Feb 2009 17:30:14 -0700 Subject: [rabbitmq-discuss] Clustering Q In-Reply-To: <269388e30902021625k72c61b99xc33a9fafe27ba1c4@mail.gmail.com> References: <3b949f090902021409u72303ac6ud176f5a9917fb29f@mail.gmail.com> <269388e30902021551h797fb87bsd616b64e7ac9b673@mail.gmail.com> <3b949f090902021619u5a6473a3obd60931e0fcf0973@mail.gmail.com> <269388e30902021625k72c61b99xc33a9fafe27ba1c4@mail.gmail.com> Message-ID: <3b949f090902021630r54f845f4l2de3a8372fd9323e@mail.gmail.com> Haven't tried it. Maybe I misunderstood, for -sname to work, don't both machines have to be on the same subnet? -J On Mon, Feb 2, 2009 at 5:25 PM, Ben Hood <0x6e6562 at gmail.com> wrote: > Jason, > > On Tue, Feb 3, 2009 at 12:19 AM, Jason J. W. Williams > wrote: >> It does help. The issue is I was trying to create a cluster between my >> dev machine (no DNS for it's IP) and the test server, which >> unfortunately, are on different subnets. So I was hoping @IP would >> work. But I guess not. Thank you for the clarification. > > So did -sname solve your problem? > > Ben > From jasonjwwilliams at gmail.com Tue Feb 3 02:01:19 2009 From: jasonjwwilliams at gmail.com (Jason J. W. Williams) Date: Mon, 2 Feb 2009 19:01:19 -0700 Subject: [rabbitmq-discuss] basic.reject In-Reply-To: <498402D2.9080705@lshift.net> References: <3b949f090901301621y79cac546s89925696d0775d2d@mail.gmail.com> <269388e30901301735r30afc98fid9bce7b41ceaa1a@mail.gmail.com> <498402D2.9080705@lshift.net> Message-ID: <3b949f090902021801s1e82656foa93108f78b0452a6@mail.gmail.com> Hi Mathias, > Btw, the reason we haven't implemented basic.reject yet is the following > part of its specification: "The server MUST NOT deliver the message to the > same client within the context of the current channel." That requires a > whole bunch of extra book keeping and logic. > That makes sense (the extra book keeping logic). It puts the onus on the consumer to tear down the AMQP connection or re-publish the message. On a consumer that is encountering issues why it can't successfully acknowledge the message (local issues), you've got to be careful how you handle re-connects on a teardown, so you don't enter an overly fast re-connect loop and overload Rabbit with reconnect expense. -J From billy.chasen at gmail.com Tue Feb 3 04:38:07 2009 From: billy.chasen at gmail.com (Billy Chasen) Date: Mon, 2 Feb 2009 23:38:07 -0500 Subject: [rabbitmq-discuss] getting the queue depths Message-ID: I'm using py-amqplib and could not find a way to get the queue depth. I know I can get it from rabbitmqctl list_queues -- but that needs to be ran as either root or rabbitmq, otherwise I get an error Any way to programmatically get the queue depths? I feel like there should be a call, chan.queue_size(name) thanks, billy From joe at joetify.com Tue Feb 3 08:46:26 2009 From: joe at joetify.com (Joe Williams) Date: Tue, 03 Feb 2009 00:46:26 -0800 Subject: [rabbitmq-discuss] STOMP Plugin Issues Message-ID: <49880462.5080704@joetify.com> I am attempting to work with the STOMP plugin from Ruby and seem to be running into an issue that I am unsure how to work around. When running one of the examples I receive: > root at ubuntu-810:~# ruby /opt/rabbitmq-stomp/examples/ruby/cb-receiver.rb > /usr/lib/ruby/gems/1.8/gems/stomp-1.0.6/lib/stomp.rb:233:in `write': > Broken pipe (Errno::EPIPE) > from /usr/lib/ruby/gems/1.8/gems/stomp-1.0.6/lib/stomp.rb:233:in > `puts' > from /usr/lib/ruby/gems/1.8/gems/stomp-1.0.6/lib/stomp.rb:233:in > `_transmit' > from /usr/lib/ruby/gems/1.8/gems/stomp-1.0.6/lib/stomp.rb:232:in > `synchronize' > from /usr/lib/ruby/gems/1.8/gems/stomp-1.0.6/lib/stomp.rb:232:in > `_transmit' > from /usr/lib/ruby/gems/1.8/gems/stomp-1.0.6/lib/stomp.rb:220:in > `transmit' > from /usr/lib/ruby/gems/1.8/gems/stomp-1.0.6/lib/stomp.rb:117:in > `subscribe' > from /opt/rabbitmq-stomp/examples/ruby/cb-receiver.rb:5 When I use irb to try to connect I get something like this: > root at ubuntu-810:~# irb > irb(main):001:0> require ?rubygems? > => true > irb(main):002:0> require ?stomp? > => true > irb(main):003:0> conn = Stomp::Connection.open(?guest?, ?guest?, > ?localhost?) > => #, @login=?guest?, @reconnectDelay=5, @transmit_semaphore=#, > @failure=nil, @port=61613, @connect=#>,\n <<\"/\">>]},\n > {rabbit_stomp,do_login,5},\n > {rabbit_stomp,process_received_bytes,2},\n {rabbit_stomp,init,1},\n > {proc_lib,init_p,5}]}\n?, @headers={?content-type?=>?text/plain?, > ?content-length?=>?290?, ?message?=>?Processing error?}>, > @reliable=false, @clientId=nil, @subscriptions={}, @host=?localhost?, > @socket_semaphore=#, @socket=#, @passcode=?guest?, @closed=false> > The logs state the same. > root at ubuntu-810:~# tail /var/log/rabbitmq/rabbit.log > =INFO REPORT==== 3-Feb-2009::02:11:42 === > starting STOMP connection <0.3746.0> from 127.0.0.1:59035 > > =ERROR REPORT==== 3-Feb-2009::02:11:42 === > STOMP error frame sent: > Message: ?Processing error? > Detail: ?{undef,[{rabbit_channel,start_link,\n > [rabbit_stomp,<0.3746.0>,<0.3746.0>,<<\"guest\">>,\n <<\"/\">>]},\n > {rabbit_stomp,do_login,5},\n > {rabbit_stomp,process_received_bytes,2},\n {rabbit_stomp,init,1},\n > {proc_lib,init_p,5}]}\n? > > =INFO REPORT==== 3-Feb-2009::02:11:42 === > ending STOMP connection <0.3746.0> from 127.0.0.1:59035 > Any idea's what I am running into? From what I can tell the ruby stomp client seems to be working fine since it works against stompserver without issue. Any advice would be appreciated. -Joe -- Name: Joseph A. Williams Email: joe at joetify.com Blog: http://www.joeandmotorboat.com/ From matthias at lshift.net Tue Feb 3 10:22:44 2009 From: matthias at lshift.net (Matthias Radestock) Date: Tue, 03 Feb 2009 10:22:44 +0000 Subject: [rabbitmq-discuss] STOMP Plugin Issues In-Reply-To: <49880462.5080704@joetify.com> References: <49880462.5080704@joetify.com> Message-ID: <49881AF4.6030400@lshift.net> Joe, Joe Williams wrote: >> =ERROR REPORT==== 3-Feb-2009::02:11:42 === >> STOMP error frame sent: >> Message: ?Processing error? >> Detail: ?{undef,[{rabbit_channel,start_link,\n >> [rabbit_stomp,<0.3746.0>,<0.3746.0>,<<\"guest\">>,\n <<\"/\">>]},\n >> {rabbit_stomp,do_login,5},\n >> {rabbit_stomp,process_received_bytes,2},\n {rabbit_stomp,init,1},\n >> {proc_lib,init_p,5}]}\n? We changed one of rabbitmq-server's internal APIs a few days ago. The stomp gateway got updated at the same time. It looks like you are using the latest version of the latter but an older version of the former. Generally, when getting code from our mercurial repos, make sure you use revisions with the same tag. And when working with branches, make sure you use the tips of branches of the same name, e.g. when you are on the 'default' branch (aka the trunk) in one repo, say rabbitmq-stomp, make sure that you are using a) the latest revision on that branch, and b) the latest revision of the same branch in any other repos, such as rabbitmq-server. Regards, Matthias. From tonyg at lshift.net Tue Feb 3 13:12:29 2009 From: tonyg at lshift.net (Tony Garnock-Jones) Date: Tue, 03 Feb 2009 13:12:29 +0000 Subject: [rabbitmq-discuss] STOMP Plugin Issues In-Reply-To: <49881AF4.6030400@lshift.net> References: <49880462.5080704@joetify.com> <49881AF4.6030400@lshift.net> Message-ID: <498842BD.204@lshift.net> Hi, Matthias Radestock wrote: > We changed one of rabbitmq-server's internal APIs a few days ago. The > stomp gateway got updated at the same time. It looks like you are using > the latest version of the latter but an older version of the former. Just to make sure that it is in a working state, I just ran the following, and tried some of the ruby examples included with the adapter: hg clone http://hg.rabbitmq.com/rabbitmq-codegen hg clone http://hg.rabbitmq.com/rabbitmq-server hg clone http://hg.rabbitmq.com/rabbitmq-stomp make -C rabbitmq-server make -C rabbitmq-stomp run Everything seems OK. If you have existing checkouts, the following will get you to the tip-of-default (warning: obliterates uncommitted edits, if any): (cd rabbitmq-codegen; hg pull && hg up -C default) (cd rabbitmq-server; hg pull && hg up -C default) (cd rabbitmq-stomp; hg pull && hg up -C default) make -C rabbitmq-server clean all make -C rabbitmq-stomp clean run Regards, Tony From dmitriy.samovskiy at cohesiveft.com Tue Feb 3 15:45:15 2009 From: dmitriy.samovskiy at cohesiveft.com (Dmitriy Samovskiy) Date: Tue, 03 Feb 2009 09:45:15 -0600 Subject: [rabbitmq-discuss] getting started, broker runs; can't get status In-Reply-To: <921b71e30902021254l4c6f5db4ga7c905c9aa9f2370@mail.gmail.com> References: <3d5db09e0901201356r1cafa64aud71de1a8c2d28cef@mail.gmail.com> <498409CD.6060600@lshift.net> <921b71e30901311048k3a96f0c8o7a303b1b89e16d99@mail.gmail.com> <4984A903.7060804@lshift.net> <921b71e30901311213h5c9b072ftff66b3addd2a0466@mail.gmail.com> <4984B9E6.5050804@lshift.net> <4984BDAD.9040502@cohesiveft.com> <4984BE9D.6080909@lshift.net> <4984C4DC.1080105@cohesiveft.com> <4984E351.5030202@lshift.net> <921b71e30902021254l4c6f5db4ga7c905c9aa9f2370@mail.gmail.com> Message-ID: <4988668B.8040807@cohesiveft.com> Dave, Matthias, Christopher - Dave Farkas wrote: > I don't have snoopy installed, anything in /etc/ld.so.preload or can > find a place where LD_PRELOAD is being set. SELinux is also disabled: > > I've also tried to re-enable Nagle by changing the lines in the > rabbitmq-server script with the same results. > Even though this is unlikely to help, I was wondering if you could find time to do the following exercise. It may help determine if an issue has anything to do with rabbit in the first place (to make sure we are on the right track). Please run this: # erl -sname foo -cookie coo Erlang (BEAM) emulator version 5.6.5 [source] [async-threads:0] [kernel-poll:false] Eshell V5.6.5 (abort with ^G) (foo at myvm)1> net_adm:names(). {ok,[{"foo",1292}]} (foo at myvm)2> Exit from there with Ctrl+C Ctrl+C. I suspect that your response from net_adm:names() will be {error,timeout} and it will appear not immediately but after some time (within 30 seconds). Could you please confirm. After you exit from erl, please do grep -r /usr/lib/erlang/erts-5.6.5/bin /var/log/* (please replace 5.6.5 with emulator version that is displayed when you start erl). Anything of interest in the output? I am particularly looking for something related to auth, or access being denied. Interesting lines are likely to come from auth.log or its equivalent on your system, and there should be many similar lines (unless your syslog suppresses dup lines - mine didn't). If nothing shows up, maybe try similar greps - erlang, erts. And finally, if you have or can get strace on the target system, could you please run this: % strace -e trace=write -o erl_strace.log erl -sname -cookie coo and do the same net_adm:names() in erlang shell. When it times out, exit erlang shell and take a look at erl_strace.log. I expect that at the end of that file you will see many lines like this: --- SIGCHLD (Child exited) @ 0 (0) --- --- SIGPIPE (Broken pipe) @ 0 (0) --- --- SIGPIPE (Broken pipe) @ 0 (0) --- --- SIGPIPE (Broken pipe) @ 0 (0) --- --- SIGCHLD (Child exited) @ 0 (0) --- --- SIGPIPE (Broken pipe) @ 0 (0) --- --- SIGCHLD (Child exited) @ 0 (0) --- --- SIGPIPE (Broken pipe) @ 0 (0) --- --- SIGCHLD (Child exited) @ 0 (0) --- --- SIGPIPE (Broken pipe) @ 0 (0) --- Feel free to do strace with -e trace=all or -e verbose=all. That SIGPIPE corresponds to erlang's attempt to write PORT2_REQ command to empd in the second connection. tcpdump shows no attempts to make a second connection either - not even a single SYN. It tells me that either something suppresses the connection but still has low-level C function return success, or something in erlang does not check return code (a very wild guess on my part). All in all, I can reliably recreate this problem with snoopy on Debian Etch (if you try this at home, I recommend against having dpkg install snoopy in /etc/ld.so.preload - it will ask at install, but answer NO and instead manually set LD_PRELOAD=/lib/snoopy.so when you need to). At least in scenario with snoopy, the problem has nothing to do with rabbitmq. If there are strace or low-level OS experts on the list who would like to compare strace output of a good run vs run under snoopy in order to get more info, I can provide strace outputs. I have also looked inside lib/erl_interface/src/epmd in erlang source for clues but did not find any. What Linux distro are you using? uname -a? Any particular details how you installed the OS? If it's safe to share, maybe output of "rpm -qa" or "dpkg -l"? And like Matthias said before, access to box or image of the box will be most helpful. - Dmitriy From joe at joetify.com Tue Feb 3 17:26:47 2009 From: joe at joetify.com (Joe Williams) Date: Tue, 03 Feb 2009 09:26:47 -0800 Subject: [rabbitmq-discuss] STOMP Plugin Issues In-Reply-To: <498842BD.204@lshift.net> References: <49880462.5080704@joetify.com> <49881AF4.6030400@lshift.net> <498842BD.204@lshift.net> Message-ID: <49887E57.6000205@joetify.com> Thanks for the help guys, I will give it a shot. -Joe Tony Garnock-Jones wrote: > Hi, > > Matthias Radestock wrote: >> We changed one of rabbitmq-server's internal APIs a few days ago. The >> stomp gateway got updated at the same time. It looks like you are >> using the latest version of the latter but an older version of the >> former. > > Just to make sure that it is in a working state, I just ran the > following, and tried some of the ruby examples included with the adapter: > > hg clone http://hg.rabbitmq.com/rabbitmq-codegen > hg clone http://hg.rabbitmq.com/rabbitmq-server > hg clone http://hg.rabbitmq.com/rabbitmq-stomp > make -C rabbitmq-server > make -C rabbitmq-stomp run > > Everything seems OK. > > If you have existing checkouts, the following will get you to the > tip-of-default (warning: obliterates uncommitted edits, if any): > > (cd rabbitmq-codegen; hg pull && hg up -C default) > (cd rabbitmq-server; hg pull && hg up -C default) > (cd rabbitmq-stomp; hg pull && hg up -C default) > make -C rabbitmq-server clean all > make -C rabbitmq-stomp clean run > > Regards, > Tony -- Name: Joseph A. Williams Email: joe at joetify.com Blog: http://www.joeandmotorboat.com/ From dougbarth at gmail.com Tue Feb 3 17:48:30 2009 From: dougbarth at gmail.com (Doug Barth) Date: Tue, 3 Feb 2009 09:48:30 -0800 (PST) Subject: [rabbitmq-discuss] getting started, broker runs; can't get status In-Reply-To: <4988668B.8040807@cohesiveft.com> References: <3d5db09e0901201356r1cafa64aud71de1a8c2d28cef@mail.gmail.com> <498409CD.6060600@lshift.net> <921b71e30901311048k3a96f0c8o7a303b1b89e16d99@mail.gmail.com> <4984A903.7060804@lshift.net> <921b71e30901311213h5c9b072ftff66b3addd2a0466@mail.gmail.com> <4984B9E6.5050804@lshift.net> <4984BDAD.9040502@cohesiveft.com> <4984BE9D.6080909@lshift.net> <4984C4DC.1080105@cohesiveft.com> <4984E351.5030202@lshift.net> <921b71e30902021254l4c6f5db4ga7c905c9aa9f2370@mail.gmail.com> <4988668B.8040807@cohesiveft.com> Message-ID: <1598059d-146a-4636-b127-fe53bb585306@v18g2000pro.googlegroups.com> Hey all, This is Doug at Interactive Mediums. I work with Dave, so you may see us alternate back and forth responding to this thread as we work through this issue. Thanks a lot for the help so far. On Feb 3, 9:45?am, Dmitriy Samovskiy wrote: > I suspect that your response from net_adm:names() will be {error,timeout} and it will > appear not immediately but after some time (within 30 seconds). Could you please confirm. We don't get exactly that error. Instead we are getting {error,address}. [root at db1 home]# erl -sname foo -cookie coo Erlang (BEAM) emulator version 5.6.3 [source] [64-bit] [smp:8] [async-threads:0] [hipe] [kernel-poll:false] Eshell V5.6.3 (abort with ^G) (foo at db1)1> net_adm:names(). ... long pause ... {error,address} (foo at db1)2> BREAK: (a)bort (c)ontinue (p)roc info (i)nfo (l)oaded (v)ersion (k)ill (D)b-tables (d)istribution > After you exit from erl, please do grep -r /usr/lib/erlang/erts-5.6.5/bin /var/log/* > (please replace 5.6.5 with emulator version that is displayed when you start erl). > Anything of interest in the output? I am particularly looking for something related to > auth, or access being denied. Interesting lines are likely to come from auth.log or its > equivalent on your system, and there should be many similar lines (unless your syslog > suppresses dup lines - mine didn't). If nothing shows up, maybe try similar greps - > erlang, erts. grep didn't turn up anything in these directories. I grepped for erlang, erts, and the absolute path to the erlang bin directory. > And finally, if you have or can get strace on the target system, could you please run this: > > % strace -e trace=write -o erl_strace.log erl -sname -cookie coo I'm assuming that there should have been a "foo" after -sname in the command above. I added that when running the next commands. > and do the same net_adm:names() in erlang shell. When it times out, exit erlang shell and > take a look at erl_strace.log. I expect that at the end of that file you will see many > lines like this: > > --- SIGCHLD (Child exited) @ 0 (0) --- > --- SIGPIPE (Broken pipe) @ 0 (0) --- > --- SIGPIPE (Broken pipe) @ 0 (0) --- > --- SIGPIPE (Broken pipe) @ 0 (0) --- > --- SIGCHLD (Child exited) @ 0 (0) --- > --- SIGPIPE (Broken pipe) @ 0 (0) --- > --- SIGCHLD (Child exited) @ 0 (0) --- > --- SIGPIPE (Broken pipe) @ 0 (0) --- > --- SIGCHLD (Child exited) @ 0 (0) --- > --- SIGPIPE (Broken pipe) @ 0 (0) --- This is all we're getting: --- SIGCHLD (Child exited) @ 0 (0) --- --- SIGCHLD (Child exited) @ 0 (0) --- write(6, "\0", 1) = 1 --- SIGINT (Interrupt) @ 0 (0) --- write(6, "I", 1) = 1 --- SIGINT (Interrupt) @ 0 (0) --- write(6, "I", 1) = 1 > Feel free to do strace with -e trace=all or -e verbose=all. We ran this test using strace -e trace=all on the machine that is failing as well as on a different machine that is working fine. The machine that is failing is running RHEL 5.2 (64-bit). The box that works is running CentOS 5 (32-bit). >From those logs, the two differences that jumped out are: 1) Calls to mmap have a MAP_32BIT flag set. I'm assuming this is expected due to the fact that our new machine is running a 64bit OS. -mmap2(NULL, 10489856, PROT_READ|PROT_WRITE|PROT_EXEC, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x68b4000 +mmap(NULL, 10489856, PROT_READ|PROT_WRITE|PROT_EXEC, MAP_PRIVATE|MAP_ANONYMOUS|MAP_32BIT, -1, 0) = 0x471a4000 2) Erlang seems to drop into a loop waiting on a futex. On the 64bit machine, its FUTEX_WAIT commands also fail with "EAGAIN (Resource temporarily unavailable)". On the 32-bit machine, those same commands always succeed, though the same number of repeats occur. +futex(0x7fff9f5fdab0, FUTEX_WAKE, 1) = 1 +futex(0x7fff9f5fdad8, FUTEX_WAKE, 1) = 1 +futex(0x7fff9f5fdadc, FUTEX_WAIT, 1, NULL) = -1 EAGAIN (Resource temporarily unavailable) +futex(0x7fff9f5fdab0, FUTEX_WAKE, 1) = 0 > What Linux distro are you using? uname -a? Any particular details how you installed the > OS? If it's safe to share, maybe output of "rpm -qa" or "dpkg -l"? [textme at db1 ~]$ cat /etc/redhat-release Red Hat Enterprise Linux Server release 5.2 (Tikanga) [textme at db1 ~]$ uname -a Linux db1.interactivemediums.com 2.6.18-92.1.6.el5 #1 SMP Fri Jun 20 02:36:06 EDT 2008 x86_64 x86_64 x86_64 GNU/Linux > And like Matthias said before, access to box or image of the box will be most helpful. We'll get in touch with you guys off list to get you access so you can poke around. Expect an email from Dave. -- Doug Barth From darien at kindlund.com Tue Feb 3 18:46:22 2009 From: darien at kindlund.com (Darien Kindlund) Date: Tue, 3 Feb 2009 13:46:22 -0500 Subject: [rabbitmq-discuss] RabbitMQ+STOMP Plugin: Bulk Message Allocation Behavior? Message-ID: <50c8ffe90902031046o304a87e1l7ac0ee497447eb6a@mail.gmail.com> Hi Tony, Using: RabbitMQ 1.5.0 / Stomp 1.5.0 Maybe you can shed some light on this. I have a topic exchange setup with one (durable) queue bound to the exchange. All messages sent to the exchange are using a single Net::Stomp perl process and have the proper routing key such that all messages get sent to the shared queue. I also have about 75 to 100 perl processes all using Net::Stomp which are subscribed to the same queue, receiving these messages. Each perl process receives one message, processes the message, then sends back an explicit ACK (client => 'ack') to the queue in order for the message to be removed from the shared queue. Here are the order of events: 0) No perl processes are subscribed to the queue. 1) 50,000 messages are sent to the exchange and are routed to the queue (which are stored on the queue). 2) 50 perl processes start up and subscribe to the queue and start processing the messages. ... wait 1-2 minutes ... 3) rabbitmqctl shows that messages_ready=0, BUT messages_unacknowledged=messages_uncommited=30000 4) 10 new perl processes start up and subscribe to the queue. At this point, these 10 new perl processes NEVER obtain any of the remaining 30,000 messages Here's the problem: I want each perl process to handle ONE and only one message at a time, yet it seems that RabbitMQ (or the STOMP adapter) pre-allocates more than one message per STOMP connection. Bottom line: This means that one of the perl processes can be overloaded with messages while another perl process may not have any messages to process. Could you please confirm that this is, in fact, happening? Next, could you provide a recommendation as to how I should resolve this issue? Thanks again, -- Darien From mark.geib at echostar.com Tue Feb 3 19:04:37 2009 From: mark.geib at echostar.com (Mark Geib) Date: Tue, 03 Feb 2009 12:04:37 -0700 Subject: [rabbitmq-discuss] {handshake_timeout, frame_header} Message-ID: <49889545.5080400@echostar.com> OK, I have two machine, one desktop, one laptop. Both are running the same version of Ubuntu (8.10) both fully updated, same versions of erlang, same verison of rabbitmq, and the same source for my erlang code, checked out from repository.. On the desktop everything works fine, on the laptop the connection to rabbitmq hangs and in the rabbit.log file I get {handshake_timeout, frame_header}. In both cases I am connecting to "localhost". Any ideas.?? I suspect a network issue, but have no differences. Thanks, Mark. -- Principal Engineer Cheyenne Software Engineering mark.geib at echostar.com / 35-215 From dmitriy.samovskiy at cohesiveft.com Tue Feb 3 19:19:16 2009 From: dmitriy.samovskiy at cohesiveft.com (Dmitriy Samovskiy) Date: Tue, 03 Feb 2009 13:19:16 -0600 Subject: [rabbitmq-discuss] getting started, broker runs; can't get status In-Reply-To: <1598059d-146a-4636-b127-fe53bb585306@v18g2000pro.googlegroups.com> References: <3d5db09e0901201356r1cafa64aud71de1a8c2d28cef@mail.gmail.com> <498409CD.6060600@lshift.net> <921b71e30901311048k3a96f0c8o7a303b1b89e16d99@mail.gmail.com> <4984A903.7060804@lshift.net> <921b71e30901311213h5c9b072ftff66b3addd2a0466@mail.gmail.com> <4984B9E6.5050804@lshift.net> <4984BDAD.9040502@cohesiveft.com> <4984BE9D.6080909@lshift.net> <4984C4DC.1080105@cohesiveft.com> <4984E351.5030202@lshift.net> <921b71e30902021254l4c6f5db4ga7c905c9aa9f2370@mail.gmail.com> <4988668B.8040807@cohesiveft.com> <1598059d-146a-4636-b127-fe53bb585306@v18g2000pro.googlegroups.com> Message-ID: <498898B4.6020702@cohesiveft.com> Hi all, Doug Barth wrote: > We don't get exactly that error. Instead we are getting > {error,address}. > > [root at db1 home]# erl -sname foo -cookie coo > Erlang (BEAM) emulator version 5.6.3 [source] [64-bit] [smp:8] > [async-threads:0] [hipe] [kernel-poll:false] > > Eshell V5.6.3 (abort with ^G) > (foo at db1)1> net_adm:names(). > > ... long pause ... > > {error,address} > (foo at db1)2> > BREAK: (a)bort (c)ontinue (p)roc info (i)nfo (l)oaded > (v)ersion (k)ill (D)b-tables (d)istribution > Fixed. According to net_adm man page [1], names/0 returns {error, address} when node can't communicate with epmd. We did net_adm:localhost() to see the local host name that erlang sees. It was an FQDN (a.example.com). In /etc/hosts however, a.example.com resolved to an Internet-facing IP on ISP's frontend, not to a private IP of the local box. With tcpdump, we observed SYN packets in response to net_adm:names() call going out to the network to ISP's IP address, instead of going locally to our epmd. Once we changed /etc/hosts and put something like "127.0.0.1 a.example.com" there, net_adm:names() started working and erlang is happy now. Please note that this turned out to be totally unrelated to what we observed with snoopy, even though some (all?) symptoms looked very similar. [1] http://erlang.org/doc/man/net_adm.html - Dmitriy From dougbarth at gmail.com Tue Feb 3 19:44:03 2009 From: dougbarth at gmail.com (Doug Barth) Date: Tue, 3 Feb 2009 11:44:03 -0800 (PST) Subject: [rabbitmq-discuss] getting started, broker runs; can't get status In-Reply-To: <498898B4.6020702@cohesiveft.com> References: <3d5db09e0901201356r1cafa64aud71de1a8c2d28cef@mail.gmail.com> <498409CD.6060600@lshift.net> <921b71e30901311048k3a96f0c8o7a303b1b89e16d99@mail.gmail.com> <4984A903.7060804@lshift.net> <921b71e30901311213h5c9b072ftff66b3addd2a0466@mail.gmail.com> <4984B9E6.5050804@lshift.net> <4984BDAD.9040502@cohesiveft.com> <4984BE9D.6080909@lshift.net> <4984C4DC.1080105@cohesiveft.com> <4984E351.5030202@lshift.net> <921b71e30902021254l4c6f5db4ga7c905c9aa9f2370@mail.gmail.com> <4988668B.8040807@cohesiveft.com> <1598059d-146a-4636-b127-fe53bb585306@v18g2000pro.googlegroups.com> <498898B4.6020702@cohesiveft.com> Message-ID: On Feb 3, 1:19?pm, Dmitriy Samovskiy wrote: > We did net_adm:localhost() to see the local host name that erlang sees. It was an FQDN > (a.example.com). In /etc/hosts however, a.example.com resolved to an Internet-facing IP on > ISP's frontend, not to a private IP of the local box. With tcpdump, we observed SYN > packets in response to net_adm:names() call going out to the network to ISP's IP address, > instead of going locally to our epmd. > > Once we changed /etc/hosts and put something like "127.0.0.1 a.example.com" there, > net_adm:names() started working and erlang is happy now. Hey Dmitriy, Thanks again for the help. Once we had a working configuration, we did a bit more digging to fully understand how this issue was caused. I thought it would be worth sharing what we believe was the root cause. Our new machines have two NICs with separate IP addresses for each. One one NIC has a publicly addressable IP, the other has a private IP meant for server management traffic. When the erlang process was attempting to contact the epmd process, it was using the private IP interface to connect to the public IP interface. It did this because the hostname for that box resolved to the public IP. The epmd-bound traffic was stopped by the firewall for the public IP interface. Modifying the hosts file to resolve the machine's hostname to 127.0.0.1 avoided the firewall and fixed the issue. Alternatively, changing the hosts file to use the private IP address also fixed the issue, since that traffic avoids the firewall as well because the originating and destination addresses are identical. In theory, I think another fix for this issue would be to instruct Erlang to use the public IP address when generating outbound traffic. Unfortunately, I do not know how to control that setting to test this theory. Is there are startup flag that could be set? -- Doug Barth From tonyg at lshift.net Tue Feb 3 19:46:23 2009 From: tonyg at lshift.net (Tony Garnock-Jones) Date: Tue, 03 Feb 2009 19:46:23 +0000 Subject: [rabbitmq-discuss] RabbitMQ+STOMP Plugin: Bulk Message Allocation Behavior? In-Reply-To: <50c8ffe90902031046o304a87e1l7ac0ee497447eb6a@mail.gmail.com> References: <50c8ffe90902031046o304a87e1l7ac0ee497447eb6a@mail.gmail.com> Message-ID: <49889F0F.3060600@lshift.net> Hi Darien, This is because acknowledgement and prefetch-windowing are orthogonal issues. RabbitMQ very recently gained prefetch-windowing control in the form of AMQP's "Basic.Qos" method, but there's no support for that in the STOMP adapter yet. I'll take a look. Tony Darien Kindlund wrote: > Hi Tony, > > Using: RabbitMQ 1.5.0 / Stomp 1.5.0 > > Maybe you can shed some light on this. I have a topic exchange setup > with one (durable) queue bound to the exchange. All messages sent to > the exchange are using a single Net::Stomp perl process and have the > proper routing key such that all messages get sent to the shared > queue. > > I also have about 75 to 100 perl processes all using Net::Stomp which > are subscribed to the same queue, receiving these messages. Each perl > process receives one message, processes the message, then sends back > an explicit ACK (client => 'ack') to the queue in order for the > message to be removed from the shared queue. > > Here are the order of events: > > 0) No perl processes are subscribed to the queue. > 1) 50,000 messages are sent to the exchange and are routed to the > queue (which are stored on the queue). > 2) 50 perl processes start up and subscribe to the queue and start > processing the messages. > ... wait 1-2 minutes ... > 3) rabbitmqctl shows that messages_ready=0, BUT > messages_unacknowledged=messages_uncommited=30000 > 4) 10 new perl processes start up and subscribe to the queue. At this > point, these 10 new perl processes NEVER obtain any of the remaining > 30,000 messages > > Here's the problem: > > I want each perl process to handle ONE and only one message at a time, > yet it seems that RabbitMQ (or the STOMP adapter) pre-allocates more > than one message per STOMP connection. Bottom line: This means that > one of the perl processes can be overloaded with messages while > another perl process may not have any messages to process. > > Could you please confirm that this is, in fact, happening? Next, > could you provide a recommendation as to how I should resolve this > issue? > > Thanks again, > -- Darien From darien at kindlund.com Tue Feb 3 19:54:22 2009 From: darien at kindlund.com (Darien Kindlund) Date: Tue, 3 Feb 2009 14:54:22 -0500 Subject: [rabbitmq-discuss] RabbitMQ+STOMP Plugin: Bulk Message Allocation Behavior? In-Reply-To: <49889F0F.3060600@lshift.net> References: <50c8ffe90902031046o304a87e1l7ac0ee497447eb6a@mail.gmail.com> <49889F0F.3060600@lshift.net> Message-ID: <50c8ffe90902031154t6b73081ekac86146e5a2f23a3@mail.gmail.com> Okay, thanks. If there's a way to reduce the prefetch window to 1 message via the STOMP adapter, I'd appreciate it. I'm guessing that when you reduce the prefetch window, you also incur an additional latency in overall message delivery. In the long term, I'm thinking that having programmatic control over this window size would help me determine a realistic value that works for my application. -- Darien On Tue, Feb 3, 2009 at 2:46 PM, Tony Garnock-Jones wrote: > Hi Darien, > > This is because acknowledgement and prefetch-windowing are orthogonal > issues. RabbitMQ very recently gained prefetch-windowing control in the form > of AMQP's "Basic.Qos" method, but there's no support for that in the STOMP > adapter yet. > > I'll take a look. > > Tony > > > Darien Kindlund wrote: >> >> Hi Tony, >> >> Using: RabbitMQ 1.5.0 / Stomp 1.5.0 >> >> Maybe you can shed some light on this. I have a topic exchange setup >> with one (durable) queue bound to the exchange. All messages sent to >> the exchange are using a single Net::Stomp perl process and have the >> proper routing key such that all messages get sent to the shared >> queue. >> >> I also have about 75 to 100 perl processes all using Net::Stomp which >> are subscribed to the same queue, receiving these messages. Each perl >> process receives one message, processes the message, then sends back >> an explicit ACK (client => 'ack') to the queue in order for the >> message to be removed from the shared queue. >> >> Here are the order of events: >> >> 0) No perl processes are subscribed to the queue. >> 1) 50,000 messages are sent to the exchange and are routed to the >> queue (which are stored on the queue). >> 2) 50 perl processes start up and subscribe to the queue and start >> processing the messages. >> ... wait 1-2 minutes ... >> 3) rabbitmqctl shows that messages_ready=0, BUT >> messages_unacknowledged=messages_uncommited=30000 >> 4) 10 new perl processes start up and subscribe to the queue. At this >> point, these 10 new perl processes NEVER obtain any of the remaining >> 30,000 messages >> >> Here's the problem: >> >> I want each perl process to handle ONE and only one message at a time, >> yet it seems that RabbitMQ (or the STOMP adapter) pre-allocates more >> than one message per STOMP connection. Bottom line: This means that >> one of the perl processes can be overloaded with messages while >> another perl process may not have any messages to process. >> >> Could you please confirm that this is, in fact, happening? Next, >> could you provide a recommendation as to how I should resolve this >> issue? >> >> Thanks again, >> -- Darien > From tonyg at lshift.net Tue Feb 3 20:39:15 2009 From: tonyg at lshift.net (Tony Garnock-Jones) Date: Tue, 03 Feb 2009 20:39:15 +0000 Subject: [rabbitmq-discuss] RabbitMQ+STOMP Plugin: Bulk Message Allocation Behavior? In-Reply-To: <50c8ffe90902031154t6b73081ekac86146e5a2f23a3@mail.gmail.com> References: <50c8ffe90902031046o304a87e1l7ac0ee497447eb6a@mail.gmail.com> <49889F0F.3060600@lshift.net> <50c8ffe90902031154t6b73081ekac86146e5a2f23a3@mail.gmail.com> Message-ID: <4988AB73.30805@lshift.net> I've just committed a patch to the STOMP adapter that calls out to Basic.Qos. It doesn't work with the Ruby STOMP client at the moment, because that client doesn't let you specify custom headers to CONNECT, but works with Net::Stomp. To switch on prefetch-windowing, you have to set "prefetch" to non-zero on CONNECT, and "ack" to "client" on SUBSCRIBE. To see what the "prefetch" CONNECT header is for, look at the documentation for the "prefetch count" field in the Basic.Qos command in the AMQP specification. Regards, Tony Darien Kindlund wrote: > Okay, thanks. If there's a way to reduce the prefetch window to 1 > message via the STOMP adapter, I'd appreciate it. I'm guessing that > when you reduce the prefetch window, you also incur an additional > latency in overall message delivery. In the long term, I'm thinking > that having programmatic control over this window size would help me > determine a realistic value that works for my application. > > -- Darien > > On Tue, Feb 3, 2009 at 2:46 PM, Tony Garnock-Jones wrote: >> Hi Darien, >> >> This is because acknowledgement and prefetch-windowing are orthogonal >> issues. RabbitMQ very recently gained prefetch-windowing control in the form >> of AMQP's "Basic.Qos" method, but there's no support for that in the STOMP >> adapter yet. >> >> I'll take a look. >> >> Tony >> >> >> Darien Kindlund wrote: >>> Hi Tony, >>> >>> Using: RabbitMQ 1.5.0 / Stomp 1.5.0 >>> >>> Maybe you can shed some light on this. I have a topic exchange setup >>> with one (durable) queue bound to the exchange. All messages sent to >>> the exchange are using a single Net::Stomp perl process and have the >>> proper routing key such that all messages get sent to the shared >>> queue. >>> >>> I also have about 75 to 100 perl processes all using Net::Stomp which >>> are subscribed to the same queue, receiving these messages. Each perl >>> process receives one message, processes the message, then sends back >>> an explicit ACK (client => 'ack') to the queue in order for the >>> message to be removed from the shared queue. >>> >>> Here are the order of events: >>> >>> 0) No perl processes are subscribed to the queue. >>> 1) 50,000 messages are sent to the exchange and are routed to the >>> queue (which are stored on the queue). >>> 2) 50 perl processes start up and subscribe to the queue and start >>> processing the messages. >>> ... wait 1-2 minutes ... >>> 3) rabbitmqctl shows that messages_ready=0, BUT >>> messages_unacknowledged=messages_uncommited=30000 >>> 4) 10 new perl processes start up and subscribe to the queue. At this >>> point, these 10 new perl processes NEVER obtain any of the remaining >>> 30,000 messages >>> >>> Here's the problem: >>> >>> I want each perl process to handle ONE and only one message at a time, >>> yet it seems that RabbitMQ (or the STOMP adapter) pre-allocates more >>> than one message per STOMP connection. Bottom line: This means that >>> one of the perl processes can be overloaded with messages while >>> another perl process may not have any messages to process. >>> >>> Could you please confirm that this is, in fact, happening? Next, >>> could you provide a recommendation as to how I should resolve this >>> issue? >>> >>> Thanks again, >>> -- Darien From darien at kindlund.com Tue Feb 3 21:02:45 2009 From: darien at kindlund.com (Darien Kindlund) Date: Tue, 3 Feb 2009 16:02:45 -0500 Subject: [rabbitmq-discuss] RabbitMQ+STOMP Plugin: Bulk Message Allocation Behavior? In-Reply-To: <4988AB73.30805@lshift.net> References: <50c8ffe90902031046o304a87e1l7ac0ee497447eb6a@mail.gmail.com> <49889F0F.3060600@lshift.net> <50c8ffe90902031154t6b73081ekac86146e5a2f23a3@mail.gmail.com> <4988AB73.30805@lshift.net> Message-ID: <50c8ffe90902031302nb1dbdb3s647179927c892bb0@mail.gmail.com> Hi Tony, Thanks for the patch! I'll try it out and let you know if I run into any problems. If I upgrade the STOMP adapter code with your patch, will I still be able to use it with RabbitMQ 1.5.0? (Or must I upgrade that to v1.5.1 also?) Thanks, -- Darien On Tue, Feb 3, 2009 at 3:39 PM, Tony Garnock-Jones wrote: > I've just committed a patch to the STOMP adapter that calls out to > Basic.Qos. It doesn't work with the Ruby STOMP client at the moment, because > that client doesn't let you specify custom headers to CONNECT, but works > with Net::Stomp. > > To switch on prefetch-windowing, you have to set "prefetch" to non-zero on > CONNECT, and "ack" to "client" on SUBSCRIBE. To see what the "prefetch" > CONNECT header is for, look at the documentation for the "prefetch count" > field in the Basic.Qos command in the AMQP specification. > > Regards, > Tony > > Darien Kindlund wrote: >> >> Okay, thanks. If there's a way to reduce the prefetch window to 1 >> message via the STOMP adapter, I'd appreciate it. I'm guessing that >> when you reduce the prefetch window, you also incur an additional >> latency in overall message delivery. In the long term, I'm thinking >> that having programmatic control over this window size would help me >> determine a realistic value that works for my application. >> >> -- Darien >> >> On Tue, Feb 3, 2009 at 2:46 PM, Tony Garnock-Jones >> wrote: >>> >>> Hi Darien, >>> >>> This is because acknowledgement and prefetch-windowing are orthogonal >>> issues. RabbitMQ very recently gained prefetch-windowing control in the >>> form >>> of AMQP's "Basic.Qos" method, but there's no support for that in the >>> STOMP >>> adapter yet. >>> >>> I'll take a look. >>> >>> Tony >>> >>> >>> Darien Kindlund wrote: >>>> >>>> Hi Tony, >>>> >>>> Using: RabbitMQ 1.5.0 / Stomp 1.5.0 >>>> >>>> Maybe you can shed some light on this. I have a topic exchange setup >>>> with one (durable) queue bound to the exchange. All messages sent to >>>> the exchange are using a single Net::Stomp perl process and have the >>>> proper routing key such that all messages get sent to the shared >>>> queue. >>>> >>>> I also have about 75 to 100 perl processes all using Net::Stomp which >>>> are subscribed to the same queue, receiving these messages. Each perl >>>> process receives one message, processes the message, then sends back >>>> an explicit ACK (client => 'ack') to the queue in order for the >>>> message to be removed from the shared queue. >>>> >>>> Here are the order of events: >>>> >>>> 0) No perl processes are subscribed to the queue. >>>> 1) 50,000 messages are sent to the exchange and are routed to the >>>> queue (which are stored on the queue). >>>> 2) 50 perl processes start up and subscribe to the queue and start >>>> processing the messages. >>>> ... wait 1-2 minutes ... >>>> 3) rabbitmqctl shows that messages_ready=0, BUT >>>> messages_unacknowledged=messages_uncommited=30000 >>>> 4) 10 new perl processes start up and subscribe to the queue. At this >>>> point, these 10 new perl processes NEVER obtain any of the remaining >>>> 30,000 messages >>>> >>>> Here's the problem: >>>> >>>> I want each perl process to handle ONE and only one message at a time, >>>> yet it seems that RabbitMQ (or the STOMP adapter) pre-allocates more >>>> than one message per STOMP connection. Bottom line: This means that >>>> one of the perl processes can be overloaded with messages while >>>> another perl process may not have any messages to process. >>>> >>>> Could you please confirm that this is, in fact, happening? Next, >>>> could you provide a recommendation as to how I should resolve this >>>> issue? >>>> >>>> Thanks again, >>>> -- Darien > From dialtone at gmail.com Tue Feb 3 21:23:29 2009 From: dialtone at gmail.com (Valentino Volonghi) Date: Tue, 3 Feb 2009 13:23:29 -0800 Subject: [rabbitmq-discuss] {handshake_timeout, frame_header} In-Reply-To: <49889545.5080400@echostar.com> References: <49889545.5080400@echostar.com> Message-ID: <3DD646CB-5008-4683-94F5-A1F332540AD5@gmail.com> -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 On Feb 3, 2009, at 11:04 AM, Mark Geib wrote: > Any ideas.?? I suspect a network issue, but have no differences. Check the list archives. You are probably running tip versions of rabbitmq and rabbitmq-erlang-client that don't work. Use tag v_1_5_1 on both. Otherwise it might be a network issue as you say. - -- Valentino Volonghi aka Dialtone Now running MacOS X 10.5 Home Page: http://www.twisted.it http://www.adroll.com -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.9 (Darwin) iEYEARECAAYFAkmItdEACgkQ9Llz28widGW1LgCfd1YEb4TofBDCJov3cUDkCwvc Rt4AoIeEiskWmAszqoZdnyzzuE3AsmCj =kMLZ -----END PGP SIGNATURE----- From tonyg at lshift.net Tue Feb 3 21:27:43 2009 From: tonyg at lshift.net (Tony Garnock-Jones) Date: Tue, 03 Feb 2009 21:27:43 +0000 Subject: [rabbitmq-discuss] Ruby's Stomp gem and CONNECT headers Message-ID: <4988B6CF.3010800@lshift.net> The version I had (1.0.5) didn't support passing in of arbitrary headers to the CONNECT method, so I forked it on github and added the feature. Unfortunately, the version on rubyforge isn't in sync with github, so there are now three variants. http://svn.codehaus.org/stomp/ruby/trunk/lib/ - Rubyforge http://github.com/grempe/stomp/tree/master - What I forked from http://github.com/tonyg/stomp/tree/master - My fork If you want to try out the Basic.Qos/prefetch feature using the Ruby Stomp client, you'll have to get my fork for now: git clone git://github.com/tonyg/stomp.git I've sent a message to grempe asking ver to pull in my change; hopefully that'll happen soon. I've also emailed Brian McCallister to see about getting my change into the official repo. Regards, Tony From tonyg at lshift.net Tue Feb 3 22:08:57 2009 From: tonyg at lshift.net (Tony Garnock-Jones) Date: Tue, 03 Feb 2009 22:08:57 +0000 Subject: [rabbitmq-discuss] RabbitMQ+STOMP Plugin: Bulk Message Allocation Behavior? In-Reply-To: <50c8ffe90902031302nb1dbdb3s647179927c892bb0@mail.gmail.com> References: <50c8ffe90902031046o304a87e1l7ac0ee497447eb6a@mail.gmail.com> <49889F0F.3060600@lshift.net> <50c8ffe90902031154t6b73081ekac86146e5a2f23a3@mail.gmail.com> <4988AB73.30805@lshift.net> <50c8ffe90902031302nb1dbdb3s647179927c892bb0@mail.gmail.com> Message-ID: <4988C079.2070109@lshift.net> Darien Kindlund wrote: > Thanks for the patch! I'll try it out and let you know if I run into > any problems. If I upgrade the STOMP adapter code with your patch, > will I still be able to use it with RabbitMQ 1.5.0? (Or must I > upgrade that to v1.5.1 also?) Good question. I don't think so; Basic.Qos support has hit the trunk, but not been released. It'll appear in the 1.6.x series of the server. Tony From darien at kindlund.com Tue Feb 3 22:20:32 2009 From: darien at kindlund.com (Darien Kindlund) Date: Tue, 3 Feb 2009 17:20:32 -0500 Subject: [rabbitmq-discuss] RabbitMQ+STOMP Plugin: Bulk Message Allocation Behavior? In-Reply-To: <4988C079.2070109@lshift.net> References: <50c8ffe90902031046o304a87e1l7ac0ee497447eb6a@mail.gmail.com> <49889F0F.3060600@lshift.net> <50c8ffe90902031154t6b73081ekac86146e5a2f23a3@mail.gmail.com> <4988AB73.30805@lshift.net> <50c8ffe90902031302nb1dbdb3s647179927c892bb0@mail.gmail.com> <4988C079.2070109@lshift.net> Message-ID: <50c8ffe90902031420p7483c0eq6de87ba9dba3c5e8@mail.gmail.com> Understood. So I'll have to check out the latest stable trunk version of RabbitMQ, in order to use this capability. -- Darien On Tue, Feb 3, 2009 at 5:08 PM, Tony Garnock-Jones wrote: > Darien Kindlund wrote: >> >> Thanks for the patch! I'll try it out and let you know if I run into >> any problems. If I upgrade the STOMP adapter code with your patch, >> will I still be able to use it with RabbitMQ 1.5.0? (Or must I >> upgrade that to v1.5.1 also?) > > Good question. I don't think so; Basic.Qos support has hit the trunk, but > not been released. It'll appear in the 1.6.x series of the server. > > Tony > > From 0x6e6562 at gmail.com Tue Feb 3 23:11:36 2009 From: 0x6e6562 at gmail.com (Ben Hood) Date: Tue, 3 Feb 2009 23:11:36 +0000 Subject: [rabbitmq-discuss] getting the queue depths In-Reply-To: References: Message-ID: <269388e30902031511v33688eafie20f3d202172162f@mail.gmail.com> Billy, On Tue, Feb 3, 2009 at 4:38 AM, Billy Chasen wrote: > I'm using py-amqplib and could not find a way to get the queue depth. > > I know I can get it from rabbitmqctl list_queues -- but that needs to > be ran as either root or rabbitmq, otherwise I get an error > > Any way to programmatically get the queue depths? I feel like there > should be a call, chan.queue_size(name) Have you had a look at the documentation for the queue.declare_ok command? It will tell you what the message count is. BTW, if you google this list for queue depth, you will find out how that works. Also this pattern seems to be used a lot with the Ruby AMQP client. HTH, Ben From 0x6e6562 at gmail.com Tue Feb 3 23:16:18 2009 From: 0x6e6562 at gmail.com (Ben Hood) Date: Tue, 3 Feb 2009 23:16:18 +0000 Subject: [rabbitmq-discuss] basic.reject In-Reply-To: <3b949f090902021801s1e82656foa93108f78b0452a6@mail.gmail.com> References: <3b949f090901301621y79cac546s89925696d0775d2d@mail.gmail.com> <269388e30901301735r30afc98fid9bce7b41ceaa1a@mail.gmail.com> <498402D2.9080705@lshift.net> <3b949f090902021801s1e82656foa93108f78b0452a6@mail.gmail.com> Message-ID: <269388e30902031516n7fd32d49m927651ec012303cc@mail.gmail.com> Jason, On Tue, Feb 3, 2009 at 2:01 AM, Jason J. W. Williams wrote: >> Btw, the reason we haven't implemented basic.reject yet is the following >> part of its specification: "The server MUST NOT deliver the message to the >> same client within the context of the current channel." That requires a >> whole bunch of extra book keeping and logic. I don't think it's particularly difficult to get right, it's just that it requires a bit of work, would put extra load on the broker and not that many people have asked for it, as yet. This situation may change though. HTH, Ben From 0x6e6562 at gmail.com Tue Feb 3 23:21:12 2009 From: 0x6e6562 at gmail.com (Ben Hood) Date: Tue, 3 Feb 2009 23:21:12 +0000 Subject: [rabbitmq-discuss] question on exchange type In-Reply-To: <2fff50390902021630u171177dcy1062912798c1d1dd@mail.gmail.com> References: <49875E91.8020202@echostar.com> <269388e30902021425n58efd706jd408fd443c9abae6@mail.gmail.com> <49877AB6.40508@echostar.com> <269388e30902021555u260f14bp161fcb6803179357@mail.gmail.com> <2fff50390902021606x1e5a08d1q9cb413002359ab9c@mail.gmail.com> <269388e30902021623i228baf20qdd65bda4e0998dff@mail.gmail.com> <2fff50390902021630u171177dcy1062912798c1d1dd@mail.gmail.com> Message-ID: <269388e30902031521s5145b6d1p504b5b1d3dd3e4dd@mail.gmail.com> Daniel, On Tue, Feb 3, 2009 at 12:30 AM, Daniel N wrote: > I don't mean to hijack this post so I'll try and be brief. The use case I'm > thinking of for time based activation queues is for auditing. > > > -> Forwards result to next stage > -> Sends a message to and audit queue with an activation time so that it > can "wake up" and check that the task has been completed after a given > time. If the application has to handle this, then it could use a simple client timeout on asynchronous RPC cycle - this is doable without changing anything in the broker. However, if you want delayed routing rules based on server side TTLs, this will have to be implemented in the broker. > The other, is a priority queue, where a message marked with a high priority > makes their way to the front of the queue in favor of messages with lower > priorities. Sure, that's a plain jane priority queue and is currently in the works. It is also part of the AMQP spec :-) Ben From 0x6e6562 at gmail.com Tue Feb 3 23:22:34 2009 From: 0x6e6562 at gmail.com (Ben Hood) Date: Tue, 3 Feb 2009 23:22:34 +0000 Subject: [rabbitmq-discuss] Clustering Q In-Reply-To: <3b949f090902021630r54f845f4l2de3a8372fd9323e@mail.gmail.com> References: <3b949f090902021409u72303ac6ud176f5a9917fb29f@mail.gmail.com> <269388e30902021551h797fb87bsd616b64e7ac9b673@mail.gmail.com> <3b949f090902021619u5a6473a3obd60931e0fcf0973@mail.gmail.com> <269388e30902021625k72c61b99xc33a9fafe27ba1c4@mail.gmail.com> <3b949f090902021630r54f845f4l2de3a8372fd9323e@mail.gmail.com> Message-ID: <269388e30902031522s6b4b0045j26d85cf8416964ae@mail.gmail.com> Jason, On Tue, Feb 3, 2009 at 12:30 AM, Jason J. W. Williams wrote: > Haven't tried it. Maybe I misunderstood, for -sname to work, don't > both machines have to be on the same subnet? I don't know. I'd have to RTFM myself and let you know :-) Ben From jasonjwwilliams at gmail.com Wed Feb 4 00:45:34 2009 From: jasonjwwilliams at gmail.com (Jason J. W. Williams) Date: Tue, 3 Feb 2009 17:45:34 -0700 Subject: [rabbitmq-discuss] Clustering Q In-Reply-To: <269388e30902031522s6b4b0045j26d85cf8416964ae@mail.gmail.com> References: <3b949f090902021409u72303ac6ud176f5a9917fb29f@mail.gmail.com> <269388e30902021551h797fb87bsd616b64e7ac9b673@mail.gmail.com> <3b949f090902021619u5a6473a3obd60931e0fcf0973@mail.gmail.com> <269388e30902021625k72c61b99xc33a9fafe27ba1c4@mail.gmail.com> <3b949f090902021630r54f845f4l2de3a8372fd9323e@mail.gmail.com> <269388e30902031522s6b4b0045j26d85cf8416964ae@mail.gmail.com> Message-ID: <3b949f090902031645k16b09605n24f41d221d88e2c2@mail.gmail.com> Workin' on that now. ;-) Not a lot of expansive Erlang documentation on the topic. ;-) -J On Tue, Feb 3, 2009 at 4:22 PM, Ben Hood <0x6e6562 at gmail.com> wrote: > Jason, > > On Tue, Feb 3, 2009 at 12:30 AM, Jason J. W. Williams > wrote: >> Haven't tried it. Maybe I misunderstood, for -sname to work, don't >> both machines have to be on the same subnet? > > I don't know. I'd have to RTFM myself and let you know :-) > > Ben > From jasonjwwilliams at gmail.com Wed Feb 4 00:46:35 2009 From: jasonjwwilliams at gmail.com (Jason J. W. Williams) Date: Tue, 3 Feb 2009 17:46:35 -0700 Subject: [rabbitmq-discuss] basic.reject In-Reply-To: <269388e30902031516n7fd32d49m927651ec012303cc@mail.gmail.com> References: <3b949f090901301621y79cac546s89925696d0775d2d@mail.gmail.com> <269388e30901301735r30afc98fid9bce7b41ceaa1a@mail.gmail.com> <498402D2.9080705@lshift.net> <3b949f090902021801s1e82656foa93108f78b0452a6@mail.gmail.com> <269388e30902031516n7fd32d49m927651ec012303cc@mail.gmail.com> Message-ID: <3b949f090902031646s6f658735g411329eeb29568f5@mail.gmail.com> Hi Ben, For this particular application, it's alright for it to discard the message. For other potential uses, being able to reject the message would be helpful. Thank you for the insight. -J On Tue, Feb 3, 2009 at 4:16 PM, Ben Hood <0x6e6562 at gmail.com> wrote: > Jason, > > On Tue, Feb 3, 2009 at 2:01 AM, Jason J. W. Williams > wrote: >>> Btw, the reason we haven't implemented basic.reject yet is the following >>> part of its specification: "The server MUST NOT deliver the message to the >>> same client within the context of the current channel." That requires a >>> whole bunch of extra book keeping and logic. > > I don't think it's particularly difficult to get right, it's just that > it requires a bit of work, would put extra load on the broker and not > that many people have asked for it, as yet. This situation may change > though. > > HTH, > > Ben > From ch at murgatroid.com Wed Feb 4 01:48:13 2009 From: ch at murgatroid.com (christopher hoover) Date: Tue, 3 Feb 2009 17:48:13 -0800 Subject: [rabbitmq-discuss] getting started, broker runs; can't get status In-Reply-To: <4988668B.8040807@cohesiveft.com> References: <3d5db09e0901201356r1cafa64aud71de1a8c2d28cef@mail.gmail.com> <498409CD.6060600@lshift.net> <921b71e30901311048k3a96f0c8o7a303b1b89e16d99@mail.gmail.com> <4984A903.7060804@lshift.net> <921b71e30901311213h5c9b072ftff66b3addd2a0466@mail.gmail.com> <4984B9E6.5050804@lshift.net> <4984BDAD.9040502@cohesiveft.com> <4984BE9D.6080909@lshift.net> <4984C4DC.1080105@cohesiveft.com> <4984E351.5030202@lshift.net> <921b71e30902021254l4c6f5db4ga7c905c9aa9f2370@mail.gmail.com> <4988668B.8040807@cohesiveft.com> Message-ID: <002501c9866a$a4683d40$ed38b7c0$@com> > # erl -sname foo -cookie coo > Erlang (BEAM) emulator version 5.6.5 [source] [async-threads:0] > [kernel-poll:false] > > Eshell V5.6.5 (abort with ^G) > (foo at myvm)1> net_adm:names(). > {ok,[{"foo",1292}]} > (foo at myvm)2> > > Exit from there with Ctrl+C Ctrl+C. This works fine for me as rabbitmq in / (from which the rabbitmq startup script fails). I started from scratch (no rabbitmq or epmd). rabbitmq at gato:/$ id uid=119(rabbitmq) gid=126(rabbitmq) groups=126(rabbitmq) rabbitmq at gato:/$ pwd / rabbitmq at gato:/$ dpkg -l | grep erlang ii erlang-base-hipe 1:12.b.3-dfsg-4ubuntu1 Concurrent, real-time, distributed functiona ii erlang-dev 1:12.b.3-dfsg-4ubuntu1 Concurrent, real-time, distributed functiona ii erlang-nox 1:12.b.3-dfsg-4ubuntu1 Concurrent, real-time, distributed functiona ii erlang-src 1:12.b.3-dfsg-4ubuntu1 Concurrent, real-time, distributed functiona ii rfc4627-erlang 1.1.1 A JSON (RFC4627) codec and JSON-RPC server f rabbitmq at gato:/$ erl -sname foo -cookie coo Erlang (BEAM) emulator version 5.6.3 [source] [async-threads:0] [hipe] [kernel-poll:false] Eshell V5.6.3 (abort with ^G) (foo at gato)1> net_adm:names() (foo at gato)1> . {ok,[{"foo",43961}]} (foo at gato)2> BREAK: (a)bort (c)ontinue (p)roc info (i)nfo (l)oaded (v)ersion (k)ill (D)b-tables (d)istribution ^Crabbitmq at gato:/$ > If there are strace or low-level OS experts on the list who would like > to compare strace > output of a good run vs run under snoopy in order to get more info, I > can provide strace > outputs. I'm happy to take a look. > What Linux distro are you using? uname -a? Any particular details how > you installed the > OS? If it's safe to share, maybe output of "rpm -qa" or "dpkg -l"? rabbitmq at gato:/$ uname -a Linux gato 2.6.28-6-generic #17-Ubuntu SMP Fri Jan 30 15:34:36 UTC 2009 i686 GNU/Linux rabbitmq at gato:/$ cat /etc/issue Ubuntu jaunty (development branch) \n \l rabbitmq at gato:/$ dpkg -l Desired=Unknown/Install/Remove/Purge/Hold | Status=Not/Inst/Cfg-files/Unpacked/Failed-cfg/Half-inst/trig-aWait/Trig-pend |/ Err?=(none)/Hold/Reinst-required/X=both-problems (Status,Err: uppercase=bad) ||/ Name Version Description +++-==============-==============-========================================== == ii acl 2.2.47-2 Access control list utilities ii acpi 1.2-1ubuntu1 displays information on ACPI devices ii acpi-support 0.119 scripts for handling many ACPI events ii acpid 1.0.6-9ubuntu4 Utilities for using ACPI power management ii adduser 3.110ubuntu2 add and remove users and groups ii alacarte 0.11.8-0ubuntu easy GNOME menu editing tool ii alien 8.73 convert and install rpm and other packages ii alleyoop 0.9.3-2 Front-end to the Valgrind memory checker ii alsa-base 1.0.18.dfsg-1u ALSA driver configuration files ii alsa-utils 1.0.18-1ubuntu ALSA utilities ii anacron 2.3-13.1ubuntu cron-like program that doesn't go by time ii ant 1.7.1-0ubuntu2 Java based build tool like make ii ant-optional 1.7.1-0ubuntu2 Java based build tool like make - optional l ii apmd 3.2.2-12ubuntu Utilities for Advanced Power Management (APM ii app-install-da 0.7.1 Ubuntu applications (data files) ii app-install-da 11.9.04 Transitional package ii app-install-da 11.9.04 Application Installer (data files for commer ii apparmor 2.3+1289-0ubun User-space parser utility for AppArmor ii apparmor-utils 2.3+1289-0ubun Utilities for controlling AppArmor ii apport 0.129 automatically generate crash reports for deb ii apport-gtk 0.129 GTK+ frontend for the apport crash report sy ii apt 0.7.19ubuntu1 Advanced front-end for dpkg ii apt-utils 0.7.19ubuntu1 APT utility programs ii aptitude 0.4.11.10-1len terminal-based package manager ii apturl 0.3.2ubuntu2 install packages using the apt protocol ii aspell 0.60.6-1 GNU Aspell spell-checker ii aspell-en 6.0-0-5.1 English dictionary for GNU Aspell ii astyle 1.22-2 Source code indenter for C++/C/Java/C# sourc ii at 3.1.10.2ubuntu Delayed job execution and batch processing ii at-spi 1.25.5-0ubuntu Assistive Technology Service Provider Interf ii auto-apt 0.3.21+nmu1 package search by file and on-demand package ii autoconf 2.61-7ubuntu1 automatic configure script builder ii automake 1:1.10.1-3 A tool for generating GNU Standards-complian ii autotools-dev 20080123.2 Update infrastructure for config.{guess,sub} ii avahi-autoipd 0.6.23-4ubuntu Avahi IPv4LL network address configuration d ii avahi-daemon 0.6.23-4ubuntu Avahi mDNS/DNS-SD daemon ii avahi-utils 0.6.23-4ubuntu Avahi browsing, publishing and discovery uti ii base-files 5ubuntu1 Debian base system miscellaneous files ii base-passwd 3.5.19 Debian base system master password and group ii bash 3.2-4ubuntu1 The GNU Bourne Again SHell ii bash-completio 20080705ubuntu programmable completion for the bash shell ii bash-doc 3.2-4ubuntu1 Documentation and examples for the The GNU B ii bc 1.06.94-3ubunt The GNU bc arbitrary precision calculator la ii beforelight 1.0.2-0ubuntu1 X client - beforelight ii belocs-locales 2.4-4ubuntu2 tools for compiling locale data files ii bicyclerepair 0.9-4.3 A refactoring tool for python ii bind9-host 1:9.5.0.dfsg.P Version of 'host' bundled with BIND 9.X ii binfmt-support 1.2.11 Support for extra binary formats ii bing 1.1.3-1 Empirical stochastic bandwidth tester ii binutils 2.19.0.2009011 The GNU assembler, linker and binary utiliti ii binutils-multi 2.19.0.2009011 Binary utilities that support multi-arch tar ii binutils-stati 2.19.0.2009011 statically linked binutils tools ii bison 1:2.3.dfsg-5 A parser generator that is compatible with Y ii bison-doc 1:2.3-2 Documentation for the Bison parser generator ii bittorrent 3.4.2-11.1ubun Original BitTorent client and tracker - cons ii blender 2.46+dfsg-6ubu Very fast and versatile 3D modeller/renderer ii blt 2.4z-4ubuntu3 the BLT extension library for Tcl/Tk - run-t ii bluetooth 4.27-0ubuntu1 Bluetooth support ii bluez 4.27-0ubuntu1 Bluetooth tools and daemons ii bluez-alsa 4.27-0ubuntu1 Bluetooth audio support ii bluez-cups 4.27-0ubuntu1 Bluetooth printer driver for CUPS ii bluez-gnome 1.8-0ubuntu1 Bluetooth utilities for GNOME ii bluez-gstreame 4.27-0ubuntu1 Bluetooth gstreamer support ii bluez-utils 4.27-0ubuntu1 Transitional package ii bmon 2.0.1-3 portable bandwidth monitor and rate estimato ii bogofilter 1.1.7-1ubuntu1 a fast Bayesian spam filter (dummy package) ii bogofilter-bdb 1.1.7-1ubuntu1 a fast Bayesian spam filter (Berkeley DB) ii bogofilter-com 1.1.7-1ubuntu1 a fast Bayesian spam filter (common files) ii brasero 0.9.1-0ubuntu2 CD/DVD burning application for GNOME ii bridge-utils 1.4-5 Utilities for configuring the Linux Ethernet ii brltty 3.10-0ubuntu3 Access software for a blind person using a b ii brltty-x11 3.10-0ubuntu3 Access software for a blind person using a b ii bsdmainutils 6.1.10ubuntu3 collection of more utilities from FreeBSD ii bsdutils 1:2.14-1ubuntu Basic utilities from 4.4BSD-Lite ii bsh 2.0b4-8ubuntu3 Java scripting environment (BeanShell) Versi ii bug-buddy 2.24.1+dfsg-2u GNOME Desktop Environment bug reporting tool ii build-essentia 11.4 Informational list of build-essential packag ii busybox-initra 1:1.10.2-2ubun Standalone shell setup for initramfs ii bzip2 1.0.5-1ubuntu1 high-quality block-sorting file compressor - ii bzr 1.9-1 easy to use distributed version control syst ii ca-certificate 20080809 Common CA certificates ii cabextract 1.2-3 a program to extract Microsoft Cabinet files ii capplets-data 1:2.25.3-0ubun configuration applets for GNOME 2 - data fil ii cdbs 0.4.52ubuntu13 common build system for Debian packages ii cdparanoia 3.10.2+debian- audio extraction tool for sampling CDs ii cdrdao 1:1.2.2-17 records CDs in Disk-At-Once (DAO) mode ii cdrecord 10:2.01.01a33- command line CD writing tool ii checkbox 0.4 Checkbox System Testing ii checkbox-gtk 0.4 Checkbox GTK Interface ii cl-asdf 1.111-1 Another System Definition Facility ii classpath-doc 2:0.97.2-1.1ub clean room standard Java libraries - free Ja ii cli-common 0.5.7 common files between all CLI packages ii cmake 2.6.2-1ubuntu1 A cross-platform, open-source make system ii cmucl 19a-release-20 The CMUCL lisp compiler and development syst ii colordiff 1.0.7-2 tool to colorize 'diff' output ii comerr-dev 2.1-1.41.3-1ub common error description library - headers a ii command-not-fo 0.2.31ubuntu2 Suggest installation of packages in interact ii command-not-fo 0.2.31ubuntu2 Set of data files for command-not-found. ii common-lisp-co 6.17 Common Lisp source and compiler manager ii compiz 1:0.7.8-0ubunt OpenGL window and compositing manager ii compiz-core 1:0.7.8-0ubunt OpenGL window and compositing manager ii compiz-fusion- 0.7.8-0ubuntu2 Collection of extra plugins from OpenComposi ii compiz-fusion- 0.7.8-0ubuntu4 Collection of plugins from OpenCompositing f ii compiz-gnome 1:0.7.8-0ubunt OpenGL window and compositing manager - GNOM ii compiz-plugins 1:0.7.8-0ubunt OpenGL window and compositing manager - plug ii compiz-wrapper 1:0.7.8-0ubunt OpenGL window and compositing manager, wrapp ii compizconfig-b 0.7.8-0ubuntu2 Settings library for plugins - OpenCompositi ii conduit 0.3.15-1ubuntu synchronization tool for GNOME ii console-setup 1.28ubuntu5 Set up the font and the keyboard on the cons ii console-termin 4.26-2.1 Fixed-width fonts for fast reading on the Li ii consolekit 0.3-0ubuntu3 framework for defining and tracking users, s ii contact-lookup 0.16-1build2 contact lookup applet for GNOME ii coreutils 6.10-6ubuntu1 The GNU core utilities ii cpio 2.9-14ubuntu1 GNU cpio -- a program to manage archives of ii cpp 4:4.3.2-2ubunt The GNU C preprocessor (cpp) ii cpp-4.1 4.1.2-24ubuntu The GNU C preprocessor ii cpp-4.2 4.2.4-5ubuntu1 The GNU C preprocessor ii cpp-4.3 4.3.3-3ubuntu1 The GNU C preprocessor ii cpp-4.3-doc 4.3.3-3ubuntu1 Documentation for the GNU C preprocessor (cp ii cpp-doc 4:4.3.2-2ubunt Documentation for the GNU C preprocessor (cp ii cron 3.0pl1-105ubun management of regular background processing ii csvtool 1.1.6-3build1 A handy command line tool for handling CSV f ii cups 1.3.9-12 Common UNIX Printing System(tm) - server ii cups-bsd 1.3.9-12 Common UNIX Printing System(tm) - BSD comman ii cups-client 1.3.9-12 Common UNIX Printing System(tm) - client pro ii cups-common 1.3.9-12 Common UNIX Printing System(tm) - common fil ii cups-driver-gu 5.2.3-0ubuntu1 printer drivers for CUPS ii cupsddk 1.2.3-5ubuntu1 CUPS Driver Development Kit ii cupsddk-driver 1.2.3-5ubuntu1 CUPS Driver Development Kit - Driver files ii cupsys 1.3.9-12 Common UNIX Printing System (transitional pa ii cupsys-bsd 1.3.9-12 Common UNIX Printing System (transitional pa ii cupsys-client 1.3.9-12 Common UNIX Printing System (transitional pa ii cupsys-common 1.3.9-12 Common UNIX Printing System (transitional pa ii cupsys-driver- 5.2.3-0ubuntu1 Transitional package ii curl 7.18.2-8ubuntu Get a file from an HTTP, HTTPS or FTP server ii cvs 1:1.12.13-12ub Concurrent Versions System ii dash 0.5.4-12ubuntu POSIX-compliant shell ii db4.4-util 4.4.20-12 Berkeley v4.4 Database Utilities ii dbishell 0.8.9-7.3 Interactive SQL shell with readline support ii dbus 1.2.12-0ubuntu simple interprocess messaging system ii dbus-1-doc 1.2.12-0ubuntu simple interprocess messaging system (docume ii dbus-x11 1.2.12-0ubuntu simple interprocess messaging system (X11 de ii dc 1.06.94-3ubunt The GNU dc arbitrary precision reverse-polis ii dcraw 8.86-1 decode raw digital camera images ii dctrl-tools 2.13.0 Command-line tools to process Debian package ii ddrescue 1.13-3 copies data from one file or block device to ii debconf 1.5.24ubuntu3 Debian configuration management system ii debconf-i18n 1.5.24ubuntu3 full internationalization support for debcon ii debconf-utils 1.5.24ubuntu3 debconf utilities ii debfoster 2.7-1 Install only wanted Debian packages ii debhelper 7.0.17ubuntu2 helper programs for debian/rules ii debian-keyring 2008.11.30 GnuPG (and obsolete PGP) keys of Debian Deve ii debianutils 2.30ubuntu2 Miscellaneous utilities specific to Debian ii debomatic 0.5-2 automatic build machine for Debian source pa ii debootstrap 1.0.10ubuntu3 Bootstrap a basic Debian system ii deborphan 1.7.27 program that can find unused packages, e.g. ii debsums 2.0.40 verification of installed package files agai ii defoma 0.11.10-0.2ubu Debian Font Manager -- automatic font config ii deskbar-applet 2.25.90-0ubunt universal search and navigation bar for GNOM ii desktop-file-u 0.15-1ubuntu5 Utilities for .desktop files ii devscripts 2.10.39ubuntu3 scripts to make the life of a Debian Package ii dh-make 0.47 tool that converts source archives into Debi ii dhcdbd 3.0-4ubuntu3 D-Bus interface to the ISC DHCP client ii dhcp3-client 3.1.1-5ubuntu2 DHCP client ii dhcp3-common 3.1.1-5ubuntu2 common files used by all the dhcp3* packages ii dialog 1.1-20080819-1 Displays user-friendly dialog boxes from she ii dictionaries-c 0.98.14ubuntu1 Common utilities for spelling dictionary too ii diff 2.8.1-12ubuntu File comparison utilities ii diffstat 1.46-1 produces graph of changes introduced by a di ii discover 2.1.2-3 hardware identification system ii discover-data 2.2008.06.25ub Data lists for Discover hardware detection s ii discover1 2.1.2-3 transitional package ii displayconfig- 0.3.10 Simple tool to change xserver settings ii diveintopython 5.4-2ubuntu2 free Python book for experienced programmers ii dmidecode 2.9-1ubuntu1 Dump Desktop Management Interface data ii dmsetup 2:1.02.27-4ubu The Linux Kernel Device Mapper userspace lib ii dmz-cursor-the 0.4.1 Style neutral, scalable cursor theme ii dnsutils 1:9.5.0.dfsg.P Clients provided with BIND ii doc-base 0.8.18 utilities to manage online documentation ii docbook-xml 4.5-6 standard XML documentation system, for softw ii docbook-xsl 1.73.2.dfsg.1- stylesheets for processing DocBook XML files ii docbook-xsl-do 1.73.2.dfsg.1- stylesheets for processing DocBook XML files ii dosfstools 3.0.1-1 utilities for making and checking MS-DOS FAT ii doxygen 1.5.8-1~exp1 Documentation system for C, C++, Java, Pytho ii dpatch 2.0.30 patch maintenance system for Debian source p ii dpkg 1.14.24ubuntu1 Debian package management system ii dpkg-dev 1.14.24ubuntu1 Debian package development tools ii dpkg-repack 1.30 puts an unpacked .deb file back together ii dselect 1.14.24ubuntu1 Debian package management front-end ii dvd+rw-tools 7.1-3ubuntu1 DVD+-RW/R tools ii dvi2ps 4.1j-2 TeX DVI-driver for NTT JTeX, MulTeX and ASCI ii dvipdfmx 1:20080607-1 A DVI to PDF translator with CJK support ii e2fslibs 1.41.3-1ubuntu ext2 filesystem libraries ii e2fsprogs 1.41.3-1ubuntu ext2/ext3/ext4 file system utilities ii eclipse 3.2.2-5ubuntu3 Extensible Tool Platform and Java IDE ii eclipse-jdt 3.2.2-5ubuntu3 Java Development Tools plug-ins for Eclipse ii eclipse-pde 3.2.2-5ubuntu3 Plug-in Development Environment to develop E ii eclipse-platfo 3.2.2-5ubuntu3 Eclipse platform without plug-ins to develop ii eclipse-pydev 1.2.5-4 Python development plug-in for Eclipse ii eclipse-rcp 3.2.2-5ubuntu3 Eclipse rich client platform ii ed 0.7-3ubuntu1 The classic unix line editor ii edit-json 1.1.2-1 JSON files editor ii eject 2.1.5+deb1+cvs ejects CDs and operates CD-Changers under Li ii ekiga 3.0.1-1ubuntu1 H.323 and SIP compatible VoIP client ii electric-fence 2.1.14.1 A malloc(3) debugger ii emacs-snapshot 1:20081013-1 The GNU Emacs editor (development snapshot) ii emacs-snapshot 1:20081013-1 The GNU Emacs editor's shared, architecture ii emacs-snapshot 1:20081013-1 The GNU Emacs editor's common infrastructure ii emacs-snapshot 1:20081013-1 GNU Emacs LISP (.el) files ii emacs-snapshot 1:20081013-1 The GNU Emacs editor (transitional package) ii emacs22 22.2-0ubuntu2 The GNU Emacs editor (Emacs 22) ii emacs22-bin-co 22.2-0ubuntu2 The GNU Emacs editor's shared, architecture ii emacs22-common 22.2-0ubuntu2 The GNU Emacs editor's common infrastructure ii emacs22-gtk 22.2-0ubuntu2 The GNU Emacs editor (with GTK+ 2.x support) ii emacsen-common 1.4.17 Common facilities for all emacsen ii emcast 0.3.2-6 multicast toolkit ii enscript 1.6.4-13 Converts ASCII text to Postscript, HTML, RTF ii eog 2.25.5-0ubuntu Eye of GNOME graphics viewer program ii epiphany-brows 2.24.3-0ubuntu Intuitive web browser - dummy package ii epiphany-brows 2.24.3-0ubuntu Data files for the GNOME web browser ii epiphany-exten 2.24.1-0ubuntu Extensions for Epiphany web browser ii epiphany-gecko 2.24.3-0ubuntu Intuitive GNOME web browser - Gecko version ii erlang-base-hi 1:12.b.3-dfsg- Concurrent, real-time, distributed functiona ii erlang-dev 1:12.b.3-dfsg- Concurrent, real-time, distributed functiona ii erlang-nox 1:12.b.3-dfsg- Concurrent, real-time, distributed functiona ii erlang-src 1:12.b.3-dfsg- Concurrent, real-time, distributed functiona ii esound-common 0.2.40-0ubuntu Enlightened Sound Daemon - Common files ii espeak 1.39-0ubuntu1 A multi-lingual software speech synthesizer ii espeak-data 1.39-0ubuntu1 A multi-lingual software speech synthesizer: ii ethtool 6+20080913-1 display or change Ethernet device settings ii evince 2.25.5-0ubuntu Document (postscript, pdf) viewer ii evolution 2.24.3-0ubuntu groupware suite with mail client and organiz ii evolution-comm 2.24.3-0ubuntu architecture independent files for Evolution ii evolution-data 2.24.3-0ubuntu evolution database backend server ii evolution-data 2.24.3-0ubuntu architecture independent files for Evolution ii evolution-exch 2.24.3-0ubuntu Exchange plugin for the Evolution groupware ii evolution-plug 2.24.3-0ubuntu standard plugins for Evolution ii evolution-webc 2.24.0-0ubuntu webcal: URL handler for GNOME and Evolution ii example-conten 35 Ubuntu example content ii exiv2 0.17.1-1 EXIF/IPTC metadata manipulation tool ii ext2resize 1.1.19-9 an ext2 filesystem resizer ii extra-xdg-menu 1.0-4 Extra menu categories for applications under ii exuberant-ctag 1:5.7-4 build tag file indexes of source code defini ii f-spot 0.5.0.3-0ubunt personal photo management application ii fakeroot 1.12.1ubuntu1 Gives a fake root environment ii fast-user-swit 2.24.0-0ubuntu Applet for the GNOME panel providing a menu ii fdupes 1.50-PR2-1 identifies duplicate files within given dire ii fdutils 5.5-20060227-3 Linux floppy utilities ii feisty-session 0.12 Feisty Session Splashes ii feisty-wallpap 0.13 Feisty Wallpapers ii feta 1.4.16+nmu1 simpler interface to APT, dpkg, and other pa ii fglrx-modalias 2:8.573-0ubunt Identifiers supported by the ATI graphics dr ii fhist 1.16-1 File history, comparison and merge utilities ii file 4.26-2 Determines file type using "magic" numbers ii file-roller 2.25.90-0ubunt an archive manager for GNOME ii findutils 4.4.0-2ubuntu3 utilities for finding files--find, xargs ii finger 0.17-12 user information lookup program ii firebird2.1-co 2.1.1.17910-re common files for firebird 2.1 servers and cl ii firebug 1.3.0-1ubuntu1 web development plugin for Firefox ii firefox 3.0.5+nobinonl meta package for the popular mozilla web bro ii firefox-3.0 3.0.5+nobinonl safe and easy web browser from Mozilla ii firefox-3.0-br 3.0.5+nobinonl Package that ships the firefox branding ii firefox-3.0-gn 3.0.5+nobinonl Support for Gnome in Mozilla Firefox ii firefox-gnome- 3.0.5+nobinonl meta package pointing to the latest gnome-su ii flashplugin-no 10.0.15.3ubunt Adobe Flash Player plugin installer ii fldiff 1.1-1.1 A graphical diff program ii flex 2.5.35-6ubuntu A fast lexical analyzer generator. ii flex-doc 2.5.35-6ubuntu Documentation for flex (a fast lexical analy ii fontconfig 2.6.0-1ubuntu4 generic font configuration library - support ii fontconfig-con 2.6.0-1ubuntu4 generic font configuration library - configu ii foo2zjs 20080810-0ubun Support for printing to ZjStream-based print ii foomatic-db 20090115-0ubun OpenPrinting printer support - database ii foomatic-db-en 4.0.0-0ubuntu2 OpenPrinting printer support - programs ii foomatic-db-hp 20090115-0ubun OpenPrinting printer support - database for ii foomatic-filte 4.0.0-0ubuntu4 OpenPrinting printer support - filters ii fortune-mod 1:1.99.1-3.1ub provides fortune cookies on demand ii fortunes-min 1:1.99.1-3.1ub Data files containing fortune cookies ii fping 2.4b2-to-ipv6- sends ICMP ECHO_REQUEST packets to network h ii freeglut3 2.4.0-6.1ubunt OpenGL Utility Toolkit ii freemind 0.7.1-6ubuntu3 A Java Program for creating and viewing Mind ii freetds-common 0.82-4 configuration files for FreeTDS SQL client l ii freetds-dev 0.82-4 MS SQL and Sybase client library (static lib ii friendly-recov 0.2.8 Make recovery more user-friendly ii ftp 0.17-18 The FTP client ii fuse-utils 2.7.4-1.1ubunt Filesystem in USErspace (utilities) ii g++ 4:4.3.2-2ubunt The GNU C++ compiler ii g++-4.1 4.1.2-24ubuntu The GNU C++ compiler ii g++-4.2 4.2.4-5ubuntu1 The GNU C++ compiler ii g++-4.3 4.3.3-3ubuntu1 The GNU C++ compiler ii gaim 1:2.4.1-1ubunt transitional package to Pidgin ii gamin 0.1.9-2ubuntu3 File and directory monitoring system ii gcalctool 5.25.5-0ubuntu A GTK2 desktop calculator ii gcc 4:4.3.2-2ubunt The GNU C compiler ii gcc-3.3-base 1:3.3.6-15ubun The GNU Compiler Collection (base package) ii gcc-4.1 4.1.2-24ubuntu The GNU C compiler ii gcc-4.1-base 4.1.2-24ubuntu The GNU Compiler Collection (base package) ii gcc-4.2 4.2.4-5ubuntu1 The GNU C compiler ii gcc-4.2-base 4.2.4-5ubuntu1 The GNU Compiler Collection (base package) ii gcc-4.3 4.3.3-3ubuntu1 The GNU C compiler ii gcc-4.3-base 4.3.3-3ubuntu1 The GNU Compiler Collection (base package) ii gcc-4.3-doc 4.3.3-3ubuntu1 Documentation for the GNU compilers (gcc, go ii gcc-doc 4:4.3.2-2ubunt Documentation for the GNU C compilers (gcc, ii gcj-4.1-base 4.1.2-18ubuntu The GNU Compiler Collection (gcj base packag ii gcj-4.2-base 4.2.4-5ubuntu1 The GNU Compiler Collection (gcj base packag ii gcj-4.3-base 4.3.3-1ubuntu1 The GNU Compiler Collection (gcj base packag ii gconf-editor 2.24.1-2ubuntu An editor for the GConf configuration system ii gconf2 2.25.0-0ubuntu GNOME configuration database system (support ii gconf2-common 2.25.0-0ubuntu GNOME configuration database system (common ii gdb 6.8-3ubuntu2 The GNU Debugger ii gdebi 0.4.0 Simple tool to install deb files ii gdebi-core 0.4.0 Simple tool to install deb files ii gdm 2.20.8-0ubuntu GNOME Display Manager ii gdm-guest-sess 0.8 gdm extension for guest session ii gedit 2.25.6-0ubuntu official text editor of the GNOME desktop en ii gedit-common 2.25.6-0ubuntu official text editor of the GNOME desktop en ii genisoimage 9:1.1.9-1ubunt Creates ISO-9660 CD-ROM filesystem images ii gettext 0.17-6ubuntu1 GNU Internationalization utilities ii gettext-base 0.17-6ubuntu1 GNU Internationalization utilities for the b ii ghostscript 8.64.dfsg.1-0u The GPL Ghostscript PostScript/PDF interpret ii ghostscript-x 8.64.dfsg.1-0u The GPL Ghostscript PostScript/PDF interpret ii gif2png 2.5.1-3 GIF -> PNG conversions ii gij 4:4.3.2-2ubunt The GNU Java bytecode interpreter ii gij-4.1 4.1.2-18ubuntu The GNU Java bytecode interpreter ii gij-4.2 4.2.4-5ubuntu1 The GNU Java bytecode interpreter ii gij-4.3 4.3.3-1ubuntu1 The GNU Java bytecode interpreter ii gimp 2.6.3-1ubuntu1 The GNU Image Manipulation Program ii gimp-data 2.6.3-1ubuntu1 Data files for GIMP ii gimp-help-comm 2.4.1-1 Data files for the GIMP documentation ii gimp-help-en 2.4.1-1 Documentation for the GIMP (English) ii gksu 2.0.0-5ubuntu4 graphical frontend to su ii glibc-doc 2.9-0ubuntu9 GNU C Library: Documentation ii gnash 0.8.4-0ubuntu1 free SWF movie player ii gnash-common 0.8.4-0ubuntu1 free SWF movie player - common files/librari ii gnome-about 1:2.25.5-0ubun The GNOME about box ii gnome-accessib 2.25.5-0ubuntu accessibility themes for the GNOME 2 desktop ii gnome-app-inst 0.5.12-0ubuntu GNOME Application Installer ii gnome-applets 2.25.2-0ubuntu Various applets for GNOME 2 panel - binary f ii gnome-applets- 2.25.2-0ubuntu Various applets for GNOME 2 panel - data fil ii gnome-btdownlo 0.0.30-2.1 Gnome interface for 'executing' BitTorrent f ii gnome-cards-da 1:2.25.5-0ubun data files for the GNOME card games ii gnome-control- 1:2.25.3-0ubun utilities to configure the GNOME desktop ii gnome-desktop- 1:2.25.5-0ubun Common files for GNOME 2 desktop apps ii gnome-doc-util 0.13.1-0ubuntu a collection of documentation utilities for ii gnome-games 1:2.25.5-0ubun games for the GNOME desktop ii gnome-games-da 1:2.25.5-0ubun data files for the GNOME games ii gnome-icon-the 2.24.0-0ubuntu GNOME Desktop icon theme ii gnome-keyring 2.25.4.1-0ubun GNOME keyring services (daemon and tools) ii gnome-keyring- 2.20.0-0ubuntu keyring management program for the GNOME des ii gnome-mag 1:0.15.4-0ubun a screen magnifier for the GNOME desktop ii gnome-media 2.25.5-0ubuntu GNOME media utilities ii gnome-media-co 2.25.5-0ubuntu GNOME media utilities - common files ii gnome-menus 2.25.5-0ubuntu an implementation of the freedesktop menu sp ii gnome-mime-dat 2.18.0-1 base MIME and Application database for GNOME ii gnome-mount 0.8-1ubuntu1 wrapper for (un)mounting and ejecting storag ii gnome-netstatu 2.12.2-0ubuntu Network status applet for GNOME 2 ii gnome-nettool 2.25.3-0ubuntu network information tool for GNOME ii gnome-orca 2.25.90-0ubunt Scriptable screen reader ii gnome-panel 1:2.25.90-0ubu launcher and docking facility for GNOME ii gnome-panel-da 1:2.25.90-0ubu common files for the GNOME Panel ii gnome-pilot 2.0.15-2.4ubun A GNOME applet for management of your Palm P ii gnome-pilot-co 2.0.15-1.2 conduits for gnome-pilot ii gnome-power-ma 2.24.0-0ubuntu frontend for gnome-powermanager ii gnome-rdp 0.2.3-1ubuntu1 remote desktop client for GNOME ii gnome-screensa 2.24.0-0ubuntu GNOME screen saver and locker ii gnome-session 2.25.5-0ubuntu The GNOME 2 Session Manager ii gnome-session- 0.11-1ubuntu1 GNOME session log in and log out sound event ii gnome-settings 2.25.3-0ubuntu GNOME settings daemon ii gnome-spell 1.0.8-0ubuntu1 GNOME/Bonobo component for spell checking ii gnome-system-m 2.24.4-0ubuntu Process viewer and system resource monitor f ii gnome-system-t 2.22.1-0ubuntu Cross-platform configuration utilities for G ii gnome-terminal 2.25.5-0ubuntu The GNOME 2 terminal emulator application ii gnome-terminal 2.25.5-0ubuntu Data files for the GNOME terminal emulator ii gnome-themes 2.25.5-0ubuntu official themes for the GNOME 2 desktop ii gnome-user-gui 2.24.1+svn2009 GNOME user's guide ii gnome-utils 2.25.90-0ubunt GNOME desktop utilities ii gnome-volume-m 2.24.0-0ubuntu GNOME daemon to auto-mount and manage media ii gnupg 1.4.9-3ubuntu1 GNU privacy guard - a free PGP replacement ii gnuplot 4.2.4-4 A command-line driven interactive plotting p ii gnuplot-doc 4.2.4-4 A command-line driven interactive plotting p ii gnuplot-mode 1:0.6.0-2.3 Yet another Gnuplot mode for Emacs ii gnuplot-nox 4.2.4-4 A command-line driven interactive plotting p ii gnuplot-x11 4.2.4-4 A command-line driven interactive plotting p ii gpgv 1.4.9-3ubuntu1 GNU privacy guard - signature verification t ii graphviz 2.20.2-3ubuntu rich set of graph drawing tools ii grep 2.5.3~dfsg-6ub GNU grep, egrep and fgrep ii gri 2.12.18-1 a language for scientific illustration ii gri-el 2.12.18-1 Emacs major-mode for gri, a language for sci ii gri-html-doc 2.12.18-1 HTML manual for gri, a language for scientif ii grip 3.3.1-16 GNOME-based CD-player/ripper/encoder ii groff 1.18.1.1-21 GNU troff text-formatting system ii groff-base 1.18.1.1-21 GNU troff text-formatting system (base syste ii grub 0.97-29ubuntu4 GRand Unified Bootloader ii gs-common 8.64.dfsg.1-0u Dummy package depending on ghostscript ii gs-esp 8.64.dfsg.1-0u Transitional package ii gs-esp-x 8.64.dfsg.1-0u Transitional package ii gsfonts 1:8.11+urwcyr1 Fonts for the Ghostscript interpreter(s) ii gsfonts-x11 0.21 Make Ghostscript fonts available to X11 ii gsl-bin 1.12+dfsg-1 GNU Scientific Library (GSL) -- binary packa ii gstreamer0.10- 0.10.22-1 GStreamer plugin for ALSA ii gstreamer0.10- 0.10.13-2 GStreamer plugin for ESD ii gstreamer0.10- 0.10.6-1 FFmpeg plugin for GStreamer ii gstreamer0.10- 0.10.22-1 GStreamer plugin for GnomeVFS ii gstreamer0.10- 0.9.1.1+cvs200 GStreamer plugin for using MS Windows binary ii gstreamer0.10- 0.10.10-1 GStreamer plugins from the "bad" set ii gstreamer0.10- 0.10.6-1ubuntu GStreamer plugins from the "bad" set (Multiv ii gstreamer0.10- 0.10.22-1 GStreamer plugins from the "base" set ii gstreamer0.10- 0.10.22-1 GStreamer helper programs from the "base" se ii gstreamer0.10- 0.10.13-2 GStreamer plugins from the "good" set ii gstreamer0.10- 0.10.10-1 GStreamer plugins from the "ugly" set ii gstreamer0.10- 0.10.13-2 GStreamer plugin for PulseAudio ii gstreamer0.10- 1.0.5-1 GStreamer plugin for encoding/decoding of Di ii gstreamer0.10- 0.10.22-1 Tools for use with GStreamer ii gstreamer0.10- 0.10.22-1 GStreamer plugins for X11 and Pango ii gthumb 3:2.10.10-0ubu an image viewer and browser ii gthumb-data 3:2.10.10-0ubu an image viewer and browser - arch-independe ii gtk2-engines 1:2.17.0-0ubun theme engines for GTK+ 2.x ii gtk2-engines-m 0.60.1 cairo-based gtk+-2.0 theme engine ii gtk2-engines-p 2.15.3-0ubuntu Pixbuf-based theme for GTK+ 2.x ii gtkglarea5 1.2.3-5 shared library for the GTK+ OpenGL area widg ii gucharmap 1:2.24.2-0ubun Unicode character picker and font browser ii guidance-backe 0.8.0svn200801 collection of system administration tools fo ii guile-1.6 1.6.8-6.1ubunt The GNU extension language and Scheme interp ii guile-1.6-libs 1.6.8-6.1ubunt Main Guile libraries ii guile-1.6-slib 1.6.8-6.1ubunt Guile SLIB support ii guile-1.8-libs 1.8.5+1-4.1ubu Main Guile libraries ii gv 1:3.6.5-2 PostScript and PDF viewer for X ii gvfs 1.1.5-0ubuntu1 userspace virtual filesystem - server ii gvfs-backends 1.1.5-0ubuntu1 userspace virtual filesystem - backends ii gvfs-bin 1.1.5-0ubuntu1 userspace virtual filesystem - binaries ii gvfs-fuse 1.1.5-0ubuntu1 userspace virtual filesystem - fuse server ii gzip 1.3.12-6ubuntu The GNU compression utility ii hal 0.5.12~rc1+git Hardware Abstraction Layer ii hal-cups-utils 0.6.17+git2008 CUPS integration with HAL ii hal-device-man 0.5.9.1-6ubunt Hardware Abstraction Layer user interface ii hal-info 20090128-0ubun Hardware Abstraction Layer - fdi files ii harminv 1.3.1-1.1 extraction of complex frequencies and amplit ii hdparm 8.9-3ubuntu3 tune hard disk parameters for high performan ii hicolor-icon-t 0.10-1ubuntu1 default fallback theme for FreeDesktop.org i ii hostname 2.95 utility to set/show the host name or domain ii hotkey-setup 0.1-23ubuntu8 auto-configures laptop hotkeys ii hotwire 0.721-1 Extensible graphical command execution shell ii hp-netconnect 1.2-9 HP Network Connect ii hpijs 2.8.12-1ubuntu HP Linux Printing and Imaging - gs IJS drive ii hplip 2.8.12-1ubuntu HP Linux Printing and Imaging System (HPLIP) ii hplip-data 2.8.12-1ubuntu HP Linux Printing and Imaging - data files ii html2text 1.3.2a-5 advanced HTML to text converter ii human-icon-the 0.31 Human Icon theme ii human-theme 0.28.6 Human theme ii hunspell-en-us 20070829-2ubun English_american dictionary for hunspell ii hwdb-client-co 0.6.14 common files for Ubuntu Hardware Database cl ii hwdb-client-gn 0.6.14 Gnome client programs for the Ubuntu Hardwar rc hwtest 0.4 Transitional package to checkbox ii hwtest-gtk 0.4 Transitional package to checkbox-gtk ii ico 1:1.0.2-0ubunt X client - ico ii icoutils 0.26.0-2 Create and extract MS Windows icons and curs ii idle 2.5.2-3ubuntu1 An IDE for Python using Tkinter (default ver ii iftop 0.17-8 displays bandwidth usage information on an n ii ifupdown 0.6.8ubuntu15 high level tools to configure network interf ii im-switch 1.16ubuntu1 Input method switch framework ii indent 2.2.10-1 C language source code formatting program ii info 4.11.dfsg.1-4 Standalone GNU Info documentation browser ii initramfs-tool 0.92bubuntu19 tools for generating an initramfs ii initscripts 2.86.ds1-61ubu Scripts for initializing and shutting down t ii inkscape 0.46-5ubuntu1 vector-based drawing program ii inputattach 1.23-0ubuntu2 utility to attach serial devices to the inpu ii intltool 0.40.5-1 Utility scripts for internationalizing XML ii intltool-debia 0.35.0+2006071 Help i18n of RFC822 compliant config files ii iodbc 3.52.6-3 GTK+ config frontend for the iODBC Driver Ma ii iproute 20080725-2 networking and traffic control tools ii iptables 1.4.1.1-4ubunt administration tools for packet filtering an ii iputils-arping 3:20071127-1 Tool to send ICMP echo requests to an ARP ad ii iputils-ping 3:20071127-1 Tools to test the reachability of network ho ii iputils-tracep 3:20071127-1 Tools to trace the network path to a remote ii ipython 0.8.4-1 enhanced interactive Python shell ii ironpython 1.1.1-2 A Python implementation targeting the .NET a ii iso-codes 3.5.1-1 ISO language, territory, currency, script co ii itcl3 3.2.1-5 [incr Tcl] OOP extension for Tcl - run-time ii itk3 3.2.1-5 [incr Tk] OOP extension for Tk - run-time fi ii iwidgets4 4.0.1-5 [incr Widgets] Tk-based widget collection - ii java-common 0.30ubuntu4 Base of all Java packages ii javascript-com 5 Base support for javascript library packages ii jockey-common 0.5~beta3-0ubu user interface and desktop integration for d ii jockey-gtk 0.5~beta3-0ubu GNOME user interface and desktop integration ii jpeginfo 1.6.0-4 Prints information and tests integrity of JP ii js2-mode 0~20080616a-1 Emacs mode for editing Javascript programs ii junit 3.8.2-1ubuntu2 Automated testing framework for Java ii junit4 4.3.1-4 JUnit regression test framework for Java ii jython 2.2.1-2ubuntu2 Python seamlessly integrated with Java ii kbd 1.14.1-4ubuntu Linux console font and keytable utilities ii kbuild 1:0.1.5svn2062 framework for writing simple makefiles for c ii kde-icons-oxyg 4:4.2.0-0ubunt Oxygen icon theme for KDE 4 ii kde-window-man 4:4.2.0-0ubunt the KDE 4 window manager (KWin) ii kdebase-runtim 4:4.2.0-0ubunt runtime components from the official KDE 4 r ii kdebase-runtim 4:4.2.0-0ubunt core binaries for the KDE 4 base runtime mod ii kdebase-runtim 4:4.2.0-0ubunt shared data files for the KDE 4 base runtime ii kdebase-runtim 4:4.2.0-0ubunt shared data files for the KDE 4 base runtime ii kdebase-worksp 4:4.2.0-0ubunt libraries provided by the KDE 4 base workspa ii kdelibs-bin 4:4.2.0-0ubunt executables for all KDE 4 core applications ii kdelibs-data 4:3.5.10.dfsg. core shared data for all KDE applications ii kdelibs4c2a 4:3.5.10.dfsg. core libraries and binaries for all KDE appl ii kdelibs5 4:4.2.0-0ubunt core libraries for all KDE 4 applications ii kdelibs5-data 4:4.2.0-0ubunt core shared data for all KDE 4 applications ii kdiff3 0.9.92-2ubuntu compares and merges 2 or 3 files or director ii kernel-package 11.015 A utility for building Linux kernel related ii ketchup 0.9.8+hg5533f6 update utility for linux-kernel sources ii khelpcenter 4:4.2.0-0ubunt metapackage for the help center for KDE4 ii khelpcenter4 4:4.2.0-0ubunt Help Center for KDE 4 ii kicad 0.0.20080825c- Electronic schematic and PCB design software ii kicad-common 0.0.20080825c- Common files used by kicad ii klibc-utils 1.5.14-1~exp1u small utilities built with klibc for early b ii klogd 1.5-5ubuntu3 Kernel Logging Daemon ii kompare 4:4.2.0-0ubunt file difference viewer for KDE 4 ii konsole 4:4.2.0-0ubunt X terminal emulator for KDE 4 ii kpovmodeler 5:1.1.3-kde4.1 a KDE 4 graphical editor for povray scenes ii kst 1.7.0-1 A KDE application used for displaying scient ii kst-bin 1.7.0-1 A KDE application used for displaying scient ii kst-doc 1.7.0-1 Documentation for the kst application for di ii kst-plugins 1.7.0-1 Plugins for the kst application for displayi ii ksvg 4:3.5.9-0ubunt SVG viewer for KDE ii kwalify 0.7.1-1 a tiny schema validator for YAML documents ii lacheck 1.26-11.1 A simple syntax checker for LaTeX ii lame 3.98-0.0 LAME Ain't an MP3 Encoder ii landscape-clie 1.0.25-0ubuntu The Landscape administration system client ii landscape-comm 1.0.25-0ubuntu The Landscape administration system client ii language-pack- 1:8.10+2008110 translation updates for language English ii language-pack- 1:8.10+2008110 translations for language English ii language-pack- 1:8.10+2008110 GNOME translation updates for language Engli ii language-pack- 1:8.10+2008110 GNOME translations for language English ii language-selec 0.3.20 Language selector for Ubuntu Linux ii language-selec 0.3.20 Language selector for Ubuntu Linux ii language-suppo 1:8.10+2008070 metapackage for English language support ii language-suppo 1:8.10+2008070 Additional translations metapackage for Engl ii language-suppo 1:8.10+2008090 Writing aids metapackage for English ii laptop-detect 0.13.7ubuntu1 attempt to detect a laptop ii laptop-mode-to 1.45-1ubuntu4 Scripts to spin down hard drive and save pow ii latex-beamer 3.07-1.1ubuntu LaTeX class to produce presentations ii latex-xcolor 2.11-1 Easy driver-independent TeX class for color ii latex-xft-font 0.1-8 Xft-compatible versions of some LaTeX fonts ii launchpad-inte 0.1.21 launchpad integration ii less 418-1 Pager program similar to more ii lesstif2 1:0.95.0-2.1ub OSF/Motif 2.1 implementation released under ii lftp 3.7.5-1 Sophisticated command-line FTP/HTTP client p ii lib64mudflap0 4.3.3-3ubuntu1 GCC mudflap shared support libraries (64bit) ii liba52-0.7.4 0.7.4-11ubuntu library for decoding ATSC A/52 streams ii libaa1 1.4p5-37build1 ascii art library ii libacl1 2.2.47-2 Access control list shared library ii libaio-dev 0.3.107-3ubunt Linux kernel AIO access library - developmen ii libaio1 0.3.107-3ubunt Linux kernel AIO access library - shared lib ii libalut0 1.1.0-2 OpenAL Utility Toolkit ii libao2 0.8.8-4 Cross Platform Audio Output Library ii libapm1 3.2.2-12ubuntu Library for interacting with APM driver in k ii libapparmor-pe 2.3+1289-0ubun AppArmor library Perl bindings ii libapparmor1 2.3+1289-0ubun changehat AppArmor library ii libappconfig-p 1.56-2 Perl module for configuration file and comma ii libapr1 1.2.12-5 The Apache Portable Runtime Library ii libaprutil1 1.2.12+dfsg-8 The Apache Portable Runtime Utility Library ii libarchive1 2.4.17-2 Single library to read/write tar, cpio, pax, ii libart-2.0-2 2.3.20-2 Library of functions for 2D graphics - runti ii libart-2.0-dev 2.3.20-2 Library of functions for 2D graphics - devel ii libart2.0-cil 2.20.1-1ubuntu CLI binding for libart 2.3 ii libarts1c2a 1.5.10-0ubuntu aRts sound system core components ii libartsc0 1.5.10-0ubuntu aRts sound system C support library ii libasio-dev 1.3.1-1ubuntu1 cross-platform C++ library for network progr ii libasound2 1.0.18-1ubuntu shared library for ALSA applications ii libasound2-plu 1.0.18-1ubuntu ALSA library additional plugins ii libaspell15 0.60.6-1 GNU Aspell spell-checker runtime library ii libatk1-ruby1. 0.17.0~rc1-6ub ATK bindings for the Ruby language ii libatk1.0-0 1.25.2-0ubuntu The ATK accessibility toolkit ii libatk1.0-dev 1.25.2-0ubuntu Development files for the ATK accessibility ii libatm1 2.4.1-17.2 shared library for ATM (Asynchronous Transfe ii libatomic-ops- 1.2+cvs2008081 A library for atomic operations (development ii libatspi1.0-0 1.25.5-0ubuntu C binding libraries of at-spi for GNOME Acce ii libattr1 1:2.4.43-1 Extended attribute shared library ii libaudio-dev 1.9.1-5 Network Audio System - development files ii libaudio2 1.9.1-5 Network Audio System - shared libraries ii libaudiofile0 0.2.6-7ubuntu1 Open-source version of SGI's audiofile libra ii libauthen-sasl 2.12-1 Authen::SASL - SASL Authentication framework ii libavahi-clien 0.6.23-4ubuntu Avahi client library ii libavahi-commo 0.6.23-4ubuntu Avahi common data files ii libavahi-commo 0.6.23-4ubuntu Avahi common library ii libavahi-compa 0.6.23-4ubuntu Avahi Apple Bonjour compatibility library ii libavahi-core5 0.6.23-4ubuntu Avahi's embeddable mDNS/DNS-SD library ii libavahi-glib1 0.6.23-4ubuntu Avahi glib integration library ii libavahi-gobje 0.6.23-4ubuntu Avahi GObject library ii libavahi-qt3-1 0.6.23-4ubuntu Avahi Qt 3 integration library rc libavahi-ui0 0.6.23-2ubuntu Avahi GTK+ User interface library ii libavahi1.0-ci 0.6.19-2 CLI bindings for Avahi ii libavc1394-0 0.5.3-1build1 control IEEE 1394 audio/video devices ii libavcodec-uns 3:0.svn2009011 ffmpeg codec library rc libavcodec51 3:0.svn2008020 ffmpeg codec library ii libavformat52 3:0.svn2009011 ffmpeg file format library ii libavutil-unst 3:0.svn2009011 ffmpeg utility library ii libbabl-0.0-0 0.0.22-1 Dynamic, any to any, pixel format conversion ii libbackport-ut 2.2+dfsg-1ubun backport of java.util.concurrent to Java 1.4 ii libbcel-java 5.2-3ubuntu2 Analyze, create, and manipulate (binary) Jav ii libbeagle0 0.2.18-0ubuntu library for accessing beagle using C ii libbeagle1 0.3.5-2 library for accessing beagle using C ii libbeecrypt6 4.1.2-7 open source C library of cryptographic algor ii libbind9-40 1:9.5.0.dfsg.P BIND9 Shared Library used by BIND ii libblas3gf 1.2-2 Basic Linear Algebra Subroutines 3, shared l ii libblkid1 1.41.3-1ubuntu block device id library ii libbluetooth2 3.36-1 Library to use the BlueZ Linux Bluetooth sta ii libbluetooth3 4.27-0ubuntu1 Library to use the BlueZ Linux Bluetooth sta ii libbonobo2-0 2.24.0-0ubuntu Bonobo CORBA interfaces library ii libbonobo2-com 2.24.0-0ubuntu Bonobo CORBA interfaces library -- support f ii libbonoboui2-0 2.24.0-0ubuntu The Bonobo UI library ii libbonoboui2-c 2.24.0-0ubuntu The Bonobo UI library -- common files ii libboost-date- 1.34.1-15ubunt set of date-time libraries based on generic ii libboost-date- 1.34.1-15ubunt set of date-time libraries based on generic ii libboost-dbg 1.34.1-15ubunt Boost C++ Libraries with debug symbols ii libboost-dev 1.34.1-15ubunt Boost C++ Libraries development files ii libboost-doc 1.34.1-15ubunt Boost.org libraries documentation ii libboost-files 1.34.1-15ubunt filesystem operations (portable paths, itera ii libboost-files 1.34.1-15ubunt filesystem operations (portable paths, itera ii libboost-forea 0.1.1-1 Boost foreach library ii libboost-graph 1.34.1-15ubunt generic graph components and algorithms in C ii libboost-intru 0.svn.38351-1 Boost intrusive containers library ii libboost-iostr 1.34.1-15ubunt Boost.Iostreams Library development files ii libboost-iostr 1.34.1-15ubunt Boost.Iostreams Library ii libboost-progr 1.34.1-15ubunt program options library for C++ ii libboost-progr 1.34.1-15ubunt program options library for C++ ii libboost-pytho 1.34.1-15ubunt Boost.Python Library development files ii libboost-pytho 1.34.1-15ubunt Boost.Python Library ii libboost-regex 1.34.1-15ubunt regular expression library for C++ ii libboost-regex 1.34.1-15ubunt regular expression library for C++ ii libboost-seria 1.34.1-15ubunt serialization library for C++ ii libboost-seria 1.34.1-15ubunt serialization library for C++ ii libboost-signa 1.34.1-15ubunt managed signals and slots library for C++ ii libboost-signa 1.34.1-15ubunt managed signals and slots library for C++ ii libboost-test- 1.34.1-15ubunt components for writing and executing test su ii libboost-test1 1.34.1-15ubunt components for writing and executing test su ii libboost-threa 1.34.1-15ubunt portable C++ multi-threading ii libboost-threa 1.34.1-15ubunt portable C++ multi-threading ii libboost-wave- 1.34.1-15ubunt C99/C++ preprocessor library ii libboost-wave1 1.34.1-15ubunt C99/C++ preprocessor library ii libbrasero-med 0.9.1-0ubuntu2 CD/DVD burning application for GNOME - runti ii libbrlapi0.5 3.10-0ubuntu3 braille display access via BRLTTY - shared l ii libbrlapi1 3.7.2-7.1ubunt braille display access via BRLTTY - shared l ii libbsd-resourc 1.2901-1 BSD process resource limit and priority func ii libbz2-1.0 1.0.5-1ubuntu1 high-quality block-sorting file compressor l ii libbz2-dev 1.0.5-1ubuntu1 high-quality block-sorting file compressor l ii libc6 2.9-0ubuntu9 GNU C Library: Shared libraries ii libc6-amd64 2.9-0ubuntu9 GNU C Library: 64bit Shared libraries for AM ii libc6-dbg 2.9-0ubuntu9 GNU C Library: Libraries with debugging symb ii libc6-dev 2.9-0ubuntu9 GNU C Library: Development Libraries and Hea ii libc6-i686 2.9-0ubuntu9 GNU C Library: Shared libraries [i686 optimi ii libc6-prof 2.9-0ubuntu9 GNU C Library: Profiling Libraries ii libcaca0 0.99.beta16-1 colour ASCII art library ii libcairo-perl 1.060-1 Perl interface to the Cairo graphics library ii libcairo-ruby1 1.6.3-1 Cairo bindings for the Ruby language ii libcairo2 1.8.6-1ubuntu1 The Cairo 2D vector graphics library ii libcairo2-dev 1.8.6-1ubuntu1 Development files for the Cairo 2D graphics ii libcairomm-1.0 1.6.4-1 C++ wrappers for Cairo (shared libraries) ii libcairomm-1.0 1.6.4-1 C++ wrappers for Cairo (development files) ii libcamel1.2-10 2.21.5.1-0ubun The Evolution MIME message handling library ii libcamel1.2-14 2.24.3-0ubuntu The Evolution MIME message handling library ii libcanberra-gt 0.11-1ubuntu1 Gtk+ helper for playing widget event sounds ii libcanberra0 0.11-1ubuntu1 a simple abstract interface for playing even ii libcap1 1:1.10-14build support for getting/setting POSIX.1e capabil ii libcap2 2.11-2 support for getting/setting POSIX.1e capabil ii libcapseo0 0.3.0+svn20070 video codec (library files) ii libcaptury0 0.3.0+svn20070 Captury framework library ii libcdaudio1 0.99.12p2-7 library for controlling a CD-ROM when playin ii libcdio-cdda0 0.78.2+dfsg1-3 library to read and control digital audio CD ii libcdio-parano 0.78.2+dfsg1-3 library to read digital audio CDs with error ii libcdio6 0.76-1ubuntu2. library to read and control CD-ROM ii libcdio7 0.78.2+dfsg1-3 library to read and control CD-ROM ii libcdparanoia0 3.10.2+debian- audio extraction tool for sampling CDs (libr ii libcelt0 0.4.0-1 The CELT codec runtime library ii libcfitsio3 3.090-1 shared library for I/O with FITS format data ii libck-connecto 0.3-0ubuntu3 ConsoleKit libraries ii libclass-acces 0.31-2 Automated accessor generator ii libclass-data- 0.04004-1 Inheritable, overridable class and instance ii libclass-data- 0.08-1 Inheritable, overridable class data ii libclass-singl 1.4-1 implementation of a "Singleton" class ii libclass-throw 0.10-2 A minimal lightweight exception class ii libclucene0ldb 0.9.20-3 library for full-featured text search engine ii libcolamd-3.2. 1:3.2.0-1ubunt collection of libraries for computations for ii libcomerr2 1.41.3-1ubuntu common error description library ii libcommons-bea 1.8.0~beta-1ub utility for manipulating JavaBeans ii libcommons-cod 1.3-4ubuntu1 encoder and decoders such as Base64 and hexa ii libcommons-col 2.1.1-8ubuntu1 A set of abstract data type interfaces and i ii libcommons-col 3.2.1-1ubuntu2 A set of abstract data type interfaces and i ii libcommons-dbc 1.2.2-1ubuntu1 Database Connection Pooling Services ii libcommons-dig 1.8-2ubuntu1 Rule based XML Java object mapping tool ii libcommons-el- 1.0-4 Implementation of the JSP2.0 Expression Lang ii libcommons-htt 3.1-2ubuntu1 A Java(TM) library for creating HTTP clients ii libcommons-lau 1.1-3ubuntu1 cross platform java application launcher ii libcommons-log 1.1.1-2 commmon wrapper interface for several loggin ii libcommons-mod 2.0.1-4 convenience library to use Java Management E ii libcommons-poo 1.3-1ubuntu2 pooling implementation for Java objects ii libcompizconfi 0.7.8-0ubuntu2 Settings library for plugins - OpenCompositi ii libcompress-ra 2.015-1 low-level interface to zlib compression libr ii libcompress-zl 2.015-1 Perl module for creation and manipulation of ii libconfig-any- 0.16-1 Load configuration from different file forma ii libconfig-gene 2.40-1 Generic Configuration Module ii libconfig-tiny 2.12-1 Read/Write .ini style files with as little c ii libconfig-yaml 1.42-1 Simple configuration automation ii libconfuse0 2.6-2 Library for parsing configuration files ii libconsole 1:0.2.3dbs-65. Shared libraries for Linux console and font ii libconvert-asn 0.22-1 Perl module for encoding and decoding ASN.1 ii libcroco3 0.6.1-2 a generic Cascading Style Sheet (CSS) parsin ii libcrypt-des-p 2.05-2build1 Perl DES encryption module ii libcrypt-smbha 0.12-2 generate LM/NT hash of a password for samba ii libcryptui0 2.25.4-0ubuntu the UI library for DBUS functions exported b ii libcsiro0 5.9.0-8ubuntu1 Scientific plotting library ii libcss-perl 1.07-2 CSS - Object oriented access to Cascading St ii libct3 0.63-3.2ubuntu libraries for connecting to MS SQL and Sybas ii libct4 0.82-4 libraries for connecting to MS SQL and Sybas ii libcucul0 0.99.beta16-1 transitional dummy package ii libcups2 1.3.9-12 Common UNIX Printing System(tm) - libs ii libcups2-dev 1.3.9-12 Common UNIX Printing System(tm) - developmen ii libcupsimage2 1.3.9-12 Common UNIX Printing System(tm) - image libs ii libcupsys2 1.3.9-12 Common UNIX Printing System (transitional pa ii libcupsys2-dev 1.3.9-12 Common UNIX Printing System (transitional pa ii libcurl3 7.18.2-8ubuntu Multi-protocol file transfer library (OpenSS ii libcurl3-gnutl 7.18.2-8ubuntu Multi-protocol file transfer library (GnuTLS ii libcwidget3 0.5.12-3ubuntu high-level terminal interface library for C+ ii libdaemon0 0.13-2 lightweight C library for daemons - runtime ii libdata-showta 3.3-6 Print arrays of data in a formatted listing ii libdate-manip- 5.54-1 a perl library for manipulating dates ii libdatetime-fo 1.0702-2 Parse and format strp and strf time patterns ii libdatetime-fo 0.04-3 Parse and format W3CDTF datetime strings ii libdatetime-lo 1:0.35-1+1.5.0 perl DateTime::Locale - Localization support ii libdatetime-pe 2:0.42-1 perl DateTime - Reference implementation for ii libdatetime-ti 1:0.83-1+2008i perl DateTime::TimeZone - Time zone object b ii libdatrie0 0.1.3-2 Double-array trie library ii libdb4.2 4.2.52+dfsg-5 Berkeley v4.2 Database Libraries [runtime] ii libdb4.3 4.3.29-11ubunt Berkeley v4.3 Database Libraries [runtime] ii libdb4.4 4.4.20-12 Berkeley v4.4 Database Libraries [runtime] ii libdb4.6 4.6.21-12 Berkeley v4.6 Database Libraries [runtime] ii libdb4.7 4.7.25-6ubuntu Berkeley v4.7 Database Libraries [runtime] ii libdbd-mysql-p 4.008-1 A Perl5 database interface to the MySQL data ii libdbi-perl 1.607-1 Perl5 database interface by Tim Bunce ii libdbus-1-3 1.2.12-0ubuntu simple interprocess messaging system ii libdbus-glib-1 0.78-1 simple interprocess messaging system (GLib-b ii libdc1394-22 2.0.2-1 high level programming interface for IEEE139 ii libdecoration0 1:0.7.8-0ubunt Compiz window decoration library ii libdeskbar-tra 0.6.6-2ubuntu2 metadata database, indexer and search tool - ii libdevel-stack 1.2000-1 Stack trace and stack trace frame objects ii libdevmapper1. 2:1.02.27-4ubu The Linux Kernel Device Mapper userspace lib ii libdigest-hmac 1.01-7 create standard message integrity checks ii libdigest-md4- 1.5.dfsg-1.2bu MD4 Message Digest for Perl ii libdigest-perl 1.15-2 generic interface to message digest modules ii libdigest-sha- 5.47-1 Perl extension for SHA-1/224/256/384/512 ii libdigest-sha1 2.11-2build2 NIST SHA-1 message digest algorithm ii libdirectfb-0. 0.9.25.1-6ubun direct frame buffer graphics - shared librar ii libdirectfb-1. 1.0.1-11ubuntu direct frame buffer graphics - shared librar ii libdirectfb-de 1.0.1-11ubuntu direct frame buffer graphics library - devel ii libdirectfb-ex 1.0.1-11ubuntu direct frame buffer graphics - extra provide ii libdiscover2 2.1.2-3 hardware identification library ii libdjvulibre-t 3.5.21-3ubuntu Linguistic support files for libdjvulibre ii libdjvulibre15 3.5.20-2 Runtime support for the DjVu image format ii libdjvulibre21 3.5.21-3ubuntu Runtime support for the DjVu image format ii libdmalloc-dev 5.5.1-1 debug memory allocation library (development ii libdmalloc5 5.5.1-1 debug memory allocation library ii libdmx1 1:1.0.2-3 X11 Distributed Multihead extension library ii libdns43 1:9.5.0.dfsg.P DNS Shared Library used by BIND ii libdom4j-java 1.6.1+dfsg-3ub flexible XML framework for Java ii libdrm-intel1 2.4.4-0ubuntu6 Userspace interface to intel-specific kernel ii libdrm2 2.4.4-0ubuntu6 Userspace interface to kernel DRM services - ii libdti-contain 0.1.1-1 DTI library containers ii libdumbnet1 1.8-1.5 A dumb, portable networking library ii libdv4 1.0.0-1ubuntu2 software library for DV format digital video ii libdvdnav4 4.1.2-3 DVD navigation library ii libdvdread3 0.9.7-11ubuntu library for reading DVDs ii libebackend1.2 2.24.3-0ubuntu Utility library for evolution data servers ii libebook1.2-9 2.24.3-0ubuntu Client library for evolution address books ii libecal1.2-7 2.24.3-0ubuntu Client library for evolution calendars ii libecj-java 3.3.0+0728-10 Eclipse Java compiler (library) ii libecj-java-gc 3.3.0+0728-10 Eclipse Java compiler (native library) ii libedata-book1 2.24.3-0ubuntu Backend library for evolution address books ii libedata-cal1. 2.24.3-0ubuntu Backend library for evolution calendars ii libedataserver 2.24.3-0ubuntu Utility library for evolution data servers ii libedataserver 2.22.3-0ubuntu Utility library for evolution data servers ii libedataserver 2.24.3-0ubuntu GUI utility library for evolution data serve ii libedit2 2.11~20080614- BSD editline and history libraries ii libeel2-2 2.24.1-0ubuntu Eazel Extensions Library (for GNOME2) ii libeel2-data 2.24.1-0ubuntu Eazel Extensions Library - data files (for G ii libegroupwise1 2.24.3-0ubuntu Client library for accessing groupwise POA t ii libelf1 0.131-4 library to read and write ELF files ii libelfg0 0.8.10-2 an ELF object file access library ii libenchant1c2a 1.4.2-3.3ubunt a wrapper library for various spell checker ii libept0 0.5.26 High-level library for managing Debian packa ii liberror-perl 0.17-1 Perl module for error/exception handling in ii libesd-alsa0 0.2.40-0ubuntu Enlightened Sound Daemon (ALSA) - Shared lib ii libespeak1 1.39-0ubuntu1 A multi-lingual software speech synthesizer: ii libexception-c 1.26-1 module that allows you to declare real excep ii libexchange-st 2.24.3-0ubuntu Client library for accessing Exchange server ii libexempi3 2.0.2-2 library to parse XMP metadata (Library) ii libexif12 0.6.16-2.1ubun library to parse EXIF files ii libexiv2-4 0.17.1-1 EXIF/IPTC metadata manipulation library ii libexpat1 2.0.1-4 XML parsing C library - runtime library ii libexpat1-dev 2.0.1-4 XML parsing C library - development kit ii libfaac0 1.26-0.1ubuntu an AAC audio encoder - library files ii libfaad0 2.6.1-3.1 freeware Advanced Audio Decoder - runtime fi ii libfbclient2 2.1.1.17910-re Firebird client library ii libffi-dev 3.0.7-1ubuntu1 Foreign Function Interface library (developm ii libffi5 3.0.7-1ubuntu1 Foreign Function Interface library runtime ii libfftw3-3 3.1.2-3.1ubunt library for computing Fast Fourier Transform ii libflac8 1.2.1-1.2 Free Lossless Audio Codec - runtime C librar ii libflash-swfpl 0.4.13-9ubuntu GPL Flash (SWF) Library - stand-alone player ii libflash0c2 0.4.13-9ubuntu GPL Flash (SWF) Library - shared library ii libflickrnet2. 25277-6ubuntu3 Flickr.Net API Library ii libfltk1.1 1.1.9-6 Fast Light Toolkit - shared libraries ii libfontconfig1 2.6.0-1ubuntu4 generic font configuration library - runtime ii libfontconfig1 2.6.0-1ubuntu4 generic font configuration library - develop ii libfontenc1 1:1.0.4-3 X11 font encoding library ii libfreebob0 1.0.11-0ubuntu FreeBoB API ii libfreetype6 2.3.7-2ubuntu1 FreeType 2 font engine, shared library files ii libfreetype6-d 2.3.7-2ubuntu1 FreeType 2 font engine, development files ii libfribidi0 0.10.9-1 Free Implementation of the Unicode BiDi algo ii libfrontier-rp 0.07b4-4 Perl module to implement RPC calls using XML ii libfs6 2:1.0.1-1 X11 Font Services library ii libftgl2 2.1.3~rc5-2 library to render text in OpenGL using FreeT ii libfuse-dev 2.7.4-1.1ubunt Filesystem in USErspace (development files) ii libfuse2 2.7.4-1.1ubunt Filesystem in USErspace library ii libgadu3 1:1.8.0+r592-3 Gadu-Gadu protocol library - runtime files ii libgail-common 2.15.3-0ubuntu GNOME Accessibility Implementation Library - ii libgail-gnome- 1.20.1-1ubuntu GNOME Accessibility Implementation Module fo ii libgail18 2.15.3-0ubuntu GNOME Accessibility Implementation Library - ii libgamin0 0.1.9-2ubuntu3 Client library for the gamin file and direct ii libgc1c2 1:6.8-1.2 conservative garbage collector for C and C++ ii libgcc1 1:4.3.3-3ubunt GCC support library ii libgcc1-dbg 1:4.3.3-3ubunt GCC support library (debug symbols) ii libgcj-bc 4.3.2-2ubuntu1 Link time only library for use with gcj ii libgcj-common 1:4.3.2-2ubunt Java runtime library (common files) ii libgcj7-1 4.1.2-18ubuntu Java runtime library for use with gcj ii libgcj8-1 4.2.4-5ubuntu1 Java runtime library for use with gcj ii libgcj9-0 4.3.3-1ubuntu1 Java runtime library for use with gcj ii libgconf2-4 2.25.0-0ubuntu GNOME configuration database system (shared ii libgconf2.0-ci 2.20.1-1ubuntu CLI binding for GConf 2.20 ii libgcrypt11 1.4.1-2ubuntu1 LGPL Crypto library - runtime library ii libgcrypt11-de 1.4.1-2ubuntu1 LGPL Crypto library - development files ii libgcrypt11-do 1.4.1-2ubuntu1 LGPL Crypto library - documentation ii libgd2-xpm 2.0.36~rc1~dfs GD Graphics Library version 2 ii libgda2-3 1.2.4-1.3 GNOME Data Access library for GNOME2 ii libgda2-common 1.2.4-1.3 Common files for GNOME Data Access library f ii libgda3-3 3.0.2-5ubuntu1 GNOME Data Access library for GNOME2 ii libgda3-common 3.0.2-5ubuntu1 Common files for GNOME Data Access library f ii libgdata-googl 2.24.3-0ubuntu Client library for accessing Google POA thro ii libgdata1.2-1 2.24.3-0ubuntu Client library for accessing Google POA thro ii libgdbm3 1.8.3-4 GNU dbm database routines (runtime version) ii libgdict-1.0-6 2.25.90-0ubunt GNOME Dictionary base library ii libgdiplus 2.0-1 interface library for System.Drawing of Mono ii libgdk-pixbuf2 0.17.0~rc1-6ub Gdk-Pixbuf 2 bindings for the Ruby language ii libgdl-1-0 2.24.0-3 GNOME DevTool libraries ii libgdl-1-commo 2.24.0-3 GNOME DevTool libraries - common files ii libgegl-0.0-0 0.0.20-1 Generic Graphics Library ii libgfortran2 4.2.4-5ubuntu1 Runtime library for GNU Fortran applications ii libgfortran3 4.3.3-3ubuntu1 Runtime library for GNU Fortran applications ii libggz2 0.0.14.1-1buil GGZ Gaming Zone: common utilities library ii libggzcore9 0.0.14.1-1ubun GGZ Gaming Zone: core client frontend librar ii libggzmod4 0.0.14.1-1ubun GGZ Gaming Zone: game frontend library ii libgif-dev 4.1.6-6 library for GIF images (development) ii libgif4 4.1.6-6 library for GIF images (library) ii libgimp2.0 2.6.3-1ubuntu1 Libraries for the GNU Image Manipulation Pro ii libgksu1.2-1 1.3.8-2ubuntu1 library providing su and sudo functionality ii libgksu2-0 2.0.7-1ubuntu3 library providing su and sudo functionality ii libgksuui1.0-1 1.0.7-3ubuntu1 a graphical fronted to su library ii libgl1-mesa-de 7.3-1ubuntu1 A free implementation of the OpenGL API -- G ii libgl1-mesa-dr 7.3-1ubuntu1 A free implementation of the OpenGL API -- D ii libgl1-mesa-gl 7.3-1ubuntu1 A free implementation of the OpenGL API -- G ii libglade0 1:0.17-9ubuntu library to load .glade files at runtime ii libglade0-dev 1:0.17-9ubuntu development files for libglade ii libglade2-0 1:2.6.3-1 library to load .glade files at runtime ii libglade2-dev 1:2.6.3-1 development files for libglade ii libglade2.0-ci 2.12.7-1ubuntu CLI binding for the Glade libraries 2.6 ii libglew1.5 1.5.0dfsg1-3ub The OpenGL Extension Wrangler - runtime envi ii libglib-perl 1:1.190-2 Perl interface to the GLib and GObject libra ii libglib1.2-dev 1.2.10-19build The GLib library of C routines (development) ii libglib1.2ldbl 1.2.10-19build The GLib library of C routines ii libglib2-ruby1 0.17.0~rc1-6ub Glib 2 bindings for the Ruby language ii libglib2.0-0 2.19.6-0ubuntu The GLib library of C routines ii libglib2.0-cil 2.12.7-1ubuntu CLI binding for the GLib utility library 2.1 ii libglib2.0-dev 2.19.6-0ubuntu Development files for the GLib library ii libglib2.0-doc 2.19.6-0ubuntu Documentation files for the GLib library ii libglibmm-2.4- 2.18.1-1 C++ wrapper for the GLib toolkit (shared lib ii libglibmm-2.4- 2.18.1-1 C++ wrapper for the GLib toolkit (developmen ii libglitz-glx1 0.5.6-1 Glitz OpenGL library GLX backend ii libglitz1 0.5.6-1 Glitz OpenGL image compositing library ii libgloox-dev 0.9.9.5-1build C++ jabber/xmpp library devel files ii libgloox-doc 0.9.9.5-1build C++ jabber/xmpp library API documentation ii libgloox7 0.9.9.5-1build C++ jabber/xmpp library ii libglpk0 4.29-2 linear programming kit with integer (MIP) su ii libglu1-mesa 7.3-1ubuntu1 The OpenGL utility library (GLU) ii libglu1-mesa-d 7.3-1ubuntu1 The OpenGL utility library -- development fi ii libgluezilla 2.0-1ubuntu1 glue library to embed Gecko in Mono's WebCon ii libglut3 3.7-25 the OpenGL Utility Toolkit ii libgmime-2.0-2 2.2.22-2 MIME library ii libgmime2.2-ci 2.2.22-2 CLI binding for the MIME library ii libgmp3c2 2:4.2.2+dfsg-3 Multiprecision arithmetic library ii libgmyth0 1:0.7.1-1 GObject based library for accessing MythTV b ii libgnome-deskt 1:2.23.2-0ubun Utility library for loading .desktop files - ii libgnome-deskt 1:2.25.5-0ubun Utility library for loading .desktop files - rc libgnome-deskt 1:2.24.1-1ubun Utility library for loading .desktop files - ii libgnome-keyri 2.25.4.1-0ubun GNOME keyring services library ii libgnome-keyri 1.0.0~svn.r876 CLI library to access the GNOME Keyring daem ii libgnome-mag2 1:0.15.4-0ubun screen magnification library for the GNOME d ii libgnome-media 2.25.5-0ubuntu runtime libraries for the GNOME media utilit ii libgnome-menu2 2.25.5-0ubuntu an implementation of the freedesktop menu sp ii libgnome-pilot 2.0.15-2.4ubun Support libraries for gnome-pilot ii libgnome-speec 1:0.4.23-0ubun GNOME text-to-speech library ii libgnome-vfs2. 2.20.1-1ubuntu CLI binding for GnomeVFS 2.20 ii libgnome-windo 1:2.25.3-0ubun Utility library for getting window manager s ii libgnome2-0 2.24.1-1ubuntu The GNOME 2 library - runtime files ii libgnome2-canv 1.002-1+b1ubun Perl interface to the GNOME canvas library ii libgnome2-comm 2.24.1-1ubuntu The GNOME 2 library - common files ii libgnome2-perl 1.042-1build2 Perl interface to the GNOME libraries ii libgnome2-vfs- 1.080-1build2 Perl interface to the 2.x series of the GNOM ii libgnome2.0-ci 2.20.1-1ubuntu CLI binding for GNOME 2.20 ii libgnomecanvas 2.20.1.1-1ubun A powerful object-oriented display - runtime ii libgnomecanvas 2.20.1.1-1ubun A powerful object-oriented display - common ii libgnomecanvas 2.22.0-1 C++ wrappers for libgnomecanvas2 (shared lib ii libgnomecups1. 0.2.3-3 GNOME library for CUPS interaction ii libgnomecupsui 0.31-3ubuntu5 UI extensions to libgnomecups rc libgnomedb3-4 3.0.0-4build1 Database UI widget library for GNOME2 rc libgnomedb3-co 3.0.0-4build1 Database UI widget library for GNOME2 -- com ii libgnomekbd-co 2.24.0-0ubuntu GNOME library to manage keyboard configurati ii libgnomekbd3 2.24.0-0ubuntu GNOME library to manage keyboard configurati ii libgnomekbdui3 2.24.0-0ubuntu User interface library for libgnomekbd - sha ii libgnomeprint2 2.18.5-1 The GNOME 2.2 print architecture - runtime f ii libgnomeprint2 2.18.5-1 The GNOME 2.2 print architecture - data file ii libgnomeprintu 2.18.3-1 GNOME 2.2 print architecture User Interface ii libgnomeprintu 2.18.3-1 GNOME 2.2 print architecture User Interface ii libgnomeui-0 2.24.0-1 The GNOME 2 libraries (User Interface) - run ii libgnomeui-com 2.24.0-1 The GNOME 2 libraries (User Interface) - com ii libgnomevfs2-0 1:2.24.0-1ubun GNOME Virtual File System (runtime libraries ii libgnomevfs2-b 1:2.24.0-1ubun GNOME Virtual File System (support binaries) ii libgnomevfs2-c 1:2.24.0-1ubun GNOME Virtual File System (common files) ii libgnomevfs2-e 1:2.24.0-1ubun GNOME Virtual File System (extra modules) ii libgnutls-dev 2.4.2-4 the GNU TLS library - development files ii libgnutls13 2.0.4-1ubuntu3 the GNU TLS library - runtime library ii libgnutls26 2.4.2-4 the GNU TLS library - runtime library rc libgoffice-0-6 0.6.5-1ubuntu1 Document centric objects library - runtime f ii libgomp1 4.3.3-3ubuntu1 GCC OpenMP (GOMP) support library ii libgoocanvas-c 0.13-1 new canvas widget for GTK+ that uses the cai ii libgoocanvas3 0.13-1 new canvas widget for GTK+ that uses the cai ii libgoogle-perf 0.98-1 libraries for CPU and heap analysis, plus an ii libgoogle-perf 0.98-1 libraries for CPU and heap analysis, plus an ii libgp11-0 2.25.4.1-0ubun Glib wrapper library for PKCS#11 - runtime ii libgpg-error-d 1.4-2ubuntu7 library for common error values and messages ii libgpg-error0 1.4-2ubuntu7 library for common error values and messages ii libgpgme11 1.1.8-1ubuntu1 GPGME - GnuPG Made Easy ii libgphoto2-2 2.4.2-0ubuntu4 gphoto2 digital camera library ii libgphoto2-por 2.4.2-0ubuntu4 gphoto2 digital camera port library ii libgpm2 1.20.4-3.1ubun General Purpose Mouse - shared library ii libgpmg1 1.19.6-25ubunt General Purpose Mouse - shared library ii libgpod-common 0.6.0-7 common files for libgpod ii libgpod3 0.6.0-7 library to read and write songs and artwork ii libgraphviz4 2.20.2-3ubuntu rich set of graph drawing tools ii libgs8 8.64.dfsg.1-0u The Ghostscript PostScript/PDF interpreter L ii libgsf-1-114 1.14.11-1ubunt Structured File Library - runtime version ii libgsf-1-commo 1.14.11-1ubunt Structured File Library - common files rc libgsf-gnome-1 1.14.10-3ubunt Structured File Library - runtime version fo ii libgsl0-dev 1.12+dfsg-1 GNU Scientific Library (GSL) -- development ii libgsl0ldbl 1.12+dfsg-1 GNU Scientific Library (GSL) -- library pack ii libgsm1 1.0.12-1 Shared libraries for GSM speech compressor ii libgstreamer-p 0.10.22-1 GStreamer libraries from the "base" set ii libgstreamer0. 0.10.22-1 Core GStreamer libraries and elements ii libgtk-vnc-1.0 0.3.8-2ubuntu1 A VNC viewer widget for GTK+ (runtime librar ii libgtk1.2 1.2.10-18.1bui The GIMP Toolkit set of widgets for X ii libgtk1.2-comm 1.2.10-18.1bui Common files for the GTK+ library ii libgtk1.2-dev 1.2.10-18.1bui Development files for the GIMP Toolkit ii libgtk2-perl 1:1.190-1ubunt Perl interface to the 2.x series of the Gimp ii libgtk2-ruby1. 0.17.0~rc1-6ub GTK+ bindings for the Ruby language ii libgtk2.0-0 2.15.3-0ubuntu The GTK+ graphical user interface library ii libgtk2.0-bin 2.15.3-0ubuntu The programs for the GTK+ graphical user int ii libgtk2.0-cil 2.12.7-1ubuntu CLI binding for the GTK+ toolkit 2.12 ii libgtk2.0-comm 2.15.3-0ubuntu Common files for the GTK+ graphical user int ii libgtk2.0-dev 2.15.3-0ubuntu Development files for the GTK+ library rc libgtkglext1 1.2.0-1ubuntu1 OpenGL Extension to GTK+ (shared libraries) ii libgtkhtml-edi 1:3.25.90-0ubu HTML rendering/editing library - editor widg ii libgtkhtml-edi 1:3.25.90-0ubu HTML rendering/editing library - editor widg ii libgtkhtml2-0 2.11.1-2ubuntu HTML rendering/editing library - runtime fil ii libgtkhtml3.14 1:3.25.90-0ubu HTML rendering/editing library - runtime fil ii libgtkhtml3.16 2.20.1-2ubuntu CLI binding for GtkHTML 3.16 ii libgtkhtml3.8- 1:3.13.5-1ubun HTML rendering/editing library - runtime fil ii libgtkmm-2.4-1 1:2.14.3-1 C++ wrappers for GTK+ 2.4 (shared libraries) ii libgtkmm-2.4-d 1:2.14.3-1 C++ wrappers for GTK+ 2.4 (development files ii libgtkmm-2.4-d 1:2.14.3-1 C++ wrappers for GTK+ 2.4 (documentation) ii libgtksourcevi 1.8.5-2 common files for the GTK+ syntax highlightin ii libgtksourcevi 1.8.5-2 shared libraries for the GTK+ syntax highlig ii libgtksourcevi 2.5.3-0ubuntu1 shared libraries for the GTK+ syntax highlig ii libgtksourcevi 0.12-1 CLI binding for the gtksourceview library ii libgtksourcevi 2.5.3-0ubuntu1 common files for the GTK+ syntax highlightin ii libgtkspell0 2.0.13-1 a spell-checking addon for GTK's TextView wi ii libgtop2-7 2.24.0-0ubuntu gtop system monitoring library ii libgtop2-commo 2.24.0-0ubuntu common files for the gtop system monitoring ii libgucharmap6 1:2.22.1-1ubun Unicode browser widget library (shared libra ii libgucharmap7 1:2.24.2-0ubun Unicode browser widget library (shared libra ii libguile-ltdl- 1.6.8-6.1ubunt Guile's patched version of libtool's libltdl ii libgutenprint2 5.2.3-0ubuntu1 runtime for the Gutenprint printer driver li ii libgutenprintu 5.2.3-0ubuntu1 runtime for the Gutenprint printer driver us ii libgvfscommon0 1.1.5-0ubuntu1 userspace virtual filesystem - library ii libgweather-co 2.25.5-0ubuntu GWeather common files ii libgweather1 2.25.5-0ubuntu GWeather shared library ii libhal-storage 0.5.12~rc1+git Hardware Abstraction Layer - shared library ii libhal1 0.5.12~rc1+git Hardware Abstraction Layer - shared library ii libharminv2 1.3.1-1.1 Library for using harminv ii libhdf5-serial 1.6.6-4ubuntu1 Hierarchical Data Format 5 (HDF5) - runtime ii libhesiod0 3.0.2-18.3 Project Athena's DNS-based directory service ii libhsqldb-java 1.8.0.10-1ubun Java SQL database engine ii libhtml-parser 3.59-1ubuntu1 A collection of modules that parse HTML text ii libhtml-tagset 3.20-2 Data tables pertaining to HTML ii libhtml-templa 2.9-1 HTML::Template : A module for using HTML Tem ii libhtml-tree-p 3.23-1 represent and create HTML syntax trees ii libhtml-wikico 0.61-1 An HTML to wiki markup converter ii libhunspell-1. 1.1.9-1 spell checker and morphological analyzer (sh ii libhunspell-1. 1.2.6-1ubuntu1 spell checker and morphological analyzer (sh ii libhyphen0 2.4-2ubuntu1 ALTLinux hyphenation library - shared librar ii libice-dev 2:1.0.4-1 X11 Inter-Client Exchange library (developme ii libice6 2:1.0.4-1 X11 Inter-Client Exchange library ii libicu36 3.6-3 International Components for Unicode (librar ii libicu36-dev 3.6-3 International Components for Unicode (develo ii libicu38 3.8.1-3 International Components for Unicode ii libid3-3.8.3c2 3.8.3-7.2 Library for manipulating ID3v1 and ID3v2 tag ii libid3tag0 0.15.1b-10 ID3 tag reading library from the MAD project ii libidl0 0.8.11-0.1 library for parsing CORBA IDL files ii libidn11 1.10-3 GNU libidn library, implementation of IETF I ii libidn11-dev 1.10-3 Development files GNU libidn, implementation ii libiec61883-0 1.1.0-2ubuntu2 an partial implementation of IEC 61883 ii libieee1284-3 0.2.11-5 cross-platform library for parallel port acc ii libijs-0.35 0.35-6 IJS raster image transport protocol: shared ii libilmbase6 1.0.1-2+nmu2 several utility libraries from ILM used by O ii libio-compress 2.015-1 Base Class for IO::Compress modules ii libio-compress 2.015-1 Perl interface to zlib ii libio-interfac 1.05-1 socket methods to get/set interface characte ii libio-pty-perl 1:1.07-1build1 Perl module for pseudo tty IO ii libio-socket-m 1.05-2build1 send and receive multicast messages with Per ii libio-socket-s 1.18-1 Perl module implementing object oriented int ii libio-string-p 1.08-2 Emulate IO::File interface for in-core strin ii libiodbc2 3.52.6-3 iODBC Driver Manager ii libiodbc2-dev 3.52.6-3 iODBC Driver Manager (development files) ii libipc-run-per 0.80-2 Perl module for running processes ii libipc-signal- 1.00-6 utility functions dealing with signals for P ii libiptcdata0 1.0.2+libtool0 Library to parse IPTC metadata ii libisc44 1:9.5.0.dfsg.P ISC Shared Library used by BIND ii libisccc40 1:9.5.0.dfsg.P Command Channel Library used by BIND ii libisccfg40 1:9.5.0.dfsg.P Config File Handling Library used by BIND ii libiw29 29-1.1ubuntu2 Wireless tools - library ii libjack0 0.116.1-3ubunt JACK Audio Connection Kit (libraries) ii libjasper1 1.900.1-5.1 The JasPer JPEG-2000 runtime library ii libjavascript- 1.08-1 Perl extension for executing embedded JavaSc ii libjaxen-java 1.1.1-3ubuntu1 Java XPath engine ii libjaxme-java 0.5.2+dfsg-2 implementation of the JAXB specification for ii libjaxp1.3-jav 1.3.04-3ubuntu Java XML parser and transformer APIs (DOM, S ii libjcode-pm-pe 2.06-1 Perl extension interface to convert Japanese ii libjdom1-java 1.1+dfsg-1 lightweight and fast library using XML ii libjline-java 0.9.94-1ubuntu Java library for handling console input ii libjpeg62 6b-14 The Independent JPEG Group's JPEG runtime li ii libjpeg62-dev 6b-14 Development files for the IJG JPEG library ii libjs-jquery 1.2.6-1 JavaScript library for dynamic web applicati ii libjs-mochikit 1.4.2-0ubuntu1 JavaScript library inspired by Python ii libjs-prototyp 1.6.0.3-1 JavaScript Framework for dynamic web applica ii libjs-scriptac 1.8.1-5 JavaScript library for dynamic web applicati ii libjsch-java 0.1.37-3ubuntu java secure channel ii libjson-any-pe 1.18-1 wrapper class for the various JSON classes ii libjson-perl 2.12-1 Perl module to parse and convert to JSON ii libjson-ruby 1.1.2-1 JSON library for Ruby (default Ruby version) ii libjson-ruby-d 1.1.2-1 JSON library for Ruby (documentation) ii libjson-ruby1. 1.1.2-1 JSON library for Ruby (Ruby 1.8 version) ii libkadm55 1.6.dfsg.4~bet MIT Kerberos administration runtime librarie ii libkdecoration 4:4.2.0-0ubunt library used by decorations for the KDE 4 wi ii libkeyutils1 1.2-9 Linux Key Management Utilities (library) ii libklibc 1.5.14-1~exp1u minimal libc subset for use with initramfs ii libkonq4 4:3.5.9-0ubunt core libraries for Konqueror ii libkonq5-templ 4:4.2.0-0ubunt data files for the Konqueror libraries ii libkpathsea4 2007.dfsg.2-4 TeX Live: path search library for TeX (runti ii libkrb5-dev 1.6.dfsg.4~bet Headers and development libraries for MIT Ke ii libkrb53 1.6.dfsg.4~bet MIT Kerberos runtime libraries ii libkst1-dev 1.7.0-1 Headers for the kst application for displayi ii libkst1c2 1.7.0-1 Libraries for the kst application for displa ii libkwineffects 4:4.2.0-0ubunt library used by effects for the KDE 4 window ii liblapack3gf 3.1.1-6 library of linear algebra routines 3 - share ii liblaunchpad-i 0.1.16 library for launchpad integration ii liblaunchpad-i 0.1.21 library for launchpad integration ii liblcms1 1.17.dfsg-1 Color management library ii liblcms1-dev 1.17.dfsg-1 Color management library (Development header ii libldap-2.4-2 2.4.11-0ubuntu OpenLDAP libraries ii liblircclient0 0.8.4a-0ubuntu infra-red remote control support - client li ii liblocale-gett 1.05-4build1 Using libc functions for internationalizatio ii liblockfile1 1.08-3 NFS-safe locking library, includes dotlockfi ii liblog4j1.2-ja 1.2.15-4 Logging library for java ii libloki-dev 0.1.5-3.1 a C++ library of generic design patterns (de ii libloki-doc 0.1.5-3.1 a C++ library of generic design patterns (do ii libloki0.1.5 0.1.5-3.1 a C++ library of generic design patterns ii libloki0.1.5-d 0.1.5-3.1 a C++ library of generic design patterns (de ii libloudmouth1- 1.4.2-2 Lightweight C Jabber library ii liblpint-bonob 0.1.21 library for launchpad integration ii libltdl7 2.2.6a-1ubuntu A system independent dlopen wrapper for GNU ii libltdl7-dev 2.2.6a-1ubuntu A system independent dlopen wrapper for GNU ii liblua50 5.0.3-3 Main interpreter library for the Lua 5.0 pro ii liblualib50 5.0.3-3 Extension library for the Lua 5.0 programmin ii liblucene-java 1.4.3.dfsg-3 full-text search engine library for Java(TM) ii liblucene-java 1.4.3.dfsg-3 demonstration programs and example code for ii liblwres40 1:9.5.0.dfsg.P Lightweight Resolver Library used by BIND ii liblzo-dev 1.08-3 data compression library (old version) (deve ii liblzo1 1.08-3 data compression library (old version) ii liblzo2-2 2.03-1 data compression library ii libmad0 0.15.1b-4 MPEG audio decoder library ii libmagic1 4.26-2 File type determination library using "magic rc libmagick++10 7:6.3.7.9.dfsg C++ API to the ImageMagick library rc libmagick10 7:6.3.7.9.dfsg image manipulation library ii libmagick9 7:6.2.4.5.dfsg Image manipulation library ii libmagickcore1 7:6.4.5.4.dfsg low-level image manipulation library ii libmagickwand1 7:6.4.5.4.dfsg image manipulation library ii libmatheval1 1.1.7-1 GNU library for evaluating symbolic mathemat ii libmatheval1-d 1.1.7-1 GNU library for evaluating symbolic mathemat ii libmbca0 0.0.3~bzr42-0u Mobile Broadband Configuration Assistant ii libmcpp0 2.7.1 Alternative C/C++ preprocessor (shared libra ii libmdbtools 0.5.99.0.6pre1 mdbtools libraries ii libmeanwhile1 1.0.2-3 open implementation of the Lotus Sametime Co ii libmetacity0 1:2.25.89-0ubu library of lightweight GTK2 based Window Man ii libmime-types- 1.26-1 Perl extension for determining MIME types an ii libming-dev 1:0.3.0-14 Library to generate SWF (Flash) Files (devel ii libming-util 1:0.3.0-14 Library to generate SWF (Flash) Files - Util ii libming0 1:0.3.0-14 Library to generate SWF (Flash) Files ii libmjpegtools0 1:1.8.0-0.2ubu MJPEG video capture/editting/playback MPEG e ii libmldbm-perl 2.01-2 Store multidimensional hash structures in pe ii libmms0 0.4-2 MMS stream protocol library - shared library ii libmng-dev 1.0.9-1 M-N-G library (Development headers) ii libmng1 1.0.9-1 Multiple-image Network Graphics library ii libmodplug0c2 1:0.8.4-3ubunt shared libraries for mod music based on ModP ii libmodule-plug 3.8-1 Automatically provide your module the abilit ii libmono-access 2.0.1-0ubuntu3 Mono Accessibility library ii libmono-access 2.0.1-0ubuntu3 Mono Accessibility library ii libmono-addins 0.3.1-5ubuntu2 GTK# frontend library for Mono.Addins ii libmono-addins 0.3.1-5ubuntu2 addin framework for extensible CLI applicati ii libmono-bytefx 2.0.1-0ubuntu3 Mono ByteFX.Data library ii libmono-bytefx 2.0.1-0ubuntu3 Mono ByteFX.Data library ii libmono-c5-1.0 2.0.1-0ubuntu3 Mono C5 library ii libmono-cairo1 2.0.1-0ubuntu3 Mono Cairo library ii libmono-cairo2 2.0.1-0ubuntu3 Mono Cairo library ii libmono-cecil- 0.1~svn.68457- cecil engine ii libmono-cecil0 0.6-1 library to generate and inspect CIL assembli ii libmono-corlib 2.0.1-0ubuntu3 Mono core library (1.0) ii libmono-corlib 2.0.1-0ubuntu3 Mono core library (2.0) ii libmono-corlib 2.0.1-0ubuntu3 Mono core library (2.1) ii libmono-cscomp 2.0.1-0ubuntu3 Mono cscompmgd library ii libmono-cscomp 2.0.1-0ubuntu3 Mono cscompmgd library ii libmono-data-t 2.0.1-0ubuntu3 Mono Data library ii libmono-data-t 2.0.1-0ubuntu3 Mono Data Library ii libmono-data1. 2.0.1-0ubuntu3 Mono.Data.* libraries (1.0) ii libmono-data2. 2.0.1-0ubuntu3 Mono.Data.* libraries (2.0) ii libmono-db2-1. 2.0.1-0ubuntu3 Mono DB2 library ii libmono-dev 2.0.1-0ubuntu3 libraries for the Mono JIT - Development fil ii libmono-firebi 2.0.1-0ubuntu3 Mono FirebirdSql library ii libmono-getopt 2.0.1-0ubuntu3 Mono.GetOptions library (1.0) ii libmono-getopt 2.0.1-0ubuntu3 Mono.GetOptions library (2.0) ii libmono-i18n1. 2.0.1-0ubuntu3 Mono I18N libraries (1.0) ii libmono-i18n2. 2.0.1-0ubuntu3 Mono I18N libraries (2.0) ii libmono-ldap1. 2.0.1-0ubuntu3 Mono LDAP library ii libmono-ldap2. 2.0.1-0ubuntu3 Mono LDAP library ii libmono-micros 2.0.1-0ubuntu3 Mono Microsoft.Build libraries ii libmono-micros 2.0.1-0ubuntu3 Mono Microsoft libraries ii libmono-micros 2.0.1-0ubuntu3 Mono Microsoft libraries ii libmono-mozill 1.2.6+dfsg-6ub Mono Mozilla library ii libmono-npgsql 2.0.1-0ubuntu3 Mono Npgsql library ii libmono-npgsql 2.0.1-0ubuntu3 Mono Npgsql library ii libmono-nunit2 2.0.1-0ubuntu3 Mono Unit test framework for CLI ii libmono-oracle 2.0.1-0ubuntu3 Mono Oracle library ii libmono-oracle 2.0.1-0ubuntu3 Mono Oracle library ii libmono-peapi1 2.0.1-0ubuntu3 Mono PEAPI library ii libmono-peapi2 2.0.1-0ubuntu3 Mono PEAPI library ii libmono-posix1 2.0.1-0ubuntu3 Mono.Posix library (1.0) ii libmono-posix2 2.0.1-0ubuntu3 Mono.Posix library (2.0) ii libmono-relaxn 2.0.1-0ubuntu3 Mono Relaxng library ii libmono-relaxn 2.0.1-0ubuntu3 Mono Relaxng library ii libmono-securi 2.0.1-0ubuntu3 Mono Security library ii libmono-securi 2.0.1-0ubuntu3 Mono Security library ii libmono-sharpz 2.0.1-0ubuntu3 Mono SharpZipLib library ii libmono-sharpz 2.0.1-0ubuntu3 Mono SharpZipLib library ii libmono-sharpz 2.0.1-0ubuntu3 Mono SharpZipLib library ii libmono-sharpz 2.0.1-0ubuntu3 Mono SharpZipLib library ii libmono-sqlite 2.0.1-0ubuntu3 Mono Sqlite library ii libmono-sqlite 2.0.1-0ubuntu3 Mono Sqlite library ii libmono-system 2.0.1-0ubuntu3 Mono System.Data library ii libmono-system 2.0.1-0ubuntu3 Mono System.Data Library ii libmono-system 2.0.1-0ubuntu3 Mono System.DirectoryServices library ii libmono-system 2.0.1-0ubuntu3 Mono System.DirectoryServices library ii libmono-system 2.0.1-0ubuntu3 Mono System.Messaging library ii libmono-system 2.0.1-0ubuntu3 Mono System.Messaging Library ii libmono-system 2.0.1-0ubuntu3 Mono System.Runtime library ii libmono-system 2.0.1-0ubuntu3 Mono System.Runtime Library ii libmono-system 2.0.1-0ubuntu3 Mono System.Web library ii libmono-system 2.0.1-0ubuntu3 Mono System.Web Library ii libmono-system 2.0.1-0ubuntu3 Mono System libraries (1.0) ii libmono-system 2.0.1-0ubuntu3 Mono System libraries (2.0) ii libmono-system 2.0.1-0ubuntu3 Mono System libraries (2.1) ii libmono-webbro 2.0.1-0ubuntu3 Mono Web Browser library ii libmono-winfor 2.0.1-0ubuntu3 Mono System.Windows.Forms library ii libmono-winfor 2.0.1-0ubuntu3 Mono System.Windows.Forms library ii libmono-zeroco 0.7.6-1 CLI library for multicast DNS service discov ii libmono0 2.0.1-0ubuntu3 libraries for the Mono JIT ii libmono0-dbg 2.0.1-0ubuntu3 libraries for the Mono JIT, debugging symbol ii libmono1.0-cil 2.0.1-0ubuntu3 Mono libraries (1.0) ii libmono2.0-cil 2.0.1-0ubuntu3 Mono libraries (2.0) ii libmozjs0d 1.8.1.16+nobin The Mozilla SpiderMonkey JavaScript library ii libmp3lame0 3.98-0.0 LAME Ain't an MP3 Encoder ii libmpcdec3 1.2.2-1build1 Musepack (MPC) format library ii libmpeg2-4 0.4.1-3 MPEG1 and MPEG2 video decoder library ii libmpfr1ldbl 2.3.2.dfsg.1-1 multiple precision floating-point computatio ii libmtp8 0.3.0-1ubuntu3 Media Transfer Protocol (MTP) library ii libmudflap0 4.3.3-3ubuntu1 GCC mudflap shared support libraries ii libmudflap0-de 4.1.2-24ubuntu GCC mudflap support libraries (development f ii libmusicbrainz 2.1.5-2ubuntu1 Second generation incarnation of the CD Inde ii libmx4j-java 3.0.2-4 An open source implementation of the JMX(TM) ii libmyodbc 3.51.19r646-0u the MySQL ODBC driver ii libmysqlclient 5.1.30really5. MySQL database development files ii libmysqlclient 5.1.30really5. MySQL database client library ii libnanohttp-de 1.1.0-13 shared nanohttp header files for SOAP server ii libnanohttp1 1.1.0-13 shared nanohttp library from CSOAP package ii libnautilus-bu 2.24.0-0ubuntu Nautilus Burn Library - runtime version ii libnautilus-ex 1:2.25.4-0ubun libraries for nautilus components - runtime ii libncurses5 5.7+20081220-1 shared libraries for terminal handling ii libncurses5-de 5.7+20081220-1 developer's libraries and docs for ncurses ii libncursesw5 5.7+20081220-1 shared libraries for terminal handling (wide ii libndesk-dbus- 0.4.1-1ubuntu1 CLI implementation of D-Bus (GLib mainloop i ii libndesk-dbus1 0.6.0-1ubuntu1 CLI implementation of D-Bus ii libnemerle0.9- 0.9.3+dfsg-2 Class Libraries for Nemerle ii libneon25 0.25.5.dfsg-6b An HTTP and WebDAV client library ii libneon27 0.28.2-6.1 An HTTP and WebDAV client library ii libneon27-gnut 0.28.2-6.1 An HTTP and WebDAV client library (GnuTLS en ii libnet-daemon- 0.43-1 Perl module for building portable Perl daemo ii libnet-dbus-pe 0.33.6-1build2 Extension for the DBus bindings ii libnet-irc-per 0.75-8 IRC (Internet Relay Chat) interface module f ii libnet-jabber- 0.07-1.1 Perl interface for the loudmouth jabber libr ii libnet-jabber- 2.0-3.1 Perl modules for accessing the Jabber protoc ii libnet-ldap-pe 1:0.39-1ubuntu client interface to LDAP servers ii libnet-libidn- 0.07-1build1 Perl bindings for GNU Libidn ii libnet-ssleay- 1.35-2ubuntu1 Perl module for Secure Sockets Layer (SSL) ii libnet-xmpp-pe 1.02-1 XMPP Perl library ii libnetcdf4 1:3.6.2-3.1 An interface for scientific data access to l ii libnetpbm10 2:10.0-12 Shared libraries for netpbm ii libnewt0.52 0.52.2-11.3ubu Not Erik's Windowing Toolkit - text mode win ii libnl1 1.1-3 library for dealing with netlink sockets ii libnm-glib0 0.7-0ubuntu1 network management framework (GLib shared li ii libnm-util0 0.7~~svn200810 network management framework (shared library ii libnm-util1 0.7-0ubuntu1 network management framework (shared library ii libnotify1 0.4.5-0ubuntu1 sends desktop notifications to a notificatio ii libnspr4-0d 4.7.3-0ubuntu2 NetScape Portable Runtime Library ii libnss-mdns 0.10-3ubuntu2 NSS module for Multicast DNS name resolution ii libnss3-1d 3.12.2~rc1-0ub Network Security Service libraries rc libntfs-3g28 1:1.2506-1ubun ntfs-3g filesystem in userspace (FUSE) libra rc libntfs-3g31 1:1.2531-1.1ub ntfs-3g filesystem in userspace (FUSE) libra ii libntfs-3g48 1:2009.1.1-0ub ntfs-3g filesystem in userspace (FUSE) libra ii libnunit-doc 2.4.7+dfsg-2 Unit test framework for CLI ii libodbc++-dev 0.2.3+0.2.4pre C++ library for ODBC SQL database access ii libodbc++-doc 0.2.3+0.2.4pre C++ library for ODBC SQL database access ii libodbc++4 0.2.3+0.2.4pre C++ library for ODBC SQL database access ii libodbcinstq1c 2.2.11-16build Qt-based ODBC configuration library ii libofa0 0.9.3-3 Library for acoustic fingerprinting ii libogg0 1.1.3-4build1 Ogg Bitstream Library ii liboil0.3 0.3.15-1ubuntu Library of Optimized Inner Loops ii liboobs-1-4 2.22.0-2ubuntu GObject based interface to system-tools-back rc libopal-2.2 2.2.11~dfsg1-4 Open Phone Abstraction Library - successor o ii libopal3.4.2 3.4.2~dfsg-2 Open Phone Abstraction Library - successor o ii libopenal1 1:1.4.272-2 Software implementation of the OpenAL API (l ii libopencdk10 0.6.6-1ubuntu1 Open Crypto Development Kit (OpenCDK) (runti ii libopencdk8 0.5.13-2 Open Crypto Development Kit (OpenCDK) (runti ii libopenexr6 1.6.1-3ubuntu1 runtime files for the OpenEXR image library ii libopenobex1 1.3+cvs2007042 OBEX protocol library ii libopenspc0 0.3.99a-2 library for playing SPC files ii liborbit2 1:2.14.16-0.1 libraries for ORBit2 - a CORBA ORB ii libosp5 1.5.2-6ubuntu1 Runtime library for OpenJade group's SP suit ii libotr2 3.2.0-1 Off-the-Record Messaging library ii libpam-ck-conn 0.3-0ubuntu3 ConsoleKit PAM module ii libpam-foregro 0.5 create lockfiles describing which users own ii libpam-gnome-k 2.25.4.1-0ubun PAM module to unlock the GNOME keyring upon ii libpam-modules 1.0.1-5ubuntu1 Pluggable Authentication Modules for PAM ii libpam-runtime 1.0.1-5ubuntu1 Runtime support for the PAM library ii libpam0g 1.0.1-5ubuntu1 Pluggable Authentication Modules library ii libpanel-apple 1:2.25.90-0ubu library for GNOME Panel applets ii libpango1-ruby 0.17.0~rc1-6ub Pango bindings for the Ruby language ii libpango1.0-0 1.22.4-1 Layout and rendering of internationalized te ii libpango1.0-co 1.22.4-1 Modules and configuration files for the Pang ii libpango1.0-de 1.22.4-1 Development files for the Pango ii libpangomm-1.4 2.14.1-1 C++ Wrapper for pango (shared libraries) ii libpangomm-1.4 2.14.1-1 C++ Wrapper for pango (development files) ii libpaper-utils 1.1.23+nmu1 library for handling paper characteristics ( ii libpaper1 1.1.23+nmu1 library for handling paper characteristics ii libparams-vali 0.91-2 validate parameters to Perl method/function ii libparse-debia 1.1.1-2 parse Debian changelogs and output them in o ii libparted1.7-1 1.7.1-5.1ubunt The GNU Parted disk partitioning shared libr ii libparted1.8-1 1.8.8.git.2008 The GNU Parted disk partitioning shared libr rc libparted1.8-9 1.8.8.git.2008 The GNU Parted disk partitioning shared libr ii libpcap-dev 1.0.0-1~exp1 development library for libpcap (transitiona ii libpcap0.8 1.0.0-1~exp1 system interface for user-level packet captu ii libpcap0.8-dev 1.0.0-1~exp1 development library and header files for lib ii libpci3 1:3.0.0-4ubunt Linux PCI Utilities (shared library) ii libpciaccess0 0.10.5-1 Generic PCI access library for X ii libpcre3 7.8-2ubuntu1 Perl 5 Compatible Regular Expression Library ii libpcre3-dev 7.8-2ubuntu1 Perl 5 Compatible Regular Expression Library ii libpcrecpp0 7.8-2ubuntu1 Perl 5 Compatible Regular Expression Library ii libpcsclite1 1.4.102-1ubunt Middleware to access a smart card using PC/S ii libperl5.10 5.10.0-19ubunt Shared Perl library ii libphonon4 4:4.3.0-0ubunt Phonon multimedia framework for Qt 4 ii libpisock9 0.12.3-5ubuntu library for communicating with a PalmOS PDA ii libpisync0 0.12.2-9ubuntu synchronization library for PalmOS devices ii libpisync1 0.12.3-5ubuntu synchronization library for PalmOS devices ii libpixman-1-0 0.13.2-1 pixel-manipulation library for X and cairo ii libpixman-1-de 0.13.2-1 pixel-manipulation library for X and cairo ( ii libplasma3 4:4.2.0-0ubunt library for the KDE 4 Plasma desktop ii libploticus0 2.40-3 script driven business graphics library ii libploticus0-d 2.40-3 Development files for the ploticus library ii libplplot-c++9 5.9.0-8ubuntu1 Scientific plotting library ii libplplot9 5.9.0-8ubuntu1 Scientific plotting library ii libplrpc-perl 0.2020-1 Perl extensions for writing PlRPC servers an ii libpng12-0 1.2.27-2ubuntu PNG library - runtime ii libpng12-dev 1.2.27-2ubuntu PNG library - development ii libpolkit-dbus 0.9-2ubuntu1 library for accessing PolicyKit via D-Bus ii libpolkit-gnom 0.9-1ubuntu1 PolicyKit-gnome library ii libpolkit-gran 0.9-2ubuntu1 library for obtaining privileges via PolicyK ii libpolkit2 0.9-2ubuntu1 library for accessing PolicyKit ii libpoppler-gli 0.8.7-1ubuntu1 PDF rendering library (GLib-based shared lib ii libpoppler-gli 0.10.3-0ubuntu PDF rendering library (GLib-based shared lib ii libpoppler3 0.8.7-1ubuntu1 PDF rendering library ii libpoppler4 0.10.3-0ubuntu PDF rendering library ii libpopt0 1.14-4 lib for parsing cmdline parameters ii libportaudio0 18.1-7.1 Portable audio I/O - shared library ii libpostproc51 3:0.svn2009011 ffmpeg video postprocessing library ii libpq-dev 8.3.5-2 header files for libpq5 (PostgreSQL library) ii libpq5 8.3.5-2 PostgreSQL C client library ii libproc-waitst 1.00-4 interpret and act on wait() status values ii libproxy0 0.2.3-0ubuntu3 automatic proxy configuration management lib rc libpt-1.10.10 1.10.10-2ubunt Portable Windows Library ii libpt-1.10.10- 1.10.10-2ubunt Portable Windows Library Video Plugin for Vi ii libpt-1.10.10- 1.10.10-2ubunt Portable Windows Library Video Plugin for Vi ii libpt2.4.2 2.4.2-2ubuntu1 Portable Tools Library ii libpt2.4.2-plu 2.4.2-2ubuntu1 PTLib audio plugin for the ALSA Interface ii libpt2.4.2-plu 2.4.2-2ubuntu1 Portable Tools Library video plugin for Vide ii libpth20 2.0.7-12 The GNU Portable Threads ii libpthread-stu 0.1-2 pthread stubs not provided by native libc ii libpthread-stu 0.1-2 pthread stubs not provided by native libc, d ii libpulse-brows 0.9.14-0ubuntu PulseAudio client libraries (zeroconf suppor ii libpulse-mainl 0.9.14-0ubuntu PulseAudio client libraries (glib support) ii libpulse0 0.9.14-0ubuntu PulseAudio client libraries rc libpulsecore5 0.9.10-2ubuntu PulseAudio sound server core rc libpulsecore8 0.9.13-2ubuntu PulseAudio sound server core ii libpulsecore9 0.9.14-0ubuntu PulseAudio sound server core ii libpurple0 1:2.5.3-0ubunt multi-protocol instant messaging library ii libpvm3 3.4.5-11 Parallel Virtual Machine - shared libraries ii libqhull5 2003.1-11 calculate convex hulls and related structure ii libqscintilla7 1.7.1-2 Qt source code editing component based on Sc ii libqt3-compat- 3:3.3.8-b-5ubu Qt 1.x and 2.x compatibility includes ii libqt3-headers 3:3.3.8-b-5ubu Qt3 header files ii libqt3-mt 3:3.3.8-b-5ubu Qt GUI Library (Threaded runtime version), V ii libqt3-mt-dev 3:3.3.8-b-5ubu Qt development files (Threaded) ii libqt3-mt-psql 3:3.3.8-b-5ubu PostgreSQL database driver for Qt3 (Threaded ii libqt4-dbus 4.4.3-2ubuntu1 Qt 4 D-Bus module ii libqt4-designe 4.4.3-2ubuntu1 Qt 4 designer module ii libqt4-network 4.4.3-2ubuntu1 Qt 4 network module ii libqt4-opengl 4.4.3-2ubuntu1 Qt 4 OpenGL module ii libqt4-qt3supp 4.4.3-2ubuntu1 Qt 3 compatibility library for Qt 4 ii libqt4-script 4.4.3-2ubuntu1 Qt 4 script module ii libqt4-sql 4.4.3-2ubuntu1 Qt 4 SQL module ii libqt4-svg 4.4.3-2ubuntu1 Qt 4 SVG module ii libqt4-webkit 4.4.3-2ubuntu1 Qt 4 WebKit module ii libqt4-xml 4.4.3-2ubuntu1 Qt 4 XML module ii libqtcore4 4.4.3-2ubuntu1 Qt 4 core module ii libqtgui4 4.4.3-2ubuntu1 Qt 4 GUI module ii libqthreads-12 1.6.8-6.1ubunt QuickThreads library for Guile ii libquicktime1 2:1.1.0+debian library for reading and writing Quicktime fi ii libraptor1 1.4.18-1 Raptor RDF parser and serializer library ii librarian0 0.8.1-1ubuntu2 Rarian is a documentation meta-data library rc librasqal0 0.9.15-2 Rasqal RDF query library ii librasqal1 0.9.16-1 Rasqal RDF query library ii libraw1394-8 1.3.0-4ubuntu1 library for direct access to IEEE 1394 bus ( ii librdf0 1.0.8-1 Redland Resource Description Framework (RDF) ii libreadline-ja 0.8.0.1-8.1ubu GNU readline and BSD editline wrappers for J ii libreadline5 5.2-3build1 GNU readline and history libraries, run-time ii librecode0 3.6-15 Shared library on which recode is based ii libregexp-java 1.4-5ubuntu1 regular expression library for Java ii librfxswf-dev 0.8.1-2.1 RFXSWF library for SWF (Flash) generation ii librpc-xml-per 0.64-1 Perl module implementation of XML-RPC ii librpm4.4 4.4.2.3-2 RPM shared library ii librrd2 1.2.27-2ubuntu Time-series data storage and display system ii librrd2-dev 1.2.27-2ubuntu Time-series data storage and display system ii librrd4 1.3.1-4 Time-series data storage and display system ii librrdp-perl 1.3.1-4 Time-series data storage and display system ii librrds-perl 1.3.1-4 Time-series data storage and display system ii librsvg2-2 2.22.3-1 SAX-based renderer library for SVG files (ru ii librsvg2-commo 2.22.3-1 SAX-based renderer library for SVG files (ex ii librsvg2-dev 2.22.3-1 SAX-based renderer library for SVG files (de ii libruby 4.2 Libraries necessary to run Ruby 1.8.x ii libruby1.8 1.8.7.72-3 Libraries necessary to run Ruby 1.8 ii libsamplerate0 0.1.4-1 audio rate conversion library ii libsane 1.0.19-23ubunt API library for scanners ii libsasl2-2 2.1.22.dfsg1-2 Cyrus SASL - authentication abstraction libr ii libsasl2-modul 2.1.22.dfsg1-2 Cyrus SASL - pluggable authentication module ii libsaxonb-java 9.0.0.4+svn200 The Saxon-B XSLT Processor ii libschroedinge 1.0.5-1 library for encoding/decoding of Dirac video ii libscim8c2a 1.4.7-3ubuntu1 library for SCIM platform ii libscrollkeepe 0.3.14-16ubunt Library to load .omf files (runtime files) ii libsctp1 1.0.9.dfsg-1 user-space access to Linux Kernel SCTP - sha ii libsdl1.2debia 1.2.13-4ubuntu Simple DirectMedia Layer ii libsdl1.2debia 1.2.13-4ubuntu Simple DirectMedia Layer (with X11 and ALSA ii libselinux1 2.0.65-5 SELinux shared libraries ii libselinux1-de 2.0.65-5 SELinux development headers ii libsensors3 1:2.10.7-1 library to read temperature/voltage/fan sens ii libsepol1 2.0.30-2 Security Enhanced Linux policy library for c ii libsepol1-dev 2.0.30-2 Security Enhanced Linux policy library and d ii libservlet2.3- 4.0-10ubuntu3 Servlet 2.3 and JSP 1.2 Java classes and doc ii libservlet2.4- 5.0.30-8ubuntu Servlet 2.4 and JSP 2.0 Java library. ii libsexy2 0.1.11-2 collection of additional GTK+ widgets - libr ii libsexymm2 0.1.9-3 collection of additional gtkmm widgets - lib ii libsgutils1 1.24-2 Utilities for working with generic SCSI devi ii libshout3 2.2.2-5 MP3/Ogg Vorbis broadcast streaming library ii libsidplay1 1.36.59-5 SID (MOS 6581) emulation library ii libsigc++-2.0- 2.0.18-2 type-safe Signal Framework for C++ - runtime ii libsigc++-2.0- 2.0.18-2 type-safe Signal Framework for C++ - develop ii libsigc++-2.0- 2.0.18-2 type-safe Signal Framework for C++ - referen ii libsilc-1.1-2 1.1.7-2ubuntu1 SILC library (silc-toolkit) ii libsimpledb-de 1.5-1.4 C++ ODBC database API ii libsimpledb2 1.5-1.4 C++ ODBC database API ii libslang2 2.1.3-3ubuntu3 The S-Lang programming library - runtime ver ii libslp1 1.2.1-7.5 OpenSLP libraries ii libsm-dev 2:1.1.0-1 X11 Session Management library (development ii libsm6 2:1.1.0-1 X11 Session Management library ii libsmbclient 2:3.2.5-4ubunt shared library that allows applications to t ii libsmbios2 2.0.3.dfsg-1 Provide access to (SM)BIOS information -- dy ii libsndfile1 1.0.17-4 Library for reading/writing audio files ii libsnmp-base 5.4.1~dfsg-12u SNMP (Simple Network Management Protocol) MI ii libsnmp15 5.4.1~dfsg-12u SNMP (Simple Network Management Protocol) li ii libsoprano4 2.1.67+dfsg.1+ libraries for the Soprano RDF framework ii libsoundtouch1 1.3.1-2 sound stretching library ii libsoup-gnome2 2.25.5-0ubuntu an HTTP library implementation in C -- Share ii libsoup2.2-8 2.2.105-4build an HTTP library implementation in C -- Share ii libsoup2.4-1 2.25.5-0ubuntu an HTTP library implementation in C -- Share ii libspectre1 0.2.2.ds-1 Library for rendering Postscript documents ii libspeex1 1.2~rc1-1 The Speex codec runtime library ii libspeexdsp1 1.2~rc1-1 The Speex extended runtime library ii libspread-perl 3.17.4-2ubuntu Perl bindings for the Spread messaging servi ii libspread-sess 0.4-1 OO wrapper for Spread messaging toolkit ii libspread1 3.17.4-2ubuntu C library for the Spread messaging service ii libspread1-dev 3.17.4-2ubuntu Development files for libspread ii libsqlite0 2.8.17-4build1 SQLite shared library ii libsqlite3-0 3.6.10-1 SQLite 3 shared library ii libsqlite3-dev 3.6.10-1 SQLite 3 development files ii libsqlxx-2.3c2 2.3.2-5build1 C++ classes for database access via ODBC ii libsqlxx-dev 2.3.2-5build1 C++ classes for database access via ODBC ii libss2 1.41.3-1ubuntu command-line interface parsing library ii libssl-dev 0.9.8g-15ubunt SSL development libraries, header files and ii libssl0.9.8 0.9.8g-15ubunt SSL shared libraries ii libssl0.9.8-db 0.9.8g-15ubunt Symbol tables for libssl and libcrypto ii libstartup-not 0.9-1 library for program launch feedback (shared ii libstdc++5 1:3.3.6-17ubun The GNU Standard C++ Library v3 ii libstdc++6 4.3.3-3ubuntu1 The GNU Standard C++ Library v3 ii libstdc++6-4.1 4.1.2-24ubuntu The GNU Standard C++ Library v3 (development ii libstdc++6-4.1 4.1.2-24ubuntu The GNU Standard C++ Library v3 (documentati ii libstdc++6-4.2 4.2.4-5ubuntu1 The GNU Standard C++ Library v3 (development ii libstdc++6-4.3 4.3.3-3ubuntu1 The GNU Standard C++ Library v3 (debugging f ii libstdc++6-4.3 4.3.3-3ubuntu1 The GNU Standard C++ Library v3 (development ii libstlport4.6l 4.6.2-3.2 STLport C++ class library ii libstlport5.1 5.1.3-1 STLport C++ class library ii libstreamanaly 0.6.4-0ubuntu1 streamanalyzer library for Strigi Desktop Se ii libstreams0 0.6.4-0ubuntu1 streams library for for Strigi Desktop Searc rc libstrigiqtdbu 0.6.2-0ubuntu1 library for writing D-Bus clients for Strigi ii libstrutilsxx- 0.7.2-1.3 Useful additional C++ string processing func ii libstrutilsxx- 0.7.2-1.3 Useful additional C++ string processing func ii libsuitesparse 1:3.1.0-3.1 collection of libraries for computations for ii libsuperlu3 3.0+20070106-3 Direct solution of large, sparse systems of ii libsvn1 1.5.4dfsg1-1ub Shared libraries used by Subversion ii libswfdec-0.8- 0.8.4-1 SWF (Macromedia Flash) decoder library ii libswscale0 3:0.svn2009011 ffmpeg video scaling library ii libswt3.2-gtk- 3.2.2-5ubuntu3 Fast and rich GUI toolkit for Java, gtk2 ver ii libswt3.2-gtk- 3.2.2-5ubuntu3 Platform dependent files for libswt3.2-gtk-j ii libsybdb5 0.82-4 libraries for connecting to MS SQL and Sybas ii libsyck0-dev 0.55+svn270-1 YAML parser kit -- development files ii libsysfs-dev 2.1.0-5 interface library to sysfs - development fil ii libsysfs2 2.1.0-5 interface library to sysfs ii libt1-5 5.1.2-3 Type 1 font rasterizer library - runtime ii libt1-dev 5.1.2-3 Type 1 font rasterizer library - development ii libtag1c2a 1.5-3 TagLib Audio Meta-Data Library ii libtalloc1 1.2.0~git20080 hierarchical pool based memory allocator ii libtasn1-3 1.5-1 Manage ASN.1 structures (runtime) ii libtasn1-3-dev 1.5-1 Manage ASN.1 structures (development) ii libtcmalloc-mi 0.98-1 an efficient thread-caching malloc ii libtdb1 1.1.3~git20081 Trivial Database - shared library ii libtemplate-pe 2.20-1 template processing system written in perl ii libtemplate-pl 1.22-4 simple Template Toolkit Plugin Interface to ii libterm-readke 2.30-4 A perl module for simple terminal control ii libterm-readli 1.0302-1 Perl implementation of Readline libraries ii libtext-charwi 0.04-5build1 get display widths of characters on the term ii libtext-format 0.52-21 Perl module for formatting (text) paragraphs ii libtext-iconv- 1.7-1build1 converts between character sets in Perl ii libtext-wrapi1 0.06-6 internationalized substitute of Text::Wrap ii libthai-data 0.1.9-4 Data files for Thai language support library ii libthai0 0.1.9-4 Thai language support library ii libtheora0 1.0~beta3-1 The Theora Video Compression Codec ii libtidy-0.99-0 20081224cvs-1 HTML syntax checker and reformatter - librar ii libtiff4 3.8.2-11 Tag Image File Format (TIFF) library ii libtimedate-pe 1.1600-9 Time and date functions for Perl ii libtomcat5.5-j 5.5.26-5ubuntu Java Servlet engine -- core libraries ii libtool 2.2.6a-1ubuntu Generic library support script ii libtool-doc 2.2.6a-1ubuntu Generic library support script ii libtotem-plpar 2.25.1-0ubuntu Totem Playlist Parser library - runtime vers ii libtracker-gtk 0.6.6-2ubuntu2 GTK+ widgets for apps that use tracker ii libtrackerclie 0.6.6-2ubuntu2 metadata database, indexer and search tool - ii libts-0.0-0 1.0-4ubuntu2 touch screen library ii libtubo1 4.5.0-0ubuntu2 Interprocess Communication library ii libtwolame0 0.3.12-1 MPEG Audio Layer 2 encoding library ii libungif4g 4.1.6-6 library for GIF images (transitional package ii libunicode-map 0.112-10build1 Perl module for mapping charsets from and to ii libunicode-map 0.12-3build2 Perl module to map 8bit character sets to Un ii libunicode-map 1.11-2 Perl module for conversing between any chara ii libunicode-str 2.09-3build2 Perl modules for Unicode strings ii libuniconf4.4 4.4.1-0.2ubunt C++ network libraries for rapid application ii libunique-1.0- 1.0.6-0ubuntu1 Library for writing single instance applicat ii libunix-syslog 1.1-2 Perl interface to the UNIX syslog(3) calls ii liburi-perl 1.37+dfsg-1ubu Manipulates and accesses URI strings ii libusb-0.1-4 2:0.1.12-13 userspace USB programming library ii libusplash0 0.5.27 userspace bootsplash library ii libuuid-perl 0.02-3build1 Perl extension for using UUID interfaces as ii libuuid1 1.41.3-1ubuntu universally unique id library ii libv4l-0 0.5.8-1 Collection of video4linux support libraries ii libview2 0.6.2-1 VMware's Incredibly Exciting Widgets ii libvisual-0.4- 0.4.0-2.1+buil Audio visualization framework ii libvisual-0.4- 0.4.0.dfsg.1-2 Audio visualization framework plugins ii libvolume-id0 124-9 volume identification library ii libvolume-id1 137-2 volume identification library ii libvorbis0a 1.2.0.dfsg-3.1 The Vorbis General Audio Compression Codec ii libvorbisenc2 1.2.0.dfsg-3.1 The Vorbis General Audio Compression Codec ii libvorbisfile3 1.2.0.dfsg-3.1 The Vorbis General Audio Compression Codec ii libvte-common 1:0.19.4-0ubun Terminal emulator widget for GTK+ 2.0 - comm ii libvte0.16-cil 2.20.1-2ubuntu CLI binding for VTE 0.16 ii libvte9 1:0.19.4-0ubun Terminal emulator widget for GTK+ 2.0 - runt ii libwavpack1 4.50.1-1 an audio codec (lossy and lossless) - librar ii libwbclient0 2:3.2.5-4ubunt client library for interfacing with winbind ii libwebkit-1.0- 1.0.1-4 Web content engine library for Gtk+ ii libwildmidi0 0.2.2-2 software MIDI player library ii libwmf0.2-7 0.2.8.4-6ubunt Windows metafile conversion library ii libwmf0.2-7-gt 0.2.8.4-6ubunt Windows metafile conversion library ii libwnck-common 2.25.5-0ubuntu Window Navigator Construction Kit - common f ii libwnck22 2.25.5-0ubuntu Window Navigator Construction Kit - runtime ii libwpd8c2a 0.8.14-1 Library for handling WordPerfect documents ( ii libwpg-0.1-1 0.1.3-1 WordPerfect graphics import/convert library ii libwps-0.1-1 0.1.2-1 Works text file format import filter library ii libwrap0 7.6.q-16 Wietse Venema's TCP wrappers library ii libws-commons- 1.0.1-3 Common utilities from the Apache Web Service ii libwvstreams4. 4.4.1-0.2ubunt C++ network libraries for rapid application ii libwvstreams4. 4.4.1-0.2ubunt C++ network libraries for rapid application ii libwww-doc 0.20060330 The W3C WWW library - documentation ii libwww-perl 5.820-1 WWW client/server library for Perl (aka LWP) ii libwww-ssl-dev 5.4.0-11build2 The W3C WWW library - development files (SSL ii libwww-ssl0 5.4.0-11build2 The W3C-WWW library (SSL support) ii libwxbase2.6-0 2.6.3.2.2-3ubu wxBase library (runtime) - non-GUI support c ii libwxbase2.8-0 2.8.9.1-0ubunt wxBase library (runtime) - non-GUI support c ii libwxgtk2.6-0 2.6.3.2.2-3ubu wxWidgets Cross-platform C++ GUI toolkit (GT ii libwxgtk2.8-0 2.8.9.1-0ubunt wxWidgets Cross-platform C++ GUI toolkit (GT ii libx11-6 2:1.1.99.2-1ub X11 client-side library ii libx11-data 2:1.1.99.2-1ub X11 client-side library ii libx11-dev 2:1.1.99.2-1ub X11 client-side library (development headers ii libx11-xcb1 2:1.1.99.2-1ub Xlib/XCB interface library ii libx264-59 1:0.svn2008040 x264 video coding library ii libx264-65 1:0.svn2008123 x264 video coding library ii libx86-1 1.1+ds1-2 x86 real-mode library ii libxalan2-java 2.7.1-2 XSL Transformations (XSLT) processor in Java ii libxapian15 1.0.7-4 Search engine library ii libxau-dev 1:1.0.4-1 X11 authorisation library (development heade ii libxau6 1:1.0.4-1 X11 authorisation library ii libxaw7 2:1.0.5-1 X11 Athena Widget library ii libxaw7-dev 2:1.0.5-1 X11 Athena Widget library (development heade ii libxcb-render- 0.2.1+git1-1 utility libraries for X C Binding -- render- ii libxcb-render- 0.2.1+git1-1 utility libraries for X C Binding -- render- ii libxcb-render0 1.1.93-0ubuntu X C Binding, render extension ii libxcb-render0 1.1.93-0ubuntu X C Binding, render extension, development f ii libxcb-shape0 1.1.93-0ubuntu X C Binding, shape extension ii libxcb-shm0 1.1.93-0ubuntu X C Binding, shm extension rc libxcb-xlib0 1.1-1.1 X C Binding, Xlib/XCB interface library ii libxcb-xv0 1.1.93-0ubuntu X C Binding, xv extension ii libxcb1 1.1.93-0ubuntu X C Binding ii libxcb1-dev 1.1.93-0ubuntu X C Binding, development files ii libxcomposite- 1:0.4.0-3 X11 Composite extension library (development ii libxcomposite1 1:0.4.0-3 X11 Composite extension library ii libxcursor-dev 1:1.1.9-1 X cursor management library (development fil ii libxcursor1 1:1.1.9-1 X cursor management library ii libxdamage-dev 1:1.1.1-4 X11 damaged region extension library (develo ii libxdamage1 1:1.1.1-4 X11 damaged region extension library ii libxdmcp-dev 1:1.0.2-3 X11 authorisation library (development heade ii libxdmcp6 1:1.0.2-3 X11 Display Manager Control Protocol library ii libxerces2-jav 2.9.1-2ubuntu2 Validating XML parser for Java with DOM leve ii libxevie1 1:1.0.2-3 X11 EvIE extension library ii libxext-dev 2:1.0.4-1 X11 miscellaneous extensions library (develo ii libxext6 2:1.0.4-1 X11 miscellaneous extension library ii libxfixes-dev 1:4.0.3-2 X11 miscellaneous 'fixes' extension library ii libxfixes3 1:4.0.3-2 X11 miscellaneous 'fixes' extension library ii libxfont1 1:1.3.3-1ubunt X11 font rasterisation library ii libxft-dev 2.1.13-2ubuntu FreeType-based font drawing library for X (d ii libxft2 2.1.13-2ubuntu FreeType-based font drawing library for X ii libxi-dev 2:1.2.0-1ubunt X11 Input extension library (development hea ii libxi6 2:1.2.0-1ubunt X11 Input extension library ii libxine1 1.1.16.1-2ubun the xine video/media player library, meta-pa ii libxine1-bin 1.1.16.1-2ubun the xine video/media player library, binary ii libxine1-conso 1.1.16.1-2ubun libaa/libcaca/framebuffer/directfb related p ii libxine1-misc- 1.1.16.1-2ubun Input, audio output and post plugins for lib ii libxine1-x 1.1.16.1-2ubun X desktop video output plugins for libxine1 ii libxinerama-de 2:1.0.3-2 X11 Xinerama extension library (development ii libxinerama1 2:1.0.3-2 X11 Xinerama extension library ii libxkbfile1 1:1.0.5-1ubunt X11 keyboard file manipulation library ii libxklavier11 3.3-1 X Keyboard Extension high-level API ii libxklavier12 3.8-0ubuntu1 X Keyboard Extension high-level API ii libxml++1.0-de 1.0.4-3 A C++ interface to the GNOME XML library (li ii libxml++1.0-do 1.0.4-3 HTML interface documentation and examples fo ii libxml++1.0c2a 1.0.4-3 A C++ interface to the GNOME XML library (li ii libxml++2.6-2 2.24.0-1ubuntu A C++ interface to the GNOME XML library (li ii libxml++2.6-de 2.24.0-1ubuntu A C++ interface to the GNOME XML library (li ii libxml++2.6-do 2.24.0-1ubuntu HTML interface documentation and examples fo ii libxml-dev 1:1.8.17-14.1 Development files for the GNOME XML library ii libxml-libxml- 0.13-6build2 Perl module for common routines & constants ii libxml-libxml- 1.69.ds-1 Perl module for using the GNOME libxml2 libr ii libxml-namespa 1.09-3 Perl module for supporting simple generic na ii libxml-parser- 2.36-1.1build2 Perl module for parsing XML files ii libxml-sax-per 0.16+dfsg-3 Perl module for using and building Perl SAX2 ii libxml-simple- 2.18-1 Perl module for reading and writing XML ii libxml-simpleo 0.53-1 Perl module which enhances libxml-simpleobje ii libxml-simpleo 0.53-1 Simple oo representation of an XML::LibXML D ii libxml-simpleo 0.53-1 Objectoriented Perl interface to a parsed XM ii libxml-stream- 1.22-3 Perl module for accessing XML Streams ii libxml-twig-pe 1:3.32-2 Perl module for processing huge XML document ii libxml-xpathen 0.11-1 a re-usable XPath engine for DOM-like trees ii libxml1 1:1.8.17-14.1 GNOME XML library ii libxml2 2.6.32.dfsg-5u GNOME XML library ii libxml2-dev 2.6.32.dfsg-5u Development files for the GNOME XML library ii libxml2-utils 2.6.32.dfsg-5u XML utilities ii libxmlrpc-c3 1.06.27-1 A lightweight RPC library based on XML and H ii libxmlrpc-c3-d 1.06.27-1 A lightweight RPC library based on XML and H ii libxmlrpc3-cli 3.1-2 XML-RPC implementation in Java (client side) ii libxmlrpc3-com 3.1-2 XML-RPC implementation in Java ii libxmlrpc3-jav 3.1-2 XML-RPC implementation in Java (API document ii libxmlrpc3-ser 3.1-2 XML-RPC implementation in Java (server side) ii libxmu-dev 2:1.0.4-1 X11 miscellaneous utility library (developme ii libxmu-headers 2:1.0.4-1 X11 miscellaneous utility library headers ii libxmu6 2:1.0.4-1 X11 miscellaneous utility library ii libxmuu1 2:1.0.4-1 X11 miscellaneous micro-utility library ii libxom-java 1.1-3 A new XML object model for Java ii libxp6 1:1.0.0.xsf1-2 X Printing Extension (Xprint) client library ii libxplc0.3.13 0.3.13-1build1 Light weight component system ii libxpm-dev 1:3.5.7-1 X11 pixmap library (development headers) ii libxpm4 1:3.5.7-1 X11 pixmap library ii libxpp2-java 2.1.10-4ubuntu XML pull parser library for java V2 ii libxpp3-java 1.1.3.4.O-4ubu XML pull parser library for java ii libxrandr-dev 2:1.2.99.4-1 X11 RandR extension library (development hea ii libxrandr2 2:1.2.99.4-1 X11 RandR extension library ii libxrender-dev 1:0.9.4-2 X Rendering Extension client library (develo ii libxrender1 1:0.9.4-2 X Rendering Extension client library ii libxres1 2:1.0.3-1 X11 Resource extension library ii libxslt1.1 1.1.24-2ubuntu XSLT processing library - runtime library ii libxss1 1:1.1.3-1 X11 Screen Saver extension library ii libxt-dev 1:1.0.5-3 X11 toolkit intrinsics library (development ii libxt6 1:1.0.5-3 X11 toolkit intrinsics library ii libxtrap6 2:1.0.0-5build X11 event trapping extension library ii libxtst6 2:1.0.3-1 X11 Testing -- Resource extension library ii libxul-common 1.8.1.16+nobin Gecko engine library - common files ii libxul0d 1.8.1.16+nobin Gecko engine library ii libxv1 2:1.0.4-1 X11 Video extension library ii libxvidcore4 2:1.1.2-0.1ubu High quality ISO MPEG4 codec library ii libxvmc1 2:1.0.4-2ubunt X11 Video extension library ii libxxf86dga1 2:1.0.2-1 X11 Direct Graphics Access extension library ii libxxf86misc1 1:1.0.1-3 X11 XFree86 miscellaneous extension library ii libxxf86vm1 1:1.0.2-1 X11 XFree86 video mode extension library ii libyaml-0-1 0.1.2-1 Fast YAML 1.1 parser and emitter library ii libyaml-perl 0.66-1 YAML Ain't Markup Language (tm) ii libyaml-ruby 4.2 transitional dummy package ii libyaml-syck-o 0.1.1-2build2 OCaml bindings for Syck, a YAML parser kit ii libyaml-syck-o 0.1.1-2build2 OCaml bindings for Syck, a YAML parser kit ii libyaml-syck-p 1.05-1 Fast, lightweight YAML loader and dumper ii libyaml-tiny-p 1.32-1 Read/Write YAML files with as little code as ii libzephyr3 2.1.20070719.S Project Athena's notification service - non- ii lintian 2.1.6 Debian package checker ii linux-firmware 1.5 Firmware for Linux kernel drivers ii linux-headers- 2.6.28-4.11 Header files related to Linux kernel version ii linux-headers- 2.6.28-4.11 Linux kernel headers for version 2.6.28 on x ii linux-headers- 2.6.28-5.15 Header files related to Linux kernel version ii linux-headers- 2.6.28-5.15 Linux kernel headers for version 2.6.28 on x ii linux-headers- 2.6.28-6.17 Header files related to Linux kernel version ii linux-headers- 2.6.28-6.17 Linux kernel headers for version 2.6.28 on x ii linux-headers- 2.6.28.6.6 Generic Linux kernel headers ii linux-image-2. 2.6.28-4.11 Linux kernel image for version 2.6.28 on x86 ii linux-image-2. 2.6.28-5.15 Linux kernel image for version 2.6.28 on x86 ii linux-image-2. 2.6.28-6.17 Linux kernel image for version 2.6.28 on x86 ii linux-image-ge 2.6.28.6.6 Generic Linux kernel image ii linux-libc-dev 2.6.28-6.17 Linux Kernel Headers for development ii linux-restrict 2.6.28-4.4 Non-free Linux kernel modules for version 2. ii linux-restrict 2.6.28-5.5 Non-free Linux kernel modules for version 2. ii linux-restrict 2.6.28-6.6 Non-free Linux kernel modules for version 2. ii linux-restrict 2.6.28-6.6 Non-free Linux 2.6.28 modules helper script ii linux-restrict 2.6.28.6.6 Restricted Linux modules for generic kernels ii linux-sound-ba 1.0.18.dfsg-1u base package for ALSA and OSS sound systems ii linux-source-2 2.6.28-6.17 Linux kernel source for version 2.6.28 with ii lksctp-tools 1.0.9.dfsg-1 user-space access to Linux Kernel SCTP - com ii lmodern 1.010x-5 scalable PostScript and OpenType fonts based ii locales 2.7.9-5 common files for locale support ii login 1:4.1.1-6ubunt system login tools ii logrotate 3.7.7-3ubuntu1 Log rotation utility ii lp-solve 5.5.0.13-3ubun Solve (mixed integer) linear programming pro ii lsb-base 3.2-20ubuntu2 Linux Standard Base 3.2 init script function ii lsb-release 3.2-20ubuntu2 Linux Standard Base version reporting utilit ii lshw 02.13-2ubuntu1 information about hardware configuration ii lsof 4.78.dfsg.1-4 List open files ii ltrace 0.5.1-2ubuntu1 Tracks runtime library calls in dynamically ii lynx 2.8.7dev11-2 Text-mode WWW Browser (transitional package) ii lynx-cur 2.8.7dev11-2 Text-mode WWW Browser with NLS support (deve ii lzma 4.43-14ubuntu1 Compression method of 7z format in 7-Zip pro ii m4 1.4.11-1 a macro processing language ii make 3.81-5 The GNU version of the "make" utility. ii make-doc 3.81-4 Documentation for the GNU version of the "ma ii makedev 2.3.1-88 creates device files in /dev ii man-db 2.5.3-3 on-line manual pager ii manpages 3.15-1 Manual pages about using a GNU/Linux system ii manpages-dev 3.15-1 Manual pages about using GNU/Linux for devel ii manpages-posix 2.16-1 Manual pages about using POSIX system ii manpages-posix 2.16-1 Manual pages about using a POSIX system for ii mawk 1.3.3-13ubuntu a pattern scanning and text processing langu ii mcpp 2.7.1 Alternative C/C++ preprocessor ii mdetect 0.5.2.1ubuntu4 mouse device autodetection tool ii mdns-scan 0.5-1 Scan for mDNS/DNS-SD services published on t ii memtest86+ 2.01-1.1ubuntu thorough real-mode memory tester ii mercurial 1.1.2-2 scalable distributed version control system ii mercurial-comm 1.1.2-2 scalable distributed version control system ii mesa-common-de 7.3-1ubuntu1 Developer documentation for Mesa ii mesa-utils 7.3-1ubuntu1 Miscellaneous Mesa GL utilities ii metacity 1:2.25.89-0ubu A lightweight GTK2 based Window Manager ii metacity-commo 1:2.25.89-0ubu Shared files of lightweight GTK2 based Windo ii mgdiff 1.0-29 xdiff clone ii mii-diag 2.11-2 A little tool to manipulate network cards ii mime-construct 1.9 construct/send MIME messages from the comman ii mime-support 3.44-1 MIME files 'mime.types' & 'mailcap', and sup ii min12xxw 0.0.9-1ubuntu1 Printer driver for KonicaMinolta PagePro 1[2 ii ming-fonts-ope 1:0.3.0-14 Ming format Opensymbol Fonts ii mkisofs 10:2.01.01a33- Creates ISO-9660 CD-ROM filesystem images ii mktemp 1.5-9 tool for creating temporary files ii mlocate 0.21.1-1ubuntu quickly find files on the filesystem based o ii mobile-broadba 20081015.1-0ub database of mobile broadband service provide ii module-assista 0.10.11ubuntu1 tool to make module package creation easier ii module-init-to 3.3-pre11-4ubu tools for managing Linux kernel modules ii mono-2.0-devel 2.0.1-0ubuntu3 Mono development tools for CLI 2.0 ii mono-2.0-gac 2.0.1-0ubuntu3 Mono GAC tool ii mono-2.0-runti 2.0.1-0ubuntu3 Mono runtime (2.0) ii mono-2.0-servi 2.0.1-0ubuntu3 Mono service manager for CLI 2.0 ii mono-common 2.0.1-0ubuntu3 common files for Mono ii mono-dbg 2.0.1-0ubuntu3 Mono debugging symbols ii mono-debugger 2.0-1 Debugger for Mono ii mono-devel 2.0.1-0ubuntu3 Mono development tools ii mono-gac 2.0.1-0ubuntu3 Mono GAC tool ii mono-gmcs 2.0.1-0ubuntu3 Mono C# 2.0 and C# 3.0 compiler for CLI 2.0 ii mono-jit 2.0.1-0ubuntu3 fast CLI JIT/AOT compiler for Mono ii mono-runtime 2.0.1-0ubuntu3 Mono runtime ii monodevelop 1.0+dfsg-4ubun C/C++/C#/Boo/Java/Nemerle/ILasm/ASP.NET Deve ii monodevelop-nu 1.0+dfsg-4ubun NUnit plugin for MonoDevelop ii monodevelop-ve 1.0+dfsg-4ubun VersionControl plugin for MonoDevelop ii monodoc 2.0-1ubuntu1 Mono documentation viewer ii monodoc-base 2.0-1ubuntu1 shared MonoDoc binaries ii monodoc-browse 2.0-0ubuntu2 MonoDoc GTK+ based viewer ii monodoc-http 2.0-1ubuntu1 MonoDoc http based viewer ii monodoc-manual 2.0-1ubuntu1 compiled XML documentation from the Mono pro ii monotone 0.40-7 A distributed version (revision) control sys ii monotone-doc 0.40-7 A distributed version (revision) control sys ii monotone-viz 1.0.1-1 visualize a monotone repository ii most 5.0.0a-1 Pager program similar to more and less ii mount 2.14-1ubuntu4 Tools for mounting and manipulating filesyst ii mousetweaks 2.25.90-0ubunt mouse accessibility enhancements for the GNO ii mozilla-firefo 2.0.0.7+1-0ubu Mozilla Firefox English language/region pack ii mscompress 0.3-3 Microsoft "compress.exe/expand.exe" compatib ii msttcorefonts 2.6 transitional dummy package ii mtasc 1.13-4 ActionScript 2 to Flash (SWF) compiler ii mtd-tools 20080508-1ubun dummy package for transition purposes ii mtd-utils 20080508-1ubun Memory Technology Device Utilities ii mtools 3.9.11-1 Tools for manipulating MSDOS files ii mtr-tiny 0.75-2 Full screen ncurses traceroute tool ii myspell-en-au 2.1-3.1 English_australian dictionary for myspell ii myspell-en-gb 1:2.4.0-2ubunt English_british dictionary for myspell ii myspell-en-za 1:2.4.0-2ubunt English_southafrican dictionary for myspell ii mysql-admin 5.0r12-1ubuntu GUI tool for intuitive MySQL administration ii mysql-client 5.1.30really5. MySQL database client (metapackage depending ii mysql-client-5 5.1.30really5. MySQL database client binaries ii mysql-common 5.1.30really5. MySQL database common files ii mysql-gui-tool 5.0r12-1ubuntu Architecture independent files for MySQL GUI ii mysql-query-br 5.0r12-1ubuntu Official GUI tool to query MySQL database ii mzclient 0.7.6-1 CLI library for multicast DNS service discov ii nano 2.0.7-4 free Pico clone with some new features ii nautilus 1:2.25.4-0ubun file manager and graphical shell for GNOME ii nautilus-cd-bu 2.24.0-0ubuntu CD Burning front-end for Nautilus ii nautilus-data 1:2.25.4-0ubun data files for nautilus ii nautilus-sendt 1.1.1-0ubuntu1 integrates Evolution and Pidgin into the Nau ii nautilus-share 0.7.2-0ubuntu7 Nautilus extension to share folder using Sam ii ncftp 2:3.2.1-1 A user-friendly and well-featured FTP client ii ncurses-base 5.7+20081220-1 basic terminal type definitions ii ncurses-bin 5.7+20081220-1 terminal-related programs and man pages ii nemerle 0.9.3+dfsg-2 Nemerle Compiler ii net-tools 1.60-21ubuntu1 The NET-3 networking toolkit ii netbase 4.34ubuntu1 Basic TCP/IP networking system ii netcat 1.10-38 TCP/IP swiss army knife -- transitional pack ii netcat-traditi 1.10-38 TCP/IP swiss army knife ii netpbm 2:10.0-12 Graphics conversion tools ii network-manage 0.7-0ubuntu1 network management framework daemon ii network-manage 0.7-0ubuntu1 network management framework (GNOME frontend ii nginx 0.6.34-2ubuntu small, but very powerful and efficient web s ii nickle 2.68-1 desk calculator language ii nload 0.6.0-3.1 A realtime console network usage monitor ii nmap 4.76-0ubuntu1 The Network Mapper ii notification-d 0.4.0-0ubuntu2 a daemon that displays passive pop-up notifi ii ntfs-3g 1:2009.1.1-0ub read-write NTFS driver for FUSE ii ntpdate 1:4.2.4p4+dfsg client for setting system time from NTP serv ii obex-data-serv 0.4.2-0ubuntu1 D-Bus service for OBEX client and server sid ii ocaml-base-nox 3.10.2-3ubuntu Runtime system for OCaml bytecode executable ii ocaml-findlib 1.2.1-5 Management tool for OCaml programming langua ii ocaml-interp 3.10.2-3ubuntu OCaml interactive interpreter and standard l ii ocaml-nox 3.10.2-3ubuntu ML language implementation with a class-base ii octave-plplot 5.9.0-8ubuntu1 Octave support for PLplot, a plotting librar ii octave3.0 1:3.0.1-6ubunt GNU Octave language for numerical computatio ii octplot 0.4.0-7build1 graphical interface for Octave ii odbcinst1debia 2.2.11-16build Support library and helper program for acces ii odt2txt 0.4-1 simple converter from OpenDocument Text to p ii onboard 0.91ubuntu2 Simple On-screen Keyboard ii open-vm-source 2008.11.18-130 Source for VMware guest systems driver ii open-vm-toolbo 2008.11.18-130 tools and components for VMware guest system ii open-vm-tools 2008.11.18-130 tools and components for VMware guest system ii openoffice.org 1:3.0.1-1ubunt OpenOffice.org Office suite ii openoffice.org 1:3.0.1-1ubunt OpenOffice.org office suite - database ii openoffice.org 1:3.0.1-1ubunt OpenOffice.org office suite -- libdba ii openoffice.org 1:3.0.1-1ubunt OpenOffice.org office suite - spreadsheet ii openoffice.org 1:3.0.1-1ubunt OpenOffice.org office suite architecture ind ii openoffice.org 1:3.0.1-1ubunt OpenOffice.org office suite architecture dep ii openoffice.org 1:3.0.1-1ubunt OpenOffice.org office suite - drawing ii openoffice.org 1:3.0.1-1ubunt Evolution Addressbook support for OpenOffice ii openoffice.org 1:3.0.1-1ubunt Legacy filters (e.g. StarOffice 5.2) for Ope ii openoffice.org 1:3.0.1-1ubunt Mobile Devices Filters for OpenOffice.org ii openoffice.org 1:3.0.1-1ubunt GNOME Integration for OpenOffice.org (VFS, G ii openoffice.org 1:3.0.1-1ubunt GTK+ Integration for OpenOffice.org (Widgets ii openoffice.org 1:3.0.1-1ubunt English_british help for OpenOffice.org ii openoffice.org 1:3.0.1-1ubunt English_american help for OpenOffice.org ii openoffice.org 0.3 Hyphenation patterns for OpenOffice.org ii openoffice.org 2.4-2ubuntu1 US English hyphenation patterns for OpenOffi ii openoffice.org 1:3.0.1-1ubunt OpenOffice.org office suite - presentation ii openoffice.org 1:3.0.1-1ubunt OpenOffice.org office suite Java support arc ii openoffice.org 1:3.0.1-1ubunt common files for OpenOffice.org language and ii openoffice.org 1:3.0.1-1ubunt English_british language package for OpenOff ii openoffice.org 1:3.0.1-1ubunt English_southafrican language package for Op ii openoffice.org 1:3.0.1-1ubunt OpenOffice.org office suite - equation edito ii openoffice.org 1:3.0.1-1ubunt OpenOffice.org Office Bean ii openoffice.org 1:3.0.1-1ubunt OpenOffice.org Report Builder extension - su ii openoffice.org 1:3.0.1-1ubunt Human symbol style for OpenOffice.org ii openoffice.org 2.1-3.1 Australian English Thesaurus for OpenOffice. ii openoffice.org 1:2.4.0-2ubunt English Thesaurus for OpenOffice.org ii openoffice.org 1:3.0.1-1ubunt OpenOffice.org office suite - word processor ii openoffice.org 0.5-8ubuntu1 Writer/Calc to LaTeX/XHTML converter extensi ii openprinting-p 20090115-0ubun OpenPrinting printer support - PostScript PP ii openssh-client 1:5.1p1-5ubunt secure shell client, an rlogin/rsh/rcp repla ii openssh-server 1:5.1p1-5ubunt secure shell server, an rshd replacement ii openssl 0.9.8g-15ubunt Secure Socket Layer (SSL) binary and related ii oprofile 0.9.3-2ubuntu1 system-wide profiler for Linux systems ii parted 1.8.8.git.2008 The GNU Parted disk partition resizing progr ii passwd 1:4.1.1-6ubunt change and administer password and group dat ii patch 2.5.9-5 Apply a diff file to an original ii patchutils 0.2.31-4 Utilities to work with patches ii pbuilder 0.183ubuntu1 personal package builder for Debian packages ii pciutils 1:3.0.0-4ubunt Linux PCI Utilities ii pcmciautils 014-4ubuntu2 PCMCIA utilities for Linux 2.6 ii perl 5.10.0-19ubunt Larry Wall's Practical Extraction and Report ii perl-base 5.10.0-19ubunt minimal Perl system ii perl-doc 5.10.0-19ubunt Perl documentation ii perl-modules 5.10.0-19ubunt Core Perl modules ii pgf 2.00-1 TeX Portable Graphic Format ii phonon-backend 4:4.3.0-0ubunt Phonon GStreamer 0.10.x backend ii pidgin 1:2.5.3-0ubunt graphical multi-protocol instant messaging c ii pidgin-data 1:2.5.3-0ubunt multi-protocol instant messaging client - da ii pidgin-otr 3.2.0-2 Off-the-Record Messaging plugin for pidgin ii pkg-config 0.22-1 manage compile and link flags for libraries ii ploticus 2.40-3 script driven business graphics package ii plplot-tcl 5.9.0-8ubuntu1 Tcl/Tk support for PLplot, a plotting librar ii plplot9-driver 5.9.0-8ubuntu1 Scientific plotting library (Cairo driver) ii plplot9-driver 5.9.0-8ubuntu1 Scientific plotting library (GD driver) ii plplot9-driver 5.9.0-8ubuntu1 Scientific plotting library (GNOME Canvas Wi ii plplot9-driver 5.9.0-8ubuntu1 Scientific plotting library (wxWidgets drive ii plplot9-driver 5.9.0-8ubuntu1 Scientific plotting library (X11 driver) ii pm-utils 1.2.2.1-0ubunt utilities and scripts for power management ii pngtools 0.3-2 series of tools for PNG (Portable Network Gr ii pnm2ppa 1.12-16.2ubunt PPM to PPA converter ii po-debconf 1.0.15ubuntu1 manage translated Debconf templates files wi ii policykit 0.9-2ubuntu1 framework for managing administrative polici ii policykit-gnom 0.9-1ubuntu1 GNOME dialogs for PolicyKit ii poppler-utils 0.10.3-0ubuntu PDF utilitites (based on libpoppler) ii popularity-con 1.46ubuntu1 Vote for your favourite packages automatical ii povray 1:3.6.1-12 Persistence of vision raytracer (3D renderer ii povray-doc 1:3.6.1-12 Persistence of vision raytracer (3D renderer ii povray-example 1:3.6.1-12 Persistence of vision raytracer (3D renderer ii povray-include 1:3.6.1-12 Persistance of vision raytracer (3D renderer ii powermanagemen 0.3.19 platform neutral powermanagement interface ii powermgmt-base 1.30+nmu1 Common utils and configs for power managemen ii ppp 2.4.4rel-10ubu Point-to-Point Protocol (PPP) - daemon ii pppconfig 2.3.18ubuntu1 A text menu based utility for configuring pp ii pppoeconf 1.18ubuntu1 configures PPPoE/ADSL connections ii prelink 0.0.20071009-1 ELF prelinking utility to speed up dynamic l ii preview-latex- 11.84-0ubuntu2 LaTeX style files for editor embedded previe ii procps 1:3.2.7-9ubunt /proc file system utilities ii prosper 1.00.4+cvs.200 LaTeX class for writing transparencies ii ps2eps 1.64-5 convert PostScript to EPS (Encapsulated Post ii psmisc 22.6-1 Utilities that use the proc filesystem ii psutils 1.17-26 A collection of PostScript document handling ii pulseaudio 0.9.14-0ubuntu PulseAudio sound server ii pulseaudio-eso 0.9.14-0ubuntu PulseAudio ESD compatibility layer ii pulseaudio-mod 0.9.14-0ubuntu GConf module for PulseAudio sound server ii pulseaudio-mod 0.9.14-0ubuntu HAL device detection module for PulseAudio s ii pulseaudio-mod 0.9.14-0ubuntu X11 module for PulseAudio sound server ii pulseaudio-uti 0.9.14-0ubuntu Command line tools for the PulseAudio sound ii pvm 3.4.5-11 Parallel Virtual Machine - binaries ii pxljr 1.1-0ubuntu4 Driver for HP's Color LaserJet 35xx/36xx col ii pychecker 0.8.18-1 Finds common bugs in python source code ii pylint 0.15.2-1 python code static checker rc pyro 3.7-2 distributed object system for Python ii python 2.5.2-3ubuntu1 An interactive high-level object-oriented la ii python-4suite- 1.0.2-5 An open-source platform for XML and RDF proc ii python-all 2.5.2-3ubuntu1 Package depending on all supported Python ru ii python-all-dev 2.5.2-3ubuntu1 Package depending on all supported Python de ii python-amqplib 0.5-1 AMQP Client Library ii python-apport 0.129 apport crash report handling library ii python-apsw 3.5.9-r2-1 another Python SQLite 3 wrapper ii python-apt 0.7.9~exp2ubun Python interface to libapt-pkg ii python-asynque 0.3-1 asynchronous task queueing based on the Twis ii python-at-spi 0.6.1-1ubuntu2 Assistive Technology Service Provider Interf ii python-authkit 0.4.1~r143-1 authentication and authorisation framework f ii python-axiom 0.5.26-1 a Python object database ii python-beaker 1.1.2-1 Simple WSGI middleware that uses the Myghty ii python-bittorr 3.4.2-11.1ubun Scatter-gather network file transfer ii python-brlapi 3.10-0ubuntu3 Python bindings for BrlAPI ii python-cairo 1.4.12-1.1 Python bindings for the Cairo vector graphic ii python-cairo-d 1.4.12-1.1 Python cairo bindings: development files ii python-celemen 1.0.5-10 Light-weight toolkit for XML processing ii python-central 0.6.7ubuntu1 register and build utility for Python packag ii python-chardet 1.0.1-1.1 universal character encoding detector ii python-cheetah 2.0.1-2 text-based template engine and Python code g ii python-cherryp 3.0.2-2 Python web development framework - version 3 ii python-cjson 1.0.5-1 Very fast JSON encoder/decoder for Python ii python-cjson-d 1.0.5-1 Very fast JSON encoder/decoder for Python (d ii python-coheren 0.5.8-1 Python UPnP framework ii python-configo 4.5.3-1 a simple but powerful config file reader and ii python-crypto 2.0.1+dfsg1-2. cryptographic algorithms and protocols for P ii python-crypto- 2.0.1+dfsg1-2. cryptographic algorithms and protocols for P ii python-ctypes 1.0.2-6ubuntu1 Python package to create and manipulate C da ii python-cups 1.9.45-0ubuntu Python bindings for CUPS ii python-cupshel 1.1.2+git20090 Python modules for printer configuration wit ii python-dateuti 1.4.1-2 powerful extensions to the standard datetime ii python-dbg 2.5.2-3ubuntu1 Debug Build of the Python Interpreter (versi ii python-dbus 0.83.0-1 simple interprocess messaging system (Python ii python-dbus-db 0.83.0-1 Debug build of the D-Bus Python interface ii python-dbus-do 0.83.0-1 Documentation for the D-Bus Python interface ii python-debian 0.1.12 Python modules to work with Debian-related d ii python-decorat 2.3.1-1 simplify usage of python decorators by progr ii python-decorat 1.7-3 version-agnostic decorators support for Pyth ii python-dev 2.5.2-3ubuntu1 Header files and a static library for Python ii python-dispatc 0.5a.svn200805 Rule and type-based generic dispatching for ii python-distuti 1.91.2 enhancements to the Python build system ii python-django 1.0.2-1 A high-level Python Web framework ii python-dns 2.3.3-2 pydns - DNS client module for Python ii python-dnspyth 1.6.0-1.1 DNS toolkit for Python ii python-doc 2.5.2-3ubuntu1 Documentation for the high-level object-orie ii python-docutil 0.5-2 Utilities for the documentation of Python mo ii python-egenix- 3.1.1-1 development files for the egenix-mx-base dis ii python-egenix- 3.1.1-1 date and time handling routines for Python ii python-egenix- 3.1.1-1 collection of additional builtins for Python ii python-element 1.2.6-12 Light-weight toolkit for XML processing ii python-elixir 0.6.0-1 Declarative Mapper for SQLAlchemy ii python-epsilon 0.5.9-1 utility Python modules commonly used by Divm ii python-exceler 0.6.3a-3.1 module for reading/writing Excel spreadsheet ii python-feedpar 4.1-12 Universal Feed Parser for Python ii python-flup 1.0-1 Implements Python Web Server Gateway Interfa ii python-formenc 1.0.1-1 validation and form generation Python packag ii python-fpconst 0.7.2-4 Utilities for handling IEEE 754 floating poi ii python-fstab 1.3-0ubuntu1 read, manipulate, and write /etc/fstab files ii python-gconf 2.22.3-0ubuntu Python bindings for GConf2 ii python-gdata 1.1.1-1 Google Data Python client library ii python-gdbm 2.5.2-1ubuntu1 GNU dbm database support for Python ii python-genshi 0.5.1-1 Python XML-based template engine ii python-glade2 2.13.0-2ubuntu GTK+ bindings: Glade support ii python-gmenu 2.25.5-0ubuntu an implementation of the freedesktop menu sp ii python-gnome2 2.22.3-0ubuntu Python bindings for the GNOME desktop enviro ii python-gnome2- 2.24.1-0ubuntu Python bindings for the GNOME desktop enviro ii python-gnome2- 2.19.1-0ubuntu Python bindings for the GNOME desktop enviro ii python-gnomeca 2.22.3-0ubuntu Python bindings for gnomecanvas (debug exten ii python-gnupgin 0.3.2-9ubuntu1 Python interface to GnuPG (GPG) ii python-gnuplot 1.8-1 A Python interface to the gnuplot plotting p ii python-gobject 2.15.4-1 Python bindings for the GObject library ii python-gobject 2.15.4-1 Python bindings for the GObject library (deb ii python-gobject 2.15.4-1 Development headers for the GObject Python b ii python-gpod 0.6.0-7 Python bindings for libgpod ii python-gst0.10 0.10.14-1 generic media-playing framework (Python bind ii python-gtk2 2.13.0-2ubuntu Python bindings for the GTK+ widget set ii python-gtkhtml 2.19.1-0ubuntu Python bindings for the GtkHTML2 library ii python-gtksour 2.4.0-1 Python bindings for the GtkSourceView widget ii python-httplib 0.4.0-0ubuntu1 A comprehensive HTTP client library written ii python-imaging 1.1.6-3 Python Imaging Library ii python-imaging 1.1.6-3 Examples for the Python Imaging Library ii python-imaging 1.1.6-3 Python Imaging Library - ImageTk Module ii python-jabber 0.5.0-1.4 Python module for the Jabber instant messagi ii python-jaxml 3.01-5 Python module for generating XML documents ii python-json 3.4-4 a JSON (http://json.org) reader and writer i ii python-kid 0.9.6-1 simple Pythonic template language for XML ba ii python-launchp 0.3.2 simple Python Interface to Bugs in Launchpad ii python-launchp 0.1.21 library for launchpad integration ii python-launchp 0.2~bzr29-0ubu Launchpad web services client library ii python-libxml2 2.6.32.dfsg-5u Python bindings for the GNOME XML library ii python-ll-core 1.11.1-1 Python modules for colors, make, cron, daemo ii python-ll-xist 2.15.5-1.1ubun Extensible HTML and XML generator and DOM pa ii python-logilab 0.17.4-1 extend Python's abstract syntax tree (AST) ii python-logilab 0.36.1-1 useful miscellaneous modules used by Logilab ii python-louie 1.1-1.1 Python signal dispatching mechanism ii python-lxml 2.1.5-1 pythonic binding for the libxml2 and libxslt ii python-m2crypt 0.18.2-2 a crypto and SSL toolkit for Python ii python-mako 0.2.2-1 fast and lightweight templating for the Pyth ii python-matplot 0.98.5.2-1 Python based plotting system in a style simi ii python-matplot 0.98.5.2-1 Python based plotting system (data package) ii python-matplot 0.98.5.2-1 Python based plotting system (documentation ii python-medusa 0.5.4+clean-2u Framework for implementing asynchronous serv ii python-medusa- 0.5.4+clean-2u Framework for implementing asynchronous serv ii python-ming 1:0.3.0-14 Ming (SWF) module for Python ii python-minimal 2.5.2-3ubuntu1 A minimal subset of the Python language (def ii python-mutagen 1.14-1 audio metadata editing library ii python-myghty 1.1-3 Python based templating framework originally ii python-netcdf 2.4.11-2 A netCDF interface for Python ii python-nevow 0.9.31-4 Web application templating system for Python ii python-newt 0.52.2-11.3ubu A NEWT module for Python ii python-nose 0.10.3-1 test discovery and running for Python's unit ii python-notify 0.1.1-2build1 Python bindings for libnotify ii python-numeric 24.2-9 Numerical (matrix-oriented) Mathematics for ii python-numeric 24.2-9 Extension modules for Numeric Python ii python-numpy 1:1.1.1-2ubunt Numerical Python adds a fast array facility ii python-numpy-d 1:1.1.1-2ubunt NumPy documentation ii python-opengl 3.0.0~b6-2 Python bindings to OpenGL ii python-opengl- 3.0.0~b6-2 Documentation for PyOpenGL ii python-openid 2.2.1-1 OpenID support for servers and consumers ii python-openssl 0.7-2 Python wrapper around the OpenSSL library ii python-pam 0.4.2-12ubuntu A Python interface to the PAM library ii python-paste 1.7.1-1 Tools for using a Web Server Gateway Interfa ii python-pastede 1.3.2-1 Load, configure, and compose WSGI applicatio ii python-pastesc 1.6.3-1 serving web applications, creating file layo ii python-pastewe 1.0-3 port/reimplementation of Webware WebKit in W ii python-pexpect 2.3-1 Python module for automating interactive app ii python-pgsql 2.5.1-2ubuntu1 A Python DB-API 2.0 interface to PostgreSQL ii python-pkg-res 0.6c9-0ubuntu1 Package Discovery and Resource Access using ii python-plplot 5.9.0-8ubuntu1 Python support for PLplot, a plotting librar ii python-problem 0.129 Python library to handle problem reports ii python-profile 2.5.2-1 deterministic profiling of any Python progra ii python-protoco 1.0a.svn200706 Open Protocols and Component Adaptation for ii python-psycopg 2.0.8-0ubuntu1 Python module for PostgreSQL ii python-pudge 0.1.4~svn137-4 documentation generator for Python projects ii python-pyatspi 1.25.5-0ubuntu Assistive Technology Service Provider Interf ii python-pychart 1.39-6 Python library for creating high quality cha ii python-pycurl 7.18.2-1build1 Python bindings to libcurl ii python-pygment 0.10-1 syntax highlighting package written in Pytho ii python-pygooca 0.12.0-0ubuntu GooCanvas Python bindings ii python-pyinoti 0.7.1-1 Simple Linux inotify Python bindings ii python-pylons 0.9.6.2-2 Python web framework emphasizing flexibility ii python-pynetsn 0.28.8-1 Python ctypes bindings for NET-SNMP with Twi ii python-pyopens 0.7-2 transitional dummy package ii python-pyorbit 2.24.0-0ubuntu A Python language binding for the ORBit2 COR ii python-pyparsi 1.5.0-1 Python parsing module ii python-pysnmp- 4.1.9a-1 Python SNMP library for agents and managers ii python-pysnmp- 3.5.2-3 speed enhanced Python SNMP library for agent ii python-pysqlit 2.5.0-2 Python interface to SQLite 3 ii python-pysqlit 2.5.0-2 Python interface to SQLite 3 (debug extensio ii python-pyxmpp 1.0.0-4 XMPP and Jabber implementation for Python ii python-pyxmpp- 1.0.0-4 XMPP and Jabber implementation for Python (d ii python-qt3 3.17.6-1 Qt3 bindings for Python ii python-quixote 2.5-3 A highly Pythonic Web application framework ii python-quixote 2.5-3 Quixote web application framework documentat ii python-rdflib 2.4.0-5 RDF library containing an RDF triple store a ii python-roman 0.5-2 A module for generating/analyzing Roman nume ii python-routes 1.9.2-1 Routing Recognition and Generation Tools ii python-rrd 1.3.1-4 Transitional dummy package ii python-rrdtool 1.3.1-4 Time-series data storage and display system ii python-scgi 1.12-0.2 Server-side implementation of the SCGI proto ii python-scienti 2.4.11-2 Python modules useful for scientific computi ii python-scienti 2.4.11-2 Python modules useful for scientific computi ii python-scipy 0.6.0-12 scientific tools for Python ii python-serial 2.3-1 pyserial - module encapsulating access for t ii python-sesame 0.24-1 Python wrapper for Sesame's REST HTTP API ii python-setupto 0.6c9-0ubuntu1 Python Distutils Enhancements ii python-sexy 0.1.9-1ubuntu1 python language bindings for libsexy ii python-simplej 1.9.2-1 Simple, fast, extensible JSON encoder/decode ii python-sip4 4.7.9-1 Python/C++ bindings generator runtime librar ii python-smartpm 1.1.1~bzr20081 Python library of the Smart Package Manager ii python-soappy 0.12.0-4 SOAP Support for Python ii python-softwar 0.71.1 manage the repositories that you install sof ii python-sparse 1.0.1-5 Sparse linear algebra extension for Python ii python-sparse- 1.0.1-5 Sparse linear algebra extension for Python: ii python-sqlalch 0.4.8-1 SQL toolkit and Object Relational Mapper for ii python-sqlalch 0.4.8-1 Documentation for the SQLAlchemy Python libr ii python-sqlite 1.0.1-7 python interface to SQLite 2 ii python-sqlobje 0.10.2-2 Python module for SQLObject ii python-stdeb 0.2.1-1 Python to Debian source package conversion u ii python-storm 0.14-0ubuntu1 object-relational mapper (ORM) for Python ii python-support 0.8.7 automated rebuilding support for Python modu ii python-syck 0.61.2-1 PySyck python bindings to the Syck YAML pars ii python-tagpy 0.94.5-2 Python module for manipulating tags in music ii python-tk 2.5.2-1ubuntu1 Tkinter - Writing Tk applications with Pytho ii python-turbojs 1.2-1 TurboGears template plugin that supports Jso ii python-twisted 8.1.0-4 Event-based framework for internet applicati ii python-twisted 8.1.0-4 Event-based framework for internet applicati ii python-twisted 8.1.0-4 Event-based framework for internet applicati ii python-twisted 1:8.1.0-1 The Twisted SSH Implementation ii python-twisted 8.1.0-4 Event-based framework for internet applicati ii python-twisted 8.1.0-1 Documentation generator with HTML and LaTeX ii python-twisted 8.1.0-2 An SMTP, IMAP and POP protocol implementatio ii python-twisted 8.1.0-1 A DNS protocol implementation with client an ii python-twisted 8.1.0-1 An NNTP protocol implementation with client ii python-twisted 8.0.0-1 Process management, including an inetd serve ii python-twisted 8.0.0-1 Process management, including an inetd serve ii python-twisted 0.3.13-3 SNMP implementation for the Twisted networki ii python-twisted 8.1.0-1 An HTTP protocol implementation together wit ii python-twisted 8.1.0-1 An HTTP/1.1 Server Framework ii python-twisted 8.1.0-2 Chat and Instant Messaging ii python-tz 2008i-1 Python version of the Olson timezone databas ii python-unit 1.4.1-16 unit test framework for Python ii python-uno 1:3.0.1-1ubunt Python interface for OpenOffice.org ii python-unum 4.0-1 Units in Python ii python-usb 0.4.1-4 USB interface for Python ii python-utidyli 0.2-3.2ubuntu1 Python wrapper for TidyLib ii python-virtkey 0.50ubuntu1 Library to emulate keyboard keypresses. ii python-visual 3.2.9-4.1 VPython 3D scientific visualization library ii python-vobject 0.6.0-1 parse iCalendar and VCards in Python ii python-vte 1:0.19.4-0ubun Python bindings for the VTE widget set ii python-wadllib 0.1~bzr6-0ubun Python library for navigating WADL files ii python-webhelp 0.6.4-1 Library of helper functions to make writing ii python-webkitg 1.0.1-0ubuntu2 WebKit/Gtk Python bindings ii python-webpy 0.310-1 Web framework for Python applications ii python-webut 0.1-0.2 Miscellaneous utilities for nevow and twiste ii python-werkzeu 0.3.1-1 a collection of utilities for WSGI applicati ii python-wmi 1:0.1.13-1 DCOM/WMI client implementation, Python bindi ii python-wsgiref 0.1.2-4 a standalone release of the wsgiref library ii python-xdg 0.15-1.1ubuntu A python library to access freedesktop.org s ii python-xkit 0.4.2 library for the manipulation of the xorg.con ii python-xml 0.8.4-10.1ubun XML tools for Python ii python-xmpp 0.4.1-cvs20080 Python library for communication with XMPP ( ii python-yaml 3.08-1 YAML parser and emitter for Python ii python-zopeint 3.3.1-7build1 The implementation of interface definitions ii python-zopeint 3.3.1-7build1 The implementation of interface definitions ii python-zsi 2.0-2ubuntu4 Zolera Soap Infrastructure ii python2.4 2.4.6-1ubuntu1 An interactive high-level object-oriented la ii python2.4-dev 2.4.6-1ubuntu1 Header files and a static library for Python ii python2.4-mini 2.4.6-1ubuntu1 A minimal subset of the Python language (ver ii python2.5 2.5.4-0ubuntu1 An interactive high-level object-oriented la ii python2.5-dbg 2.5.4-0ubuntu1 Debug Build of the Python Interpreter (versi ii python2.5-dev 2.5.4-0ubuntu1 Header files and a static library for Python ii python2.5-doc 2.5.4-0ubuntu1 Documentation for the high-level object-orie ii python2.5-mini 2.5.4-0ubuntu1 A minimal subset of the Python language (ver ii qprof 0.5.2-5 Profiling utilities for Linux ii qt3-apps-dev 3:3.3.8-b-5ubu Qt3 Developer applications development files ii qt3-dev-tools 3:3.3.8-b-5ubu Qt3 development tools ii qt3-qtconfig 3:3.3.8-b-5ubu The Qt3 Configuration Application ii rabbitmq-serve 1.5.1-1 An AMQP server written in Erlang ii radeontool 1.5+git7660616 utility to control ATI Radeon backlight func ii rarian-compat 0.8.1-1ubuntu2 Rarian is a documentation meta-data library ii rdesktop 1.6.0-2ubuntu1 RDP client for Windows NT/2000 Terminal Serv ii readahead 1:0.20050517.0 read files into the page cache ii readline-commo 5.2-3build1 GNU readline and history libraries, common f ii realpath 1.12 Return the canonicalized absolute pathname ii reiserfsprogs 1:3.6.19-6 User-level tools for ReiserFS filesystems ii reportbug 3.47ubuntu1 reports bugs in the Debian distribution ii rfc4627-erlang 1.1.1 A JSON (RFC4627) codec and JSON-RPC server f ii rhino 1.7R1-2 JavaScript engine written in Java ii rhythmbox 0.11.6svn20090 music player and organizer for GNOME ii rpm 4.4.2.3-2 Red Hat package manager ii rrdtool 1.3.1-4 Time-series data storage and display system ii rrdtool-tcl 1.3.1-4 Time-series data storage and display system ii rss-glx 0.8.2-1ubuntu3 Really Slick Screensavers GLX Port ii rsync 3.0.4-3ubuntu1 fast remote file copy program (like rcp) ii ruby 4.2 An interpreter of object-oriented scripting ii ruby1.8 1.8.7.72-3 Interpreter of object-oriented scripting lan ii samba-common 2:3.2.5-4ubunt Samba common files used by both the server a ii scilab 4.1.2-6 Matrix-based scientific software package (a ii scilab-bin 4.1.2-6 Matrix-based scientific software package (a ii scilab-doc 4.1.2-6 Matrix-based scientific software package (a ii scim 1.4.7-3ubuntu1 smart common input method platform ii scim-bridge-ag 0.4.14-2ubuntu IME server of scim-bridge communicate with S ii scim-bridge-cl 0.4.14-2ubuntu IME server of scim-bridge communicate with S ii scim-gtk2-immo 1.4.7-3ubuntu1 GTK+2 input method module with SCIM as backe ii scim-modules-s 1.4.7-3ubuntu1 socket modules for SCIM platform ii scim-modules-t 0.5.8-1 generic tables IM engine module for SCIM pla ii scim-tables-ad 0.5.8-1 miscellaneous input method data tables for S ii scm 5e5-3 A Scheme language interpreter ii screen 4.0.3-11ubuntu terminal multiplexor with VT100/ANSI termina ii screen-profile 1.19-0ubuntu1 a set of useful profiles and a profile-switc ii screen-resolut 0.5 Extension for the GNOME screen resolution ap ii screensaver-de 0.2-1 Wallpapers for image processing screensavers ii sdcc 2.8.0.dfsg-1 Small Device C Compiler (DFSG version) ii sdcc-doc 2.8.0.dfsg-1 Small Device C Compiler (documentation, DFSG ii sdcc-libraries 2.8.0.dfsg-1 Small Device C Compiler (libraries, DFSG ver ii sdcc-ucsim 2.8.0.dfsg-1 Micro-controller simulator for SDCC (DFSG ve ii seahorse 2.25.4-0ubuntu A Gnome front end for GnuPG ii seahorse-plugi 2.25.3-0ubuntu seahorse plugins and utilities for encryptio ii sed 4.1.5-8 The GNU sed stream editor ii sendxmpp 1.15-1 commandline XMPP (jabber) utility ii serpentine 0.9-5ubuntu4 An application for creating audio CDs ii sgml-base 1.26 SGML infrastructure and SGML catalog file su ii sgml-data 2.0.3 common SGML and XML data ii shared-mime-in 0.51-0ubuntu1 FreeDesktop.org shared MIME database and spe ii skencil 0.6.17-16 Interactive vector drawing program for X11 ii slib 3b1-3 Portable Scheme library ii smartdimmer 0.1-2build1 Change LCD brightness on Geforce 6200Go card ii smbclient 2:3.2.5-4ubunt a LanManager-like simple client for Unix ii smbldap-tools 0.9.4-1 Scripts to manage Unix and Samba accounts st ii software-prope 0.71.1 manage the repositories that you install sof ii soprano-daemon 2.1.67+dfsg.1+ daemon for the Soprano RDF framework ii sound-juicer 2.25.1-0ubuntu GNOME 2 CD Ripper ii spidermonkey-b 1.8.1.16+nobin standalone JavaScript/ECMAScript (ECMA-262) ii splix 2.0.0~rc2-0ubu Driver for Samsung's SPL2 (bw) and SPLc (col ii sqlite-doc 2.8.17-4build1 SQLite documentation ii sqlite3 3.6.10-1 A command line interface for SQLite 3 ii sqlite3-doc 3.6.10-1 SQLite 3 documentation ii sqlitebrowser 1.3-2.2 GUI editor for SQLite databases ii sqsh 2.1-8build1 commandline SQL client for MS SQL and Sybase ii ssh 1:5.1p1-5ubunt secure shell client and server (metapackage) ii ssh-askpass-gn 1:5.1p1-5ubunt interactive X program to prompt users for a ii ssl-cert 1.0.23ubuntu1 simple debconf wrapper for OpenSSL ii startup-tasks 0.3.9-8 definitions of essential tasks to run on sta ii strace 4.5.17+cvs0807 A system call tracer ii stress 0.18.9-1 A tool to impose load on and stress test a c ii subversion 1.5.4dfsg1-1ub Advanced version control system ii subversion-too 1.5.4dfsg1-1ub Assorted tools related to Subversion ii sudo 1.6.9p17-1ubun Provide limited super user privileges to spe ii sun-java6-bin 6-11-0ubuntu1 Sun Java(TM) Runtime Environment (JRE) 6 (ar ii sun-java6-jre 6-11-0ubuntu1 Sun Java(TM) Runtime Environment (JRE) 6 (ar ii sun-java6-plug 6-11-0ubuntu1 The Java(TM) Plug-in, Java SE 6 ii swfdec-gnome 2.24.0-0ubuntu Tools to play SWF files (Macromedia Flash) o ii swfmill 0.2.12-2 xml2swf and swf2xml processor ii swftools 0.8.1-2.1 Collection of utilities for SWF file manipul ii swig 1.3.36-1ubuntu Generate scripting interfaces to C/C++ code ii synaptic 0.62.2ubuntu2 Graphical package manager ii sysklogd 1.5-5ubuntu3 System Logging Daemon ii syslinux 2:3.63+dfsg-2u Bootloader for Linux/i386 using MS-DOS flopp ii system-cleaner 1.10.5-0ubuntu clean up a system so it's more like a freshl ii system-cleaner 1.10.5-0ubuntu clean up a system so it's more like a freshl ii system-config- 1.1.2+git20090 Printer configuration GUI ii system-config- 1.1.2+git20090 Printer configuration GUI ii system-service 0.3.9-8 definitions of essential system services ii system-tools-b 2.6.0-2ubuntu4 System Tools to manage computer configuratio ii sysv-rc 2.86.ds1-61ubu System-V-like runlevel change mechanism ii sysvinit-utils 2.86.ds1-61ubu System-V-like utilities ii sysvutils 2.86.ds1-61ubu System-V-like utilities (transitional packag ii tailor 0.9.35-2 migrate changesets between version control s ii tangerine-icon 0.26.debian-3 Tangerine Icon theme ii tango-icon-the 0.8.1-4 Tango Icon theme ii tango-icon-the 0.7-0ubuntu1 Tango Icon theme - common icons ii tar 1.20-1 GNU version of the tar archiving utility ii tasksel 2.73ubuntu13 Tool for selecting tasks for installation on ii tasksel-data 2.73ubuntu13 Official tasks used for installation of Debi ii tcl 8.4.16-2 The Tool Command Language (default version) ii tcl8.4 8.4.19-2 Tcl (the Tool Command Language) v8.4 - run-t ii tclreadline 2.1.0-8 GNU Readline Extension for Tcl/Tk ii tcpd 7.6.q-16 Wietse Venema's TCP wrapper utilities ii tcpdump 3.9.8-4 A powerful tool for network monitoring and d ii tdsodbc 0.82-4 ODBC driver for connecting to MS SQL and Syb ii telnet 0.17-36 The telnet client ii tex-common 1.11.3 common infrastructure for building and insta ii texinfo 4.11.dfsg.1-4 Documentation system for on-line information ii texlive 2007.dfsg.1-4 TeX Live: A decent selection of the TeX Live ii texlive-base 2007.dfsg.1-4 TeX Live: Essential programs and files ii texlive-base-b 2007.dfsg.2-4 TeX Live: Essential binaries ii texlive-common 2007.dfsg.1-4 TeX Live: Base component ii texlive-doc-ba 2007.dfsg.1-1 TeX Live: Base documentation ii texlive-extra- 2007.dfsg.2-4 TeX Live: TeX auxiliary programs ii texlive-fonts- 2007.dfsg.1-4 TeX Live: Recommended fonts ii texlive-fonts- 2007.dfsg.1-4 TeX Live: Documentation files for texlive-fo ii texlive-generi 2007.dfsg.8-1u TeX Live: Miscellaneous extra generic macros ii texlive-generi 2007.dfsg.1-4 TeX Live: Miscellaneous generic macros ii texlive-humani 2007.dfsg.8-1u TeX Live: LaTeX support for the humanities ii texlive-humani 2007.dfsg.8-1u TeX Live: Documentation files for texlive-hu ii texlive-latex- 2007.dfsg.1-4 TeX Live: Basic LaTeX packages ii texlive-latex- 2007.dfsg.1-4 TeX Live: Documentation files for texlive-la ii texlive-latex- 2007.dfsg.8-1u TeX Live: LaTeX supplementary packages ii texlive-latex- 2007.dfsg.8-1u TeX Live: Documentation files for texlive-la ii texlive-latex- 2007.dfsg.1-4 TeX Live: LaTeX recommended packages ii texlive-latex- 2007.dfsg.1-4 TeX Live: Documentation files for texlive-la ii texlive-pictur 2007.dfsg.1-4 TeX Live: Packages for drawings graphics ii texlive-pictur 2007.dfsg.1-4 TeX Live: Documentation files for texlive-pi ii texlive-pstric 2007.dfsg.8-1u TeX Live: PSTricks packages ii texlive-pstric 2007.dfsg.8-1u TeX Live: Documentation files for texlive-ps ii thunderbird-lo 1:2.0.0.14+1-0 Thunderbird English language/region package ii tidy 20081224cvs-1 HTML syntax checker and reformatter ii tilda 0.09.6-1 terminal emulator with first person shooter ii time 1.7-23 The GNU time program for measuring cpu resou ii tipa 2:1.3-12 system for processing phonetic symbols in La ii tk8.4 8.4.19-2 Tk toolkit for Tcl and X11, v8.4 - run-time ii tofrodos 1.7.8.debian.1 Converts DOS <-> Unix text files, alias tofr ii tomboy 0.13.2-0ubuntu desktop note taking program using Wiki style ii tora 1.3.23-1 A graphical toolkit for database developers ii toshset 1.73-3 Access much of the Toshiba laptop hardware i ii totem 2.25.3-0ubuntu A simple media player for the GNOME desktop ii totem-common 2.25.3-0ubuntu Data files for the Totem media player ii totem-gstreame 2.25.3-0ubuntu A simple media player for the GNOME desktop ii totem-mozilla 2.25.3-0ubuntu Totem Mozilla plugin ii totem-plugins 2.25.3-0ubuntu Plugins for the Totem media player ii traceroute 2.0.12-1 Traces the route taken by packets over an IP ii tracker 0.6.6-2ubuntu2 metadata database, indexer and search tool ii tracker-search 0.6.6-2ubuntu2 metadata database, indexer and search tool - ii transmission-c 1.42-0ubuntu1 lightweight BitTorrent client (common files) ii transmission-g 1.42-0ubuntu1 lightweight BitTorrent client (graphical int ii tsclient 0.150-1ubuntu4 front-end for viewing of remote desktops in ii ttf-arabeyes 2.0-2 Arabeyes GPL TrueType Arabic fonts ii ttf-arphic-uka 0.2.20080216.1 "AR PL UKai" Chinese Unicode TrueType font c ii ttf-arphic-umi 0.2.20080216.1 "AR PL UMing" Chinese Unicode TrueType font ii ttf-baekmuk 2.2-2 Baekmuk series TrueType fonts ii ttf-bengali-fo 1:0.5.4ubuntu2 Free TrueType fonts for the Bengali language ii ttf-bitstream- 1.10-7 The Bitstream Vera family of free TrueType f ii ttf-dejavu 2.25-3 Metapackage to pull in ttf-dejavu-core and t ii ttf-dejavu-cor 2.25-3 Vera font family derivate with additional ch ii ttf-dejavu-ext 2.25-3 Vera font family derivate with additional ch ii ttf-devanagari 1:0.5.4ubuntu2 Free TrueType fonts for languages using the ii ttf-freefont 20080323-3 Freefont Serif, Sans and Mono Truetype fonts ii ttf-gujarati-f 1:0.5.4ubuntu2 Free TrueType fonts for the Gujarati languag ii ttf-indic-font 1:0.5.4ubuntu2 Metapackage for free Indian language fonts ii ttf-indic-font 1:0.5.4ubuntu2 Core collection of free Indian language font ii ttf-kannada-fo 1:0.5.4ubuntu2 Free TrueType fonts for the Kannada language ii ttf-kochi-goth 1.0.20030809-8 Kochi Subst Gothic Japanese TrueType font wi ii ttf-kochi-minc 1.0.20030809-8 Kochi Subst Mincho Japanese TrueType font wi ii ttf-lao 0.0.20060226-2 TrueType font for Lao language ii ttf-liberation 1.04.93-1 Free fonts with the same metrics as Times, A ii ttf-malayalam- 1:0.5.4ubuntu2 Free TrueType fonts for the Malayalam langua ii ttf-mgopen 1.1-3 Magenta MgOpen TrueType fonts ii ttf-mscorefont 2.6 Installer for Microsoft TrueType core fonts ii ttf-opensymbol 1:3.0.1-1ubunt The OpenSymbol TrueType font ii ttf-oriya-font 1:0.5.4ubuntu2 Free TrueType fonts for the Oriya language ii ttf-punjabi-fo 1:0.5.4ubuntu2 Free TrueType fonts for the Punjabi language ii ttf-sazanami-g 20040629-2ubun Sazanami Gothic Japanese TrueType font ii ttf-sazanami-m 20040629-2ubun Sazanami Mincho Japanese TrueType font rc ttf-sil-gentiu 20080813:1.02- extended Unicode Latin font ("a typeface for ii ttf-tamil-font 1:0.5.4ubuntu2 Free TrueType fonts for the Tamil language ii ttf-telugu-fon 1:0.5.4ubuntu2 Free TrueType fonts for the Telugu language ii ttf-thai-tlwg 1:0.4.11-2 Thai fonts in TrueType format ii ttf-unfonts-co 1.0.1-7ubuntu1 Un series Korean TrueType fonts ii twisted-doc 8.1.0-4 The official documentation of Twisted ii twisted-doc-ap 2.5.0-2build2 The auto-generated API docs of Twisted ii tzdata 2008i-3 time zone and daylight-saving time data ii ubufox 0.6-0ubuntu2 Ubuntu Firefox specific configuration defaul ii ubuntu-artwork 46.3 Ubuntu themes and artwork ii ubuntu-desktop 1.132 The Ubuntu desktop system ii ubuntu-dev-too 0.61 useful tools for Ubuntu developers ii ubuntu-docs 9.04.1 The Ubuntu Documentation Project ii ubuntu-gdm-the 0.30 Ubuntu GDM themes ii ubuntu-keyring 2008.03.04 GnuPG keys of the Ubuntu archive ii ubuntu-minimal 1.132 Minimal core of Ubuntu ii ubuntu-restric 27 Commonly used restricted packages ii ubuntu-sounds 0.10 Ubuntu's GNOME audio theme ii ubuntu-standar 1.132 The Ubuntu standard system ii ubuntu-system- 0.1.10 Dbus service to set various system-wide conf ii ubuntu-wallpap 0.28.1 Ubuntu Wallpapers ii ucf 3.0011 Update Configuration File: preserve user cha ii udev 137-2 rule-based device node and kernel event mana ii udo 6.4.1-1 universal document - text processing utility ii udo-doc-en 6.4.1-1 universal document - English documentation ii ufw 0.26-0ubuntu1 program for managing a netfilter firewall ii unattended-upg 0.38 automatic installation of security upgrades ii units 1.87-1 converts between different systems of units ii unixodbc 2.2.11-16build ODBC tools libraries ii unixodbc-bin 2.2.11-16build Graphical tools for ODBC management and brow ii uno-libs3 1.4.1+OOo3.0.1 UNO public shared libraries ii unrar 1:3.8.5-1 Unarchiver for .rar files (non-free version) ii unrtf 0.19.3-1.1 RTF to other formats converter ii unzip 5.52-12ubuntu1 De-archiver for .zip files ii update-inetd 4.31 inetd configuration file updater ii update-manager 1:0.97 GNOME application that manages apt updates ii update-manager 1:0.97 manage release upgrades ii update-motd 1.10 Modular framework to dynamically generate th ii update-notifie 0.75.8 Daemon which notifies about package updates ii update-notifie 0.75.8 Files shared between update-notifier and ade ii upstart 0.3.9-8 event-based init daemon ii upstart-compat 0.3.9-8 compatibility for System-V-like init ii upstart-logd 0.3.9-8 boot logging daemon ii ure 1.4.1+OOo3.0.1 UNO runtime environment ii usb-creator 0.1.11 Ubuntu USB desktop image creator ii usbutils 0.73-8ubuntu3 Linux USB utilities ii usplash 0.5.27 Userspace bootsplash utility ii usplash-theme- 0.19 Usplash theme for Ubuntu ii util-linux 2.14-1ubuntu4 Miscellaneous system utilities ii util-linux-loc 2.14-1ubuntu4 Locales files for util-linux ii uuid-runtime 1.41.3-1ubuntu universally unique id library ii valgrind 1:3.3.1-2ubunt A memory debugger and profiler ii vbetool 1.1-2 run real-mode video BIOS code to alter hardw ii vcg 1.30debian-6 A Visualization Tool for compiler graphs ii vflib3 3.6.14.dfsg-1 Versatile Font Library ii vim-common 2:7.2.079-1ubu Vi IMproved - Common files ii vim-tiny 2:7.2.079-1ubu Vi IMproved - enhanced vi editor - compact v ii vinagre 2.25.5-0ubuntu VNC client for the GNOME Desktop ii vino 2.25.5-0ubuntu VNC server for GNOME ii vmware-package 0.22 utility for building VMware Debian packages ii vnc-common 3.3.7-14ubuntu Virtual network computing server software ii vorbis-tools 1.2.0-5 several Ogg Vorbis tools ii vrweb 1.5-17 A VRML browser and editor ii w3c-dtd-xhtml 1.1-5ubuntu1 W3C eXtensible HyperText Markup Language (XH ii w3m 0.5.2-2build1 WWW browsable pager with excellent tables/fr ii wamerican 6-2.3 American English dictionary words for /usr/s ii wbritish 6-2.3 British English dictionary words for /usr/sh ii wdiff 0.5-18 Compares two files word by word ii wget 1.11.4-2ubuntu retrieves files from the web ii whiptail 0.52.2-11.3ubu Displays user-friendly dialog boxes from she ii whois 4.7.30 an intelligent whois client ii wireless-tools 29-1.1ubuntu2 Tools for manipulating Linux Wireless Extens ii wmi-client 1:0.1.13-1 DCOM/WMI client implementation ii wodim 9:1.1.9-1ubunt command line CD/DVD writing tool ii wpasupplicant 0.6.6-2 client support for WPA and WPA2 (IEEE 802.11 ii wvdial 1.60.1+nmu2 PPP dialer with built-in intelligence ii wwwconfig-comm 0.2.1 Debian web auto configuration ii x-ttcidfont-co 32 TrueType and CID fonts configuration for X ii x11-apps 7.3+4 X applications ii x11-common 1:7.4~5ubuntu1 X Window System (X.Org) infrastructure ii x11-session-ut 7.3+1 X session utilities ii x11-utils 7.3+2 X11 utilities ii x11-xfs-utils 7.3+1 X font server utilities ii x11-xkb-utils 7.4+1 X11 XKB utilities ii x11-xserver-ut 7.3+5 X server utilities ii x11proto-compo 1:0.4-2 X11 Composite extension wire protocol ii x11proto-core- 7.0.14-1 X11 core wire protocol and auxiliary headers ii x11proto-damag 1:1.1.0-2build X11 Damage extension wire protocol ii x11proto-fixes 1:4.0-3 X11 Fixes extension wire protocol ii x11proto-input 1.5.0-1ubuntu1 X11 Input extension wire protocol ii x11proto-kb-de 1.0.3-3ubuntu1 X11 XKB extension wire protocol ii x11proto-randr 1.2.99.3-1 X11 RandR extension wire protocol ii x11proto-rende 2:0.9.3-2 X11 Render extension wire protocol ii x11proto-xext- 7.0.4-1 X11 various extension wire protocol ii x11proto-xiner 1.1.2-5ubuntu1 X11 Xinerama extension wire protocol ii xauth 1:1.0.3-2 X authentication utility ii xaw3dg 1.5+E-17 Xaw3d widget set ii xbase-clients 1:7.4~5ubuntu1 miscellaneous X clients - metapackage ii xbitmaps 1.0.1-2ubuntu1 Base X bitmaps ii xcursor-themes 1.0.1-5ubuntu1 Base X cursor themes ii xdg-user-dirs 0.10-1ubuntu2 tool to manage well known user directories ii xdg-user-dirs- 0.8-0ubuntu1 tool to manage well known user directories ( ii xdg-utils 1.0.2-6 desktop integration utilities from freedeskt ii xf86dga 1:1.0.2-0ubunt X client - xf86dga ii xfdiff 4.5.0-0ubuntu2 graphical "diff" and "patch" utility ii xfonts-100dpi 1:1.0.0-4 100 dpi fonts for X ii xfonts-75dpi 1:1.0.0-4 75 dpi fonts for X ii xfonts-base 1:1.0.0-5 standard fonts for X ii xfonts-encodin 1:1.0.2-3 Encodings for X.Org fonts ii xfonts-scalabl 1:1.0.0-6 scalable fonts for X ii xfonts-utils 1:7.4+1ubuntu1 X Window System font utility programs ii xinit 1.0.9-2 X server initialisation tool ii xinput 1.4.0-1 Runtime configuration and test of XInput dev ii xkb-data 1.4-1ubuntu3 X Keyboard Extension (XKB) configuration dat ii xml-core 0.12 XML infrastructure and XML catalog file supp ii xml-rpc-api2cp 1.06.27-1 Generate C++ wrapper classes for XML-RPC ser ii xml-rpc-api2tx 1.06.27-1 Dump an XML-RPC API as a text file ii xorg 1:7.4~5ubuntu1 X.Org X Window System ii xpdf-common 3.02-1.4ubuntu Portable Document Format (PDF) suite -- comm ii xpdf-reader 3.02-1.4ubuntu Portable Document Format (PDF) suite -- view ii xpmutils 1:3.5.7-1 X11 pixmap utilities ii xresprobe 0.4.24ubuntu8 X Resolution Probe ii xsane 0.996-1ubuntu2 featureful graphical frontend for SANE (Scan ii xsane-common 0.996-1ubuntu2 featureful graphical frontend for SANE (Scan ii xscreensaver-d 5.07-0ubuntu3 data files to be shared among screensaver fr ii xscreensaver-g 5.07-0ubuntu3 GL(Mesa) screen hacks for xscreensaver ii xserver-common 2:1.5.99.902-0 common files used by various X servers ii xserver-xorg 1:7.4~5ubuntu1 the X.Org X server ii xserver-xorg-c 2:1.5.99.902-0 Xorg X server - core server ii xserver-xorg-i 1:7.4~5ubuntu1 the X.Org X server -- input driver metapacka ii xserver-xorg-i 1:2.1.1-1ubunt X.Org X server -- evdev input driver ii xserver-xorg-i 1:1.3.1-2ubunt X.Org X server -- keyboard input driver ii xserver-xorg-i 1:1.4.0-1 X.Org X server -- mouse input driver ii xserver-xorg-i 0.99.3-2ubuntu Synaptics TouchPad driver for X.Org/XFree86 ii xserver-xorg-i 1:12.5.1-4ubun X.Org X server -- VMMouse input driver to us ii xserver-xorg-i 1:0.8.1.6-1ubu X.Org X server -- Wacom input driver ii xserver-xorg-v 1:7.4~5ubuntu1 the X.Org X server -- output driver metapack ii xserver-xorg-v 1:1.2.0-2ubunt X.Org X server -- APM display driver ii xserver-xorg-v 1:0.7.0-1ubunt X.Org X server -- ark display driver ii xserver-xorg-v 1:6.10.0-1ubun X.Org X server -- ATI display driver wrapper ii xserver-xorg-v 1:1.2.0-1ubunt X.Org X server -- Chips display driver ii xserver-xorg-v 1:1.2.1-2 X.Org X server -- Cirrus display driver ii xserver-xorg-v 1:0.3.0-1ubunt X.Org X server -- dummy display driver ii xserver-xorg-v 1:0.4.0-2 X.Org X server -- fbdev display driver ii xserver-xorg-v 2.11.0-1 X.Org server -- Geode GX2/LX display driver ii xserver-xorg-v 1:1.2.1-1ubunt X.Org X server -- Glint display driver ii xserver-xorg-v 1:1.3.1-1build X.Org X server -- i128 display driver ii xserver-xorg-v 1:1.2.0-2 X.Org X server -- i740 display driver ii xserver-xorg-v 2:2.4.1-1ubunt X.Org X server -- Intel i8xx, i9xx display d ii xserver-xorg-v 2:2.6.1-1ubunt X.Org X server -- Intel i8xx, i9xx display d ii xserver-xorg-v 6.8.0-3 X.Org X server -- ATI Mach64 display driver ii xserver-xorg-v 1:1.4.9.dfsg-2 X.Org X server -- MGA display driver ii xserver-xorg-v 1:1.2.1-1ubunt X.Org X server -- Neomagic display driver ii xserver-xorg-v 1:2.1.12-1ubun X.Org X server -- NV display driver ii xserver-xorg-v 1:0.2.903+svn7 X.Org X server -- VIA display driver ii xserver-xorg-v 6.8.0-1ubuntu4 X.Org X server -- ATI r128 display driver ii xserver-xorg-v 1:6.10.0-1ubun X.Org X server -- ATI Radeon display driver ii xserver-xorg-v 1.2.4-1 X.Org X server -- AMD/ATI r5xx, r6xx display ii xserver-xorg-v 1:4.2.0.dfsg.1 X.Org X server -- Rendition display driver ii xserver-xorg-v 1:0.6.0-1ubunt X.Org X server -- legacy S3 display driver ii xserver-xorg-v 1:1.10.1-2 X.Org X server -- S3 ViRGE display driver ii xserver-xorg-v 1:2.2.1-3build X.Org X server -- Savage display driver ii xserver-xorg-v 1:1.6.0-1ubunt X.Org X server -- SiliconMotion display driv ii xserver-xorg-v 1:0.10.0-1ubun X.Org X server -- SiS display driver ii xserver-xorg-v 1:0.9.0-1ubunt X.Org X server -- SiS USB display driver ii xserver-xorg-v 1:1.4.0-2 X.Org X server -- tdfx display driver ii xserver-xorg-v 1:1.3.0-1ubunt X.Org X server -- Trident display driver ii xserver-xorg-v 1:1.2.0-1ubunt X.Org X server -- Tseng display driver ii xserver-xorg-v 1:0.2.0-1ubunt X.Org X server -- Video 4 Linux display driv ii xserver-xorg-v 1:2.0.0-1ubunt X.Org X server -- VESA display driver ii xserver-xorg-v 1:10.16.5-1bui X.Org X server -- VMware display driver ii xserver-xorg-v 1:1.2.0-1ubunt X.Org X server -- Voodoo display driver ii xsltproc 1.1.24-2ubuntu XSLT command line processor ii xterm 239-1ubuntu1 X terminal emulator ii xtightvncviewe 1.3.9-4 virtual network computing client software fo ii xtrans-dev 1.2.3-1 X transport library (development files) ii xulrunner-1.9 1.9.0.5+nobino XUL + XPCOM application runner ii xulrunner-1.9- 1.9.0.5+nobino Support for Gnome in xulrunner-1.9 applicati ii xutils 1:7.4~5ubuntu1 X Window System utility programs metapackage ii xutils-dev 1:7.4+4 X Window System utility programs for develop ii xvnc4viewer 4.1.1+xorg1.0. Virtual network computing client software fo ii xvncviewer 3.3.7-14ubuntu Virtual network computing client software fo ii xxdiff 1:3.2-8 graphical file/directory comparison and merg ii xxdiff-scripts 1:3.2-8 graphical file/directory comparison and merg ii yafray 0.0.9+dfsg-1bu a modern, xml-speaking raytracing-based rend ii yaml-mode 0.0.3-6 emacs mode for YAML files ii yelp 2.24.0-0ubuntu Help browser for GNOME 2 ii yui 2.5.0-1 Yahoo User Interface Library ii zenity 2.24.1-0ubuntu Display graphical dialog boxes from shell sc ii zerofree 1.0.1-1 zero free blocks from ext2/3 file-systems ii zip 2.32-1 Archiver for .zip files ii zlib-bin 1:1.2.3.3.dfsg compression library - sample programs ii zlib1g 1:1.2.3.3.dfsg compression library - runtime ii zlib1g-dev 1:1.2.3.3.dfsg compression library - development ii zsh 4.3.9-1ubuntu1 A shell with lots of features rabbitmq at gato:/$ From ch at murgatroid.com Wed Feb 4 01:56:58 2009 From: ch at murgatroid.com (christopher hoover) Date: Tue, 3 Feb 2009 17:56:58 -0800 Subject: [rabbitmq-discuss] error on startup In-Reply-To: References: Message-ID: <002801c9866b$dd1edda0$975c98e0$@com> Matthias Radestock wrote: > Do you know what shell /bin/sh is on your system? This is surely a result of the change of /bin/sh from bash to dash that happened recently on some distros. -ch From markkicks at gmail.com Wed Feb 4 04:49:07 2009 From: markkicks at gmail.com (mark) Date: Tue, 3 Feb 2009 20:49:07 -0800 Subject: [rabbitmq-discuss] error running stomp Message-ID: <82fa9e310902032049l7be0baf0xbd96aa53e008fe5c@mail.gmail.com> hi i got stomp compiled. but when i try to run it i get this error. how do i fix this? the rabbitmq-server is running. thanks [ask at localhost rabbitmq-stomp-default]$ make run make: Warning: File `Makefile' has modification time 1.6e+03 s in the future erlc -I ../rabbitmq-server/include -I include -o ebin -Wall +debug_info src/rabbit_stomp.erl erlc -I ../rabbitmq-server/include -I include -o ebin -Wall +debug_info src/stomp_frame.erl make -C ../rabbitmq-server run \ RABBITMQ_SERVER_START_ARGS='-pa '"$(pwd)/ebin"' -rabbit \ stomp_listeners [{\"0.0.0.0\",61613}] \ extra_startup_steps [{\"STOMP-listeners\",rabbit_stomp,kickstart,[]}]' make[1]: Entering directory `/home/ask/open/rabbitmq-server-1.5.1' RABBITMQ_NODE_IP_ADDRESS="" RABBITMQ_NODE_PORT="" RABBITMQ_LOG_BASE="/tmp" RABBITMQ_MNESIA_DIR="/tmp/rabbitmq-rabbit-mnesia" \ RABBITMQ_NODE_ONLY=true \ RABBITMQ_SERVER_START_ARGS="-pa /home/ask/open/rabbitmq-stomp-default/ebin -rabbit \ stomp_listeners [{\"0.0.0.0\",61613}] \ extra_startup_steps [{\"STOMP-listeners\",rabbit_stomp,kickstart,[]}] -s rabbit" \ ./scripts/rabbitmq-server {error_logger,{{2009,2,3},{20,46,35}},"Protocol: ~p: register error: ~p~n",["inet_tcp",{{badmatch,{error,duplicate_name}},[{inet_tcp_dist,listen,1},{net_kernel,start_protos,4},{net_kernel,start_protos,3},{net_kernel,init_node,2},{net_kernel,init,1},{gen_server,init_it,6},{proc_lib,init_p,5}]}]} {error_logger,{{2009,2,3},{20,46,35}},crash_report,[[{pid,<0.21.0>},{registered_name,net_kernel},{error_info,{exit,{error,badarg},[{gen_server,init_it,6},{proc_lib,init_p,5}]}},{initial_call,{gen,init_it,[gen_server,<0.18.0>,<0.18.0>,{local,net_kernel},net_kernel,{rabbit,shortnames,15000},[]]}},{ancestors,[net_sup,kernel_sup,<0.9.0>]},{messages,[]},{links,[#Port<0.7>,<0.18.0>]},{dictionary,[{longnames,false}]},{trap_exit,true},{status,running},{heap_size,610},{stack_size,23},{reductions,488}],[]]} {error_logger,{{2009,2,3},{20,46,35}},supervisor_report,[{supervisor,{local,net_sup}},{errorContext,start_error},{reason,{'EXIT',nodistribution}},{offender,[{pid,undefined},{name,net_kernel},{mfa,{net_kernel,start_link,[[rabbit,shortnames]]}},{restart_type,permanent},{shutdown,2000},{child_type,worker}]}]} {error_logger,{{2009,2,3},{20,46,35}},supervisor_report,[{supervisor,{local,kernel_sup}},{errorContext,start_error},{reason,shutdown},{offender,[{pid,undefined},{name,net_sup},{mfa,{erl_distribution,start_link,[]}},{restart_type,permanent},{shutdown,infinity},{child_type,supervisor}]}]} {error_logger,{{2009,2,3},{20,46,35}},crash_report,[[{pid,<0.8.0>},{registered_name,[]},{error_info,{exit,{shutdown,{kernel,start,[normal,[]]}},[{application_master,init,4},{proc_lib,init_p,5}]}},{initial_call,{application_master,init,[<0.6.0>,<0.7.0>,{appl_data,kernel,[application_controller,erl_reply,auth,boot_server,code_server,disk_log_server,disk_log_sup,erl_prim_loader,error_logger,file_server_2,fixtable_server,global_group,global_name_server,heart,init,kernel_config,kernel_sup,net_kernel,net_sup,rex,user,os_server,ddll_server,erl_epmd,inet_db,pg2],undefined,{kernel,[]},[application,application_controller,application_master,application_starter,auth,code,code_aux,packages,code_server,dist_util,erl_boot_server,erl_distribution,erl_prim_loader,erl_reply,erlang,error_handler,error_logger,file,file_server,file_io_server,prim_file,global,global_group,global_search,group,heart,hipe_unified_loader,inet6_tcp,inet6_tcp_dist,inet6_udp,inet_config,inet_hosts,inet_gethost_native,inet_tcp_dist,init,kernel,kernel_config,net,net_adm,net_kernel,os,ram_file,rpc,user,user_drv,user_sup,disk_log,disk_log_1,disk_log_server,disk_log_sup,dist_ac,erl_ddll,erl_epmd,erts_debug,gen_tcp,gen_udp,gen_sctp,prim_inet,inet,inet_db,inet_dns,inet_parse,inet_res,inet_tcp,inet_udp,inet_sctp,pg2,seq_trace,wrap_log_reader,zlib,otp_ring0],[],infinity,infinity},normal]}},{ancestors,[<0.7.0>]},{messages,[{'EXIT',<0.9.0>,normal}]},{links,[<0.7.0>,<0.6.0>]},{dictionary,[]},{trap_exit,true},{status,running},{heap_size,610},{stack_size,23},{reductions,127}],[]]} {error_logger,{{2009,2,3},{20,46,35}},std_info,[{application,kernel},{exited,{shutdown,{kernel,start,[normal,[]]}}},{type,permanent}]} {"Kernel pid terminated",application_controller,"{application_start_failure,kernel,{shutdown,{kernel,start,[normal,[]]}}}"} Crash dump was written to: erl_crash.dump Kernel pid terminated (application_controller) ({application_start_failure,kernel,{shutdown,{kernel,start,[normal,[]]}}}) make[1]: *** [run] Error 1 make[1]: Leaving directory `/home/ask/open/rabbitmq-server-1.5.1' make: *** [start_server] Error 2 [ask at localhost rabbitmq-stomp-default]$ From billy.chasen at gmail.com Wed Feb 4 05:50:06 2009 From: billy.chasen at gmail.com (Billy Chasen) Date: Wed, 4 Feb 2009 00:50:06 -0500 Subject: [rabbitmq-discuss] getting the queue depths In-Reply-To: <269388e30902031511v33688eafie20f3d202172162f@mail.gmail.com> References: <269388e30902031511v33688eafie20f3d202172162f@mail.gmail.com> Message-ID: cool, thanks -- sorry for not RTFM :) On Tue, Feb 3, 2009 at 6:11 PM, Ben Hood <0x6e6562 at gmail.com> wrote: > Billy, > > On Tue, Feb 3, 2009 at 4:38 AM, Billy Chasen wrote: >> I'm using py-amqplib and could not find a way to get the queue depth. >> >> I know I can get it from rabbitmqctl list_queues -- but that needs to >> be ran as either root or rabbitmq, otherwise I get an error >> >> Any way to programmatically get the queue depths? I feel like there >> should be a call, chan.queue_size(name) > > Have you had a look at the documentation for the queue.declare_ok command? > > It will tell you what the message count is. > > BTW, if you google this list for queue depth, you will find out how that works. > > Also this pattern seems to be used a lot with the Ruby AMQP client. > > HTH, > > Ben > From matthias at lshift.net Wed Feb 4 06:19:45 2009 From: matthias at lshift.net (Matthias Radestock) Date: Wed, 04 Feb 2009 06:19:45 +0000 Subject: [rabbitmq-discuss] error on startup In-Reply-To: <002801c9866b$dd1edda0$975c98e0$@com> References: <002801c9866b$dd1edda0$975c98e0$@com> Message-ID: <49893381.7000003@lshift.net> Christopher, christopher hoover wrote: > Matthias Radestock wrote: >> Do you know what shell /bin/sh is on your system? > > This is surely a result of the change of /bin/sh from bash to dash that > happened recently on some distros. I don't think so, because a) Billy says /bin/sh points to bash, and b) the rabbitmq scripts work fine with dash. Matthias. From matthias at lshift.net Wed Feb 4 06:30:50 2009 From: matthias at lshift.net (Matthias Radestock) Date: Wed, 04 Feb 2009 06:30:50 +0000 Subject: [rabbitmq-discuss] error running stomp In-Reply-To: <82fa9e310902032049l7be0baf0xbd96aa53e008fe5c@mail.gmail.com> References: <82fa9e310902032049l7be0baf0xbd96aa53e008fe5c@mail.gmail.com> Message-ID: <4989361A.20101@lshift.net> Mark, mark wrote: > i got stomp compiled. but when i try to run it i get this error. > how do i fix this? > > the rabbitmq-server is running. There is your problem. When you run > make -C ../rabbitmq-server run \ > RABBITMQ_SERVER_START_ARGS='-pa '"$(pwd)/ebin"' -rabbit \ > stomp_listeners [{\"0.0.0.0\",61613}] \ > extra_startup_steps > [{\"STOMP-listeners\",rabbit_stomp,kickstart,[]}]' a new rabbitmq server is started. But since you already have a server running (and it has the same erlang node name), starting the new server fails with "{error,duplicate_name}". So just stop the running rabbitmq-server and try again. Regards, Matthias. From 0x6e6562 at gmail.com Wed Feb 4 08:45:37 2009 From: 0x6e6562 at gmail.com (Ben Hood) Date: Wed, 4 Feb 2009 08:45:37 +0000 Subject: [rabbitmq-discuss] question on exchange type In-Reply-To: <2fff50390902031543v6e6e9ae1j386587ab261d1c3f@mail.gmail.com> References: <49875E91.8020202@echostar.com> <269388e30902021425n58efd706jd408fd443c9abae6@mail.gmail.com> <49877AB6.40508@echostar.com> <269388e30902021555u260f14bp161fcb6803179357@mail.gmail.com> <2fff50390902021606x1e5a08d1q9cb413002359ab9c@mail.gmail.com> <269388e30902021623i228baf20qdd65bda4e0998dff@mail.gmail.com> <2fff50390902021630u171177dcy1062912798c1d1dd@mail.gmail.com> <269388e30902031521s5145b6d1p504b5b1d3dd3e4dd@mail.gmail.com> <2fff50390902031543v6e6e9ae1j386587ab261d1c3f@mail.gmail.com> Message-ID: <269388e30902040045qb120fa0l8b7794a5aea0fcdf@mail.gmail.com> Daniel, On Tue, Feb 3, 2009 at 11:43 PM, Daniel N wrote: >> If the application has to handle this, then it could use a simple >> client timeout on asynchronous RPC cycle - this is doable without >> changing anything in the broker. > > Ben this is the thing that has me at a standstill. How to audit that the > downstream workers have done their jobs? In a distributed system it is difficult to know what some othe actor is up to apart from the observable messages that they send. So in this scenario, you could say that if you don't receive some notification for an item of work after a certain length of time, then you regard the work as not done. If the worker sends a response subsequent to the timeout, this will could just be ignored (either by the application or by deleting the reply queue). I don't think that the broker would have any better chance of judging what the worker is actually up to (for the same reason as above). The only thing that I imagine you could do in the broker is to have a routing mechanism that is triggered by a TTL - this TTL mechanism would most likely get trigger whilst the unconsumed message is resident in a queue. But then you also need to decide whether the TTL can be applied to messages that have pending acks or not. BTW Can you send your questions to the list rather than just to me please :-) Ben From dougbarth at gmail.com Wed Feb 4 15:44:10 2009 From: dougbarth at gmail.com (Doug Barth) Date: Wed, 4 Feb 2009 07:44:10 -0800 (PST) Subject: [rabbitmq-discuss] [New project] amqp-utils, CLI utilities for AMQP queues In-Reply-To: <6b035c9a-a126-4d6e-a810-b517ddac91bd@a29g2000pra.googlegroups.com> References: <6b035c9a-a126-4d6e-a810-b517ddac91bd@a29g2000pra.googlegroups.com> Message-ID: <8fde58a3-dcd8-4d07-93fc-879e6b56b926@r41g2000yqm.googlegroups.com> Hello list, Just a quick note to announce that I released the first version of amqp-utils to Rubyforge. You can install it using "gem install amqp- utils". This first version has support for the following operations: * enqueuing to a queue (amqp-enqueue) * dequeuing from a queue (amqp-dequeue) * peeking the contents of the queue (amqp-peek) * popping a single message off a queue (amqp-pop) * deleting a queue (amqp-deleteq) * getting the status (number of messages and consumers) of a queue (amqp-statq) Send Github pull requests for any improvements or additions you may have. -- Doug Barth From markkicks at gmail.com Wed Feb 4 15:45:31 2009 From: markkicks at gmail.com (mark) Date: Wed, 4 Feb 2009 07:45:31 -0800 Subject: [rabbitmq-discuss] error running stomp In-Reply-To: <4989361A.20101@lshift.net> References: <82fa9e310902032049l7be0baf0xbd96aa53e008fe5c@mail.gmail.com> <4989361A.20101@lshift.net> Message-ID: <82fa9e310902040745p47393c25s1074cb6e8d3e84e8@mail.gmail.com> thanks a lot, the stomp got started. but the example ruby script is not running [i followed from here http://www.lshift.net/blog/index.php?s=stomp] ruby rabbitmq-stomp-default/examples/rubycb-receiver.rb /usr/lib/ruby/gems/1.8/gems/stomp-1.0.6/lib/stomp.rb:233:in `write': Broken pipe (Errno::EPIPE) from /usr/lib/ruby/gems/1.8/gems/stomp-1.0.6/lib/stomp.rb:233:in `puts' from /usr/lib/ruby/gems/1.8/gems/stomp-1.0.6/lib/stomp.rb:233:in `_transmit' from /usr/lib/ruby/gems/1.8/gems/stomp-1.0.6/lib/stomp.rb:232:in `synchronize' from /usr/lib/ruby/gems/1.8/gems/stomp-1.0.6/lib/stomp.rb:232:in `_transmit' from /usr/lib/ruby/gems/1.8/gems/stomp-1.0.6/lib/stomp.rb:220:in `transmit' from /usr/lib/ruby/gems/1.8/gems/stomp-1.0.6/lib/stomp.rb:117:in `subscribe' from cb-receiver.rb:5 on /tmp/rabbit.log =INFO REPORT==== 4-Feb-2009::07:38:06 === accepted TCP connection on 0.0.0.0:61613 from 127.0.0.1:35526 =INFO REPORT==== 4-Feb-2009::07:38:06 === starting STOMP connection <0.1093.0> from 127.0.0.1:35526 =ERROR REPORT==== 4-Feb-2009::07:38:06 === STOMP error frame sent: Message: "Processing error" Detail: "{undef,[{rabbit_channel,start_link,\n [rabbit_stomp,<0.1093.0>,<0.1093.0>,<<\"guest\">>,\n <<\"/\">>]},\n {rabbit_stomp,do_login,4},\n {rabbit_stomp,process_frame,3},\n {rabbit_stomp,process_received_bytes,2},\n {rabbit_stomp,init,1},\n {proc_lib,init_p,5}]}\n" =INFO REPORT==== 4-Feb-2009::07:38:06 === ending STOMP connection <0.1093.0> from 127.0.0.1:35526 how do i fix this? thanks a lot! On Tue, Feb 3, 2009 at 10:30 PM, Matthias Radestock wrote: > Mark, > > mark wrote: >> >> i got stomp compiled. but when i try to run it i get this error. >> how do i fix this? >> >> the rabbitmq-server is running. > > There is your problem. When you run > >> make -C ../rabbitmq-server run \ >> RABBITMQ_SERVER_START_ARGS='-pa '"$(pwd)/ebin"' -rabbit \ >> stomp_listeners [{\"0.0.0.0\",61613}] \ >> extra_startup_steps >> [{\"STOMP-listeners\",rabbit_stomp,kickstart,[]}]' > > a new rabbitmq server is started. But since you already have a server > running (and it has the same erlang node name), starting the new server > fails with "{error,duplicate_name}". > > So just stop the running rabbitmq-server and try again. > > > Regards, > > Matthias. > From roger.wilson at lehman.com Wed Feb 4 15:55:15 2009 From: roger.wilson at lehman.com (Wilson, Roger) Date: Wed, 4 Feb 2009 15:55:15 -0000 Subject: [rabbitmq-discuss] RabbitMQ/Erlang Dependency on SSL In-Reply-To: References: Message-ID: This is more an observation than a bug or issue. I managed to build a version of Elang without SSL. RabbitMQ worked fine except when I asked it to create a randomly named temporary queue. (In python using amqplib "queue=chan.declare_queue()") (In java using the java client "queue=chan.queueDeclare()") This threw an internal error and closed the channel. Noticing this in the logs.... =ERROR REPORT==== 4-Feb-2009::12:22:03 === connection <0.221.0> (running), channel 1 - error: {undef,[{ssl_base64,encode, [<<245,100,205,50,82,140,18,122,97,89,5,240,91,175,45,136>>]}, {rabbit_misc,string_guid,1}, {rabbit_misc,binstring_guid,1}, {rabbit_channel,handle_method,3}, {rabbit_channel,handle_message,2}, {buffering_proxy,'-mainloop/4-fun-0-',3}, {lists,foldl,3}, {buffering_proxy,mainloop,4}]} =WARNING REPORT==== 4-Feb-2009::12:22:03 === Non-AMQP exit reason '{undef, [{ssl_base64,encode, [<<245,100,205,50,82,140,18,122,97,89,5,240, 91,175,45,136>>]}, {rabbit_misc,string_guid,1}, {rabbit_misc,binstring_guid,1}, {rabbit_channel,handle_method,3}, {rabbit_channel,handle_message,2}, {buffering_proxy,'-mainloop/4-fun-0-',3}, {lists,foldl,3}, {buffering_proxy,mainloop,4}]}' =INFO REPORT==== 4-Feb-2009::12:22:03 === closing TCP connection <0.221.0> from 127.0.0.1:57464 It looked like the ssl library call is missing. My guess is it uses some call into SSL to produce the random queue name. Installing OpenSSL (http://www.erlang.org/pipermail/erlang-bugs/2006-September/000233.html) and rebuilding Erlang solved this. There was no need to rebuild RabbitMQ itself. ---------------------------------------- This message is intended only for the personal and confidential use of the designated recipient(s) named above. If you are not the intended recipient of this message you are hereby notified that any review, dissemination, distribution or copying of this message is strictly prohibited. This communication is for information purposes only and should not be regarded as an offer to sell or as a solicitation of an offer to buy any financial product, an official confirmation of any transaction, or as an official statement of Lehman Brothers. Email transmission cannot be guaranteed to be secure or error-free. Therefore, we do not represent that this information is complete or accurate and it should not be relied upon as such. All information is subject to change without notice. ---------------------------------------- ---------------------------------------- This message is intended only for the personal and confidential use of the designated recipient(s) named above. If you are not the intended recipient of this message you are hereby notified that any review, dissemination, distribution or copying of this message is strictly prohibited. This communication is for information purposes only and should not be regarded as an offer to sell or as a solicitation of an offer to buy any financial product, an official confirmation of any transaction, or as an official statement of Lehman Brothers. Email transmission cannot be guaranteed to be secure or error-free. Therefore, we do not represent that this information is complete or accurate and it should not be relied upon as such. All information is subject to change without notice. ---------------------------------------- From alexis.richardson at cohesiveft.com Wed Feb 4 16:05:26 2009 From: alexis.richardson at cohesiveft.com (Alexis Richardson) Date: Wed, 4 Feb 2009 16:05:26 +0000 Subject: [rabbitmq-discuss] [New project] amqp-utils, CLI utilities for AMQP queues In-Reply-To: <8fde58a3-dcd8-4d07-93fc-879e6b56b926@r41g2000yqm.googlegroups.com> References: <6b035c9a-a126-4d6e-a810-b517ddac91bd@a29g2000pra.googlegroups.com> <8fde58a3-dcd8-4d07-93fc-879e6b56b926@r41g2000yqm.googlegroups.com> Message-ID: <167204d20902040805i2e2399a0s307a80c73b574622@mail.gmail.com> Hi list, I have a question -- how useful would a web GUI that showed (some of) this info be? alexis On Wed, Feb 4, 2009 at 3:44 PM, Doug Barth wrote: > Hello list, > > Just a quick note to announce that I released the first version of > amqp-utils to Rubyforge. You can install it using "gem install amqp- > utils". > > This first version has support for the following operations: > * enqueuing to a queue (amqp-enqueue) > * dequeuing from a queue (amqp-dequeue) > * peeking the contents of the queue (amqp-peek) > * popping a single message off a queue (amqp-pop) > * deleting a queue (amqp-deleteq) > * getting the status (number of messages and consumers) of a queue > (amqp-statq) > > Send Github pull requests for any improvements or additions you may > have. > > -- > Doug Barth > > _______________________________________________ > rabbitmq-discuss mailing list > rabbitmq-discuss at lists.rabbitmq.com > http://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss > From markkicks at gmail.com Wed Feb 4 16:18:42 2009 From: markkicks at gmail.com (mark) Date: Wed, 4 Feb 2009 08:18:42 -0800 Subject: [rabbitmq-discuss] error running stomp In-Reply-To: <82fa9e310902040745p47393c25s1074cb6e8d3e84e8@mail.gmail.com> References: <82fa9e310902032049l7be0baf0xbd96aa53e008fe5c@mail.gmail.com> <4989361A.20101@lshift.net> <82fa9e310902040745p47393c25s1074cb6e8d3e84e8@mail.gmail.com> Message-ID: <82fa9e310902040818o410272e3nee63e753a4c7bf10@mail.gmail.com> getting the latest hg clone of server, stomp fixes this problem! is it OK to use latest hg clone on production ? thanks! On Wed, Feb 4, 2009 at 7:45 AM, mark wrote: > thanks a lot, the stomp got started. > but the example ruby script is not running [i followed from here > http://www.lshift.net/blog/index.php?s=stomp] > > ruby rabbitmq-stomp-default/examples/rubycb-receiver.rb > > /usr/lib/ruby/gems/1.8/gems/stomp-1.0.6/lib/stomp.rb:233:in `write': > Broken pipe (Errno::EPIPE) > from /usr/lib/ruby/gems/1.8/gems/stomp-1.0.6/lib/stomp.rb:233:in `puts' > from /usr/lib/ruby/gems/1.8/gems/stomp-1.0.6/lib/stomp.rb:233:in > `_transmit' > from /usr/lib/ruby/gems/1.8/gems/stomp-1.0.6/lib/stomp.rb:232:in > `synchronize' > from /usr/lib/ruby/gems/1.8/gems/stomp-1.0.6/lib/stomp.rb:232:in > `_transmit' > from /usr/lib/ruby/gems/1.8/gems/stomp-1.0.6/lib/stomp.rb:220:in > `transmit' > from /usr/lib/ruby/gems/1.8/gems/stomp-1.0.6/lib/stomp.rb:117:in > `subscribe' > from cb-receiver.rb:5 > > > on /tmp/rabbit.log > > > =INFO REPORT==== 4-Feb-2009::07:38:06 === > accepted TCP connection on 0.0.0.0:61613 from 127.0.0.1:35526 > > =INFO REPORT==== 4-Feb-2009::07:38:06 === > starting STOMP connection <0.1093.0> from 127.0.0.1:35526 > > =ERROR REPORT==== 4-Feb-2009::07:38:06 === > STOMP error frame sent: > Message: "Processing error" > Detail: "{undef,[{rabbit_channel,start_link,\n > [rabbit_stomp,<0.1093.0>,<0.1093.0>,<<\"guest\">>,\n > <<\"/\">>]},\n {rabbit_stomp,do_login,4},\n > {rabbit_stomp,process_frame,3},\n > {rabbit_stomp,process_received_bytes,2},\n > {rabbit_stomp,init,1},\n {proc_lib,init_p,5}]}\n" > > =INFO REPORT==== 4-Feb-2009::07:38:06 === > ending STOMP connection <0.1093.0> from 127.0.0.1:35526 > > > how do i fix this? > thanks a lot! > > On Tue, Feb 3, 2009 at 10:30 PM, Matthias Radestock wrote: >> Mark, >> >> mark wrote: >>> >>> i got stomp compiled. but when i try to run it i get this error. >>> how do i fix this? >>> >>> the rabbitmq-server is running. >> >> There is your problem. When you run >> >>> make -C ../rabbitmq-server run \ >>> RABBITMQ_SERVER_START_ARGS='-pa '"$(pwd)/ebin"' -rabbit \ >>> stomp_listeners [{\"0.0.0.0\",61613}] \ >>> extra_startup_steps >>> [{\"STOMP-listeners\",rabbit_stomp,kickstart,[]}]' >> >> a new rabbitmq server is started. But since you already have a server >> running (and it has the same erlang node name), starting the new server >> fails with "{error,duplicate_name}". >> >> So just stop the running rabbitmq-server and try again. >> >> >> Regards, >> >> Matthias. >> > From darien at kindlund.com Wed Feb 4 16:32:30 2009 From: darien at kindlund.com (Darien Kindlund) Date: Wed, 4 Feb 2009 11:32:30 -0500 Subject: [rabbitmq-discuss] [New project] amqp-utils, CLI utilities for AMQP queues In-Reply-To: <167204d20902040805i2e2399a0s307a80c73b574622@mail.gmail.com> References: <6b035c9a-a126-4d6e-a810-b517ddac91bd@a29g2000pra.googlegroups.com> <8fde58a3-dcd8-4d07-93fc-879e6b56b926@r41g2000yqm.googlegroups.com> <167204d20902040805i2e2399a0s307a80c73b574622@mail.gmail.com> Message-ID: <50c8ffe90902040832y7510e972q32677110d5f3ff0f@mail.gmail.com> Hi Alexis, If you're talking about a light-weight rails webapp of this information, then yes, it would be useful. To keep things simple, you could even use Google's chart/visualization APIs to show statistical information. http://code.google.com/apis/chart/types.html http://code.google.com/apis/visualization/ -- Darien On Wed, Feb 4, 2009 at 11:05 AM, Alexis Richardson wrote: > Hi list, > > I have a question -- how useful would a web GUI that showed (some of) > this info be? > > alexis > > > On Wed, Feb 4, 2009 at 3:44 PM, Doug Barth wrote: >> Hello list, >> >> Just a quick note to announce that I released the first version of >> amqp-utils to Rubyforge. You can install it using "gem install amqp- >> utils". >> >> This first version has support for the following operations: >> * enqueuing to a queue (amqp-enqueue) >> * dequeuing from a queue (amqp-dequeue) >> * peeking the contents of the queue (amqp-peek) >> * popping a single message off a queue (amqp-pop) >> * deleting a queue (amqp-deleteq) >> * getting the status (number of messages and consumers) of a queue >> (amqp-statq) >> >> Send Github pull requests for any improvements or additions you may >> have. >> >> -- >> Doug Barth >> >> _______________________________________________ >> rabbitmq-discuss mailing list >> rabbitmq-discuss at lists.rabbitmq.com >> http://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss >> > > _______________________________________________ > rabbitmq-discuss mailing list > rabbitmq-discuss at lists.rabbitmq.com > http://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss > From 0x6e6562 at gmail.com Wed Feb 4 16:39:31 2009 From: 0x6e6562 at gmail.com (Ben Hood) Date: Wed, 4 Feb 2009 16:39:31 +0000 Subject: [rabbitmq-discuss] error running stomp In-Reply-To: <82fa9e310902040818o410272e3nee63e753a4c7bf10@mail.gmail.com> References: <82fa9e310902032049l7be0baf0xbd96aa53e008fe5c@mail.gmail.com> <4989361A.20101@lshift.net> <82fa9e310902040745p47393c25s1074cb6e8d3e84e8@mail.gmail.com> <82fa9e310902040818o410272e3nee63e753a4c7bf10@mail.gmail.com> Message-ID: <269388e30902040839n3c6637d2pf6c328e15c887019@mail.gmail.com> Mark, On Wed, Feb 4, 2009 at 4:18 PM, mark wrote: > getting the latest hg clone of server, stomp fixes this problem! > is it OK to use latest hg clone on production ? > thanks! Whilst there's no law against it and the code in the default branch has been QA'ed, you must be aware that this hasn't yet been formally released and hence won't have been as extensively tested as other features. I think it comes down to how conservative you are and whether you want to go into production today or in a few weeks time. Obviously at the end of the day, whichever way you decide to go, I would test it thoroughly first. HTH, Ben From alexis.richardson at cohesiveft.com Wed Feb 4 16:40:57 2009 From: alexis.richardson at cohesiveft.com (Alexis Richardson) Date: Wed, 4 Feb 2009 16:40:57 +0000 Subject: [rabbitmq-discuss] [New project] amqp-utils, CLI utilities for AMQP queues In-Reply-To: <50c8ffe90902040832y7510e972q32677110d5f3ff0f@mail.gmail.com> References: <6b035c9a-a126-4d6e-a810-b517ddac91bd@a29g2000pra.googlegroups.com> <8fde58a3-dcd8-4d07-93fc-879e6b56b926@r41g2000yqm.googlegroups.com> <167204d20902040805i2e2399a0s307a80c73b574622@mail.gmail.com> <50c8ffe90902040832y7510e972q32677110d5f3ff0f@mail.gmail.com> Message-ID: <167204d20902040840w3b9e573r4529c3ca4dba095@mail.gmail.com> Potentially yes - thanks for the suggestions. What do other folks think? alexis On Wed, Feb 4, 2009 at 4:32 PM, Darien Kindlund wrote: > Hi Alexis, > > If you're talking about a light-weight rails webapp of this > information, then yes, it would be useful. > > To keep things simple, you could even use Google's chart/visualization > APIs to show statistical information. > http://code.google.com/apis/chart/types.html > http://code.google.com/apis/visualization/ > > -- Darien > > On Wed, Feb 4, 2009 at 11:05 AM, Alexis Richardson > wrote: >> Hi list, >> >> I have a question -- how useful would a web GUI that showed (some of) >> this info be? >> >> alexis >> >> >> On Wed, Feb 4, 2009 at 3:44 PM, Doug Barth wrote: >>> Hello list, >>> >>> Just a quick note to announce that I released the first version of >>> amqp-utils to Rubyforge. You can install it using "gem install amqp- >>> utils". >>> >>> This first version has support for the following operations: >>> * enqueuing to a queue (amqp-enqueue) >>> * dequeuing from a queue (amqp-dequeue) >>> * peeking the contents of the queue (amqp-peek) >>> * popping a single message off a queue (amqp-pop) >>> * deleting a queue (amqp-deleteq) >>> * getting the status (number of messages and consumers) of a queue >>> (amqp-statq) >>> >>> Send Github pull requests for any improvements or additions you may >>> have. >>> >>> -- >>> Doug Barth >>> >>> _______________________________________________ >>> rabbitmq-discuss mailing list >>> rabbitmq-discuss at lists.rabbitmq.com >>> http://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss >>> >> >> _______________________________________________ >> rabbitmq-discuss mailing list >> rabbitmq-discuss at lists.rabbitmq.com >> http://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss >> > From markkicks at gmail.com Wed Feb 4 16:42:02 2009 From: markkicks at gmail.com (mark) Date: Wed, 4 Feb 2009 08:42:02 -0800 Subject: [rabbitmq-discuss] error using stomp Message-ID: <82fa9e310902040842l6e5aa116xab0317fdb07199d4@mail.gmail.com> hi all, i am getting this error when i was sending a message on a channel. this works fine with morbid stomp server. how to fix this? thanks =ERROR REPORT==== 4-Feb-2009::08:36:19 === STOMP error frame sent: Message: "Processing error" Detail: "{{badmatch,{error,closed}},\n [{rabbit_stomp,send_frame,2},\n {rabbit_stomp,do_login,4},\n {rabbit_stomp,process_frame,3},\n {rabbit_stomp,process_received_bytes,2},\n {rabbit_stomp,init,1},\n {proc_lib,init_p,5}]}\n" =ERROR REPORT==== 4-Feb-2009::08:36:19 === ** Generic server <0.812.0> terminating ** Last message in was {'EXIT',<0.811.0>,{badmatch,{error,closed}}} ** When Server state == {ch,running,rabbit_stomp,<0.811.0>,<0.811.0>, undefined,none, {sets,0,16,16,8,80,48, {[],[],[],[],[],[],[],[],[],[],[],[],[],[], [],[]}, {{[],[],[],[],[],[],[],[],[],[],[],[],[],[], [],[]}}}, 1, {[],[]}, {[],[]}, <<"guest">>,<<"/">>,<<>>, {dict,0,16,16,8,80,48, {[],[],[],[],[],[],[],[],[],[],[],[],[],[], [],[]}, {{[],[],[],[],[],[],[],[],[],[],[],[],[],[], [],[]}}}} ** Reason for termination == ** {badmatch,{error,closed}} From 0x6e6562 at gmail.com Wed Feb 4 16:48:58 2009 From: 0x6e6562 at gmail.com (Ben Hood) Date: Wed, 4 Feb 2009 16:48:58 +0000 Subject: [rabbitmq-discuss] RabbitMQ/Erlang Dependency on SSL In-Reply-To: References: Message-ID: <269388e30902040848q511c159bjaf46c922bb45e015@mail.gmail.com> Roger, On Wed, Feb 4, 2009 at 3:55 PM, Wilson, Roger wrote: >This is more an observation than a bug or issue. Technically this is a bug, see below for details :-) > =ERROR REPORT==== 4-Feb-2009::12:22:03 === connection <0.221.0> > (running), channel 1 - error: > {undef,[{ssl_base64,encode, ....... > It looked like the ssl library call is missing. My guess is it uses > some call into SSL to produce the random queue name. As it turns out, we use the ssl_base64 module and have left ourselves a TODO in the code to remove this: "We use the (undocumented) ssl_base64 module here because it is present throughout OTP R11 and R12 whereas base64 only becomes available in R11B-4. Once debian stable and EPEL have moved from R11B-2 to R11B-4 or later we should change this to use base64." In the meantime the world has moved on past R11B-4, so it's probably time to create a bug to get this action itemed. Thanks for pointing it out. HTH, Ben From 0x6e6562 at gmail.com Wed Feb 4 17:00:14 2009 From: 0x6e6562 at gmail.com (Ben Hood) Date: Wed, 4 Feb 2009 17:00:14 +0000 Subject: [rabbitmq-discuss] error running stomp In-Reply-To: <269388e30902040839n3c6637d2pf6c328e15c887019@mail.gmail.com> References: <82fa9e310902032049l7be0baf0xbd96aa53e008fe5c@mail.gmail.com> <4989361A.20101@lshift.net> <82fa9e310902040745p47393c25s1074cb6e8d3e84e8@mail.gmail.com> <82fa9e310902040818o410272e3nee63e753a4c7bf10@mail.gmail.com> <269388e30902040839n3c6637d2pf6c328e15c887019@mail.gmail.com> Message-ID: <269388e30902040900x615def52x4bd9abe631beee7e@mail.gmail.com> Mark On Wed, Feb 4, 2009 at 4:39 PM, Ben Hood <0x6e6562 at gmail.com> wrote: > Whilst there's no law against it and the code in the default branch > has been QA'ed, you must be aware that this hasn't yet been formally > released and hence won't have been as extensively tested as other > features. Sorry, I got a bit distracted as I was writing this post. My comments apply to the rabbitmq-server source tree, but really to the stomp adpater tree. The former has always gone through a formal QA process, but the stomp adapter has been experimental until now and is just now beginning to take on a supported status, hence your YMMV. Ben From bhyde at pobox.com Wed Feb 4 17:01:59 2009 From: bhyde at pobox.com (Ben Hyde) Date: Wed, 4 Feb 2009 12:01:59 -0500 Subject: [rabbitmq-discuss] Q replication anxiety Message-ID: <00A5C75C-98D0-4367-B254-E06EF49EEA28@pobox.com> This is causing me anxiety: "... All data/state required for the operation of a RabbitMQ broker is replicated across all nodes ... exception to this are message queues, which currently only reside on the node that created them ..."[1] My setup is on ec2. My testing randomly kill's machines; in service of assuring the system can self heal. Obviously I'm going to be miserable if I kill the machines with Q's on them? I guess i need to be sure the disks the Q's fall onto aren't wiped (which they are today). Is my anxiety misplaced, if not then how do others address it. - ben [1] http://www.rabbitmq.com/clustering.html From markkicks at gmail.com Wed Feb 4 17:20:13 2009 From: markkicks at gmail.com (mark) Date: Wed, 4 Feb 2009 09:20:13 -0800 Subject: [rabbitmq-discuss] error running stomp In-Reply-To: <269388e30902040900x615def52x4bd9abe631beee7e@mail.gmail.com> References: <82fa9e310902032049l7be0baf0xbd96aa53e008fe5c@mail.gmail.com> <4989361A.20101@lshift.net> <82fa9e310902040745p47393c25s1074cb6e8d3e84e8@mail.gmail.com> <82fa9e310902040818o410272e3nee63e753a4c7bf10@mail.gmail.com> <269388e30902040839n3c6637d2pf6c328e15c887019@mail.gmail.com> <269388e30902040900x615def52x4bd9abe631beee7e@mail.gmail.com> Message-ID: <82fa9e310902040920h5b4ece22u93dcd7b6b4595834@mail.gmail.com> On Wed, Feb 4, 2009 at 9:00 AM, Ben Hood <0x6e6562 at gmail.com> wrote: > Mark > > On Wed, Feb 4, 2009 at 4:39 PM, Ben Hood <0x6e6562 at gmail.com> wrote: >> Whilst there's no law against it and the code in the default branch >> has been QA'ed, you must be aware that this hasn't yet been formally >> released and hence won't have been as extensively tested as other >> features. > > Sorry, I got a bit distracted as I was writing this post. My comments > apply to the rabbitmq-server source tree, but really to the stomp > adpater tree. The former has always gone through a formal QA process, > but the stomp adapter has been experimental until now and is just now > beginning to take on a supported status, hence your YMMV. Ben, Thanks for the input. I started out with the default branch of stomp and 1.5.1 rabbitmq server. but there were errors even to get started, and that is why i tried the hg clone latest versions and they worked. which version of rabbitmq-server and rabbitmq-stomp should i use to get them running? thanks! From matthias at lshift.net Wed Feb 4 19:35:33 2009 From: matthias at lshift.net (Matthias Radestock) Date: Wed, 04 Feb 2009 19:35:33 +0000 Subject: [rabbitmq-discuss] RabbitMQ/Erlang Dependency on SSL In-Reply-To: <269388e30902040848q511c159bjaf46c922bb45e015@mail.gmail.com> References: <269388e30902040848q511c159bjaf46c922bb45e015@mail.gmail.com> Message-ID: <4989EE05.1000003@lshift.net> Ben Hood wrote: > "We use the (undocumented) ssl_base64 module here because it is > present throughout OTP R11 and R12 whereas base64 only becomes > available in R11B-4. Once debian stable and EPEL have moved from > R11B-2 to R11B-4 or later we should change this to use base64." > > In the meantime the world has moved on past R11B-4, so it's probably > time to create a bug to get this action itemed. Debian stable is *still* on R11B-2, so the constraint still holds. Matthias. From matthias at lshift.net Wed Feb 4 21:07:19 2009 From: matthias at lshift.net (Matthias Radestock) Date: Wed, 04 Feb 2009 21:07:19 +0000 Subject: [rabbitmq-discuss] getting started, broker runs; can't get status In-Reply-To: <002501c9866a$a4683d40$ed38b7c0$@com> References: <3d5db09e0901201356r1cafa64aud71de1a8c2d28cef@mail.gmail.com> <498409CD.6060600@lshift.net> <921b71e30901311048k3a96f0c8o7a303b1b89e16d99@mail.gmail.com> <4984A903.7060804@lshift.net> <921b71e30901311213h5c9b072ftff66b3addd2a0466@mail.gmail.com> <4984B9E6.5050804@lshift.net> <4984BDAD.9040502@cohesiveft.com> <4984BE9D.6080909@lshift.net> <4984C4DC.1080105@cohesiveft.com> <4984E351.5030202@lshift.net> <921b71e30902021254l4c6f5db4ga7c905c9aa9f2370@mail.gmail.com> <4988668B.8040807@cohesiveft.com> <002501c9866a$a4683d40$ed38b7c0$@com> Message-ID: <498A0387.6090803@lshift.net> Christopher, christopher hoover wrote: >> # erl -sname foo -cookie coo >> Erlang (BEAM) emulator version 5.6.5 [source] [async-threads:0] >> [kernel-poll:false] >> >> Eshell V5.6.5 (abort with ^G) >> (foo at myvm)1> net_adm:names(). >> {ok,[{"foo",1292}]} >> (foo at myvm)2> >> >> Exit from there with Ctrl+C Ctrl+C. > > This works fine for me as rabbitmq in / (from which the rabbitmq startup > script fails). I started from scratch (no rabbitmq or epmd). It occurs to me that the problem you are seeing may be the same as that experienced by Billy Chasen, except you are running a more recent version of Erlang and hence it gets reported slightly differently. To check whether that is the case, please perform the same test Billy ran: Locate the rabbitmq-server script - it should live under /usr/lib/rabbitmq/bin/ - and change the line that reads exec erl \ to echo erl \ Then try to start the server normally (e.g. with "/etc/init.d/rabbitmq-server start") and send me the output of /var/log/rabbitmq/startup_log. Do this for both the original init.d script containing the "cd /", and your modified version containing "cd /var/lib/rabbitmq". Regards, Matthias. From ch at murgatroid.com Thu Feb 5 06:05:26 2009 From: ch at murgatroid.com (christopher hoover) Date: Wed, 4 Feb 2009 22:05:26 -0800 Subject: [rabbitmq-discuss] getting started, broker runs; can't get status In-Reply-To: <498A0387.6090803@lshift.net> References: <3d5db09e0901201356r1cafa64aud71de1a8c2d28cef@mail.gmail.com> <498409CD.6060600@lshift.net> <921b71e30901311048k3a96f0c8o7a303b1b89e16d99@mail.gmail.com> <4984A903.7060804@lshift.net> <921b71e30901311213h5c9b072ftff66b3addd2a0466@mail.gmail.com> <4984B9E6.5050804@lshift.net> <4984BDAD.9040502@cohesiveft.com> <4984BE9D.6080909@lshift.net> <4984C4DC.1080105@cohesiveft.com> <4984E351.5030202@lshift.net> <921b71e30902021254l4c6f5db4ga7c905c9aa9f2370@mail.gmail.com> <4988668B.8040807@cohesiveft.com> <002501c9866a$a4683d40$ed38b7c0$@com> <498A0387.6090803@lshift.net> Message-ID: <004701c98757$bde31450$39a93cf0$@com> > It occurs to me that the problem you are seeing may be the same as that > experienced by Billy Chasen, except you are running a more recent > version of Erlang and hence it gets reported slightly differently. > > To check whether that is the case, please perform the same test Billy > ran: > > Locate the rabbitmq-server script - it should live under > /usr/lib/rabbitmq/bin/ - and change the line that reads > exec erl \ > to > echo erl \ > Then try to start the server normally (e.g. with > "/etc/init.d/rabbitmq-server start") and send me the output of > /var/log/rabbitmq/startup_log. Do this for both the original init.d > script containing the "cd /", and your modified version containing "cd > /var/lib/rabbitmq". OK, here you go. The inet_defalt bits are telling. # with "cd /" in /etc/init.d/rabbitmq ch at gato:~$ sudo /etc/init.d/rabbitmq-server start Starting rabbitmq-server: FAILED - check /var/log/rabbitmq/startup_log, _err rabbitmq-server. ch at gato:~$ cat /var/log/rabbitmq/startup_log Starting all nodes... Starting node rabbit at gato... erl -pa /usr/lib/rabbitmq/bin/../ebin -noinput -s rabbit -sname rabbit -boot start_sasl +W w +K true +A30 -kernel inet_default_listen_options a -kernel inet_default_connect_options a -rabbit tcp_listeners [{"0.0.0.0", 5672}] -sasl errlog_type error -kernel error_logger {file,"/var/log/rabbitmq/rabbit.log"} -sasl sasl_error_logger {file,"/var/log/rabbitmq/rabbit-sasl.log"} -os_mon start_cpu_sup true -os_mon start_disksup false -os_mon start_memsup false -os_mon start_os_sup false -os_mon memsup_system_only true -os_mon system_memory_high_watermark 0.95 -mnesia dir "/var/lib/rabbitmq/mnesia/rabbit" -pa /usr/local/ebin -rabbit rabbit_http_conf "/usr/local/etc/rabbitmq-httpd.conf" extra_startup_steps [{"HTTP-JSON-listeners",rabbit_http,kickstart,[]}] -noinput # with "cd /var/log/rabbitmq" in /etc/init.d/rabbitmq ch at gato:~$ sudo /etc/init.d/rabbitmq-server start Starting rabbitmq-server: FAILED - check /var/log/rabbitmq/startup_log, _err rabbitmq-server. ch at gato:~$ cat /var/log/rabbitmq/startup_log Starting all nodes... Starting node rabbit at gato... erl -pa /usr/lib/rabbitmq/bin/../ebin -noinput -s rabbit -sname rabbit -boot start_sasl +W w +K true +A30 -kernel inet_default_listen_options [{nodelay,true},{sndbuf,16384},{recbuf,4096}] -kernel inet_default_connect_options [{nodelay,true}] -rabbit tcp_listeners [{"0.0.0.0", 5672}] -sasl errlog_type error -kernel error_logger {file,"/var/log/rabbitmq/rabbit.log"} -sasl sasl_error_logger {file,"/var/log/rabbitmq/rabbit-sasl.log"} -os_mon start_cpu_sup true -os_mon start_disksup false -os_mon start_memsup false -os_mon start_os_sup false -os_mon memsup_system_only true -os_mon system_memory_high_watermark 0.95 -mnesia dir "/var/lib/rabbitmq/mnesia/rabbit" -pa /usr/local/ebin -rabbit rabbit_http_conf "/usr/local/etc/rabbitmq-httpd.conf" extra_startup_steps [{"HTTP-JSON-listeners",rabbit_http,kickstart,[]}] -noinput ch at gato:~$ Obviously I left http in there. (I didn't mean to. I will re-run if you'd like.) For the record: ch at gato:~$ dpkg --search /bin/sh diversion by dash from: /bin/sh diversion by dash to: /bin/sh.distrib bash: /bin/sh ch at gato:~$ ls -l /bin/sh* lrwxrwxrwx 1 root root 4 2007-04-22 11:49 /bin/sh -> dash lrwxrwxrwx 1 root root 4 2008-08-20 22:28 /bin/sh.distrib -> bash ch at gato:~$ -ch From dialtone at gmail.com Thu Feb 5 06:51:39 2009 From: dialtone at gmail.com (Valentino Volonghi) Date: Wed, 4 Feb 2009 22:51:39 -0800 Subject: [rabbitmq-discuss] [New project] amqp-utils, CLI utilities for AMQP queues In-Reply-To: <167204d20902040840w3b9e573r4529c3ca4dba095@mail.gmail.com> References: <6b035c9a-a126-4d6e-a810-b517ddac91bd@a29g2000pra.googlegroups.com> <8fde58a3-dcd8-4d07-93fc-879e6b56b926@r41g2000yqm.googlegroups.com> <167204d20902040805i2e2399a0s307a80c73b574622@mail.gmail.com> <50c8ffe90902040832y7510e972q32677110d5f3ff0f@mail.gmail.com> <167204d20902040840w3b9e573r4529c3ca4dba095@mail.gmail.com> Message-ID: <68184A93-83C6-41EC-976E-E753362D2962@gmail.com> -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 On Feb 4, 2009, at 8:40 AM, Alexis Richardson wrote: > Potentially yes - thanks for the suggestions. > > What do other folks think? Overkill to have something external than rabbitmq IMHO. RMQ is so memory efficient that having a web framework running next to it, and using 10 times more memory, just to show statistics seems overkill. But more management tools is useful so I'd vote for an API in RMQ that lets anybody write a page or 2 of statistics in their app backend. - -- Valentino Volonghi aka Dialtone Now running MacOS X 10.5 Home Page: http://www.twisted.it http://www.adroll.com -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.9 (Darwin) iEYEARECAAYFAkmKjHsACgkQ9Llz28widGXiogCcDdeyrFx1Ge8K/glqtti2Glta vSAAnj4pl9Bjr/gbHScQxAouj7m15u4Y =Ai/N -----END PGP SIGNATURE----- From matthias at lshift.net Thu Feb 5 07:59:47 2009 From: matthias at lshift.net (Matthias Radestock) Date: Thu, 05 Feb 2009 07:59:47 +0000 Subject: [rabbitmq-discuss] getting started, broker runs; can't get status In-Reply-To: <004701c98757$bde31450$39a93cf0$@com> References: <3d5db09e0901201356r1cafa64aud71de1a8c2d28cef@mail.gmail.com> <498409CD.6060600@lshift.net> <921b71e30901311048k3a96f0c8o7a303b1b89e16d99@mail.gmail.com> <4984A903.7060804@lshift.net> <921b71e30901311213h5c9b072ftff66b3addd2a0466@mail.gmail.com> <4984B9E6.5050804@lshift.net> <4984BDAD.9040502@cohesiveft.com> <4984BE9D.6080909@lshift.net> <4984C4DC.1080105@cohesiveft.com> <4984E351.5030202@lshift.net> <921b71e30902021254l4c6f5db4ga7c905c9aa9f2370@mail.gmail.com> <4988668B.8040807@cohesiveft.com> <002501c9866a$a4683d40$ed38b7c0$@com> <498A0387.6090803@lshift.net> <004701c98757$bde31450$39a93cf0$@com> Message-ID: <498A9C73.80104@lshift.net> Christopher, christopher hoover wrote: > The inet_default bits are telling. So your problem is indeed the same as Billy's - somehow the settings for inet_defaults get garbled and end up being just one character - 'a' in your case and 't' in Billy's. > lrwxrwxrwx 1 root root 4 2007-04-22 11:49 /bin/sh -> dash What version of 'dash' are you running? The problem has all the hallmarks of some shell weirdness. OTOH, Billy is running bash, and I've also tried the rabbit scripts with dash with no problems. Matthias. From Alister.Morton at tradition.com Thu Feb 5 09:14:27 2009 From: Alister.Morton at tradition.com (Alister Morton) Date: Thu, 5 Feb 2009 09:14:27 +0000 Subject: [rabbitmq-discuss] [New project] amqp-utils, CLI utilities for AMQP queues In-Reply-To: <68184A93-83C6-41EC-976E-E753362D2962@gmail.com> Message-ID: <5A46D132C446C04B9EFE8AD14E7891065C49E4BC1B@SVR-2K3-BH-EMC.tradition.int> > But more management tools is > useful so I'd vote for an API in RMQ that lets anybody write > a page or 2 of statistics in their app backend. I'd concur with that - reporting is essential, but a lightweight API to allow it rather than giving the broker lots of baggage seems the way to go for me. Al. The information herein may have been obtained from various sources. Any opinion expressed may be that of the sender only, is subject to change without notice and should be independently evaluated. Nothing herein constitutes investment advice or an offer, or solicitation of an offer, to buy or sell any financial product. Any data consists of purely indicative prices and should not be relied upon to revalue any commercial positions held by any recipient. Tradition makes no warranty that the data represent or indicates prices at which transactions may be or have been made by any Tradition Group company. To the maximum extent of the law, Tradition accepts no responsibility for, and cannot and does not warrant the integrity, accuracy, quality, completeness, merchantability or suitability for a particular purpose or requirement of the information or data, even if arising out of the negligence of Tradition or otherwise. Tradition accepts no liability for any direct, indirect or other consequential loss arising out of any use of the information contained in this document or any omission from it. This communication is directed at Eligible Counterparties and Professional Clients as defined by the FSA. It is not for distribution to nor should it be relied upon by Private Clients. It is not intended for distribution to, or use by any person or entity in any jurisdiction or country where such distribution or use would be contrary to any applicable law or regulation. Please note that, for business or compliance reasons, we may monitor and read emails sent or received using our servers or equipment. Tradition (UK) Ltd (937647; FSA 139200), Tradition Financial Services Ltd (1046064; FSA 147543), TFS Derivatives Ltd (4051930; FSA 197244), Tradition London Clearing Ltd (3633863; FSA 190632) and TFS-ICAP Ltd (4025995; FSA 206018) registered in England at Beaufort House, 15 St Botolph Street, London EC3A 7QX; authorised and regulated by the Financial Services Authority. VAT No: GB 365 4639 27 except TFS-ICAP GB 766 0854 05. From ch at murgatroid.com Thu Feb 5 09:21:11 2009 From: ch at murgatroid.com (christopher hoover) Date: Thu, 5 Feb 2009 01:21:11 -0800 Subject: [rabbitmq-discuss] getting started, broker runs; can't get status In-Reply-To: <498A9C73.80104@lshift.net> References: <3d5db09e0901201356r1cafa64aud71de1a8c2d28cef@mail.gmail.com> <498409CD.6060600@lshift.net> <921b71e30901311048k3a96f0c8o7a303b1b89e16d99@mail.gmail.com> <4984A903.7060804@lshift.net> <921b71e30901311213h5c9b072ftff66b3addd2a0466@mail.gmail.com> <4984B9E6.5050804@lshift.net> <4984BDAD.9040502@cohesiveft.com> <4984BE9D.6080909@lshift.net> <4984C4DC.1080105@cohesiveft.com> <4984E351.5030202@lshift.net> <921b71e30902021254l4c6f5db4ga7c905c9aa9f2370@mail.gmail.com> <4988668B.8040807@cohesiveft.com> <002501c9866a$a4683d40$ed38b7c0$@com> <498A0387.6090803@lshift.net> <004701c98757$bde31450$39a93cf0$@com> <498A9C73.80104@lshift.net> Message-ID: <005801c98773$15dd6730$41983590$@com> > christopher hoover wrote: > > The inet_default bits are telling. > > So your problem is indeed the same as Billy's - somehow the settings > for > inet_defaults get garbled and end up being just one character - 'a' in > your case and 't' in Billy's. > The problem has all the hallmarks of some shell weirdness. OTOH, Billy > is running bash, and I've also tried the rabbit scripts with dash with > no problems. It is a quoting problem. I should have seen it before now. The problem is that the new parameters are a glob: ch at gato:/$ echo [{nodelay,true},{sndbuf,16384},{recbuf,4096}] a a a a [true,sndbuf,recbuf] [true,sndbuf,4096] [true,16384,recbuf] [true,16384,4096] I happen to have a directory named /a. Billy, I would wager, happens to have a directory name /t. If I delete /a, it works with "cd /". -ch From matthias at lshift.net Thu Feb 5 09:34:30 2009 From: matthias at lshift.net (Matthias Radestock) Date: Thu, 05 Feb 2009 09:34:30 +0000 Subject: [rabbitmq-discuss] getting started, broker runs; can't get status In-Reply-To: <005801c98773$15dd6730$41983590$@com> References: <3d5db09e0901201356r1cafa64aud71de1a8c2d28cef@mail.gmail.com> <498409CD.6060600@lshift.net> <921b71e30901311048k3a96f0c8o7a303b1b89e16d99@mail.gmail.com> <4984A903.7060804@lshift.net> <921b71e30901311213h5c9b072ftff66b3addd2a0466@mail.gmail.com> <4984B9E6.5050804@lshift.net> <4984BDAD.9040502@cohesiveft.com> <4984BE9D.6080909@lshift.net> <4984C4DC.1080105@cohesiveft.com> <4984E351.5030202@lshift.net> <921b71e30902021254l4c6f5db4ga7c905c9aa9f2370@mail.gmail.com> <4988668B.8040807@cohesiveft.com> <002501c9866a$a4683d40$ed38b7c0$@com> <498A0387.6090803@lshift.net> <004701c98757$bde31450$39a93cf0$@com> <498A9C73.80104@lshift.net> <005801c98773$15dd6730$41983590$@com> Message-ID: <498AB2A6.3040106@lshift.net> Christopher, christopher hoover wrote: > It is a quoting problem. I should have seen it before now. > > The problem is that the new parameters are a glob: > > ch at gato:/$ echo [{nodelay,true},{sndbuf,16384},{recbuf,4096}] > a a a a [true,sndbuf,recbuf] [true,sndbuf,4096] [true,16384,recbuf] > [true,16384,4096] > > I happen to have a directory named /a. Billy, I would wager, happens to > have a directory name /t. > > If I delete /a, it works with "cd /". Right. That's what I thought too when looking into the problem with Billy. Putting single quotes around the term should stop the expansion. However, when Billy tried that in the script he still got the same problem. Does it work for you? Matthias. From alexis.richardson at cohesiveft.com Thu Feb 5 09:35:21 2009 From: alexis.richardson at cohesiveft.com (Alexis Richardson) Date: Thu, 5 Feb 2009 09:35:21 +0000 Subject: [rabbitmq-discuss] [New project] amqp-utils, CLI utilities for AMQP queues In-Reply-To: <5A46D132C446C04B9EFE8AD14E7891065C49E4BC1B@SVR-2K3-BH-EMC.tradition.int> References: <68184A93-83C6-41EC-976E-E753362D2962@gmail.com> <5A46D132C446C04B9EFE8AD14E7891065C49E4BC1B@SVR-2K3-BH-EMC.tradition.int> Message-ID: <167204d20902050135n5632c223q633cbbd1ef8bcecc@mail.gmail.com> Thanks for the feedback on this. As Valentino and Al point out, keeping things compact is important, and not all users are running or want to run a web framework with RabbitMQ. Though of course some will. So one option here is to use the built-in HTTP capability rather than a web framework. For example, to provide an interface to rabbitmqctl that lets people use a browser to keep an eye on the broker. On the other hand people may prefer programmatic management. alexis On Thu, Feb 5, 2009 at 9:14 AM, Alister Morton wrote: >> But more management tools is >> useful so I'd vote for an API in RMQ that lets anybody write >> a page or 2 of statistics in their app backend. > > I'd concur with that - reporting is essential, but a lightweight API to allow it rather than giving the broker lots of baggage seems the way to go for me. > > Al. > > The information herein may have been obtained from various sources. Any opinion expressed may be that of the sender only, is subject to change without notice and should be independently evaluated. Nothing herein constitutes investment advice or an offer, or solicitation of an offer, to buy or sell any financial product. Any data consists of purely indicative prices and should not be relied upon to revalue any commercial positions held by any recipient. Tradition makes no warranty that the data represent or indicates prices at which transactions may be or have been made by any Tradition Group company. To the maximum extent of the law, Tradition accepts no responsibility for, and cannot and does not warrant the integrity, accuracy, quality, completeness, merchantability or suitability for a particular purpose or requirement of the information or data, even if arising out of the negligence of Tradition or otherwise. Tradition accepts no liability for any direct, indirect or other consequential loss arising out of any use of the information contained in this document or any omission from it. This communication is directed at Eligible Counterparties and Professional Clients as defined by the FSA. It is not for distribution to nor should it be relied upon by Private Clients. It is not intended for distribution to, or use by any person or entity in any jurisdiction or country where such distribution or use would be contrary to any applicable law or regulation. Please note that, for business or compliance reasons, we may monitor and read emails sent or received using our servers or equipment. Tradition (UK) Ltd (937647; FSA 139200), Tradition Financial Services Ltd (1046064; FSA 147543), TFS Derivatives Ltd (4051930; FSA 197244), Tradition London Clearing Ltd (3633863; FSA 190632) and TFS-ICAP Ltd (4025995; FSA 206018) registered in England at Beaufort House, 15 St Botolph Street, London EC3A 7QX; authorised and regulated by the Financial Services Authority. VAT No: GB 365 4639 27 except TFS-ICAP GB 766 0854 05. > From matthias at lshift.net Thu Feb 5 09:52:29 2009 From: matthias at lshift.net (Matthias Radestock) Date: Thu, 05 Feb 2009 09:52:29 +0000 Subject: [rabbitmq-discuss] getting started, broker runs; can't get status In-Reply-To: <498AB2A6.3040106@lshift.net> References: <3d5db09e0901201356r1cafa64aud71de1a8c2d28cef@mail.gmail.com> <498409CD.6060600@lshift.net> <921b71e30901311048k3a96f0c8o7a303b1b89e16d99@mail.gmail.com> <4984A903.7060804@lshift.net> <921b71e30901311213h5c9b072ftff66b3addd2a0466@mail.gmail.com> <4984B9E6.5050804@lshift.net> <4984BDAD.9040502@cohesiveft.com> <4984BE9D.6080909@lshift.net> <4984C4DC.1080105@cohesiveft.com> <4984E351.5030202@lshift.net> <921b71e30902021254l4c6f5db4ga7c905c9aa9f2370@mail.gmail.com> <4988668B.8040807@cohesiveft.com> <002501c9866a$a4683d40$ed38b7c0$@com> <498A0387.6090803@lshift.net> <004701c98757$bde31450$39a93cf0$@com> <498A9C73.80104@lshift.net> <005801c98773$15dd6730$41983590$@com> <498AB2A6.3040106@lshift.net> Message-ID: <498AB6DD.7010508@lshift.net> Billy, Matthias Radestock wrote: > christopher hoover wrote: >> It is a quoting problem. I should have seen it before now. >> >> The problem is that the new parameters are a glob: >> >> ch at gato:/$ echo [{nodelay,true},{sndbuf,16384},{recbuf,4096}] >> a a a a [true,sndbuf,recbuf] [true,sndbuf,4096] [true,16384,recbuf] >> [true,16384,4096] >> >> I happen to have a directory named /a. Billy, I would wager, happens to >> have a directory name /t. >> >> If I delete /a, it works with "cd /". > > Right. That's what I thought too when looking into the problem with > Billy. Putting single quotes around the term should stop the expansion. > However, when Billy tried that in the script he still got the same > problem. Does it work for you? I've just tried this myself and I can reproduce Christopher's results. Moreover, putting single quotes around the terms in the rabbitmq-server script, i.e. changing the RABBITMQ_SERVER_ERL_ARGS settings to [ "x" = "x$RABBITMQ_SERVER_ERL_ARGS" ] && RABBITMQ_SERVER_ERL_ARGS="+K true +A30 \ -kernel inet_default_listen_options '[{nodelay,true},{sndbuf,16384},{recbuf,4096}]' \ -kernel inet_default_connect_options '[{nodelay,true}]'" does fix the problem for me. But when you tried the same earlier the problem remained. Could you please repeat that test? Matthias. From dialtone at gmail.com Thu Feb 5 09:55:23 2009 From: dialtone at gmail.com (Valentino Volonghi) Date: Thu, 5 Feb 2009 01:55:23 -0800 Subject: [rabbitmq-discuss] [New project] amqp-utils, CLI utilities for AMQP queues In-Reply-To: <167204d20902050135n5632c223q633cbbd1ef8bcecc@mail.gmail.com> References: <68184A93-83C6-41EC-976E-E753362D2962@gmail.com> <5A46D132C446C04B9EFE8AD14E7891065C49E4BC1B@SVR-2K3-BH-EMC.tradition.int> <167204d20902050135n5632c223q633cbbd1ef8bcecc@mail.gmail.com> Message-ID: <3D416814-397E-4C0D-8302-D032E655C083@gmail.com> -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 On Feb 5, 2009, at 1:35 AM, Alexis Richardson wrote: > Thanks for the feedback on this. > > As Valentino and Al point out, keeping things compact is important, > and not all users are running or want to run a web framework with > RabbitMQ. Though of course some will. > > So one option here is to use the built-in HTTP capability rather than > a web framework. For example, to provide an interface to rabbitmqctl > that lets people use a browser to keep an eye on the broker. > > On the other hand people may prefer programmatic management. I'm pretty sure that with an HTTP server built-in you can do anything to rabbitmq, even writing consumers in javascript :). More seriously: An HTTP server that exposes some kind of simple REST API that can be queries also from javascript would mean that even a static page (hardly a match for a built-in http server) could be served efficiently and act as a monitoring screen. As for the REST API I'm thinking along the lines of: /stats/ <- general stats and list of exchanges /stats// <- list of queues under exchange /stats/// <- queue stats /stats/users/ /stats/consumers/ /stats/acls/ ... simple http-auth is more than enough if you really want to make this secure and could use the same users credentials that rabbitmq stores for the rest of the system. And the response format for each request would simply be JSON, then a single html page can be used to show all the stats that one might need. This has no memory overhead because everything is done on the client side and can be freely extended by simply changing javascript without the need to deploy a new web server somewhere (etc etc). Then by quering (polling at the beginning, comet when there's more time to develop something like this) a url multiple times one can build a chart of the stats (and if polling the built-in http server doesn't even need to know that it is happening). - -- Valentino Volonghi aka Dialtone Now running MacOS X 10.5 Home Page: http://www.twisted.it http://www.adroll.com -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.9 (Darwin) iEYEARECAAYFAkmKt4sACgkQ9Llz28widGW65ACgtJTQCgE7ZYMLTFkuALRxSM+O pzwAnRlrN8uI6BS7vTEHKgOLFOzj1Lqd =7ifr -----END PGP SIGNATURE----- From tonyg at lshift.net Thu Feb 5 12:23:17 2009 From: tonyg at lshift.net (Tony Garnock-Jones) Date: Thu, 05 Feb 2009 12:23:17 +0000 Subject: [rabbitmq-discuss] STOMP adapter tagged for v1.5.0, v1.5.1 Message-ID: <498ADA35.5030005@lshift.net> Hi all, Sorry for the recent confusion about the STOMP adapter. I've gone back and tagged the version that runs against RabbitMQ v1.5.0 and v.1.5.1. You can get it by hg clone http://hg.rabbitmq.com/rabbitmq-stomp cd rabbitmq-stomp; hg up -C rabbitmq_v1_5_1 Regards, Tony From phil at parasec.net Thu Feb 5 15:16:17 2009 From: phil at parasec.net (Philip Stubbings) Date: Thu, 5 Feb 2009 15:16:17 +0000 Subject: [rabbitmq-discuss] memory usage Message-ID: <20090205151617.GA31965@muspelheim.parasec.net> Hi all, I have set up Rabbit 1.5.1 running as a single node. During testing, I notice that memory use is extremely high. More specifically, if I push 1 million messages to a queue and later consume them (with acknowledgment) memory usage remains very high (in excess of 3G). I can verify that all consumed messages where acknowledged and that the queue is empty. Why does the process still require 3G of memory even after 24 hours of inactivity? The only way to reduce the memory footprint is to restart rabbitmq., However this is not an option for me. The second problem I have encountered is during, and immediately after pushing 1 million messages to rabbitmq. If I try to connect a consumer whilst messages are being produced, I get the following error on the consumer side: (connection error; reason: {#method(reply-code=541,reply-text=INTERNAL_ERROR,class-id=0,method-id=0),null,""}) While, on the rabbit server: =ERROR REPORT==== 5-Feb-2009::12:43:57 === connection <0.3155.0> (running), channel 1 - error: {timeout,{gen_server,call,[rabbit_persister,serial]}} =WARNING REPORT==== 5-Feb-2009::12:43:57 === Non-AMQP exit reason '{timeout,{gen_server,call,[rabbit_persister,serial]}}' And also, during and just after the 1 million messages have been produced (with no consumers connected) I get the following error while trying to examine the queue status: ../rabbitmq-server-1.5.1/scripts/rabbitmqctl list_queues -p / Listing queues ... Error: {badrpc, {'EXIT', {timeout, {gen_server,call,[<4472.2308.0>,{info,[name,messages]}]}}}} Any ideas? Thanks, Phil From darien at kindlund.com Thu Feb 5 18:08:23 2009 From: darien at kindlund.com (Darien Kindlund) Date: Thu, 5 Feb 2009 13:08:23 -0500 Subject: [rabbitmq-discuss] STOMP Error? Message-ID: <50c8ffe90902051008i36bfe6b1n3c92af8c739ba522@mail.gmail.com> Hi Tony, After running about 10 Net::Stomp perl processes simultaneously all connecting to RabbitMQ via STOMP, I'm seeing the following error messages in the rabbit.log file, with all Net::Stomp connections dying: -=[root at manager rabbitmq]=-# tail -f rabbit.log ending STOMP connection <0.11494.0> from 127.0.0.1:33688 =INFO REPORT==== 5-Feb-2009::13:05:28 === accepted TCP connection on 127.0.0.1:61613 from 127.0.0.1:33701 =INFO REPORT==== 5-Feb-2009::13:05:28 === starting STOMP connection <0.11529.0> from 127.0.0.1:33700 =INFO REPORT==== 5-Feb-2009::13:05:28 === accepted TCP connection on 127.0.0.1:61613 from 127.0.0.1:33702 =ERROR REPORT==== 5-Feb-2009::13:05:28 === STOMP error frame sent: Message: "Processing error" Detail: "{timeout,{gen_server,call,[rabbit_persister,serial]}}\n" =INFO REPORT==== 5-Feb-2009::13:05:28 === ending STOMP connection <0.11496.0> from 127.0.0.1:33689 =INFO REPORT==== 5-Feb-2009::13:05:28 === starting STOMP connection <0.11532.0> from 127.0.0.1:33701 =INFO REPORT==== 5-Feb-2009::13:05:28 === accepted TCP connection on 127.0.0.1:61613 from 127.0.0.1:33703 =ERROR REPORT==== 5-Feb-2009::13:05:29 === STOMP error frame sent: Message: "Processing error" Detail: "{timeout,{gen_server,call,[rabbit_persister,serial]}}\n" Here's the perl output: Connection reset by peer at /usr/local/share/perl/5.8.8/Net/Stomp/Frame.pm line 37, line 4. Could you please elaborate as to what a "Processing error" inside RabbitMQ STOMP is indicative of? Thanks, -- Darien From markkicks at gmail.com Thu Feb 5 18:16:42 2009 From: markkicks at gmail.com (mark) Date: Thu, 5 Feb 2009 10:16:42 -0800 Subject: [rabbitmq-discuss] topic behavior instead of queue behavior with rabbitmq-stomp Message-ID: <82fa9e310902051016p574706b3h8939fe35f5ffa6ba@mail.gmail.com> how do i enable the topic behavior where all subscribers get all the messages in a channel using rabbitmq-stomp. by default it sends the message only to one subscriber like a queue. thanks a lot! From darien at kindlund.com Thu Feb 5 20:51:33 2009 From: darien at kindlund.com (Darien Kindlund) Date: Thu, 5 Feb 2009 15:51:33 -0500 Subject: [rabbitmq-discuss] STOMP Error? In-Reply-To: <50c8ffe90902051008i36bfe6b1n3c92af8c739ba522@mail.gmail.com> References: <50c8ffe90902051008i36bfe6b1n3c92af8c739ba522@mail.gmail.com> Message-ID: <50c8ffe90902051251l2ff4019bw8603f12b40afe762@mail.gmail.com> Hi Tony, Just wanted to provide you with more information, regarding this issue: It looks like rabbitmq.log generates this error every time the Net::Stomp->connect() call is made: =ERROR REPORT==== 5-Feb-2009::15:37:09 === STOMP error frame sent: Message: "Processing error" Detail: "{timeout,{gen_server,call,[rabbit_persister,serial]}}\n" If there's any way to troubleshoot this issue, I'd greatly appreciate it. -- Darien On Thu, Feb 5, 2009 at 1:08 PM, Darien Kindlund wrote: > Hi Tony, > > After running about 10 Net::Stomp perl processes simultaneously all > connecting to RabbitMQ via STOMP, I'm seeing the following error > messages in the rabbit.log file, with all Net::Stomp connections > dying: > > -=[root at manager rabbitmq]=-# tail -f rabbit.log > ending STOMP connection <0.11494.0> from 127.0.0.1:33688 > > =INFO REPORT==== 5-Feb-2009::13:05:28 === > accepted TCP connection on 127.0.0.1:61613 from 127.0.0.1:33701 > > =INFO REPORT==== 5-Feb-2009::13:05:28 === > starting STOMP connection <0.11529.0> from 127.0.0.1:33700 > > =INFO REPORT==== 5-Feb-2009::13:05:28 === > accepted TCP connection on 127.0.0.1:61613 from 127.0.0.1:33702 > > =ERROR REPORT==== 5-Feb-2009::13:05:28 === > STOMP error frame sent: > Message: "Processing error" > Detail: "{timeout,{gen_server,call,[rabbit_persister,serial]}}\n" > > =INFO REPORT==== 5-Feb-2009::13:05:28 === > ending STOMP connection <0.11496.0> from 127.0.0.1:33689 > > =INFO REPORT==== 5-Feb-2009::13:05:28 === > starting STOMP connection <0.11532.0> from 127.0.0.1:33701 > > =INFO REPORT==== 5-Feb-2009::13:05:28 === > accepted TCP connection on 127.0.0.1:61613 from 127.0.0.1:33703 > > =ERROR REPORT==== 5-Feb-2009::13:05:29 === > STOMP error frame sent: > Message: "Processing error" > Detail: "{timeout,{gen_server,call,[rabbit_persister,serial]}}\n" > > Here's the perl output: > Connection reset by peer at > /usr/local/share/perl/5.8.8/Net/Stomp/Frame.pm line 37, line 4. > > Could you please elaborate as to what a "Processing error" inside > RabbitMQ STOMP is indicative of? > > Thanks, > -- Darien > From matthias at lshift.net Thu Feb 5 21:26:24 2009 From: matthias at lshift.net (Matthias Radestock) Date: Thu, 05 Feb 2009 21:26:24 +0000 Subject: [rabbitmq-discuss] STOMP Error? In-Reply-To: <50c8ffe90902051251l2ff4019bw8603f12b40afe762@mail.gmail.com> References: <50c8ffe90902051008i36bfe6b1n3c92af8c739ba522@mail.gmail.com> <50c8ffe90902051251l2ff4019bw8603f12b40afe762@mail.gmail.com> Message-ID: <498B5980.6080702@lshift.net> Darien, Darien Kindlund wrote: > It looks like rabbitmq.log generates this error every time the > Net::Stomp->connect() call is made: > > =ERROR REPORT==== 5-Feb-2009::15:37:09 === > STOMP error frame sent: > Message: "Processing error" > Detail: "{timeout,{gen_server,call,[rabbit_persister,serial]}}\n" How big is rabbit's persister log (usually in /var/lib/rabbitmq/mnesia/rabbit/rabbit_persister.LOG)? And are there any errors in the rabbit-sasl.log? Matthias From darien at kindlund.com Thu Feb 5 21:57:27 2009 From: darien at kindlund.com (Darien Kindlund) Date: Thu, 5 Feb 2009 16:57:27 -0500 Subject: [rabbitmq-discuss] STOMP Error? In-Reply-To: <498B5980.6080702@lshift.net> References: <50c8ffe90902051008i36bfe6b1n3c92af8c739ba522@mail.gmail.com> <50c8ffe90902051251l2ff4019bw8603f12b40afe762@mail.gmail.com> <498B5980.6080702@lshift.net> Message-ID: <50c8ffe90902051357r25706577p54423a730448b97a@mail.gmail.com> Hi Matthias, Here's the information you requested: -=[root at manager rabbit]=-# ll /var/lib/rabbitmq/mnesia/rabbit/ total 312972 drwxr-xr-x 2 rabbitmq rabbitmq 4096 2009-02-05 16:44 ./ drwxr-xr-x 3 rabbitmq rabbitmq 4096 2009-01-30 13:11 ../ -rw-r--r-- 1 rabbitmq rabbitmq 156 2009-02-05 16:44 DECISION_TAB.LOG -rw-r--r-- 1 rabbitmq rabbitmq 583 2009-01-30 17:17 durable_exchanges.DCD -rw-r--r-- 1 rabbitmq rabbitmq 270 2009-02-03 17:32 durable_exchanges.DCL -rw-r--r-- 1 rabbitmq rabbitmq 333 2009-02-05 16:44 durable_queues.DCD -rw-r--r-- 1 rabbitmq rabbitmq 412 2009-02-05 16:32 durable_routes.DCD -rw-r--r-- 1 rabbitmq rabbitmq 2996 2009-02-05 16:44 durable_routes.DCL -rw-r--r-- 1 rabbitmq rabbitmq 10096 2009-02-05 16:44 LATEST.LOG -rw-r--r-- 1 rabbitmq rabbitmq 8 2009-01-30 13:11 rabbit_config.DCD -rw-r--r-- 1 rabbitmq rabbitmq 158842429 2009-02-05 16:44 rabbit_persister.LOG -rw-r--r-- 1 rabbitmq rabbitmq 161238516 2009-02-05 16:03 rabbit_persister.LOG.previous -rw-r--r-- 1 rabbitmq rabbitmq 12800 2009-01-30 13:11 schema.DAT -rw-r--r-- 1 rabbitmq rabbitmq 137 2009-02-03 17:29 user.DCD -rw-r--r-- 1 rabbitmq rabbitmq 145 2009-01-30 17:14 user_vhost.DCD -rw-r--r-- 1 rabbitmq rabbitmq 136 2009-02-03 17:29 vhost.DCD The rabbit-sasl.log has a ton of data; here is part of the latest entry: =SUPERVISOR REPORT==== 5-Feb-2009::16:34:18 === Supervisor: {local,rabbit_stomp_client_sup} Context: child_terminated Reason: {{badmatch,{error,closed}}, [{rabbit_stomp,send_frame,2}, {rabbit_stomp,mainloop,1}, {rabbit_stomp,init,1}, {proc_lib,init_p,5}]} Offender: [{pid,<0.17700.0>}, {name,tcp_client}, {mfa,{rabbit_stomp,start_link,[]}}, {restart_type,temporary}, {shutdown,brutal_kill}, {child_type,worker}] =CRASH REPORT==== 5-Feb-2009::16:34:18 === crasher: pid: <0.17765.0> registered_name: [] error_info: {{badmatch,{error,closed}}, [{rabbit_stomp,send_frame,2}, {rabbit_stomp,mainloop,1}, {rabbit_stomp,init,1}, {proc_lib,init_p,5}]} initial_call: {rabbit_stomp,init,[<0.175.0>]} ancestors: [rabbit_stomp_client_sup,rabbit_sup,<0.108.0>] messages: [{send_command_and_notify, <0.145.0>, <0.17766.0>, {'basic.deliver', <<"Q_manager.workers">>, 900, true, <<"jobs">>, <<"pending.job">>}, {content, 60, {'P_basic', <<"text/plain">>, undefined, [], 2, undefined, undefined, Let me know if you need further copies of this information as an attachment. -- Darien On Thu, Feb 5, 2009 at 4:26 PM, Matthias Radestock wrote: > Darien, > > Darien Kindlund wrote: >> >> It looks like rabbitmq.log generates this error every time the >> Net::Stomp->connect() call is made: >> >> =ERROR REPORT==== 5-Feb-2009::15:37:09 === >> STOMP error frame sent: >> Message: "Processing error" >> Detail: "{timeout,{gen_server,call,[rabbit_persister,serial]}}\n" > > How big is rabbit's persister log (usually in > /var/lib/rabbitmq/mnesia/rabbit/rabbit_persister.LOG)? And are there any > errors in the rabbit-sasl.log? > > > Matthias > From matthias at lshift.net Thu Feb 5 22:32:33 2009 From: matthias at lshift.net (Matthias Radestock) Date: Thu, 05 Feb 2009 22:32:33 +0000 Subject: [rabbitmq-discuss] getting started, broker runs; can't get status In-Reply-To: <498AB6DD.7010508@lshift.net> References: <3d5db09e0901201356r1cafa64aud71de1a8c2d28cef@mail.gmail.com> <498409CD.6060600@lshift.net> <921b71e30901311048k3a96f0c8o7a303b1b89e16d99@mail.gmail.com> <4984A903.7060804@lshift.net> <921b71e30901311213h5c9b072ftff66b3addd2a0466@mail.gmail.com> <4984B9E6.5050804@lshift.net> <4984BDAD.9040502@cohesiveft.com> <4984BE9D.6080909@lshift.net> <4984C4DC.1080105@cohesiveft.com> <4984E351.5030202@lshift.net> <921b71e30902021254l4c6f5db4ga7c905c9aa9f2370@mail.gmail.com> <4988668B.8040807@cohesiveft.com> <002501c9866a$a4683d40$ed38b7c0$@com> <498A0387.6090803@lshift.net> <004701c98757$bde31450$39a93cf0$@com> <498A9C73.80104@lshift.net> <005801c98773$15dd6730$41983590$@com> <498AB2A6.3040106@lshift.net> <498AB6DD.7010508@lshift.net> Message-ID: <498B6901.6050307@lshift.net> Matthias Radestock wrote: > Moreover, putting single quotes around the terms in the rabbitmq-server > script, i.e. changing the RABBITMQ_SERVER_ERL_ARGS settings to > > [ "x" = "x$RABBITMQ_SERVER_ERL_ARGS" ] && RABBITMQ_SERVER_ERL_ARGS="+K > true +A30 \ > -kernel inet_default_listen_options > '[{nodelay,true},{sndbuf,16384},{recbuf,4096}]' \ > -kernel inet_default_connect_options '[{nodelay,true}]'" > > does fix the problem for me. Actually it doesn't. The above ends up putting the single quotes in the final result, which causes erlang to barf. Oh how I love shell programming ... If someone can figure out how to fix this, please let us know. Matthias. From mlartz at gmail.com Thu Feb 5 22:37:21 2009 From: mlartz at gmail.com (Michael Artz) Date: Thu, 5 Feb 2009 17:37:21 -0500 Subject: [rabbitmq-discuss] C Client Library? Message-ID: I know that this has been asked before (I couldn't find the answer), but are there any native C client libraries that work (or could be made to work) with RabbitMQ (i.e. AMPQ 0-8)? I've seen hints that people have been able to (potentially) make the OpenAMPQ WireAPI work ... does anyone know if this is true? Alternatively, for very simple use cases (3 topic exchanges and 10 queues), how much effort would be required to modify either RabbitMQ or WireAPI to interoperate? Thanks, -Mike -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.rabbitmq.com/pipermail/rabbitmq-discuss/attachments/20090205/d1df4caf/attachment.htm From ch at murgatroid.com Thu Feb 5 22:37:45 2009 From: ch at murgatroid.com (christopher hoover) Date: Thu, 5 Feb 2009 14:37:45 -0800 Subject: [rabbitmq-discuss] getting started, broker runs; can't get status In-Reply-To: <498B6901.6050307@lshift.net> References: <3d5db09e0901201356r1cafa64aud71de1a8c2d28cef@mail.gmail.com> <498409CD.6060600@lshift.net> <921b71e30901311048k3a96f0c8o7a303b1b89e16d99@mail.gmail.com> <4984A903.7060804@lshift.net> <921b71e30901311213h5c9b072ftff66b3addd2a0466@mail.gmail.com> <4984B9E6.5050804@lshift.net> <4984BDAD.9040502@cohesiveft.com> <4984BE9D.6080909@lshift.net> <4984C4DC.1080105@cohesiveft.com> <4984E351.5030202@lshift.net> <921b71e30902021254l4c6f5db4ga7c905c9aa9f2370@mail.gmail.com> <4988668B.8040807@cohesiveft.com> <002501c9866a$a4683d40$ed38b7c0$@com> <498A0387.6090803@lshift.net> <004701c98757$bde31450$39a93cf0$@com> <498A9C73.80104@lshift.net> <005801c98773$15dd6730$41983590$@com> <498AB2A6.3040106@lshift.net> <498AB6DD.7010508@lshift.net> <498B6901.6050307@lshift.net> Message-ID: <00a601c987e2$5dd2e230$1978a690$@com> > Matthias Radestock wrote: > > Moreover, putting single quotes around the terms in the rabbitmq- > server > > script, i.e. changing the RABBITMQ_SERVER_ERL_ARGS settings to > > > > [ "x" = "x$RABBITMQ_SERVER_ERL_ARGS" ] && > RABBITMQ_SERVER_ERL_ARGS="+K > > true +A30 \ > > -kernel inet_default_listen_options > > '[{nodelay,true},{sndbuf,16384},{recbuf,4096}]' \ > > -kernel inet_default_connect_options '[{nodelay,true}]'" > > > > does fix the problem for me. > Actually it doesn't. The above ends up putting the single quotes in the > final result, which causes erlang to barf. Right. That is what I saw. > Oh how I love shell programming ... > > If someone can figure out how to fix this, please let us know. I can't look at anymore right now, but I can in a day or two. One way to solve it for certain is to use perl for the wrapper. (Believe me I don't say that often!) -ch From 0x6e6562 at gmail.com Thu Feb 5 23:03:12 2009 From: 0x6e6562 at gmail.com (Ben Hood) Date: Thu, 5 Feb 2009 23:03:12 +0000 Subject: [rabbitmq-discuss] C Client Library? In-Reply-To: References: Message-ID: <269388e30902051503x7f502a1fm2ac5f04968a6e3c9@mail.gmail.com> Michael, On Thu, Feb 5, 2009 at 10:37 PM, Michael Artz wrote: > I know that this has been asked before (I couldn't find the answer), but are > there any native C client libraries that work (or could be made to work) > with RabbitMQ (i.e. AMPQ 0-8)? I've seen hints that people have been able > to (potentially) make the OpenAMPQ WireAPI work ... does anyone know if this > is true? Alternatively, for very simple use cases (3 topic exchanges and 10 > queues), how much effort would be required to modify either RabbitMQ or > WireAPI to interoperate? A long time ago I patched an old version of OpenAMQ's C client and RabbitMQ to get them to work together. However, if you can be patient, we are in the middle of implementing AMQP 0.9.1, which the OpenAMQ guys have already implemented. The primary goal of 0.9.1 is interoperability between brokers. HTH, Ben From sustrik at imatix.com Thu Feb 5 23:15:26 2009 From: sustrik at imatix.com (Martin Sustrik) Date: Fri, 06 Feb 2009 00:15:26 +0100 Subject: [rabbitmq-discuss] C Client Library? In-Reply-To: <269388e30902051503x7f502a1fm2ac5f04968a6e3c9@mail.gmail.com> References: <269388e30902051503x7f502a1fm2ac5f04968a6e3c9@mail.gmail.com> Message-ID: <498B730E.5000508@imatix.com> > However, if you can be patient, we are in the middle of implementing > AMQP 0.9.1, which the OpenAMQ guys have already implemented. The > primary goal of 0.9.1 is interoperability between brokers. Yup, OpenAMQ implements 0.9.1 already. Once there's 0.9.1 in RabbitMQ the two should be able to intercommunicate. 0MQ implements 0.9.1 as well. Martin From 0x6e6562 at gmail.com Thu Feb 5 23:18:31 2009 From: 0x6e6562 at gmail.com (Ben Hood) Date: Thu, 5 Feb 2009 23:18:31 +0000 Subject: [rabbitmq-discuss] Q replication anxiety In-Reply-To: <00A5C75C-98D0-4367-B254-E06EF49EEA28@pobox.com> References: <00A5C75C-98D0-4367-B254-E06EF49EEA28@pobox.com> Message-ID: <269388e30902051518w44c1a5afreb23321172deb4c@mail.gmail.com> Ben, On Wed, Feb 4, 2009 at 5:01 PM, Ben Hyde wrote: > This is causing me anxiety: "... All data/state required for the > operation of a RabbitMQ broker is replicated across all nodes ... > exception to this are message queues, which currently only reside on > the node that created them ..."[1] Which is the reason why we write it on the box so there can be no misconception about the things that RabbitMQ guarantees. The persistence guarantee depends on a journal that resides on reliable block storage. We're thinking about reliablity through replication, but because it costs a lot, these thoughts have been deprioritized. > My setup is on ec2. My testing randomly kill's machines; in service > of assuring the system can self heal. Obviously I'm going to be > miserable if I kill the machines with Q's on them? I guess i need to > be sure the disks the Q's fall onto aren't wiped (which they are today). You'll have to wait for the cloud guys to respond to this. I know that that EC2 brought out EBS a while back, however, I don't know what implications this has for Rabbit. Ben From jasonjwwilliams at gmail.com Thu Feb 5 23:38:49 2009 From: jasonjwwilliams at gmail.com (Jason J. W. Williams) Date: Thu, 5 Feb 2009 16:38:49 -0700 Subject: [rabbitmq-discuss] OpenSolaris Issue Message-ID: <3b949f090902051538h6f289bb7ia958bace7f991bec@mail.gmail.com> Hi Y'all, Been trying to get Rabbit installed on an OpenSolaris 2008.11 box. I'm using the generic UNIX tarball. Starting it with ./rabbitmq-server generates this traceback: {error_logger,{{1986,12,27},{17,7,50}},"Protocol: ~p: register/listen error: ~p~n",["inet_tcp",einval]} {error_logger,{{1986,12,27},{17,7,50}},crash_report,[[{pid,<0.21.0>},{registered_name,net_kernel},{error_info,{exit,{error,badarg},[{gen_server,init_it,6},{proc_lib,init_p_do_apply,3}]}},{initial_call,{net_kernel,init,['Argument__1']}},{ancestors,[net_sup,kernel_sup,<0.9.0>]},{messages,[]},{links,[<0.18.0>]},{dictionary,[{longnames,false}]},{trap_exit,true},{status,running},{heap_size,233},{stack_size,23},{reductions,344}],[]]} {error_logger,{{1986,12,27},{17,7,50}},supervisor_report,[{supervisor,{local,net_sup}},{errorContext,start_error},{reason,{'EXIT',nodistribution}},{offender,[{pid,undefined},{name,net_kernel},{mfa,{net_kernel,start_link,[[rabbit,shortnames]]}},{restart_type,permanent},{shutdown,2000},{child_type,worker}]}]} {error_logger,{{1986,12,27},{17,7,50}},supervisor_report,[{supervisor,{local,kernel_sup}},{errorContext,start_error},{reason,shutdown},{offender,[{pid,undefined},{name,net_sup},{mfa,{erl_distribution,start_link,[]}},{restart_type,permanent},{shutdown,infinity},{child_type,supervisor}]}]} {error_logger,{{1986,12,27},{17,7,50}},crash_report,[[{pid,<0.8.0>},{registered_name,[]},{error_info,{exit,{shutdown,{kernel,start,[normal,[]]}},[{application_master,init,4},{proc_lib,init_p_do_apply,3}]}},{initial_call,{application_master,init,['Argument__1','Argument__2','Argument__3','Argument__4']}},{ancestors,[<0.7.0>]},{messages,[{'EXIT',<0.9.0>,normal}]},{links,[<0.7.0>,<0.6.0>]},{dictionary,[]},{trap_exit,true},{status,running},{heap_size,233},{stack_size,23},{reductions,123}],[]]} {error_logger,{{1986,12,27},{17,7,50}},std_info,[{application,kernel},{exited,{shutdown,{kernel,start,[normal,[]]}}},{type,permanent}]} {"Kernel pid terminated",application_controller,"{application_start_failure,kernel,{shutdown,{kernel,start,[normal,[]]}}}"} I've created /var/lib/rabbitmq and /var/log/rabbitmq directories. Using a stock rabbitmq-server (no extra environment variables defined). Any help is greatly appreciated. -J From jasonjwwilliams at gmail.com Fri Feb 6 00:14:12 2009 From: jasonjwwilliams at gmail.com (Jason J. W. Williams) Date: Thu, 5 Feb 2009 17:14:12 -0700 Subject: [rabbitmq-discuss] OpenSolaris Issue In-Reply-To: <3b949f090902051538h6f289bb7ia958bace7f991bec@mail.gmail.com> References: <3b949f090902051538h6f289bb7ia958bace7f991bec@mail.gmail.com> Message-ID: <3b949f090902051614h26136296p1b742a67b6fda470@mail.gmail.com> As an update. In reading the similar issue experienced by another user recently on Debian and Ubuntu, I noticed the user said reverting to 1.5.0 worked. Indeed in this case as well, reverting to the 1.5.0 generic UNIX tarball cause it to work. I can provide access to the machine if necessary. -J On Thu, Feb 5, 2009 at 4:38 PM, Jason J. W. Williams wrote: > Hi Y'all, > > Been trying to get Rabbit installed on an OpenSolaris 2008.11 box. I'm > using the generic UNIX tarball. Starting it with ./rabbitmq-server > generates this traceback: > > {error_logger,{{1986,12,27},{17,7,50}},"Protocol: ~p: register/listen > error: ~p~n",["inet_tcp",einval]} > {error_logger,{{1986,12,27},{17,7,50}},crash_report,[[{pid,<0.21.0>},{registered_name,net_kernel},{error_info,{exit,{error,badarg},[{gen_server,init_it,6},{proc_lib,init_p_do_apply,3}]}},{initial_call,{net_kernel,init,['Argument__1']}},{ancestors,[net_sup,kernel_sup,<0.9.0>]},{messages,[]},{links,[<0.18.0>]},{dictionary,[{longnames,false}]},{trap_exit,true},{status,running},{heap_size,233},{stack_size,23},{reductions,344}],[]]} > {error_logger,{{1986,12,27},{17,7,50}},supervisor_report,[{supervisor,{local,net_sup}},{errorContext,start_error},{reason,{'EXIT',nodistribution}},{offender,[{pid,undefined},{name,net_kernel},{mfa,{net_kernel,start_link,[[rabbit,shortnames]]}},{restart_type,permanent},{shutdown,2000},{child_type,worker}]}]} > {error_logger,{{1986,12,27},{17,7,50}},supervisor_report,[{supervisor,{local,kernel_sup}},{errorContext,start_error},{reason,shutdown},{offender,[{pid,undefined},{name,net_sup},{mfa,{erl_distribution,start_link,[]}},{restart_type,permanent},{shutdown,infinity},{child_type,supervisor}]}]} > {error_logger,{{1986,12,27},{17,7,50}},crash_report,[[{pid,<0.8.0>},{registered_name,[]},{error_info,{exit,{shutdown,{kernel,start,[normal,[]]}},[{application_master,init,4},{proc_lib,init_p_do_apply,3}]}},{initial_call,{application_master,init,['Argument__1','Argument__2','Argument__3','Argument__4']}},{ancestors,[<0.7.0>]},{messages,[{'EXIT',<0.9.0>,normal}]},{links,[<0.7.0>,<0.6.0>]},{dictionary,[]},{trap_exit,true},{status,running},{heap_size,233},{stack_size,23},{reductions,123}],[]]} > {error_logger,{{1986,12,27},{17,7,50}},std_info,[{application,kernel},{exited,{shutdown,{kernel,start,[normal,[]]}}},{type,permanent}]} > {"Kernel pid terminated",application_controller,"{application_start_failure,kernel,{shutdown,{kernel,start,[normal,[]]}}}"} > > I've created /var/lib/rabbitmq and /var/log/rabbitmq directories. > Using a stock rabbitmq-server (no extra environment variables > defined). > > Any help is greatly appreciated. > > -J > From jasonjwwilliams at gmail.com Fri Feb 6 01:04:22 2009 From: jasonjwwilliams at gmail.com (Jason J. W. Williams) Date: Thu, 5 Feb 2009 18:04:22 -0700 Subject: [rabbitmq-discuss] OpenSolaris Issue In-Reply-To: <3b949f090902051614h26136296p1b742a67b6fda470@mail.gmail.com> References: <3b949f090902051538h6f289bb7ia958bace7f991bec@mail.gmail.com> <3b949f090902051614h26136296p1b742a67b6fda470@mail.gmail.com> Message-ID: <3b949f090902051704l7d3bab74pf7dfe1abbc1ce715@mail.gmail.com> Think it may have something to do with a process modification failing. Been DTracing it. http://gist.github.com/59145 -J On Thu, Feb 5, 2009 at 5:14 PM, Jason J. W. Williams wrote: > As an update. In reading the similar issue experienced by another user > recently on Debian and Ubuntu, I noticed the user said reverting to > 1.5.0 worked. Indeed in this case as well, reverting to the 1.5.0 > generic UNIX tarball cause it to work. I can provide access to the > machine if necessary. > > -J > > On Thu, Feb 5, 2009 at 4:38 PM, Jason J. W. Williams > wrote: >> Hi Y'all, >> >> Been trying to get Rabbit installed on an OpenSolaris 2008.11 box. I'm >> using the generic UNIX tarball. Starting it with ./rabbitmq-server >> generates this traceback: >> >> {error_logger,{{1986,12,27},{17,7,50}},"Protocol: ~p: register/listen >> error: ~p~n",["inet_tcp",einval]} >> {error_logger,{{1986,12,27},{17,7,50}},crash_report,[[{pid,<0.21.0>},{registered_name,net_kernel},{error_info,{exit,{error,badarg},[{gen_server,init_it,6},{proc_lib,init_p_do_apply,3}]}},{initial_call,{net_kernel,init,['Argument__1']}},{ancestors,[net_sup,kernel_sup,<0.9.0>]},{messages,[]},{links,[<0.18.0>]},{dictionary,[{longnames,false}]},{trap_exit,true},{status,running},{heap_size,233},{stack_size,23},{reductions,344}],[]]} >> {error_logger,{{1986,12,27},{17,7,50}},supervisor_report,[{supervisor,{local,net_sup}},{errorContext,start_error},{reason,{'EXIT',nodistribution}},{offender,[{pid,undefined},{name,net_kernel},{mfa,{net_kernel,start_link,[[rabbit,shortnames]]}},{restart_type,permanent},{shutdown,2000},{child_type,worker}]}]} >> {error_logger,{{1986,12,27},{17,7,50}},supervisor_report,[{supervisor,{local,kernel_sup}},{errorContext,start_error},{reason,shutdown},{offender,[{pid,undefined},{name,net_sup},{mfa,{erl_distribution,start_link,[]}},{restart_type,permanent},{shutdown,infinity},{child_type,supervisor}]}]} >> {error_logger,{{1986,12,27},{17,7,50}},crash_report,[[{pid,<0.8.0>},{registered_name,[]},{error_info,{exit,{shutdown,{kernel,start,[normal,[]]}},[{application_master,init,4},{proc_lib,init_p_do_apply,3}]}},{initial_call,{application_master,init,['Argument__1','Argument__2','Argument__3','Argument__4']}},{ancestors,[<0.7.0>]},{messages,[{'EXIT',<0.9.0>,normal}]},{links,[<0.7.0>,<0.6.0>]},{dictionary,[]},{trap_exit,true},{status,running},{heap_size,233},{stack_size,23},{reductions,123}],[]]} >> {error_logger,{{1986,12,27},{17,7,50}},std_info,[{application,kernel},{exited,{shutdown,{kernel,start,[normal,[]]}}},{type,permanent}]} >> {"Kernel pid terminated",application_controller,"{application_start_failure,kernel,{shutdown,{kernel,start,[normal,[]]}}}"} >> >> I've created /var/lib/rabbitmq and /var/log/rabbitmq directories. >> Using a stock rabbitmq-server (no extra environment variables >> defined). >> >> Any help is greatly appreciated. >> >> -J >> > From matthias at lshift.net Fri Feb 6 06:48:35 2009 From: matthias at lshift.net (Matthias Radestock) Date: Fri, 06 Feb 2009 06:48:35 +0000 Subject: [rabbitmq-discuss] OpenSolaris Issue In-Reply-To: <3b949f090902051538h6f289bb7ia958bace7f991bec@mail.gmail.com> References: <3b949f090902051538h6f289bb7ia958bace7f991bec@mail.gmail.com> Message-ID: <498BDD43.4060703@lshift.net> Jason, Jason J. W. Williams wrote: > {error_logger,{{1986,12,27},{17,7,50}},"Protocol: ~p: register/listen > error: ~p~n",["inet_tcp",einval]} > {error_logger,{{1986,12,27},{17,7,50}},crash_report,[[{pid,<0.21.0>},{registered_name,net_kernel},{error_info,{exit,{error,badarg},[{gen_server,init_it,6},{proc_lib,init_p_do_apply,3}]}},{initial_call,{net_kernel,init,['Argument__1']}},{ancestors,[net_sup,kernel_sup,<0.9.0>]},{messages,[]},{links,[<0.18.0>]},{dictionary,[{longnames,false}]},{trap_exit,true},{status,running},{heap_size,233},{stack_size,23},{reductions,344}],[]]} That is the same problem as reported by Billy and Christopher. We know what the root cause is but haven't got a fix yet. See the posts just a few moments before yours. Workarounds are: - make sure you don't start rabbit from a directory containing single-letter file/directory names. If you are using the init.d script, just change the line that reads "cd /" to point elsewhere. - in /etc/default/rabbitmq, set SERVER_ERL_ARGS to "+K true +A30", or set RABBITMQ_SERVER_ERL_ARGS in the shell before starting the broker, or modify the setting in the rabbitmq-server script. The downside of all of these is a decrease in throughput and an increase in latency. - in the rabbitmq-server script, inline the value of RABBITMQ_SERVER_ERL_ARGS in the 'erl' call at the end and place single quotes around the inet_default_{listen,connect}_options valus, i.e. substitute the line ${RABBITMQ_SERVER_ERL_ARGS} \ with +K true +A30 \ -kernel inet_default_listen_options '[{nodelay,true},{sndbuf,16384},{recbuf,4096}]' \ -kernel inet_default_connect_options '[{nodelay,true}]' \ The downside is that you can no longer change these settings by overriding env var settings in the shell or /etc/default/rabbitmq. - downgrade to 1.5.0 - that has a bug which means the settings for RABBITMQ_SERVER_ERL_ARG are being ignored, which, ironically, is one of the reasons we released 1.5.1. The downsides are the same as the last two points, plus you are re-introducing the other bugs that were fixed in 1.5.1. Matthias From matthias at lshift.net Fri Feb 6 11:14:55 2009 From: matthias at lshift.net (Matthias Radestock) Date: Fri, 06 Feb 2009 11:14:55 +0000 Subject: [rabbitmq-discuss] getting started, broker runs; can't get status In-Reply-To: <00a601c987e2$5dd2e230$1978a690$@com> References: <3d5db09e0901201356r1cafa64aud71de1a8c2d28cef@mail.gmail.com> <498409CD.6060600@lshift.net> <921b71e30901311048k3a96f0c8o7a303b1b89e16d99@mail.gmail.com> <4984A903.7060804@lshift.net> <921b71e30901311213h5c9b072ftff66b3addd2a0466@mail.gmail.com> <4984B9E6.5050804@lshift.net> <4984BDAD.9040502@cohesiveft.com> <4984BE9D.6080909@lshift.net> <4984C4DC.1080105@cohesiveft.com> <4984E351.5030202@lshift.net> <921b71e30902021254l4c6f5db4ga7c905c9aa9f2370@mail.gmail.com> <4988668B.8040807@cohesiveft.com> <002501c9866a$a4683d40$ed38b7c0$@com> <498A0387.6090803@lshift.net> <004701c98757$bde31450$39a93cf0$@com> <498A9C73.80104@lshift.net> <005801c98773$15dd6730$41983590$@com> <498AB2A6.3040106@lshift.net> <498AB6DD.7010508@lshift.net> <498B6901.6050307@lshift.net> <00a601c987e2$5dd2e230$1978a690$@com> Message-ID: <498C1BAF.5010200@lshift.net> Christopher, christopher hoover wrote: > One way to solve it for certain is to use perl for the wrapper. We may go that route eventually, but it's too big of a change to make in a patch release. I have found a way of getting this to work: disable path expansion with 'set -f' just before the erlang invocation. The obvious downside is that path name expansion is disabled for the entire invocation, but I reckon that's ok in this particular case. Matthias. From alexis.richardson at cohesiveft.com Fri Feb 6 15:46:54 2009 From: alexis.richardson at cohesiveft.com (Alexis Richardson) Date: Fri, 6 Feb 2009 15:46:54 +0000 Subject: [rabbitmq-discuss] [New project] amqp-utils, CLI utilities for AMQP queues In-Reply-To: <3D416814-397E-4C0D-8302-D032E655C083@gmail.com> References: <68184A93-83C6-41EC-976E-E753362D2962@gmail.com> <5A46D132C446C04B9EFE8AD14E7891065C49E4BC1B@SVR-2K3-BH-EMC.tradition.int> <167204d20902050135n5632c223q633cbbd1ef8bcecc@mail.gmail.com> <3D416814-397E-4C0D-8302-D032E655C083@gmail.com> Message-ID: <167204d20902060746p1ba10fdeg28fce42dec1ba79c@mail.gmail.com> Valentino, Thanks, that is a very useful contribution. I'll ask Tony how hard it would be to expose this using his JSON stuff. alexis On Thu, Feb 5, 2009 at 9:55 AM, Valentino Volonghi wrote: > -----BEGIN PGP SIGNED MESSAGE----- > Hash: SHA1 > > > On Feb 5, 2009, at 1:35 AM, Alexis Richardson wrote: > >> Thanks for the feedback on this. >> >> As Valentino and Al point out, keeping things compact is important, >> and not all users are running or want to run a web framework with >> RabbitMQ. Though of course some will. >> >> So one option here is to use the built-in HTTP capability rather than >> a web framework. For example, to provide an interface to rabbitmqctl >> that lets people use a browser to keep an eye on the broker. >> >> On the other hand people may prefer programmatic management. > > > I'm pretty sure that with an HTTP server built-in you can do anything > to rabbitmq, even writing consumers in javascript :). > > More seriously: > An HTTP server that exposes some kind of simple REST API that > can be queries also from javascript would mean that even a static > page (hardly a match for a built-in http server) could be served > efficiently and act as a monitoring screen. > > As for the REST API I'm thinking along the lines of: > > /stats/ <- general stats and list of exchanges > /stats// <- list of queues under exchange > /stats/// <- queue stats > /stats/users/ > /stats/consumers/ > /stats/acls/ > ... > > simple http-auth is more than enough if you really want to make > this secure and could use the same users credentials that rabbitmq > stores for the rest of the system. And the response format for each > request would simply be JSON, then a single html page can be > used to show all the stats that one might need. This has no memory > overhead because everything is done on the client side and can be > freely extended by simply changing javascript without the need to > deploy a new web server somewhere (etc etc). > > Then by quering (polling at the beginning, comet when there's more > time to develop something like this) a url multiple times one can build > a chart of the stats (and if polling the built-in http server doesn't even > need to know that it is happening). > > - -- > Valentino Volonghi aka Dialtone > Now running MacOS X 10.5 > Home Page: http://www.twisted.it > http://www.adroll.com > > -----BEGIN PGP SIGNATURE----- > Version: GnuPG v1.4.9 (Darwin) > > iEYEARECAAYFAkmKt4sACgkQ9Llz28widGW65ACgtJTQCgE7ZYMLTFkuALRxSM+O > pzwAnRlrN8uI6BS7vTEHKgOLFOzj1Lqd > =7ifr > -----END PGP SIGNATURE----- > From matthias at lshift.net Fri Feb 6 17:18:25 2009 From: matthias at lshift.net (Matthias Radestock) Date: Fri, 06 Feb 2009 17:18:25 +0000 Subject: [rabbitmq-discuss] STOMP Error? In-Reply-To: <50c8ffe90902051357r25706577p54423a730448b97a@mail.gmail.com> References: <50c8ffe90902051008i36bfe6b1n3c92af8c739ba522@mail.gmail.com> <50c8ffe90902051251l2ff4019bw8603f12b40afe762@mail.gmail.com> <498B5980.6080702@lshift.net> <50c8ffe90902051357r25706577p54423a730448b97a@mail.gmail.com> Message-ID: <498C70E1.6030803@lshift.net> Darien, Darien Kindlund wrote: > -rw-r--r-- 1 rabbitmq rabbitmq 158842429 2009-02-05 16:44 rabbit_persister.LOG That's a non-negligible amount of persisted data. The persister writes a new snapshot every 500 events (publishes, acks, etc). Writing ~160MB of data to disk could take a few seconds. The persister is queried by channels the first time they need a guid, e.g. for generating names of auto-delete queues or unique ids of persisted messages. That call might time out when the persister is in the middle of writing a snapshot. The error you are seeing is a result of that. We will remove the dependency of the guid generation on the persister in the next release, at which point you should no longer see the error. Meanwhile you can reduce the likelihood of the error occuring by reducing the frequency with which you establish new connections, e.g. by keeping them open for longer and re-using them, reducing the rate at which you publish persisted messages, or turning off message persistence altogether. Regards, Matthias. From matthias at lshift.net Fri Feb 6 18:19:11 2009 From: matthias at lshift.net (Matthias Radestock) Date: Fri, 06 Feb 2009 18:19:11 +0000 Subject: [rabbitmq-discuss] memory usage In-Reply-To: <20090205151617.GA31965@muspelheim.parasec.net> References: <20090205151617.GA31965@muspelheim.parasec.net> Message-ID: <498C7F1F.1060801@lshift.net> Philip, Philip Stubbings wrote: > I have set up Rabbit 1.5.1 running as a single node. During testing, I > notice that memory use is extremely high. More specifically, if I push > 1 million messages to a queue and later consume them (with > acknowledgment) memory usage remains very high (in excess of 3G). I can > verify that all consumed messages where acknowledged and that the queue > is empty. Why does the process still require 3G of memory even after 24 > hours of inactivity? How did you determine that the queues were empty? Are your messages flagged as persistent? How big is the persister log (usually in /var/lib/rabbitmq/mnesia/rabbit/rabbit_persister.LOG). Can you send us the code to reproduce the problem? > The only way to reduce the memory footprint is to restart rabbitmq., > However this is not an option for me. Erlang processes only perform garbage collection when there is some activity. That usually isn't a problem, since most systems are not expected to be both idle for a long time and have other processes needing memory at the same time. Does the memory usage remain high when you inject & consume some more messages? > The second problem I have encountered is during, and immediately after > pushing 1 million messages to rabbitmq. If I try to connect a consumer > whilst messages are being produced, I get the following error on the > consumer side: > > (connection error; reason: > {#method(reply-code=541,reply-text=INTERNAL_ERROR,class-id=0,method-id=0),null,""}) > > While, on the rabbit server: > =ERROR REPORT==== 5-Feb-2009::12:43:57 === > connection <0.3155.0> (running), channel 1 - error: > {timeout,{gen_server,call,[rabbit_persister,serial]}} > =WARNING REPORT==== 5-Feb-2009::12:43:57 === > Non-AMQP exit reason > '{timeout,{gen_server,call,[rabbit_persister,serial]}}' That looks like the same problem Darien Kindlund reported. See my response to him a few moments ago. > And also, during and just after the 1 million messages have been > produced (with no consumers connected) I get the following error while > trying to examine the queue status: > > ../rabbitmq-server-1.5.1/scripts/rabbitmqctl list_queues -p / > Listing queues ... > Error: {badrpc, > {'EXIT', > {timeout, > {gen_server,call,[<4472.2308.0>,{info,[name,messages]}]}}}} The queues are probably busy processing the message backlog. The info request will be stuck behind the messages. I have filed a bug to do something about that. Is the kind of bursty behaviour you are testing - with lots of messages being injected at a high rate followed by periods of inactivity - typical of your application? Regards, Matthias. From jasonjwwilliams at gmail.com Fri Feb 6 18:27:27 2009 From: jasonjwwilliams at gmail.com (Jason J. W. Williams) Date: Fri, 6 Feb 2009 11:27:27 -0700 Subject: [rabbitmq-discuss] OpenSolaris Issue In-Reply-To: <498BDD43.4060703@lshift.net> References: <3b949f090902051538h6f289bb7ia958bace7f991bec@mail.gmail.com> <498BDD43.4060703@lshift.net> Message-ID: <3b949f090902061027h51f306a2x5bed59f01d43651f@mail.gmail.com> Hey Matthias, Thank you for the detailed info. I don't want to drag through through an explanation of what the ERL args are causing again. Were the explaining posts in the thread on the Debian/Ubuntu issue of the same type? Thank you again. -J On Thu, Feb 5, 2009 at 11:48 PM, Matthias Radestock wrote: > Jason, > > Jason J. W. Williams wrote: >> >> {error_logger,{{1986,12,27},{17,7,50}},"Protocol: ~p: register/listen >> error: ~p~n",["inet_tcp",einval]} >> >> {error_logger,{{1986,12,27},{17,7,50}},crash_report,[[{pid,<0.21.0>},{registered_name,net_kernel},{error_info,{exit,{error,badarg},[{gen_server,init_it,6},{proc_lib,init_p_do_apply,3}]}},{initial_call,{net_kernel,init,['Argument__1']}},{ancestors,[net_sup,kernel_sup,<0.9.0>]},{messages,[]},{links,[<0.18.0>]},{dictionary,[{longnames,false}]},{trap_exit,true},{status,running},{heap_size,233},{stack_size,23},{reductions,344}],[]]} > > That is the same problem as reported by Billy and Christopher. We know what > the root cause is but haven't got a fix yet. See the posts just a few > moments before yours. > > Workarounds are: > > - make sure you don't start rabbit from a directory containing single-letter > file/directory names. If you are using the init.d script, just change the > line that reads "cd /" to point elsewhere. > > - in /etc/default/rabbitmq, set SERVER_ERL_ARGS to "+K true +A30", or set > RABBITMQ_SERVER_ERL_ARGS in the shell before starting the broker, or modify > the setting in the rabbitmq-server script. The downside of all of these is a > decrease in throughput and an increase in latency. > > - in the rabbitmq-server script, inline the value of > RABBITMQ_SERVER_ERL_ARGS in the 'erl' call at the end and place single > quotes around the inet_default_{listen,connect}_options valus, i.e. > substitute the line > ${RABBITMQ_SERVER_ERL_ARGS} \ > with > +K true +A30 \ > -kernel inet_default_listen_options > '[{nodelay,true},{sndbuf,16384},{recbuf,4096}]' \ > -kernel inet_default_connect_options '[{nodelay,true}]' \ > The downside is that you can no longer change these settings by overriding > env var settings in the shell or /etc/default/rabbitmq. > > - downgrade to 1.5.0 - that has a bug which means the settings for > RABBITMQ_SERVER_ERL_ARG are being ignored, which, ironically, is one of the > reasons we released 1.5.1. The downsides are the same as the last two > points, plus you are re-introducing the other bugs that were fixed in 1.5.1. > > > Matthias > From matthias at lshift.net Fri Feb 6 18:37:59 2009 From: matthias at lshift.net (Matthias Radestock) Date: Fri, 06 Feb 2009 18:37:59 +0000 Subject: [rabbitmq-discuss] OpenSolaris Issue In-Reply-To: <3b949f090902061027h51f306a2x5bed59f01d43651f@mail.gmail.com> References: <3b949f090902051538h6f289bb7ia958bace7f991bec@mail.gmail.com> <498BDD43.4060703@lshift.net> <3b949f090902061027h51f306a2x5bed59f01d43651f@mail.gmail.com> Message-ID: <498C8387.7020600@lshift.net> Jason, Jason J. W. Williams wrote: > Thank you for the detailed info. I don't want to drag through through > an explanation of what the ERL args are causing again. Were the > explaining posts in the thread on the Debian/Ubuntu issue of the same > type? Thank you again. The settings in RABBITMQ_SERVER_ERL_ARGS tune various parameters of the Erlang runtime and OTP for better performance of RabbitMQ. Matthias. From jasonjwwilliams at gmail.com Fri Feb 6 18:55:13 2009 From: jasonjwwilliams at gmail.com (Jason J. W. Williams) Date: Fri, 6 Feb 2009 11:55:13 -0700 Subject: [rabbitmq-discuss] [New project] amqp-utils, CLI utilities for AMQP queues In-Reply-To: <167204d20902060746p1ba10fdeg28fce42dec1ba79c@mail.gmail.com> References: <68184A93-83C6-41EC-976E-E753362D2962@gmail.com> <5A46D132C446C04B9EFE8AD14E7891065C49E4BC1B@SVR-2K3-BH-EMC.tradition.int> <167204d20902050135n5632c223q633cbbd1ef8bcecc@mail.gmail.com> <3D416814-397E-4C0D-8302-D032E655C083@gmail.com> <167204d20902060746p1ba10fdeg28fce42dec1ba79c@mail.gmail.com> Message-ID: <3b949f090902061055t41ab7032n84dd818f726a96cf@mail.gmail.com> Personally, I'd like to see it exposed over AMQP using queues with chosen reserved names. Exposing it over JSON would be great, but I think if we're already using AMQP to access it, it should be pretty easy to build a web GUI that uses AMQP to get the answers. -J On Fri, Feb 6, 2009 at 8:46 AM, Alexis Richardson wrote: > Valentino, > > Thanks, that is a very useful contribution. I'll ask Tony how hard it > would be to expose this using his JSON stuff. > > alexis > > > > > On Thu, Feb 5, 2009 at 9:55 AM, Valentino Volonghi wrote: >> -----BEGIN PGP SIGNED MESSAGE----- >> Hash: SHA1 >> >> >> On Feb 5, 2009, at 1:35 AM, Alexis Richardson wrote: >> >>> Thanks for the feedback on this. >>> >>> As Valentino and Al point out, keeping things compact is important, >>> and not all users are running or want to run a web framework with >>> RabbitMQ. Though of course some will. >>> >>> So one option here is to use the built-in HTTP capability rather than >>> a web framework. For example, to provide an interface to rabbitmqctl >>> that lets people use a browser to keep an eye on the broker. >>> >>> On the other hand people may prefer programmatic management. >> >> >> I'm pretty sure that with an HTTP server built-in you can do anything >> to rabbitmq, even writing consumers in javascript :). >> >> More seriously: >> An HTTP server that exposes some kind of simple REST API that >> can be queries also from javascript would mean that even a static >> page (hardly a match for a built-in http server) could be served >> efficiently and act as a monitoring screen. >> >> As for the REST API I'm thinking along the lines of: >> >> /stats/ <- general stats and list of exchanges >> /stats// <- list of queues under exchange >> /stats/// <- queue stats >> /stats/users/ >> /stats/consumers/ >> /stats/acls/ >> ... >> >> simple http-auth is more than enough if you really want to make >> this secure and could use the same users credentials that rabbitmq >> stores for the rest of the system. And the response format for each >> request would simply be JSON, then a single html page can be >> used to show all the stats that one might need. This has no memory >> overhead because everything is done on the client side and can be >> freely extended by simply changing javascript without the need to >> deploy a new web server somewhere (etc etc). >> >> Then by quering (polling at the beginning, comet when there's more >> time to develop something like this) a url multiple times one can build >> a chart of the stats (and if polling the built-in http server doesn't even >> need to know that it is happening). >> >> - -- >> Valentino Volonghi aka Dialtone >> Now running MacOS X 10.5 >> Home Page: http://www.twisted.it >> http://www.adroll.com >> >> -----BEGIN PGP SIGNATURE----- >> Version: GnuPG v1.4.9 (Darwin) >> >> iEYEARECAAYFAkmKt4sACgkQ9Llz28widGW65ACgtJTQCgE7ZYMLTFkuALRxSM+O >> pzwAnRlrN8uI6BS7vTEHKgOLFOzj1Lqd >> =7ifr >> -----END PGP SIGNATURE----- >> > > _______________________________________________ > rabbitmq-discuss mailing list > rabbitmq-discuss at lists.rabbitmq.com > http://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss > From darien at kindlund.com Fri Feb 6 19:30:29 2009 From: darien at kindlund.com (Darien Kindlund) Date: Fri, 6 Feb 2009 14:30:29 -0500 Subject: [rabbitmq-discuss] STOMP Error? Message-ID: Hi Matthias, Okay, that makes sense. Couple of questions: 1) Is there any sort of default idle timeout in RabbitMQ or the STOMP connector, where idle connections are terminated by the server? The reason I ask, is that the 75 STOMP connections may be idle for upwards of an hour and then be tremendously bursty. So, you're saying that keeping the connections alive would resolve these RabbitMQ errors, right? 2) The data I'm working with can be shared. That said, I'm wondering if LShift could install the latest STOMP adapter on dev.rabbitmq.com so I could replicate future issues on that server, making it easier to troubleshoot from your end. Just a thought. Regards, -- Darien On Feb 6, 2009, at 12:18 PM, Matthias Radestock wrote: > Darien, > > Darien Kindlund wrote: >> -rw-r--r-- 1 rabbitmq rabbitmq 158842429 2009-02-05 16:44 >> rabbit_persister.LOG > > That's a non-negligible amount of persisted data. The persister > writes a new snapshot every 500 events (publishes, acks, etc). > Writing ~160MB of data to disk could take a few seconds. The > persister is queried by channels the first time they need a guid, > e.g. for generating names of auto-delete queues or unique ids of > persisted messages. That call might time out when the persister is > in the middle of writing a snapshot. The error you are seeing is a > result of that. > > We will remove the dependency of the guid generation on the > persister in the next release, at which point you should no longer > see the error. > > Meanwhile you can reduce the likelihood of the error occuring by > reducing the frequency with which you establish new connections, > e.g. by keeping them open for longer and re-using them, reducing the > rate at which you publish persisted messages, or turning off message > persistence altogether. > > > Regards, > > Matthias. From matthias at lshift.net Fri Feb 6 19:56:52 2009 From: matthias at lshift.net (Matthias Radestock) Date: Fri, 06 Feb 2009 19:56:52 +0000 Subject: [rabbitmq-discuss] STOMP Error? In-Reply-To: References: Message-ID: <498C9604.7040609@lshift.net> Darien, Darien Kindlund wrote: > 1) Is there any sort of default idle timeout in RabbitMQ or the STOMP > connector, where idle connections are terminated by the server? There are no idle timeouts. The connections should happily stay open indefinitely. > The reason I ask, is that the 75 STOMP connections may be idle for > upwards of an hour and then be tremendously bursty. So, you're saying > that keeping the connections alive would resolve these RabbitMQ errors, > right? Yes, assuming my theory is correct ;) > 2) The data I'm working with can be shared. That said, I'm wondering if > LShift could install the latest STOMP adapter on dev.rabbitmq.com so I > could replicate future issues on that server, making it easier to > troubleshoot from your end. Just a thought. Good idea. Not sure how difficult that is in our network setup. Tony is looking after the server, so he should know. Matthias. From jasonjwwilliams at gmail.com Fri Feb 6 20:15:22 2009 From: jasonjwwilliams at gmail.com (Jason J. W. Williams) Date: Fri, 6 Feb 2009 13:15:22 -0700 Subject: [rabbitmq-discuss] Examining Queue Failover Behavior Message-ID: <3b949f090902061215k3ab288dbg4e8047b51e581183@mail.gmail.com> Hello, I'm playing around with cluster failover right now. During a failover event, I expected that unconsumed messages on a failed node would not be moved. However, I did expect the queue to be recreated on the still up node. Instead, it appears the queue does not appear on the other node until an app recreates it. This correct? -J From bill at soudan.net Sat Feb 7 04:41:15 2009 From: bill at soudan.net (Bill Soudan) Date: Fri, 6 Feb 2009 23:41:15 -0500 (GMT-05:00) Subject: [rabbitmq-discuss] C Client Library? In-Reply-To: Message-ID: <1764332.5201233981675290.JavaMail.root@zimbra> Hi Michael, I initially tried modifying WireAPI with some success, but I could not get a reliable build from the overly complicated build process. After several hours of effort, I gave up and spent a half hour modifying RabbitMQ to speak the 0.9 version of the AMQP wire protocol. It obviously doesn't implement the 0.9 new features, but with the attached patch (against 1.4.0), the wire formats match such that you'll be able to use WireAPI. Enjoy, Bill ----- Original Message ----- From: "Michael Artz" To: rabbitmq-discuss at lists.rabbitmq.com Sent: Thursday, February 5, 2009 5:37:21 PM (GMT-0500) America/New_York Subject: [rabbitmq-discuss] C Client Library? I know that this has been asked before (I couldn't find the answer), but are there any native C client libraries that work (or could be made to work) with RabbitMQ (i.e. AMPQ 0-8)? I've seen hints that people have been able to (potentially) make the OpenAMPQ WireAPI work ... does anyone know if this is true? Alternatively, for very simple use cases (3 topic exchanges and 10 queues), how much effort would be required to modify either RabbitMQ or WireAPI to interoperate? Thanks, -Mike -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.rabbitmq.com/pipermail/rabbitmq-discuss/attachments/20090206/8a50fa8e/attachment.htm -------------- next part -------------- A non-text attachment was scrubbed... Name: rabbitmq.0.9.patch Type: text/x-patch Size: 23990 bytes Desc: not available Url : http://lists.rabbitmq.com/pipermail/rabbitmq-discuss/attachments/20090206/8a50fa8e/attachment.bin From alexis.richardson at cohesiveft.com Sat Feb 7 12:56:33 2009 From: alexis.richardson at cohesiveft.com (Alexis Richardson) Date: Sat, 7 Feb 2009 12:56:33 +0000 Subject: [rabbitmq-discuss] (semi OT) erlang/otp and PHP Message-ID: <167204d20902070456m228e3be7ib3628859f620b10f@mail.gmail.com> Folks, This is not strictly OT for RabbitMQ but it may be of interest to people whose work commingles PHP and erlang/OTP. The article is by a wordpress hacker who has written an erlang app "to debug WordPress functions from within Erlang". In response to a comment asking if the author if using erlang in prod, the author states that "WordPress.com's new firehose is available as an XMPP PubSub node implemented with ejabberd." http://andy.wordpress.com/2009/02/06/persistent-php-processes-in-erlang-otp/ alexis From alexis.richardson at cohesiveft.com Sat Feb 7 13:49:49 2009 From: alexis.richardson at cohesiveft.com (Alexis Richardson) Date: Sat, 7 Feb 2009 13:49:49 +0000 Subject: [rabbitmq-discuss] [New project] amqp-utils, CLI utilities for AMQP queues In-Reply-To: <3b949f090902061055t41ab7032n84dd818f726a96cf@mail.gmail.com> References: <68184A93-83C6-41EC-976E-E753362D2962@gmail.com> <5A46D132C446C04B9EFE8AD14E7891065C49E4BC1B@SVR-2K3-BH-EMC.tradition.int> <167204d20902050135n5632c223q633cbbd1ef8bcecc@mail.gmail.com> <3D416814-397E-4C0D-8302-D032E655C083@gmail.com> <167204d20902060746p1ba10fdeg28fce42dec1ba79c@mail.gmail.com> <3b949f090902061055t41ab7032n84dd818f726a96cf@mail.gmail.com> Message-ID: <167204d20902070549y43b70475u3de8a2d842c5d1d4@mail.gmail.com> Jason, Have you looked at how Tony's JSON-RPC over AMQP over HTTP works? The code is in the HTTP libs in the repo, IIRC. alexis On Fri, Feb 6, 2009 at 6:55 PM, Jason J. W. Williams wrote: > Personally, I'd like to see it exposed over AMQP using queues with > chosen reserved names. Exposing it over JSON would be great, but I > think if we're already using AMQP to access it, it should be pretty > easy to build a web GUI that uses AMQP to get the answers. > > -J > > On Fri, Feb 6, 2009 at 8:46 AM, Alexis Richardson > wrote: >> Valentino, >> >> Thanks, that is a very useful contribution. I'll ask Tony how hard it >> would be to expose this using his JSON stuff. >> >> alexis >> >> >> >> >> On Thu, Feb 5, 2009 at 9:55 AM, Valentino Volonghi wrote: >>> -----BEGIN PGP SIGNED MESSAGE----- >>> Hash: SHA1 >>> >>> >>> On Feb 5, 2009, at 1:35 AM, Alexis Richardson wrote: >>> >>>> Thanks for the feedback on this. >>>> >>>> As Valentino and Al point out, keeping things compact is important, >>>> and not all users are running or want to run a web framework with >>>> RabbitMQ. Though of course some will. >>>> >>>> So one option here is to use the built-in HTTP capability rather than >>>> a web framework. For example, to provide an interface to rabbitmqctl >>>> that lets people use a browser to keep an eye on the broker. >>>> >>>> On the other hand people may prefer programmatic management. >>> >>> >>> I'm pretty sure that with an HTTP server built-in you can do anything >>> to rabbitmq, even writing consumers in javascript :). >>> >>> More seriously: >>> An HTTP server that exposes some kind of simple REST API that >>> can be queries also from javascript would mean that even a static >>> page (hardly a match for a built-in http server) could be served >>> efficiently and act as a monitoring screen. >>> >>> As for the REST API I'm thinking along the lines of: >>> >>> /stats/ <- general stats and list of exchanges >>> /stats// <- list of queues under exchange >>> /stats/// <- queue stats >>> /stats/users/ >>> /stats/consumers/ >>> /stats/acls/ >>> ... >>> >>> simple http-auth is more than enough if you really want to make >>> this secure and could use the same users credentials that rabbitmq >>> stores for the rest of the system. And the response format for each >>> request would simply be JSON, then a single html page can be >>> used to show all the stats that one might need. This has no memory >>> overhead because everything is done on the client side and can be >>> freely extended by simply changing javascript without the need to >>> deploy a new web server somewhere (etc etc). >>> >>> Then by quering (polling at the beginning, comet when there's more >>> time to develop something like this) a url multiple times one can build >>> a chart of the stats (and if polling the built-in http server doesn't even >>> need to know that it is happening). >>> >>> - -- >>> Valentino Volonghi aka Dialtone >>> Now running MacOS X 10.5 >>> Home Page: http://www.twisted.it >>> http://www.adroll.com >>> >>> -----BEGIN PGP SIGNATURE----- >>> Version: GnuPG v1.4.9 (Darwin) >>> >>> iEYEARECAAYFAkmKt4sACgkQ9Llz28widGW65ACgtJTQCgE7ZYMLTFkuALRxSM+O >>> pzwAnRlrN8uI6BS7vTEHKgOLFOzj1Lqd >>> =7ifr >>> -----END PGP SIGNATURE----- >>> >> >> _______________________________________________ >> rabbitmq-discuss mailing list >> rabbitmq-discuss at lists.rabbitmq.com >> http://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss >> > From jasonjwwilliams at gmail.com Sat Feb 7 19:32:17 2009 From: jasonjwwilliams at gmail.com (Jason J. W. Williams) Date: Sat, 7 Feb 2009 12:32:17 -0700 Subject: [rabbitmq-discuss] [New project] amqp-utils, CLI utilities for AMQP queues In-Reply-To: <167204d20902070549y43b70475u3de8a2d842c5d1d4@mail.gmail.com> References: <68184A93-83C6-41EC-976E-E753362D2962@gmail.com> <5A46D132C446C04B9EFE8AD14E7891065C49E4BC1B@SVR-2K3-BH-EMC.tradition.int> <167204d20902050135n5632c223q633cbbd1ef8bcecc@mail.gmail.com> <3D416814-397E-4C0D-8302-D032E655C083@gmail.com> <167204d20902060746p1ba10fdeg28fce42dec1ba79c@mail.gmail.com> <3b949f090902061055t41ab7032n84dd818f726a96cf@mail.gmail.com> <167204d20902070549y43b70475u3de8a2d842c5d1d4@mail.gmail.com> Message-ID: <3b949f090902071132ucffff49od3a7e008da33ebc5@mail.gmail.com> Hi Alexis, Actually just played with it yesterday at dev.rabbitmq.com for the first time. Need to spend more time with it, but it looks promising. Trying to figure a way around RMQ cluster blackholing messages on failover atm. -J On 2/7/09, Alexis Richardson wrote: > Jason, > > Have you looked at how Tony's JSON-RPC over AMQP over HTTP works? The > code is in the HTTP libs in the repo, IIRC. > > alexis > > > On Fri, Feb 6, 2009 at 6:55 PM, Jason J. W. Williams > wrote: >> Personally, I'd like to see it exposed over AMQP using queues with >> chosen reserved names. Exposing it over JSON would be great, but I >> think if we're already using AMQP to access it, it should be pretty >> easy to build a web GUI that uses AMQP to get the answers. >> >> -J >> >> On Fri, Feb 6, 2009 at 8:46 AM, Alexis Richardson >> wrote: >>> Valentino, >>> >>> Thanks, that is a very useful contribution. I'll ask Tony how hard it >>> would be to expose this using his JSON stuff. >>> >>> alexis >>> >>> >>> >>> >>> On Thu, Feb 5, 2009 at 9:55 AM, Valentino Volonghi >>> wrote: >>>> -----BEGIN PGP SIGNED MESSAGE----- >>>> Hash: SHA1 >>>> >>>> >>>> On Feb 5, 2009, at 1:35 AM, Alexis Richardson wrote: >>>> >>>>> Thanks for the feedback on this. >>>>> >>>>> As Valentino and Al point out, keeping things compact is important, >>>>> and not all users are running or want to run a web framework with >>>>> RabbitMQ. Though of course some will. >>>>> >>>>> So one option here is to use the built-in HTTP capability rather than >>>>> a web framework. For example, to provide an interface to rabbitmqctl >>>>> that lets people use a browser to keep an eye on the broker. >>>>> >>>>> On the other hand people may prefer programmatic management. >>>> >>>> >>>> I'm pretty sure that with an HTTP server built-in you can do anything >>>> to rabbitmq, even writing consumers in javascript :). >>>> >>>> More seriously: >>>> An HTTP server that exposes some kind of simple REST API that >>>> can be queries also from javascript would mean that even a static >>>> page (hardly a match for a built-in http server) could be served >>>> efficiently and act as a monitoring screen. >>>> >>>> As for the REST API I'm thinking along the lines of: >>>> >>>> /stats/ <- general stats and list of exchanges >>>> /stats// <- list of queues under exchange >>>> /stats/// <- queue stats >>>> /stats/users/ >>>> /stats/consumers/ >>>> /stats/acls/ >>>> ... >>>> >>>> simple http-auth is more than enough if you really want to make >>>> this secure and could use the same users credentials that rabbitmq >>>> stores for the rest of the system. And the response format for each >>>> request would simply be JSON, then a single html page can be >>>> used to show all the stats that one might need. This has no memory >>>> overhead because everything is done on the client side and can be >>>> freely extended by simply changing javascript without the need to >>>> deploy a new web server somewhere (etc etc). >>>> >>>> Then by quering (polling at the beginning, comet when there's more >>>> time to develop something like this) a url multiple times one can build >>>> a chart of the stats (and if polling the built-in http server doesn't >>>> even >>>> need to know that it is happening). >>>> >>>> - -- >>>> Valentino Volonghi aka Dialtone >>>> Now running MacOS X 10.5 >>>> Home Page: http://www.twisted.it >>>> http://www.adroll.com >>>> >>>> -----BEGIN PGP SIGNATURE----- >>>> Version: GnuPG v1.4.9 (Darwin) >>>> >>>> iEYEARECAAYFAkmKt4sACgkQ9Llz28widGW65ACgtJTQCgE7ZYMLTFkuALRxSM+O >>>> pzwAnRlrN8uI6BS7vTEHKgOLFOzj1Lqd >>>> =7ifr >>>> -----END PGP SIGNATURE----- >>>> >>> >>> _______________________________________________ >>> rabbitmq-discuss mailing list >>> rabbitmq-discuss at lists.rabbitmq.com >>> http://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss >>> >> > From mlartz at gmail.com Sun Feb 8 04:57:28 2009 From: mlartz at gmail.com (Michael Artz) Date: Sat, 7 Feb 2009 23:57:28 -0500 Subject: [rabbitmq-discuss] C Client Library? In-Reply-To: <1764332.5201233981675290.JavaMail.root@zimbra> References: <1764332.5201233981675290.JavaMail.root@zimbra> Message-ID: <6670E1EA-013D-44A3-8D4F-7839276C0E61@gmail.com> > I initially tried modifying WireAPI with some success, but I could > not get a reliable build from the overly complicated build process. > After several hours of effort, I gave up and spent a half hour > modifying RabbitMQ to speak the 0.9 version of the AMQP wire > protocol. It obviously doesn't implement the 0.9 new features, but > with the attached patch (against 1.4.0), the wire formats match such > that you'll be able to use WireAPI. Thanks! This is perfect, and will tide me over until the 0.9.1 modifications are done. I've been nothing but pleased with RabbitMQ so far ... keep up the good work, everyone! -Mike From alexis.richardson at cohesiveft.com Mon Feb 9 08:44:18 2009 From: alexis.richardson at cohesiveft.com (Alexis Richardson) Date: Mon, 9 Feb 2009 08:44:18 +0000 Subject: [rabbitmq-discuss] managing rabbits with nanites Message-ID: <167204d20902090044i2343bc28p560fd0690e5a060@mail.gmail.com> Hi Ezra has written a control agent (agentlet?) for Rabbit using Nanite: http://pastie.org/383576 a From 0x6e6562 at gmail.com Mon Feb 9 10:27:14 2009 From: 0x6e6562 at gmail.com (Ben Hood) Date: Mon, 9 Feb 2009 10:27:14 +0000 Subject: [rabbitmq-discuss] Examining Queue Failover Behavior In-Reply-To: <3b949f090902061215k3ab288dbg4e8047b51e581183@mail.gmail.com> References: <3b949f090902061215k3ab288dbg4e8047b51e581183@mail.gmail.com> Message-ID: <269388e30902090227y36da0099h3d7e09b5113bd6a@mail.gmail.com> Jason, On Fri, Feb 6, 2009 at 8:15 PM, Jason J. W. Williams wrote: > I'm playing around with cluster failover right now. During a failover > event, I expected that unconsumed messages on a failed node would not > be moved. However, I did expect the queue to be recreated on the still > up node. Instead, it appears the queue does not appear on the other > node until an app recreates it. This correct? Sorry about the latency of this response :-( Are you talking about durable or non-durable queues? Ben From phil at parasec.net Mon Feb 9 11:12:07 2009 From: phil at parasec.net (Philip Stubbings) Date: Mon, 9 Feb 2009 11:12:07 +0000 Subject: [rabbitmq-discuss] memory usage In-Reply-To: <498C7F1F.1060801@lshift.net> References: <20090205151617.GA31965@muspelheim.parasec.net> <498C7F1F.1060801@lshift.net> Message-ID: <20090209111207.GA10995@muspelheim.parasec.net> Hi Matthias, Thank you for your reply. I used rabbitmqctl to determine the status of my queues and my messages are flagged as persistent. I have run the same test again, but this time I inject/consume a few messages later on, as you suggested. However, the memory footprint remains the same: After injecting 1 million messages ---------------------------------- ./rabbitmqctl list_queues -p / name durable auto_delete messages_ready messages_unacknowledged memory consumers Listing queues ... myQueue true false 1000000 0 1324422960 0 ...done. top: PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 11243 phil 23 0 3480m 3.0g 2048 S 0 39.0 10:56.64 beam.smp persister logs: -rw-rw-r-- 1 phil phil 286M Feb 9 11:43 rabbit_persister.LOG -rw-rw-r-- 1 phil phil 196M Feb 9 11:42 rabbit_persister.LOG.previous After consuming 1 million messages with a single consumer --------------------------------------------------------- rabbitmqctl list_queues -p / name durable auto_delete messages_ready messages_unacknowledged memory consumers Listing queues ... myExchange false false 0 0 3976 0 myQueue true false 0 0 3976 0 ...done. top: PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 11243 phil 23 0 2903m 1.8g 2048 S 0 23.5 21:55.42 beam.smp persister logs: -rw-rw-r-- 1 phil phil 463M Feb 9 12:00 rabbit_persister.LOG -rw-rw-r-- 1 phil phil 303M Feb 9 12:00 rabbit_persister.LOG.previous After injecting/consuming a few messages (after consuming the first million), beam's use of physical memory (1.8G) remains the same... Moreover, should the persister logs be this large after consuming (and acknowledging) all messages? I intend to use rabbit in a SMS routing application, where typically I need to persist messages at a sustained rate of 30 - 90 messages per second. Less frequently, there will be bursts of 1 million or more messages. Thanks again, Philip On Fri, Feb 06, 2009 at 06:19:11PM +0000, Matthias Radestock wrote: > Philip, > > Philip Stubbings wrote: >> I have set up Rabbit 1.5.1 running as a single node. During testing, I >> notice that memory use is extremely high. More specifically, if I push >> 1 million messages to a queue and later consume them (with >> acknowledgment) memory usage remains very high (in excess of 3G). I can >> verify that all consumed messages where acknowledged and that the queue >> is empty. Why does the process still require 3G of memory even after 24 >> hours of inactivity? > > How did you determine that the queues were empty? > > Are your messages flagged as persistent? How big is the persister log > (usually in /var/lib/rabbitmq/mnesia/rabbit/rabbit_persister.LOG). > > Can you send us the code to reproduce the problem? > >> The only way to reduce the memory footprint is to restart rabbitmq., >> However this is not an option for me. > > Erlang processes only perform garbage collection when there is some > activity. That usually isn't a problem, since most systems are not > expected to be both idle for a long time and have other processes > needing memory at the same time. > > Does the memory usage remain high when you inject & consume some more > messages? > >> The second problem I have encountered is during, and immediately after >> pushing 1 million messages to rabbitmq. If I try to connect a consumer >> whilst messages are being produced, I get the following error on the >> consumer side: >> >> (connection error; reason: >> {#method(reply-code=541,reply-text=INTERNAL_ERROR,class-id=0,method-id=0),null,""}) >> >> While, on the rabbit server: >> =ERROR REPORT==== 5-Feb-2009::12:43:57 === >> connection <0.3155.0> (running), channel 1 - error: >> {timeout,{gen_server,call,[rabbit_persister,serial]}} >> =WARNING REPORT==== 5-Feb-2009::12:43:57 === >> Non-AMQP exit reason >> '{timeout,{gen_server,call,[rabbit_persister,serial]}}' > > That looks like the same problem Darien Kindlund reported. See my > response to him a few moments ago. > >> And also, during and just after the 1 million messages have been >> produced (with no consumers connected) I get the following error while >> trying to examine the queue status: >> >> ../rabbitmq-server-1.5.1/scripts/rabbitmqctl list_queues -p / >> Listing queues ... >> Error: {badrpc, >> {'EXIT', >> {timeout, >> {gen_server,call,[<4472.2308.0>,{info,[name,messages]}]}}}} > > The queues are probably busy processing the message backlog. The info > request will be stuck behind the messages. I have filed a bug to do > something about that. > > Is the kind of bursty behaviour you are testing - with lots of messages > being injected at a high rate followed by periods of inactivity - > typical of your application? > > > Regards, > > Matthias. -- From jasonjwwilliams at gmail.com Mon Feb 9 17:45:24 2009 From: jasonjwwilliams at gmail.com (Jason J. W. Williams) Date: Mon, 9 Feb 2009 10:45:24 -0700 Subject: [rabbitmq-discuss] Examining Queue Failover Behavior In-Reply-To: <269388e30902090227y36da0099h3d7e09b5113bd6a@mail.gmail.com> References: <3b949f090902061215k3ab288dbg4e8047b51e581183@mail.gmail.com> <269388e30902090227y36da0099h3d7e09b5113bd6a@mail.gmail.com> Message-ID: <3b949f090902090945w35d841c9k3decc75e910bd536@mail.gmail.com> Hi Ben, No problem. I appreciate the response. They are durable: chan_recv.queue_declare(queue=queue_name, durable=True, auto_delete=False) -J On Mon, Feb 9, 2009 at 3:27 AM, Ben Hood <0x6e6562 at gmail.com> wrote: > Jason, > > On Fri, Feb 6, 2009 at 8:15 PM, Jason J. W. Williams > wrote: >> I'm playing around with cluster failover right now. During a failover >> event, I expected that unconsumed messages on a failed node would not >> be moved. However, I did expect the queue to be recreated on the still >> up node. Instead, it appears the queue does not appear on the other >> node until an app recreates it. This correct? > > Sorry about the latency of this response :-( > > Are you talking about durable or non-durable queues? > > Ben > From drew.smathers at gmail.com Mon Feb 9 17:58:02 2009 From: drew.smathers at gmail.com (Drew Smathers) Date: Mon, 9 Feb 2009 12:58:02 -0500 Subject: [rabbitmq-discuss] lettuce.squarespace.com no longer open to public? Message-ID: <368574aa0902090958r6304851cyf2f512b32d002d90@mail.gmail.com> I'm trying to access the FAQ at http://lettuce.squarespace.com/faq, but I'm get some odd permission errors: "You are attempting to access a resource on this site which is restricted. Please login below. After re-logging in, you will be automatically directed to the page you were attempting to access." Before this site did not require login for browsing questions an answers. -Drew From awise00 at gmail.com Mon Feb 9 19:33:07 2009 From: awise00 at gmail.com (Alex Wise) Date: Mon, 9 Feb 2009 14:33:07 -0500 Subject: [rabbitmq-discuss] Getting Started with RabbitMQ Message-ID: Hello, I am new to AMQP and RabbitMQ and would appreciate any pointers on how to begin developing with RabbitMQ. I've got RabbitMQ up and running and have successfully executed the com.rabbitmq.examples.TestMain test, but am really lost as to where to begin my exploration of this software. I've looked at the JavaDocs for the client and the packaged examples, but perhaps because I am unfamiliar with AMQP, I can't make heads or tails of where to start. Ultimately, I'd like to create a publish/subscribe solution with a single producer and multiple consumers. I would like to develop a small prototype that I can use to benchmark some statistics around latency and message size to see if RabbitMQ will suit my development needs. Any pointers are greatly apprecited. Regards, Alex -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.rabbitmq.com/pipermail/rabbitmq-discuss/attachments/20090209/fff46dcc/attachment.htm From alexis.richardson at cohesiveft.com Mon Feb 9 19:44:02 2009 From: alexis.richardson at cohesiveft.com (Alexis Richardson) Date: Mon, 9 Feb 2009 19:44:02 +0000 Subject: [rabbitmq-discuss] Getting Started with RabbitMQ In-Reply-To: References: Message-ID: <167204d20902091144j6442c6bbrd45d2a45c35c4c32@mail.gmail.com> Alex, Thanks for posting. We do need more examples. People have praised Jason's blog post which although Python centric, may get you started: http://blogs.digitar.com/jjww/2009/01/rabbits-and-warrens/ And, I keep a set of 'useful links' here - http://delicious.com/alexisrichardson/rabbitmq - which points at a lot of suitable resources. If you need help and/or are willing to talk about the use case you describe below, then I am sure you will find help on this list! Cheers, alexis On Mon, Feb 9, 2009 at 7:33 PM, Alex Wise wrote: > Hello, > > I am new to AMQP and RabbitMQ and would appreciate any pointers on how to > begin developing with RabbitMQ. I've got RabbitMQ up and running and have > successfully executed the com.rabbitmq.examples.TestMain test, but am really > lost as to where to begin my exploration of this software. I've looked at > the JavaDocs for the client and the packaged examples, but perhaps because I > am unfamiliar with AMQP, I can't make heads or tails of where to start. > > Ultimately, I'd like to create a publish/subscribe solution with a single > producer and multiple consumers. I would like to develop a small prototype > that I can use to benchmark some statistics around latency and message size > to see if RabbitMQ will suit my development needs. > > Any pointers are greatly apprecited. > > Regards, > Alex > > _______________________________________________ > rabbitmq-discuss mailing list > rabbitmq-discuss at lists.rabbitmq.com > http://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss > > From jasonjwwilliams at gmail.com Mon Feb 9 20:29:20 2009 From: jasonjwwilliams at gmail.com (Jason J. W. Williams) Date: Mon, 9 Feb 2009 13:29:20 -0700 Subject: [rabbitmq-discuss] Cluster Pathology Message-ID: <3b949f090902091229r372a78ci84ed70b5fa5f2b68@mail.gmail.com> Hi Y'all, I think I've stumbled on a rather pathological cluster behavior that may be related to the fact that queues aren't recreated (w/o messages) on other cluster nodes post failover. Setup A: * Consumer 1 attached to MQ node A and creates queue and binding. * Consumer 2 attaches to MQ node B and creates queue and binding (same as Consumer 1 and therefore no-op'd). * Producer 1 attaches to MQ node B (it also creates queue and binding same as Consumer 1...no-op'd) and publishes messages. Connection to MQ node B is persistent. * Consumer 1 dies. * MQ node A dies. Queues are not recreated on node B, and produced messages are black holed. Queues are not re-created because Consumer 2 and Producer 1 are not notified by node B to reconnect or any other error (therefore their reconnect/recreate queue code never gets triggered). Setup B: * Same as Setup A except: * Producer 1 attaches to MQ node A. * MQ node A and Consumer 1 fail. Producer 1 reconnects to node B and recreates queues and bindings. Messages Producer 1 publishes are placed in the recreated queue. However, Consumer 2 never is handed messages by node B (which it has been persistently attached to) after the recreation of the queue. Any insight is greatly appreciated. Best Regards, J From jasonjwwilliams at gmail.com Mon Feb 9 20:45:42 2009 From: jasonjwwilliams at gmail.com (Jason J. W. Williams) Date: Mon, 9 Feb 2009 13:45:42 -0700 Subject: [rabbitmq-discuss] Cluster Pathology In-Reply-To: <3b949f090902091229r372a78ci84ed70b5fa5f2b68@mail.gmail.com> References: <3b949f090902091229r372a78ci84ed70b5fa5f2b68@mail.gmail.com> Message-ID: <3b949f090902091245p4f690b87ue7aa9721be4cd301@mail.gmail.com> To follow-up. In playing around with Setup B some more. After Producer 1 recreates the queue on node B, node B reports 0 consumers on the queue. So it appears that when the queue died on node A, consumer 2 was not notified that the queue died, and also node B did not migrate his subscription to the recreated queue of the same name on node B. As a result, consumer 2 is hung in limbo listening to a non-existent queue. -J On Mon, Feb 9, 2009 at 1:29 PM, Jason J. W. Williams wrote: > Hi Y'all, > > I think I've stumbled on a rather pathological cluster behavior that > may be related to the fact that queues aren't recreated (w/o messages) > on other cluster nodes post failover. > > Setup A: > > * Consumer 1 attached to MQ node A and creates queue and binding. > * Consumer 2 attaches to MQ node B and creates queue and binding (same > as Consumer 1 and therefore no-op'd). > * Producer 1 attaches to MQ node B (it also creates queue and binding > same as Consumer 1...no-op'd) and publishes messages. Connection to MQ > node B is persistent. > * Consumer 1 dies. > * MQ node A dies. Queues are not recreated on node B, and produced > messages are black holed. Queues are not re-created because Consumer 2 > and Producer 1 are not notified by node B to reconnect or any other > error (therefore their reconnect/recreate queue code never gets > triggered). > > Setup B: > > * Same as Setup A except: > * Producer 1 attaches to MQ node A. > * MQ node A and Consumer 1 fail. Producer 1 reconnects to node B and > recreates queues and bindings. Messages Producer 1 publishes are > placed in the recreated queue. However, Consumer 2 never is handed > messages by node B (which it has been persistently attached to) after > the recreation of the queue. > > Any insight is greatly appreciated. > > Best Regards, > J > From drew.smathers at gmail.com Mon Feb 9 22:15:40 2009 From: drew.smathers at gmail.com (Drew Smathers) Date: Mon, 9 Feb 2009 17:15:40 -0500 Subject: [rabbitmq-discuss] Upgrading RabbitMQ Version in Cluster Message-ID: <368574aa0902091415p472f1f8bh99fc12676da2af8f@mail.gmail.com> I've posted a article (http://blog.enterthefoo.com/2009/02/notes-on-upgrading-rabbitmq-cluster.html) detailing some of the steps I've gone through in upgrading a RabbitMQ cluster (1.4.x to 1.5.1). I sense this is the by now means the "right" or "safe" way to do it - especially on a live system - and as I've indicated in the intro. Luckily, I've only had to do this on a dev system so far - but I need to finalize a written procedure for production. The blog posting is mostly to get ideas from other RabbitMQ developers (or seasoned users) on the best practices for upgrading clusters. I would appreciated any feedback. Regards, -Drew From 0x6e6562 at gmail.com Tue Feb 10 00:44:53 2009 From: 0x6e6562 at gmail.com (Ben Hood) Date: Tue, 10 Feb 2009 00:44:53 +0000 Subject: [rabbitmq-discuss] lettuce.squarespace.com no longer open to public? In-Reply-To: <368574aa0902090958r6304851cyf2f512b32d002d90@mail.gmail.com> References: <368574aa0902090958r6304851cyf2f512b32d002d90@mail.gmail.com> Message-ID: <269388e30902091644t6dc43bc4nca8685c3048f9a49@mail.gmail.com> Drew, On Mon, Feb 9, 2009 at 5:58 PM, Drew Smathers wrote: > I'm trying to access the FAQ at http://lettuce.squarespace.com/faq, > but I'm get some odd permission errors: > > "You are attempting to access a resource on this site which is > restricted. Please login below. After re-logging in, you will be > automatically directed to the page you were attempting to access." > > Before this site did not require login for browsing questions an answers. Thanks for the interest in lettuce, but ultimately the site had to get canceled due to cost issues. Ben From dialtone at gmail.com Tue Feb 10 01:17:40 2009 From: dialtone at gmail.com (Valentino Volonghi) Date: Mon, 9 Feb 2009 17:17:40 -0800 Subject: [rabbitmq-discuss] memory usage In-Reply-To: <20090209111207.GA10995@muspelheim.parasec.net> References: <20090205151617.GA31965@muspelheim.parasec.net> <498C7F1F.1060801@lshift.net> <20090209111207.GA10995@muspelheim.parasec.net> Message-ID: -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 On Feb 9, 2009, at 3:12 AM, Philip Stubbings wrote: > Hi Matthias, Thank you for your reply. > > I used rabbitmqctl to determine the status of my queues and my > messages are flagged as persistent. > I have run the same test again, but this time I inject/consume a few > messages later on, as you suggested. > However, the memory footprint remains the same: I kind of have the same behavior, I'm not sure if this was there with rabbitmq 1.5.0 though. Basically I have this configuration in a single erlang process: One box Outside world - -------------------------------------------------- geoip lookup | / | mochiweb ---> rabbitmq ---> shovel | ---> central rmq ---> consumers \ | app logic | - -------------------------------------------------- Basically the system works fine and is sort of resistant to certain system failures. Under medium/high load though (about 1000 messages per second peak, each message about 600-800 bytes) memory usage starts to ramp up and when it comes down it's only for a couple of seconds. The interesting thing is that I'm running this behind an haproxy load balancer and the client that is under the most load shows this behavior while the other remains more or less constant at around 200MB (still a lot but better than 1.8GB). Of course when kswapd starts running it takes up 100% of the CPU and every gen_server call goes timeout and brings the system to its knees. I then stop everything and restart the server that showed the problems (I also have to stop the benchmark). Shovel then starts transmitting some logs back and apparently memory usage goes back to normal (as much as the other instance that didn't show problems). Now... Through haproxy stats interface I can see that 628790 requests were completed (and about 1500 had an error due to the timeouts and so on right during the failure). On the other hand when I check the logfiles I received from those machines I only see 504400 logfiles. 124k of them are missing. If every message is about 600 bytes that's roughly 74MB of data missing. If I list the mnesia dir in the server that failed I see the following: - -rw-r--r-- 1 root root 83M 2009-02-10 00:41 rabbit_persister.LOG - -rw-r--r-- 1 root root 79M 2009-02-10 00:38 rabbit_persister.LOG.previous So basically those 124k messages are there and not being delivered even if shovel is connected and is waiting for messages using basic.cosume. Instead on the other machine where rabbitmq didn't fail I see this: - -rw-r--r-- 1 root root 6.9M 2009-02-10 00:36 rabbit_persister.LOG - -rw-r--r-- 1 root root 29M 2009-02-10 00:35 rabbit_persister.LOG.previous which I suppose means that it delivered everything and its queue is empty. Considering that this seems to be a load issue I take it's because shovel (or the queue processes) don't get nearly enough cpu time from erlang to process the messages. If this is the case even adding a second shovel gen_server wouldn't solve anything because rabbitmq doesn't send anything. Unfortunately I can't use rabbitmqctl in this configuration for some reason that I can't explain, I get the {badrpc,nodedown} and this time it's not related to the path from where I start rabbitmqctl but I suppose it's related to the fact that I start everything inside a single erlang process. Also if the case is actually about not getting enough cpu time I suppose that having one cpu per 'kind' of process in rabbitmq would help alleviate this issue. For example a quad core cpu would a cpu for each of queue, channel, exchange, etc. - -- Valentino Volonghi aka Dialtone Now running MacOS X 10.5 Home Page: http://www.twisted.it http://www.adroll.com -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.9 (Darwin) iEYEARECAAYFAkmQ1bUACgkQ9Llz28widGWYRACgidhqXDzWNLC5sXU+9rWW+t3O uXQAoLVSZW71gXdANRqemfVGmrytCmPf =aA6z -----END PGP SIGNATURE----- From alexis.richardson at cohesiveft.com Tue Feb 10 07:27:10 2009 From: alexis.richardson at cohesiveft.com (Alexis Richardson) Date: Tue, 10 Feb 2009 07:27:10 +0000 Subject: [rabbitmq-discuss] memory usage In-Reply-To: References: <20090205151617.GA31965@muspelheim.parasec.net> <498C7F1F.1060801@lshift.net> <20090209111207.GA10995@muspelheim.parasec.net> Message-ID: <167204d20902092327l543aae91w9e15abf9da9f7c1@mail.gmail.com> Valentino One question (not very helpful..) Is this in your local system? I recall you mentioned EC2 and would like to ask whether it is on there. alexis On Tue, Feb 10, 2009 at 1:17 AM, Valentino Volonghi wrote: > -----BEGIN PGP SIGNED MESSAGE----- > Hash: SHA1 > > On Feb 9, 2009, at 3:12 AM, Philip Stubbings wrote: > >> Hi Matthias, Thank you for your reply. >> >> I used rabbitmqctl to determine the status of my queues and my >> messages are flagged as persistent. >> I have run the same test again, but this time I inject/consume a few >> messages later on, as you suggested. >> However, the memory footprint remains the same: > > > I kind of have the same behavior, I'm not sure if this was there with > rabbitmq 1.5.0 though. > > Basically I have this configuration in a single erlang process: > > One box > Outside world > - -------------------------------------------------- > geoip lookup | > / | > mochiweb ---> rabbitmq ---> shovel | ---> central rmq ---> consumers > \ | > app logic | > - -------------------------------------------------- > > > Basically the system works fine and is sort of resistant to certain > system failures. > Under medium/high load though (about 1000 messages per second peak, each > message about 600-800 bytes) memory usage starts to ramp up and when > it comes > down it's only for a couple of seconds. > > The interesting thing is that I'm running this behind an haproxy load > balancer > and the client that is under the most load shows this behavior while > the other > remains more or less constant at around 200MB (still a lot but better > than 1.8GB). > Of course when kswapd starts running it takes up 100% of the CPU and > every > gen_server call goes timeout and brings the system to its knees. I > then stop everything > and restart the server that showed the problems (I also have to stop > the benchmark). > Shovel then starts transmitting some logs back and apparently memory > usage goes > back to normal (as much as the other instance that didn't show > problems). > > Now... Through haproxy stats interface I can see that 628790 requests > were > completed (and about 1500 had an error due to the timeouts and so on > right during > the failure). On the other hand when I check the logfiles I received > from those > machines I only see 504400 logfiles. 124k of them are missing. If > every message > is about 600 bytes that's roughly 74MB of data missing. > > If I list the mnesia dir in the server that failed I see the following: > > - -rw-r--r-- 1 root root 83M 2009-02-10 00:41 rabbit_persister.LOG > - -rw-r--r-- 1 root root 79M 2009-02-10 00:38 > rabbit_persister.LOG.previous > > So basically those 124k messages are there and not being delivered even > if shovel is connected and is waiting for messages using basic.cosume. > > Instead on the other machine where rabbitmq didn't fail I see this: > > - -rw-r--r-- 1 root root 6.9M 2009-02-10 00:36 rabbit_persister.LOG > - -rw-r--r-- 1 root root 29M 2009-02-10 00:35 > rabbit_persister.LOG.previous > > which I suppose means that it delivered everything and its queue is > empty. > > Considering that this seems to be a load issue I take it's because > shovel > (or the queue processes) don't get nearly enough cpu time from erlang > to process the messages. If this is the case even adding a second shovel > gen_server wouldn't solve anything because rabbitmq doesn't send > anything. > > Unfortunately I can't use rabbitmqctl in this configuration for some > reason > that I can't explain, I get the {badrpc,nodedown} and this time it's > not related > to the path from where I start rabbitmqctl but I suppose it's related > to the fact > that I start everything inside a single erlang process. > > Also if the case is actually about not getting enough cpu time I > suppose that > having one cpu per 'kind' of process in rabbitmq would help alleviate > this > issue. For example a quad core cpu would a cpu for each of queue, > channel, > exchange, etc. > > - -- > Valentino Volonghi aka Dialtone > Now running MacOS X 10.5 > Home Page: http://www.twisted.it > http://www.adroll.com > > -----BEGIN PGP SIGNATURE----- > Version: GnuPG v1.4.9 (Darwin) > > iEYEARECAAYFAkmQ1bUACgkQ9Llz28widGWYRACgidhqXDzWNLC5sXU+9rWW+t3O > uXQAoLVSZW71gXdANRqemfVGmrytCmPf > =aA6z > -----END PGP SIGNATURE----- > > _______________________________________________ > rabbitmq-discuss mailing list > rabbitmq-discuss at lists.rabbitmq.com > http://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss > From alexis.richardson at cohesiveft.com Tue Feb 10 07:28:33 2009 From: alexis.richardson at cohesiveft.com (Alexis Richardson) Date: Tue, 10 Feb 2009 07:28:33 +0000 Subject: [rabbitmq-discuss] lettuce.squarespace.com no longer open to public? In-Reply-To: <269388e30902091644t6dc43bc4nca8685c3048f9a49@mail.gmail.com> References: <368574aa0902090958r6304851cyf2f512b32d002d90@mail.gmail.com> <269388e30902091644t6dc43bc4nca8685c3048f9a49@mail.gmail.com> Message-ID: <167204d20902092328u70927d90hd167270b3061813f@mail.gmail.com> Ben, Would you have any objections to our copying the FAQ you built up on lettuce, over to http://www.rabbitmq.com? alexis On Tue, Feb 10, 2009 at 12:44 AM, Ben Hood <0x6e6562 at gmail.com> wrote: > Drew, > > On Mon, Feb 9, 2009 at 5:58 PM, Drew Smathers wrote: >> I'm trying to access the FAQ at http://lettuce.squarespace.com/faq, >> but I'm get some odd permission errors: >> >> "You are attempting to access a resource on this site which is >> restricted. Please login below. After re-logging in, you will be >> automatically directed to the page you were attempting to access." >> >> Before this site did not require login for browsing questions an answers. > > Thanks for the interest in lettuce, but ultimately the site had to get > canceled due to cost issues. > > Ben > > _______________________________________________ > rabbitmq-discuss mailing list > rabbitmq-discuss at lists.rabbitmq.com > http://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss > From alexis.richardson at cohesiveft.com Tue Feb 10 07:56:56 2009 From: alexis.richardson at cohesiveft.com (Alexis Richardson) Date: Tue, 10 Feb 2009 07:56:56 +0000 Subject: [rabbitmq-discuss] Q replication anxiety In-Reply-To: <269388e30902051518w44c1a5afreb23321172deb4c@mail.gmail.com> References: <00A5C75C-98D0-4367-B254-E06EF49EEA28@pobox.com> <269388e30902051518w44c1a5afreb23321172deb4c@mail.gmail.com> Message-ID: <167204d20902092356o18307635y20ff5426d7a0694e@mail.gmail.com> Ben (Hyde), On Thu, Feb 5, 2009 at 11:18 PM, Ben Hood <0x6e6562 at gmail.com> wrote: > >> My setup is on ec2. My testing randomly kill's machines; in service >> of assuring the system can self heal. Obviously I'm going to be >> miserable if I kill the machines with Q's on them? I guess i need to >> be sure the disks the Q's fall onto aren't wiped (which they are today). > > You'll have to wait for the cloud guys to respond to this. I know that > that EC2 brought out EBS a while back, however, I don't know what > implications this has for Rabbit. As you spotted, RabbitMQ does not yet create multiple copies of queues for HA. But it can persist queues to disk. As you concluded, this means that if you want messages to be available after a failure, the disk / store is not wiped. For example to achieve this you can back up the data from EC2 to S3 or EBS. I recommend EBS which is not too hard to set up, and will give you more automation (iiuc). Keep asking if you need more help. alexis From dialtone at gmail.com Tue Feb 10 07:59:34 2009 From: dialtone at gmail.com (Valentino Volonghi) Date: Mon, 9 Feb 2009 23:59:34 -0800 Subject: [rabbitmq-discuss] memory usage In-Reply-To: <167204d20902092327l543aae91w9e15abf9da9f7c1@mail.gmail.com> References: <20090205151617.GA31965@muspelheim.parasec.net> <498C7F1F.1060801@lshift.net> <20090209111207.GA10995@muspelheim.parasec.net> <167204d20902092327l543aae91w9e15abf9da9f7c1@mail.gmail.com> Message-ID: -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 On Feb 9, 2009, at 11:27 PM, Alexis Richardson wrote: > One question (not very helpful..) > > Is this in your local system? I recall you mentioned EC2 and would > like to ask whether it is on there. Yes, it's on a couple of EC2 c1.medium instances running Ubuntu 8.04. When I manage to complete the test I can get pretty good numbers of about 4000 users connected at the same time (short requests) with about 2500 req/sec handled on those relatively poor machines, but the test only runs for about 15 minutes and if I keep the rate for some more time I'm pretty sure i can get the system to reliably crash. The problem here, before erlang crashing because addressable space is finished is erlang crashing for timeouts while kswapd is running :). - -- Valentino Volonghi aka Dialtone Now running MacOS X 10.5 Home Page: http://www.twisted.it http://www.adroll.com -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.9 (Darwin) iEYEARECAAYFAkmRM+YACgkQ9Llz28widGXO8gCgmfdbxqtanJShafA2mJ4AshOa 6acAoL9c9Ra4eIERecUxSqVqZEqGp9mD =Jkm5 -----END PGP SIGNATURE----- From alexis.richardson at cohesiveft.com Tue Feb 10 08:12:20 2009 From: alexis.richardson at cohesiveft.com (Alexis Richardson) Date: Tue, 10 Feb 2009 08:12:20 +0000 Subject: [rabbitmq-discuss] memory usage In-Reply-To: References: <20090205151617.GA31965@muspelheim.parasec.net> <498C7F1F.1060801@lshift.net> <20090209111207.GA10995@muspelheim.parasec.net> <167204d20902092327l543aae91w9e15abf9da9f7c1@mail.gmail.com> Message-ID: <167204d20902100012l19dba940u6482d5f379186c4e@mail.gmail.com> Got it. Thanks. Are you able to replicate the failure on local machines? I would understand if you do not have a local harness, but even so, that strikes me as the next step. (Unless we all replicate your EC2 set-up which might be non-trivial) alexis On Tue, Feb 10, 2009 at 7:59 AM, Valentino Volonghi wrote: > -----BEGIN PGP SIGNED MESSAGE----- > Hash: SHA1 > > > On Feb 9, 2009, at 11:27 PM, Alexis Richardson wrote: > >> One question (not very helpful..) >> >> Is this in your local system? I recall you mentioned EC2 and would >> like to ask whether it is on there. > > Yes, it's on a couple of EC2 c1.medium instances running Ubuntu 8.04. > > When I manage to complete the test I can get pretty good numbers > of about 4000 users connected at the same time (short requests) with > about 2500 req/sec handled on those relatively poor machines, but > the test only runs for about 15 minutes and if I keep the rate for some > more time I'm pretty sure i can get the system to reliably crash. > > The problem here, before erlang crashing because addressable space > is finished is erlang crashing for timeouts while kswapd is running :). > > - -- > Valentino Volonghi aka Dialtone > Now running MacOS X 10.5 > Home Page: http://www.twisted.it > http://www.adroll.com > > -----BEGIN PGP SIGNATURE----- > Version: GnuPG v1.4.9 (Darwin) > > iEYEARECAAYFAkmRM+YACgkQ9Llz28widGXO8gCgmfdbxqtanJShafA2mJ4AshOa > 6acAoL9c9Ra4eIERecUxSqVqZEqGp9mD > =Jkm5 > -----END PGP SIGNATURE----- > From elliot at canonical.com Tue Feb 10 18:54:27 2009 From: elliot at canonical.com (Elliot Murphy) Date: Tue, 10 Feb 2009 13:54:27 -0500 Subject: [rabbitmq-discuss] lettuce.squarespace.com no longer open to public? In-Reply-To: <269388e30902091644t6dc43bc4nca8685c3048f9a49@mail.gmail.com> References: <368574aa0902090958r6304851cyf2f512b32d002d90@mail.gmail.com> <269388e30902091644t6dc43bc4nca8685c3048f9a49@mail.gmail.com> Message-ID: <4991CD63.50701@canonical.com> -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Ben Hood wrote: > Thanks for the interest in lettuce, but ultimately the site had to get > canceled due to cost issues. Oh won't you let me set you up on launchpad for free? You can use the questions and answers feature, which I think works a bit better than the lettuce FAQ did (although i found the FAQ content *very* useful). https://edge.launchpad.net/+tour/index More specifically, the Q&A feature of launchpad: https://edge.launchpad.net/+tour/community-support Not to mention that lp also gives you a free blueprint tracker, bug tracker, mailing list hosting, bzr hosting (for your whole community!), package building, translations, and more. And it will also integrate nicely with Trac. Use as much or as little of launchpad as you want. I'll even get your project featured on the front page of launchpad ;) - -- Elliot Murphy | https://launchpad.net/~statik/ -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.6 (GNU/Linux) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org iD8DBQFJkc1jGi43imCMARIRAv4BAJ4gh5AWPQDcZJ5QQcFY2EiZ6mn9TACfcM4x xlCsKToA5V2NdoyXfeXbEoA= =OPuA -----END PGP SIGNATURE----- From alexis.richardson at cohesiveft.com Tue Feb 10 20:00:57 2009 From: alexis.richardson at cohesiveft.com (Alexis Richardson) Date: Tue, 10 Feb 2009 20:00:57 +0000 Subject: [rabbitmq-discuss] lettuce.squarespace.com no longer open to public? In-Reply-To: <4991CD63.50701@canonical.com> References: <368574aa0902090958r6304851cyf2f512b32d002d90@mail.gmail.com> <269388e30902091644t6dc43bc4nca8685c3048f9a49@mail.gmail.com> <4991CD63.50701@canonical.com> Message-ID: <167204d20902101200m2e1e31b9r8eb9b59c4b38fc56@mail.gmail.com> Elliot, Thanks :-) It's tempting -- how would that integrate with our existing FAQ? alexis On Tue, Feb 10, 2009 at 6:54 PM, Elliot Murphy wrote: > -----BEGIN PGP SIGNED MESSAGE----- > Hash: SHA1 > > Ben Hood wrote: >> Thanks for the interest in lettuce, but ultimately the site had to get >> canceled due to cost issues. > > Oh won't you let me set you up on launchpad for free? You can use the > questions and answers feature, which I think works a bit better than the > lettuce FAQ did (although i found the FAQ content *very* useful). > > https://edge.launchpad.net/+tour/index > > More specifically, the Q&A feature of launchpad: > > https://edge.launchpad.net/+tour/community-support > > Not to mention that lp also gives you a free blueprint tracker, bug tracker, > mailing list hosting, bzr hosting (for your whole community!), package > building, translations, and more. And it will also integrate nicely with Trac. > Use as much or as little of launchpad as you want. > > I'll even get your project featured on the front page of launchpad ;) > > - -- > Elliot Murphy | https://launchpad.net/~statik/ > -----BEGIN PGP SIGNATURE----- > Version: GnuPG v1.4.6 (GNU/Linux) > Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org > > iD8DBQFJkc1jGi43imCMARIRAv4BAJ4gh5AWPQDcZJ5QQcFY2EiZ6mn9TACfcM4x > xlCsKToA5V2NdoyXfeXbEoA= > =OPuA > -----END PGP SIGNATURE----- > > _______________________________________________ > rabbitmq-discuss mailing list > rabbitmq-discuss at lists.rabbitmq.com > http://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss > From jasonjwwilliams at gmail.com Tue Feb 10 21:45:26 2009 From: jasonjwwilliams at gmail.com (Jason J. W. Williams) Date: Tue, 10 Feb 2009 14:45:26 -0700 Subject: [rabbitmq-discuss] Cluster Issues? Message-ID: <3b949f090902101345k5b5e6ae9u9635d31c60518210@mail.gmail.com> Hi Y'all, Were my experiences with the cluster failover unique, or are they known issues? -J From elliot at canonical.com Tue Feb 10 22:56:15 2009 From: elliot at canonical.com (Elliot Murphy) Date: Tue, 10 Feb 2009 17:56:15 -0500 Subject: [rabbitmq-discuss] lettuce.squarespace.com no longer open to public? In-Reply-To: <167204d20902101200m2e1e31b9r8eb9b59c4b38fc56@mail.gmail.com> References: <368574aa0902090958r6304851cyf2f512b32d002d90@mail.gmail.com> <269388e30902091644t6dc43bc4nca8685c3048f9a49@mail.gmail.com> <4991CD63.50701@canonical.com> <167204d20902101200m2e1e31b9r8eb9b59c4b38fc56@mail.gmail.com> Message-ID: <4992060F.6050300@canonical.com> On 02/10/2009 03:00 PM, Alexis Richardson wrote: > > It's tempting -- how would that integrate with our existing FAQ? > You know, it really wouldn't. Launchpad doesn't have any branding capabilities. When I sent this, I was mixed up and thought that the lettuce stuff was more official - sorry about the noise. Probably the easiest and most consistent thing to do is just copy the old lettuce content into the FAQ section on rabbitmq.com. -- Elliot Murphy | https://launchpad.net/~statik/ From dialtone at gmail.com Wed Feb 11 01:11:30 2009 From: dialtone at gmail.com (Valentino Volonghi) Date: Tue, 10 Feb 2009 17:11:30 -0800 Subject: [rabbitmq-discuss] memory usage In-Reply-To: <167204d20902100012l19dba940u6482d5f379186c4e@mail.gmail.com> References: <20090205151617.GA31965@muspelheim.parasec.net> <498C7F1F.1060801@lshift.net> <20090209111207.GA10995@muspelheim.parasec.net> <167204d20902092327l543aae91w9e15abf9da9f7c1@mail.gmail.com> <167204d20902100012l19dba940u6482d5f379186c4e@mail.gmail.com> Message-ID: <1E48C342-D18C-472F-9EDE-C29CD695FA62@gmail.com> -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 On Feb 10, 2009, at 12:12 AM, Alexis Richardson wrote: > Got it. Thanks. > > Are you able to replicate the failure on local machines? I would > understand if you do not have a local harness, but even so, that > strikes me as the next step. (Unless we all replicate your EC2 set-up > which might be non-trivial) I can replicate it yes. at some point message delivery slows down incredibly. but I have to explain the system a little bit more: shovel doesn't just forward messages, it waits until it receives X messages, then packs them together and sends all at once, after that acks all of them at once on the source rabbitmq. So in the second rabbitmq what used to be a 600bytes message becomes a 40KB message (with compression and 1000 messages). On EC2 the memory problem is with the frontend mochiweb boxes. If I check the logs on the central rabbitmq in this configuration they are normal, currently they are 8MB and the memory usage of that rabbitmq instance is 32MB. Since shovel packs 1000 messages together the message rate the central rabbitmq sees is 1000 times less than the frontends (usually on peak it's 1 message per second for each frontend server). The logs on the frontend instead showed that never-shrinking behavior. I tried to run this test three or four times under the exact same load parameters that I used on EC2 but on a single server internally. For the first 2 tests everything seemed to work fine, and actually memory usage on an x86-64 machine is even lower than the 32bit machine on EC2 with a cold started system (100MB vs 300MB). One thing though is that the rabbit_persister.LOG was never back to a reasonable value after the tests and basically I've never seen it shrinking (in either of the machines), and this is both in the frontend and the central rabbitmq (that for this test setup were both running in the same machine, during the tests the load on the frontend was 180%, not maxed out by the test, and the central rabbitmq was around 1-5%). After the second test though message delivery stopped even though the logfile was more than 140MB in both the rabbitmqs. I then started the test a third time and boom... After a while the memory usage started ramping up unbounded until it reached more than 3.0gb per process (machine is 64bit) at this point message delivery stopped completely, then when the load went down a little bit it started again VERY slowly (1 message every 30 seconds on average). At the end of the test the frontend was crashed completely using just 10MB of memory (it should use at least 100MB because it keeps in memory the geoip db for lookup), and the central rabbitmq was at 3.7GB of memory used. Logfiles were about 180MB on both and after a restart they were recovered and rolled so now they are basically 0 (and after restart another 2000 messages were delivered). "unfortunately" I cannot check the number of delivered messages because the third time I repeated the test I thought that it could have been a consumer problem in that it could be too slow (even though I have 3 consumers kept alive by a process pool that does what the supervisor does in erlang) so I switched my consumers to a simple version that just gets them without saving them. So I only have an estimate and that estimate is around 700.000 lines (700 messages) delivered while tsung tells me it did 1.3M requests, of course there was a crash in the middle so I'd say that the lines were delivered until the system was running. I should repeat it and see if I can count all of them using the default consumers. I'm now repeating the test again with more monitoring over requests done and the size of the logs. - -- Valentino Volonghi aka Dialtone Now running MacOS X 10.5 Home Page: http://www.twisted.it http://www.adroll.com -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.9 (Darwin) iEYEARECAAYFAkmSJcIACgkQ9Llz28widGUwLgCgoqRr++h6YbRImcXK5NviQMZN JFsAn25dlmkGzGe7JWO2Asy/rHYslKqo =rrTO -----END PGP SIGNATURE----- From dmitriy.samovskiy at cohesiveft.com Wed Feb 11 01:39:08 2009 From: dmitriy.samovskiy at cohesiveft.com (Dmitriy Samovskiy) Date: Tue, 10 Feb 2009 19:39:08 -0600 Subject: [rabbitmq-discuss] Cluster Pathology In-Reply-To: <3b949f090902091229r372a78ci84ed70b5fa5f2b68@mail.gmail.com> References: <3b949f090902091229r372a78ci84ed70b5fa5f2b68@mail.gmail.com> Message-ID: <49922C3C.7040004@cohesiveft.com> Hi Jason, Jason J. W. Williams wrote: > > Setup A: > > * Consumer 1 attached to MQ node A and creates queue and binding. > * Consumer 2 attaches to MQ node B and creates queue and binding (same > as Consumer 1 and therefore no-op'd). > * Producer 1 attaches to MQ node B (it also creates queue and binding > same as Consumer 1...no-op'd) and publishes messages. Connection to MQ > node B is persistent. > * Consumer 1 dies. > * MQ node A dies. Queues are not recreated on node B, and produced > messages are black holed. Queues are not re-created because Consumer 2 > and Producer 1 are not notified by node B to reconnect or any other > error (therefore their reconnect/recreate queue code never gets > triggered). Have you tried restoring node A? When it went down, it might have had some messages in the queue. And since contents of queues are not replicated, nobody knows about this fact except for node A itself. When you restore it, maybe rabbit will magically detect that a queue has now been re-declared on another node and will migrate unconsumed messages there? Or not... > Setup B: > > * Same as Setup A except: > * Producer 1 attaches to MQ node A. > * MQ node A and Consumer 1 fail. Producer 1 reconnects to node B and > recreates queues and bindings. Messages Producer 1 publishes are > placed in the recreated queue. However, Consumer 2 never is handed > messages by node B (which it has been persistently attached to) after > the recreation of the queue. Maybe because consumer 2 is still attached to a queue that is on a node that is down? I suspect that when you create a binding by name, rabbit resolves the name string to its internal locator for a specific queue, which in this case is on node A which is down? I would guess that if you restart the consumer it will attach to newly created queue. But again, the question will remain how one can get messages from an old queue named "foo" when a new queue "foo" now exists on another node. - Dmitriy From jasonjwwilliams at gmail.com Wed Feb 11 01:54:05 2009 From: jasonjwwilliams at gmail.com (Jason J. W. Williams) Date: Tue, 10 Feb 2009 18:54:05 -0700 Subject: [rabbitmq-discuss] Cluster Pathology In-Reply-To: <49922C3C.7040004@cohesiveft.com> References: <3b949f090902091229r372a78ci84ed70b5fa5f2b68@mail.gmail.com> <49922C3C.7040004@cohesiveft.com> Message-ID: <3b949f090902101754n14babf88o88e6bacc875501ca@mail.gmail.com> HI Dmitriy, I don't expect the messages to get moved when the node comes back up....well it would be nice, but I accept that it doesn't happen (in fact, if the queue has been redeclared on another node during the downtime, the messages "appear" to be lost when the downed node returns...I'm sure they could be recovered from the persister log). The fact that Node A is down is the crux of the issue (maybe it's power supply blew? maybe it's disks are toast). Anyone subscribed to a Node A-sourced queue via Node B gets orphaned (they don't get notified it doesn't exist anymore, and recreation by someone else on Node B doesn't apply to them). The point of our cluster is failover with the future possibility of scaling the cluster. But first and foremost, fail over. If subscribers on Node B get orphaned, they can't help drain the queue when its been recreated, and it could be some time before anyone realizes they're just twiddling their thumbs. I realize message replication in a cluster is not an easy problem. But I think it's fair to assume the queue itself (w/o messages) will be migrated to a still alive node, or any subscribers to that queue on a still alive node will get booted so they don't get orphaned. -J On Tue, Feb 10, 2009 at 6:39 PM, Dmitriy Samovskiy wrote: > Hi Jason, > > Jason J. W. Williams wrote: >> >> Setup A: >> >> * Consumer 1 attached to MQ node A and creates queue and binding. >> * Consumer 2 attaches to MQ node B and creates queue and binding (same >> as Consumer 1 and therefore no-op'd). >> * Producer 1 attaches to MQ node B (it also creates queue and binding >> same as Consumer 1...no-op'd) and publishes messages. Connection to MQ >> node B is persistent. >> * Consumer 1 dies. >> * MQ node A dies. Queues are not recreated on node B, and produced >> messages are black holed. Queues are not re-created because Consumer 2 >> and Producer 1 are not notified by node B to reconnect or any other >> error (therefore their reconnect/recreate queue code never gets >> triggered). > > Have you tried restoring node A? When it went down, it might have had some > messages in the queue. And since contents of queues are not replicated, > nobody knows about this fact except for node A itself. > > When you restore it, maybe rabbit will magically detect that a queue has now > been re-declared on another node and will migrate unconsumed messages there? > Or not... > > >> Setup B: >> >> * Same as Setup A except: >> * Producer 1 attaches to MQ node A. >> * MQ node A and Consumer 1 fail. Producer 1 reconnects to node B and >> recreates queues and bindings. Messages Producer 1 publishes are >> placed in the recreated queue. However, Consumer 2 never is handed >> messages by node B (which it has been persistently attached to) after >> the recreation of the queue. > > Maybe because consumer 2 is still attached to a queue that is on a node that > is down? I suspect that when you create a binding by name, rabbit resolves > the name string to its internal locator for a specific queue, which in this > case is on node A which is down? I would guess that if you restart the > consumer it will attach to newly created queue. > > But again, the question will remain how one can get messages from an old > queue named "foo" when a new queue "foo" now exists on another node. > > > - Dmitriy > From dialtone at gmail.com Wed Feb 11 02:31:53 2009 From: dialtone at gmail.com (Valentino Volonghi) Date: Tue, 10 Feb 2009 18:31:53 -0800 Subject: [rabbitmq-discuss] memory usage In-Reply-To: <1E48C342-D18C-472F-9EDE-C29CD695FA62@gmail.com> References: <20090205151617.GA31965@muspelheim.parasec.net> <498C7F1F.1060801@lshift.net> <20090209111207.GA10995@muspelheim.parasec.net> <167204d20902092327l543aae91w9e15abf9da9f7c1@mail.gmail.com> <167204d20902100012l19dba940u6482d5f379186c4e@mail.gmail.com> <1E48C342-D18C-472F-9EDE-C29CD695FA62@gmail.com> Message-ID: <94FF700B-1DFB-4B27-8944-FD82DD5B4E8C@gmail.com> -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 On Feb 10, 2009, at 5:11 PM, Valentino Volonghi wrote: > I'm now repeating the test again with more monitoring over requests > done and the size > of the logs. One thing that I can reproduce 100% of the time: If I run tsung with some requests to be done and a 0.000625 inter arrival time (1600 req/sec) and my system is behind nginx 0.6.35 configured as the bottom of the email. The central rabbitmq raises this error: Supervisor: {local,rabbit_amqqueue_sup} Context: child_terminated Reason: {timeout, {gen_server,call, [rabbit_persister, {commit_transaction, {{{1,<0.245.0>},160}, {resource,<<"/">>,queue, <<"log_endpoint">>}}}]}} Offender: [{pid,<0.212.0>}, {name,rabbit_amqqueue}, {mfa, {rabbit_amqqueue_process,start_link, [{amqqueue, {resource,<<"/">>,queue,<<"log_endpoint">>}, true,false,[],none}]}}, {restart_type,temporary}, {shutdown,brutal_kill}, {child_type,worker}] I suppose it's because it doesn't get enough CPU time again... maybe this is also the reason why it stops sending messages, because being unable to receive them it doesn't deliver. Once this happens the frontend rabbitmq for some reason jumps to 2.5GB of memory used and keeps delivering like nothing happened, it also remains at 2.5GB even if its log files remain very low in size. # nginx.conf worker_processes 1; events { worker_connections 26000; } http { include mime.types; default_type application/octet-stream; access_log logs/access.log main; sendfile on; keepalive_timeout 65; tcp_nopush on; tcp_nodelay on; server { listen 80; server_name localhost; location / { proxy_pass http://127.0.0.1:8000/; proxy_redirect off; proxy_set_header Host $host; proxy_set_header X-Forwarded-For $remote_addr; proxy_connect_timeout 90; proxy_send_timeout 90; proxy_read_timeout 90; proxy_buffer_size 4k; proxy_buffers 4 32k; } } } - -- Valentino Volonghi aka Dialtone Now running MacOS X 10.5 Home Page: http://www.twisted.it http://www.adroll.com -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.9 (Darwin) iEYEARECAAYFAkmSOJkACgkQ9Llz28widGVoYwCghrR6kG2HbzYh9+j8336wnIM7 Dq8AoMyQrh6Q1JHyvvkrWJ8xDT2QiA02 =fuTi -----END PGP SIGNATURE----- From 0x6e6562 at gmail.com Wed Feb 11 09:14:30 2009 From: 0x6e6562 at gmail.com (Ben Hood) Date: Wed, 11 Feb 2009 09:14:30 +0000 Subject: [rabbitmq-discuss] Examining Queue Failover Behavior In-Reply-To: <3b949f090902090945w35d841c9k3decc75e910bd536@mail.gmail.com> References: <3b949f090902061215k3ab288dbg4e8047b51e581183@mail.gmail.com> <269388e30902090227y36da0099h3d7e09b5113bd6a@mail.gmail.com> <3b949f090902090945w35d841c9k3decc75e910bd536@mail.gmail.com> Message-ID: <269388e30902110114j6b13ddcbw2f24d926e2d3e73d@mail.gmail.com> Hey Jason, Don't worry, your post did not disappear down a black hole, we are just extremely busy doing client related work ATM. On Mon, Feb 9, 2009 at 5:45 PM, Jason J. W. Williams wrote: > Hi Ben, > > No problem. I appreciate the response. They are durable: > > chan_recv.queue_declare(queue=queue_name, > durable=True, > auto_delete=False) One thing that I overlooked in your original post was that you expected a queue process and it's content to be automagically migrated on the event of a node failure. This does not happen currently. In general, the process of neatly recovering such that a node failure is completely transparent to a client is not addressed. The modus operandi is to a) not lose messages and then b) give somebody the tools to recover a node. The reason why transparent failover has not been addressed is because it is quite difficult to do - for example, how do you when a node has died or that the network has just been partitioned? Doable, but difficult. (To Valentino and Co ) as I said before, I'll try to address all of the related posts today. Ben From petry at itwm.fhg.de Wed Feb 11 09:20:55 2009 From: petry at itwm.fhg.de (Alexander Petry) Date: Wed, 11 Feb 2009 10:20:55 +0100 Subject: [rabbitmq-discuss] message-id assignment in experimental STOMP adapter Message-ID: <20090211092055.GT32134@bench.jakalx.net> Hi list! I am currently switching my client software code from using the ActiveMQ broker to RabbitMQ and am using the (experimental) STOMP adapter for RabbitMQ. During my tests it occured to me that the stomp adapter issues message-ids on its own, regardless of whether I already had specified one or not. Some parts of my client code aim to provide an rpc like semantic that relies on the message ids (i.e. I need to know the exact message id with which a message is sent). Up to now I simply used the "message-id" header field which worked perfectly well with ActiveMQ. Is there a reason why the STOMP adapter disregards my message-ids (I just want to know) - in case there is, I will simply use my own header-field. Thanks in advance and best regards, Alex From tonyg at lshift.net Wed Feb 11 11:15:13 2009 From: tonyg at lshift.net (Tony Garnock-Jones) Date: Wed, 11 Feb 2009 11:15:13 +0000 Subject: [rabbitmq-discuss] [New project] amqp-utils, CLI utilities for AMQP queues In-Reply-To: <3D416814-397E-4C0D-8302-D032E655C083@gmail.com> References: <68184A93-83C6-41EC-976E-E753362D2962@gmail.com> <5A46D132C446C04B9EFE8AD14E7891065C49E4BC1B@SVR-2K3-BH-EMC.tradition.int> <167204d20902050135n5632c223q633cbbd1ef8bcecc@mail.gmail.com> <3D416814-397E-4C0D-8302-D032E655C083@gmail.com> Message-ID: <4992B341.1050308@lshift.net> Valentino Volonghi wrote: > I'm pretty sure that with an HTTP server built-in you can do anything > to rabbitmq, even writing consumers in javascript :). :-) see http://hg.rabbitmq.com/rabbitmq-http2/ which does just this. > /stats/ <- general stats and list of exchanges > /stats// <- list of queues under exchange > /stats/// <- queue stats > /stats/users/ > /stats/consumers/ > /stats/acls/ > ... Nice idea. Tony From tonyg at lshift.net Wed Feb 11 11:40:59 2009 From: tonyg at lshift.net (Tony Garnock-Jones) Date: Wed, 11 Feb 2009 11:40:59 +0000 Subject: [rabbitmq-discuss] Q replication anxiety In-Reply-To: <00A5C75C-98D0-4367-B254-E06EF49EEA28@pobox.com> References: <00A5C75C-98D0-4367-B254-E06EF49EEA28@pobox.com> Message-ID: <4992B94B.6080408@lshift.net> Hi Ben, You're quite right. While exchanges are stateless and (thus) distributed across the cluster, queues are stateful and currently implemented in a non-distributed way. The node to which a client is connected when it issues a queue.declare that creates a new queue is the node that the created queue is situated on until it's deleted and recreated. So long as the disk that the persister log is on (i.e. where the mnesia data files go) survives, your data will survive. One potential alternative approach is to create duplicate queues on separate nodes and consume from both, eliminating duplicates in the receiving application. That way, if only one queue goes down, the other keeps routing messages to the consuming application until the broken system is repaired or replaced. Regards, Tony Ben Hyde wrote: > This is causing me anxiety: "... All data/state required for the > operation of a RabbitMQ broker is replicated across all nodes ... > exception to this are message queues, which currently only reside on > the node that created them ..."[1] > > My setup is on ec2. My testing randomly kill's machines; in service > of assuring the system can self heal. Obviously I'm going to be > miserable if I kill the machines with Q's on them? I guess i need to > be sure the disks the Q's fall onto aren't wiped (which they are today). > > Is my anxiety misplaced, if not then how do others address it. > > - ben > > [1] http://www.rabbitmq.com/clustering.html > > _______________________________________________ > rabbitmq-discuss mailing list > rabbitmq-discuss at lists.rabbitmq.com > http://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss -- [][][] Tony Garnock-Jones | Mob: +44 (0)7905 974 211 [][] LShift Ltd | Tel: +44 (0)20 7729 7060 [] [] http://www.lshift.net/ | Email: tonyg at lshift.net From tonyg at lshift.net Wed Feb 11 11:50:40 2009 From: tonyg at lshift.net (Tony Garnock-Jones) Date: Wed, 11 Feb 2009 11:50:40 +0000 Subject: [rabbitmq-discuss] memory usage In-Reply-To: <20090205151617.GA31965@muspelheim.parasec.net> References: <20090205151617.GA31965@muspelheim.parasec.net> Message-ID: <4992BB90.5070104@lshift.net> Hi Phil, Philip Stubbings wrote: > Why does the process still require 3G of memory even after 24 > hours of inactivity? Very good question. If you can post the code (producer and consumer) that causes the problem, I can investigate. > The second problem I have encountered is [... gen_server timeouts ...] > =WARNING REPORT==== 5-Feb-2009::12:43:57 === > Non-AMQP exit reason > '{timeout,{gen_server,call,[rabbit_persister,serial]}}' > ../rabbitmq-server-1.5.1/scripts/rabbitmqctl list_queues -p / > Listing queues ... > Error: {badrpc, {'EXIT', {timeout, {gen_server,call,[<4472.2308.0>,{info,[name,messages]}]}}}} The Erlang gen_server RPC mechanism uses, by default, a five second timeout. On a busy system, this can be exceeded sometimes. There's a known issue with the design of the persister such that when there's a very large volume of persisted data, it can sometimes take a long time to roll the persister log over -- longer than five seconds. During this time, anything that calls the persister (e.g. with new work for it to do, or a query regarding its status) will block, perhaps long enough for the caller's timeout to fire. We're in the middle of working out a good solution to this issue at the moment. Regards, Tony -- [][][] Tony Garnock-Jones | Mob: +44 (0)7905 974 211 [][] LShift Ltd | Tel: +44 (0)20 7729 7060 [] [] http://www.lshift.net/ | Email: tonyg at lshift.net From tonyg at lshift.net Wed Feb 11 11:51:58 2009 From: tonyg at lshift.net (Tony Garnock-Jones) Date: Wed, 11 Feb 2009 11:51:58 +0000 Subject: [rabbitmq-discuss] STOMP Error? In-Reply-To: <50c8ffe90902051008i36bfe6b1n3c92af8c739ba522@mail.gmail.com> References: <50c8ffe90902051008i36bfe6b1n3c92af8c739ba522@mail.gmail.com> Message-ID: <4992BBDE.3020500@lshift.net> Darien Kindlund wrote: > =ERROR REPORT==== 5-Feb-2009::13:05:28 === > STOMP error frame sent: > Message: "Processing error" > Detail: "{timeout,{gen_server,call,[rabbit_persister,serial]}}\n" This looks like the persister rollover problem I mentioned just a moment ago: when there's a large volume of data, it can take a while for the log file to roll over. Processes calling the persister during a long rollover may block long enough for their timeout to fire. A fix is in the works! Tony -- [][][] Tony Garnock-Jones | Mob: +44 (0)7905 974 211 [][] LShift Ltd | Tel: +44 (0)20 7729 7060 [] [] http://www.lshift.net/ | Email: tonyg at lshift.net From tonyg at lshift.net Wed Feb 11 11:53:43 2009 From: tonyg at lshift.net (Tony Garnock-Jones) Date: Wed, 11 Feb 2009 11:53:43 +0000 Subject: [rabbitmq-discuss] STOMP Error? In-Reply-To: <50c8ffe90902051251l2ff4019bw8603f12b40afe762@mail.gmail.com> References: <50c8ffe90902051008i36bfe6b1n3c92af8c739ba522@mail.gmail.com> <50c8ffe90902051251l2ff4019bw8603f12b40afe762@mail.gmail.com> Message-ID: <4992BC47.5020304@lshift.net> Darien Kindlund wrote: > It looks like rabbitmq.log generates this error every time the > Net::Stomp->connect() call is made: Ah yes, thanks -- I'm remembering some detail I discussed with Matthias -- the persister is called at channel (== STOMP connection) creation time to get hold of a serial number to use on publications. Part of our fix that we're planning is to split out the serial number counter into a process of its own (that will be much less busy). Tony From tonyg at lshift.net Wed Feb 11 11:55:13 2009 From: tonyg at lshift.net (Tony Garnock-Jones) Date: Wed, 11 Feb 2009 11:55:13 +0000 Subject: [rabbitmq-discuss] STOMP Error? In-Reply-To: <50c8ffe90902051357r25706577p54423a730448b97a@mail.gmail.com> References: <50c8ffe90902051008i36bfe6b1n3c92af8c739ba522@mail.gmail.com> <50c8ffe90902051251l2ff4019bw8603f12b40afe762@mail.gmail.com> <498B5980.6080702@lshift.net> <50c8ffe90902051357r25706577p54423a730448b97a@mail.gmail.com> Message-ID: <4992BCA1.2060706@lshift.net> Darien Kindlund wrote: > Reason: {{badmatch,{error,closed}}, > [{rabbit_stomp,send_frame,2}, > {rabbit_stomp,mainloop,1}, > {rabbit_stomp,init,1}, > {proc_lib,init_p,5}]} That's interesting! Are the clients disconnecting without issuing DISCONNECT? That's legal, but clearly the current adapter code isn't coping gracefully with the situation... Tony From tonyg at lshift.net Wed Feb 11 11:58:36 2009 From: tonyg at lshift.net (Tony Garnock-Jones) Date: Wed, 11 Feb 2009 11:58:36 +0000 Subject: [rabbitmq-discuss] STOMP Error? In-Reply-To: <498C70E1.6030803@lshift.net> References: <50c8ffe90902051008i36bfe6b1n3c92af8c739ba522@mail.gmail.com> <50c8ffe90902051251l2ff4019bw8603f12b40afe762@mail.gmail.com> <498B5980.6080702@lshift.net> <50c8ffe90902051357r25706577p54423a730448b97a@mail.gmail.com> <498C70E1.6030803@lshift.net> Message-ID: <4992BD6C.5080508@lshift.net> Matthias Radestock wrote: > The persister writes a new snapshot every 500 events (publishes, > acks, etc). Which, by the way, was a Made Up Number when I first wrote the persister. The expectation was that we'd need to at the very least tune this number! People may see some improvement if they bump it up: the line to change is rabbit_persister.erl:52 (as of rev 63bdb3ac9fb1), -define(MAX_WRAP_ENTRIES, 500). Then again, it may not help at all. If anyone tries it out, please report your experience back to the list! Regards, Tony -- [][][] Tony Garnock-Jones | Mob: +44 (0)7905 974 211 [][] LShift Ltd | Tel: +44 (0)20 7729 7060 [] [] http://www.lshift.net/ | Email: tonyg at lshift.net From tonyg at lshift.net Wed Feb 11 12:00:28 2009 From: tonyg at lshift.net (Tony Garnock-Jones) Date: Wed, 11 Feb 2009 12:00:28 +0000 Subject: [rabbitmq-discuss] STOMP Error? In-Reply-To: References: Message-ID: <4992BDDC.8090608@lshift.net> Darien Kindlund wrote: > 1) Is there any sort of default idle timeout in RabbitMQ or the STOMP > connector, where idle connections are terminated by the server? No, there isn't. Or not a deliberate one, anyway :-) > 2) The data I'm working with can be shared. That said, I'm wondering if > LShift could install the latest STOMP adapter on dev.rabbitmq.com so I > could replicate future issues on that server, making it easier to > troubleshoot from your end. Just a thought. Good idea! I'll do that. Regards, Tony -- [][][] Tony Garnock-Jones | Mob: +44 (0)7905 974 211 [][] LShift Ltd | Tel: +44 (0)20 7729 7060 [] [] http://www.lshift.net/ | Email: tonyg at lshift.net From tonyg at lshift.net Wed Feb 11 12:42:51 2009 From: tonyg at lshift.net (Tony Garnock-Jones) Date: Wed, 11 Feb 2009 12:42:51 +0000 Subject: [rabbitmq-discuss] error running stomp In-Reply-To: <82fa9e310902040920h5b4ece22u93dcd7b6b4595834@mail.gmail.com> References: <82fa9e310902032049l7be0baf0xbd96aa53e008fe5c@mail.gmail.com> <4989361A.20101@lshift.net> <82fa9e310902040745p47393c25s1074cb6e8d3e84e8@mail.gmail.com> <82fa9e310902040818o410272e3nee63e753a4c7bf10@mail.gmail.com> <269388e30902040839n3c6637d2pf6c328e15c887019@mail.gmail.com> <269388e30902040900x615def52x4bd9abe631beee7e@mail.gmail.com> <82fa9e310902040920h5b4ece22u93dcd7b6b4595834@mail.gmail.com> Message-ID: <4992C7CB.8080201@lshift.net> mark wrote: > which version of rabbitmq-server and rabbitmq-stomp should i use to > get them running? For now, I recommend tip-of-default for both, if you are using STOMP. hg up default Regards, Tony From tonyg at lshift.net Wed Feb 11 12:52:25 2009 From: tonyg at lshift.net (Tony Garnock-Jones) Date: Wed, 11 Feb 2009 12:52:25 +0000 Subject: [rabbitmq-discuss] topic behavior instead of queue behavior with rabbitmq-stomp In-Reply-To: <82fa9e310902051016p574706b3h8939fe35f5ffa6ba@mail.gmail.com> References: <82fa9e310902051016p574706b3h8939fe35f5ffa6ba@mail.gmail.com> Message-ID: <4992CA09.2080901@lshift.net> mark wrote: > how do i enable the topic behavior where all subscribers get all the > messages in a channel using rabbitmq-stomp. > > by default it sends the message only to one subscriber like a queue. > thanks a lot! You will need to start using exchanges. Please see section 3.1.3 of the AMQP 0-8 specification PDF (http://jira.amqp.org/confluence/download/attachments/720900/amqp0-8.pdf?version=1) for information on the kinds of exchanges that are available. To read from a fanout exchange using Ruby STOMP, conn = Stomp::Connection.open('guest', 'guest', 'localhost') conn.subscribe('', :exchange => 'myexchange') To write to a fanout exchange using Ruby STOMP, conn.send 'routingkey', 'messagebody', :exchange => 'myexchange' STOMP provides no facility (yet) for declaring exchanges. You will need to use an AMQP client library (e.g. the Java one) to declare the exchanges your application will need. Regards, Tony From tonyg at lshift.net Wed Feb 11 13:11:53 2009 From: tonyg at lshift.net (Tony Garnock-Jones) Date: Wed, 11 Feb 2009 13:11:53 +0000 Subject: [rabbitmq-discuss] message-id assignment in experimental STOMP adapter In-Reply-To: <20090211092055.GT32134@bench.jakalx.net> References: <20090211092055.GT32134@bench.jakalx.net> Message-ID: <4992CE99.8080802@lshift.net> Alexander Petry wrote: > Some parts of my client code aim to provide an rpc like > semantic that relies on the message ids (i.e. I need to know the exact > message id with which a message is sent). Up to now I simply used the > "message-id" header field which worked perfectly well with > ActiveMQ. Is there a reason why the STOMP adapter disregards my > message-ids (I just want to know) - in case there is, I will simply use > my own header-field. It uses message-id because STOMP requires ACKs to refer to the message-id header, and the internal details of RabbitMQ do something a bit different. The AMQP message-id header (part of the Basic content-header structure) is carried in a STOMP header called "amqp-message-id" on both SEND and MESSAGE -- you could use that, instead, and it should be propagated to both STOMP and AMQP clients. Regards, Tony -- [][][] Tony Garnock-Jones | Mob: +44 (0)7905 974 211 [][] LShift Ltd | Tel: +44 (0)20 7729 7060 [] [] http://www.lshift.net/ | Email: tonyg at lshift.net From tonyg at lshift.net Wed Feb 11 14:33:10 2009 From: tonyg at lshift.net (Tony Garnock-Jones) Date: Wed, 11 Feb 2009 14:33:10 +0000 Subject: [rabbitmq-discuss] STOMP on dev.rabbitmq.com is running (was Re: STOMP Error?) In-Reply-To: <4992BDDC.8090608@lshift.net> References: <4992BDDC.8090608@lshift.net> Message-ID: <4992E1A6.6090609@lshift.net> Tony Garnock-Jones wrote: > Good idea! I'll [enable the STOMP adapter on dev.rabbitmq.com] It's done. Port 61613, as usual. Tip-of-default, updated as and when I get round to manually logging in to the machine and hg pulling :-) Tony From dmitriy.samovskiy at cohesiveft.com Wed Feb 11 16:01:49 2009 From: dmitriy.samovskiy at cohesiveft.com (Dmitriy Samovskiy) Date: Wed, 11 Feb 2009 10:01:49 -0600 Subject: [rabbitmq-discuss] Examining Queue Failover Behavior In-Reply-To: <269388e30902110114j6b13ddcbw2f24d926e2d3e73d@mail.gmail.com> References: <3b949f090902061215k3ab288dbg4e8047b51e581183@mail.gmail.com> <269388e30902090227y36da0099h3d7e09b5113bd6a@mail.gmail.com> <3b949f090902090945w35d841c9k3decc75e910bd536@mail.gmail.com> <269388e30902110114j6b13ddcbw2f24d926e2d3e73d@mail.gmail.com> Message-ID: <4992F66D.1030509@cohesiveft.com> Ben Hood wrote: > completely transparent to a client is not addressed. The modus > operandi is to a) not lose messages and then b) give somebody the > tools to recover a node. The reason why transparent failover has not Speaking about tools. How doable/easy/difficult would it be to develop a tool to inspect and/or replay persister log outside of the broker's erlang vm? Maybe not all of it but only basic.publish methods. Such tool would be shipped with broker but will run as a standalone process launched by user on demand. With such tool, if a node crashes, one can get persister log, move it out of mnesia dir, wipe out mnesia dir, start rabbit (which will recreate clean mnesia and persister log and will get back in business quickly) and then essentially resend all messages that have been sent and/or have been sent but have not been acked, or something along these lines. And, down the road, such tool might offer some sort of filtering support (I am thinking something like tcpdump's filtering language) to match against message headers and things like publisher's IP, exchange, routing key, time when it arrived, etc. Thoughts? From dmitriy.samovskiy at cohesiveft.com Wed Feb 11 16:31:33 2009 From: dmitriy.samovskiy at cohesiveft.com (Dmitriy Samovskiy) Date: Wed, 11 Feb 2009 10:31:33 -0600 Subject: [rabbitmq-discuss] Cluster Pathology In-Reply-To: <3b949f090902101754n14babf88o88e6bacc875501ca@mail.gmail.com> References: <3b949f090902091229r372a78ci84ed70b5fa5f2b68@mail.gmail.com> <49922C3C.7040004@cohesiveft.com> <3b949f090902101754n14babf88o88e6bacc875501ca@mail.gmail.com> Message-ID: <4992FD65.9040105@cohesiveft.com> Hi Jason, Jason J. W. Williams wrote: > I don't expect the messages to get moved when the node comes back > up....well it would be nice, but I accept that it doesn't happen (in > fact, if the queue has been redeclared on another node during the > downtime, the messages "appear" to be lost when the downed node > returns...I'm sure they could be recovered from the persister log). I have thought more about it and now I'm wondering if it's even possible to redeclare a queue in a cluster that happens to reside on a node that currently is not reachable from cluster? Can't test at the moment, since I decommissioned my cluster vms some time ago :) In theory, doesn't the queue still exist when queue.declare with active=true is attempted? The contents might not be replicated, but all metadata are. Have you actually tried it? I kind of expect that if you don't remove a node from cluster, you won't be able to redeclare a queue. Does this sound reasonable? > doesn't apply to them). The point of our cluster is failover with the > future possibility of scaling the cluster. But first and foremost, > fail over. If subscribers on Node B get orphaned, they can't help I am also primarily looking at cluster for failover capabilities. I am getting better failover from unclustered brokers - an alternative approach that Tony described earlier today in another thread [1]. YMMV of course. [1] http://lists.rabbitmq.com/pipermail/rabbitmq-discuss/2009-February/003359.html - Dmitriy From jasonjwwilliams at gmail.com Wed Feb 11 16:43:29 2009 From: jasonjwwilliams at gmail.com (Jason J. W. Williams) Date: Wed, 11 Feb 2009 09:43:29 -0700 Subject: [rabbitmq-discuss] Examining Queue Failover Behavior In-Reply-To: <269388e30902110114j6b13ddcbw2f24d926e2d3e73d@mail.gmail.com> References: <3b949f090902061215k3ab288dbg4e8047b51e581183@mail.gmail.com> <269388e30902090227y36da0099h3d7e09b5113bd6a@mail.gmail.com> <3b949f090902090945w35d841c9k3decc75e910bd536@mail.gmail.com> <269388e30902110114j6b13ddcbw2f24d926e2d3e73d@mail.gmail.com> Message-ID: <3b949f090902110843v29060c88gd1ffd8e693c3ed73@mail.gmail.com> Hi Ben, Everyone seems to think I expected the content to migrate. :-) I only expected the queue to migrate (sans content). :-) Otherwise, messages published to the exchange get blackholed and persistence doesn't mean a whole lot. -J On Wed, Feb 11, 2009 at 2:14 AM, Ben Hood <0x6e6562 at gmail.com> wrote: > Hey Jason, > > Don't worry, your post did not disappear down a black hole, we are > just extremely busy doing client related work ATM. > > On Mon, Feb 9, 2009 at 5:45 PM, Jason J. W. Williams > wrote: >> Hi Ben, >> >> No problem. I appreciate the response. They are durable: >> >> chan_recv.queue_declare(queue=queue_name, >> durable=True, >> auto_delete=False) > > One thing that I overlooked in your original post was that you > expected a queue process and it's content to be automagically migrated > on the event of a node failure. This does not happen currently. In > general, the process of neatly recovering such that a node failure is > completely transparent to a client is not addressed. The modus > operandi is to a) not lose messages and then b) give somebody the > tools to recover a node. The reason why transparent failover has not > been addressed is because it is quite difficult to do - for example, > how do you when a node has died or that the network has just been > partitioned? Doable, but difficult. > > (To Valentino and Co ) as I said before, I'll try to address all of > the related posts today. > > Ben > From jasonjwwilliams at gmail.com Wed Feb 11 16:50:06 2009 From: jasonjwwilliams at gmail.com (Jason J. W. Williams) Date: Wed, 11 Feb 2009 09:50:06 -0700 Subject: [rabbitmq-discuss] Cluster Pathology In-Reply-To: <4992FD65.9040105@cohesiveft.com> References: <3b949f090902091229r372a78ci84ed70b5fa5f2b68@mail.gmail.com> <49922C3C.7040004@cohesiveft.com> <3b949f090902101754n14babf88o88e6bacc875501ca@mail.gmail.com> <4992FD65.9040105@cohesiveft.com> Message-ID: <3b949f090902110850sa5a081fx8df758289423bfa1@mail.gmail.com> Hi Dmitriy, > I have thought more about it and now I'm wondering if it's even possible to > redeclare a queue in a cluster that happens to reside on a node that > currently is not reachable from cluster? Can't test at the moment, since I > decommissioned my cluster vms some time ago :) > > In theory, doesn't the queue still exist when queue.declare with active=true > is attempted? The contents might not be replicated, but all metadata are. That's not been my experience. Neither queue contents or metadata seem to be replicated. > > Have you actually tried it? I kind of expect that if you don't remove a node > from cluster, you won't be able to redeclare a queue. Does this sound > reasonable? You can redeclare the queue if a node is down. It seems to override the existing declaration when the formerly dead node rejoins. > I am also primarily looking at cluster for failover capabilities. I am > getting better failover from unclustered brokers - an alternative approach > that Tony described earlier today in another thread [1]. YMMV of course. That's the road we've started going down. We were going to give Qpid a shot, but it doesn't work on OpenSolaris (particularly the persister). Unclustered Rabbit nodes eliminates the orphaned consumer problem. In RAS terms, RabbitMQ clustering seems to only provide the A. It seems to me on a node failure, either Rabbit needs to migrate an empty version of the queue to another node, or send a "you're dead" notice to consumers attached to the queue via nodes that aren't hosting the queue. Also, if the queue has been redeclared, there optimally would be a way for the dead node to replay its messages (if desired) into the recreated queue(s) when it comes back up. -J From jasonjwwilliams at gmail.com Wed Feb 11 16:50:06 2009 From: jasonjwwilliams at gmail.com (Jason J. W. Williams) Date: Wed, 11 Feb 2009 09:50:06 -0700 Subject: [rabbitmq-discuss] Cluster Pathology In-Reply-To: <4992FD65.9040105@cohesiveft.com> References: <3b949f090902091229r372a78ci84ed70b5fa5f2b68@mail.gmail.com> <49922C3C.7040004@cohesiveft.com> <3b949f090902101754n14babf88o88e6bacc875501ca@mail.gmail.com> <4992FD65.9040105@cohesiveft.com> Message-ID: <3b949f090902110850sa5a081fx8df758289423bfa1@mail.gmail.com> Hi Dmitriy, > I have thought more about it and now I'm wondering if it's even possible to > redeclare a queue in a cluster that happens to reside on a node that > currently is not reachable from cluster? Can't test at the moment, since I > decommissioned my cluster vms some time ago :) > > In theory, doesn't the queue still exist when queue.declare with active=true > is attempted? The contents might not be replicated, but all metadata are. That's not been my experience. Neither queue contents or metadata seem to be replicated. > > Have you actually tried it? I kind of expect that if you don't remove a node > from cluster, you won't be able to redeclare a queue. Does this sound > reasonable? You can redeclare the queue if a node is down. It seems to override the existing declaration when the formerly dead node rejoins. > I am also primarily looking at cluster for failover capabilities. I am > getting better failover from unclustered brokers - an alternative approach > that Tony described earlier today in another thread [1]. YMMV of course. That's the road we've started going down. We were going to give Qpid a shot, but it doesn't work on OpenSolaris (particularly the persister). Unclustered Rabbit nodes eliminates the orphaned consumer problem. In RAS terms, RabbitMQ clustering seems to only provide the A. It seems to me on a node failure, either Rabbit needs to migrate an empty version of the queue to another node, or send a "you're dead" notice to consumers attached to the queue via nodes that aren't hosting the queue. Also, if the queue has been redeclared, there optimally would be a way for the dead node to replay its messages (if desired) into the recreated queue(s) when it comes back up. -J From 0x6e6562 at gmail.com Wed Feb 11 17:32:23 2009 From: 0x6e6562 at gmail.com (Ben Hood) Date: Wed, 11 Feb 2009 17:32:23 +0000 Subject: [rabbitmq-discuss] Cluster Pathology In-Reply-To: <3b949f090902110850sa5a081fx8df758289423bfa1@mail.gmail.com> References: <3b949f090902091229r372a78ci84ed70b5fa5f2b68@mail.gmail.com> <49922C3C.7040004@cohesiveft.com> <3b949f090902101754n14babf88o88e6bacc875501ca@mail.gmail.com> <4992FD65.9040105@cohesiveft.com> <3b949f090902110850sa5a081fx8df758289423bfa1@mail.gmail.com> Message-ID: <269388e30902110932n460831b9rf318bca3c53ce7c1@mail.gmail.com> Jason, On Wed, Feb 11, 2009 at 4:50 PM, Jason J. W. Williams wrote: > That's the road we've started going down. We were going to give Qpid a > shot, but it doesn't work on OpenSolaris (particularly the persister). > Unclustered Rabbit nodes eliminates the orphaned consumer problem. In > RAS terms, RabbitMQ clustering seems to only provide the A. It seems > to me on a node failure, either Rabbit needs to migrate an empty > version of the queue to another node, or send a "you're dead" notice > to consumers attached to the queue via nodes that aren't hosting the > queue. Also, if the queue has been redeclared, there optimally would > be a way for the dead node to replay its messages (if desired) into > the recreated queue(s) when it comes back up. I'm going to try to summarize this as best as possible due to the fact that the thread has moved on a bit: - The reason why the consumer does not get notified about the removal of a queue (for whatever reason it may have disappeared) is because that this behaviour is not specified in the protocol. It is possible that this was an oversight, you would have to seek reference from your local AMQP representative. In practical terms, this notion has been addressed to an extent in the 0-10 version of the protocol, but YMMV. Going forwards, this is exactly the kind of thing that needs to get nailed down in the 1.0 version of the protocol; - Quorum decisions are difficult at the best of times, hence why we would need to think long and hard about how to do transparent replication; - Replay logic is potentially equally as tricky, once you have considered all of the corner cases; I can tell you right now that Rabbit does not currently cater for these circumstances OOTB, so if these are hard requirements for you, you may want to look somewhere else. If your application could subscribe to AMQP level events OTOH, there may be a simple way to solve this issue for you in a protocol compliant fashion - for example, we do have patches that allow clients to subscribe to presence events. If the above is a not a KO critiereon for you, we could look into this option. BTW what is RAS? HTH, Ben From 0x6e6562 at gmail.com Wed Feb 11 17:57:02 2009 From: 0x6e6562 at gmail.com (Ben Hood) Date: Wed, 11 Feb 2009 17:57:02 +0000 Subject: [rabbitmq-discuss] Examining Queue Failover Behavior In-Reply-To: <3b949f090902110843v29060c88gd1ffd8e693c3ed73@mail.gmail.com> References: <3b949f090902061215k3ab288dbg4e8047b51e581183@mail.gmail.com> <269388e30902090227y36da0099h3d7e09b5113bd6a@mail.gmail.com> <3b949f090902090945w35d841c9k3decc75e910bd536@mail.gmail.com> <269388e30902110114j6b13ddcbw2f24d926e2d3e73d@mail.gmail.com> <3b949f090902110843v29060c88gd1ffd8e693c3ed73@mail.gmail.com> Message-ID: <269388e30902110957h8c38ecbmdd734fe780f8ef62@mail.gmail.com> Jason, On Wed, Feb 11, 2009 at 4:43 PM, Jason J. W. Williams wrote: > Everyone seems to think I expected the content to migrate. :-) Life is tough and unfair :-) > I only > expected the queue to migrate (sans content). :-) Otherwise, messages > published to the exchange get blackholed and persistence doesn't mean > a whole lot. This is true. There are two issues here (which are unlikely to resolved quickly): 1. Specifying persistence as a message level attribute is questionable. There is a school of thought that says this this should an attribute of a queue. This would be a discussion for either evolving the spec or looking into whether a broker could handle this as a QOS feature. 2. Rabbit does not automatically failover - currently it only addresses the ability to recover. As indicated in my previous post from 20 mins ago, there may be a way to mitigate this, but the overall lack of automatic failover may be a KO for you. Ben From darien at kindlund.com Wed Feb 11 18:00:36 2009 From: darien at kindlund.com (Darien Kindlund) Date: Wed, 11 Feb 2009 13:00:36 -0500 Subject: [rabbitmq-discuss] STOMP on dev.rabbitmq.com is running (was Re: STOMP Error?) In-Reply-To: <4992E1A6.6090609@lshift.net> References: <4992BDDC.8090608@lshift.net> <4992E1A6.6090609@lshift.net> Message-ID: <50c8ffe90902111000h5d0f4b1aqc7a9fa7847bb4fed@mail.gmail.com> Hi Tony, Great! Thanks. Btw, you may want to update your server information on your public page: http://www.rabbitmq.com/examples.html -- Darien On Wed, Feb 11, 2009 at 9:33 AM, Tony Garnock-Jones wrote: > Tony Garnock-Jones wrote: >> Good idea! I'll [enable the STOMP adapter on dev.rabbitmq.com] > > It's done. Port 61613, as usual. Tip-of-default, updated as and when I > get round to manually logging in to the machine and hg pulling :-) > > Tony > > From darien at kindlund.com Wed Feb 11 18:09:43 2009 From: darien at kindlund.com (Darien Kindlund) Date: Wed, 11 Feb 2009 13:09:43 -0500 Subject: [rabbitmq-discuss] STOMP Error? In-Reply-To: <4992BCA1.2060706@lshift.net> References: <50c8ffe90902051008i36bfe6b1n3c92af8c739ba522@mail.gmail.com> <50c8ffe90902051251l2ff4019bw8603f12b40afe762@mail.gmail.com> <498B5980.6080702@lshift.net> <50c8ffe90902051357r25706577p54423a730448b97a@mail.gmail.com> <4992BCA1.2060706@lshift.net> Message-ID: <50c8ffe90902111009n6714a54cw8e47fe56c729568f@mail.gmail.com> I believe the original perl Net::Stomp code I was using was properly connecting and disconnecting -- the problem was more the fact that this code was doing a connect(), send(), disconnect() operation really, really quickly, with multiple perl processes doing this operation simultaneously. The STOMP adapter really doesn't like that. As a follow-up, once I switched each perl process over to re-using their existing STOMP connection, things worked much, much better. As such, I'm continuing development. In your unit testing, you may want to include rapid connect/disconnect behavior or otherwise explicitly warn developers to avoid this scenario. -- Darien On Wed, Feb 11, 2009 at 6:55 AM, Tony Garnock-Jones wrote: > Darien Kindlund wrote: >> Reason: {{badmatch,{error,closed}}, >> [{rabbit_stomp,send_frame,2}, >> {rabbit_stomp,mainloop,1}, >> {rabbit_stomp,init,1}, >> {proc_lib,init_p,5}]} > > That's interesting! Are the clients disconnecting without issuing > DISCONNECT? That's legal, but clearly the current adapter code isn't > coping gracefully with the situation... > > Tony > > From jasonjwwilliams at gmail.com Wed Feb 11 19:11:26 2009 From: jasonjwwilliams at gmail.com (Jason J. W. Williams) Date: Wed, 11 Feb 2009 12:11:26 -0700 Subject: [rabbitmq-discuss] Cluster Pathology In-Reply-To: <269388e30902110932n460831b9rf318bca3c53ce7c1@mail.gmail.com> References: <3b949f090902091229r372a78ci84ed70b5fa5f2b68@mail.gmail.com> <49922C3C.7040004@cohesiveft.com> <3b949f090902101754n14babf88o88e6bacc875501ca@mail.gmail.com> <4992FD65.9040105@cohesiveft.com> <3b949f090902110850sa5a081fx8df758289423bfa1@mail.gmail.com> <269388e30902110932n460831b9rf318bca3c53ce7c1@mail.gmail.com> Message-ID: <3b949f090902111111s450fa33cre254c91bb3b4692d@mail.gmail.com> > > > - The reason why the consumer does not get notified about the removal > of a queue (for whatever reason it may have disappeared) is because > that this behaviour is not specified in the protocol. It is possible > that this was an oversight, you would have to seek reference from your > local AMQP representative. In practical terms, this notion has been > addressed to an extent in the 0-10 version of the protocol, but YMMV. > Going forwards, this is exactly the kind of thing that needs to get > nailed down in the 1.0 version of the protocol; Well that explains why it doesn't happen. :-) > > - Quorum decisions are difficult at the best of times, hence why we > would need to think long and hard about how to do transparent > replication; While replication would be nice, I don't really mind having to replay the messages later. > > - Replay logic is potentially equally as tricky, once you have > considered all of the corner cases; I can see where it would be tricky, particularly for applications that resubmitted messages. Personally, we'd like to see it as either a start-up option (--enable-auto-replay) or a separate utility that can be pointed at a persister log with a particular queue name. > > I can tell you right now that Rabbit does not currently cater for > these circumstances OOTB, so if these are hard requirements for you, > you may want to look somewhere else. Unfortunately, there's no where else to go. :-) We wrote our code to be fairly failure tolerant, and have upgraded the producers to now also create exchanges/queues/bindings so nothing gets blackholed. As a result, we'll be able to work around it for this project by deploying two non-clustered Rabbit instances. It's workable just not optimal. We'll have to be careful to upgrade the producers queue creation code any time we add new queues and consumer types. Allowing producers to be dumb about consumers is really our design target. > > If your application could subscribe to AMQP level events OTOH, there > may be a simple way to solve this issue for you in a protocol > compliant fashion - for example, we do have patches that allow clients > to subscribe to presence events. If the above is a not a KO critiereon > for you, we could look into this option. I'll need to research AMQP level events, but yes we can write it in if py-amqplib can support it.That would be fine. We don't mind recreating the queues, but consumers need to know they're orphaned in edge cases. Thank you so much for your help! I do really appreciate it and do not mean to be a pain. -J From jasonjwwilliams at gmail.com Wed Feb 11 19:57:03 2009 From: jasonjwwilliams at gmail.com (Jason J. W. Williams) Date: Wed, 11 Feb 2009 12:57:03 -0700 Subject: [rabbitmq-discuss] Examining Queue Failover Behavior In-Reply-To: <269388e30902110957h8c38ecbmdd734fe780f8ef62@mail.gmail.com> References: <3b949f090902061215k3ab288dbg4e8047b51e581183@mail.gmail.com> <269388e30902090227y36da0099h3d7e09b5113bd6a@mail.gmail.com> <3b949f090902090945w35d841c9k3decc75e910bd536@mail.gmail.com> <269388e30902110114j6b13ddcbw2f24d926e2d3e73d@mail.gmail.com> <3b949f090902110843v29060c88gd1ffd8e693c3ed73@mail.gmail.com> <269388e30902110957h8c38ecbmdd734fe780f8ef62@mail.gmail.com> Message-ID: <3b949f090902111157s2ba96fa8oa1c351ffd42331e1@mail.gmail.com> > > 1. Specifying persistence as a message level attribute is > questionable. There is a school of thought that says this this should > an attribute of a queue. This would be a discussion for either > evolving the spec or looking into whether a broker could handle this > as a QOS feature. Well, my only argument would be that a persistent queue doesn't guarantee a whole lot if the message never makes it there. The problem it seems to me depends on the application. If the producer has pre-knowledge that the message its entrusting to the MQ is important, it needs to be able top specify a level of persistence in case the MQ crashes before the exchange can route it. Beyond that, I think its up to the consumer to make sure here's a queue available for the message. But in a failure environment, since exchanges fail over, but queues do not, you now have an issue where producers may publish messages before consumers can re-attach and recreate the queues. Where as initially, neither the exchanges nor the queues would exist until the consumers created them, thereby preventing the producers from publishing into ether. As I write this out, it now strikes me that that is the crux of our issue: Exchange metadata fails over automatically but not queues. Regarding RAS, RAS = Reliability, Availability, Serviceability: http://en.wikipedia.org/wiki/Reliability,_Availability_and_Serviceability -J From drew.smathers at gmail.com Wed Feb 11 22:19:49 2009 From: drew.smathers at gmail.com (Drew Smathers) Date: Wed, 11 Feb 2009 17:19:49 -0500 Subject: [rabbitmq-discuss] Cluster Pathology In-Reply-To: <3b949f090902111111s450fa33cre254c91bb3b4692d@mail.gmail.com> References: <3b949f090902091229r372a78ci84ed70b5fa5f2b68@mail.gmail.com> <49922C3C.7040004@cohesiveft.com> <3b949f090902101754n14babf88o88e6bacc875501ca@mail.gmail.com> <4992FD65.9040105@cohesiveft.com> <3b949f090902110850sa5a081fx8df758289423bfa1@mail.gmail.com> <269388e30902110932n460831b9rf318bca3c53ce7c1@mail.gmail.com> <3b949f090902111111s450fa33cre254c91bb3b4692d@mail.gmail.com> Message-ID: <368574aa0902111419o7d3ee6a9r84cd57ef7d8d88@mail.gmail.com> On Wed, Feb 11, 2009 at 2:11 PM, Jason J. W. Williams wrote: >> >> >> - The reason why the consumer does not get notified about the removal >> of a queue (for whatever reason it may have disappeared) is because >> that this behaviour is not specified in the protocol. It is possible >> that this was an oversight, you would have to seek reference from your >> local AMQP representative. In practical terms, this notion has been >> addressed to an extent in the 0-10 version of the protocol, but YMMV. >> Going forwards, this is exactly the kind of thing that needs to get >> nailed down in the 1.0 version of the protocol; > I understand that this is already becoming, so I hope my comments don't add too much noise to the thread. I'm having very similar issues (or misunderstandings on how RabbitMQ is supposed to work) with a project at work, and was about to start a new post over this. We were doing some more thorough testing on a system running RabbitMQ (v. 1.5.1) with a basic use case: 1. producer A connects to node A, declares exchange E, declares and binds Q to E * 2. producer B connects to node B, declares exchange E, declares and binds Q to E * 3. consumer A connects to node A, declares exchange E, binds queue Q to E, and listens for messages via basic_consume => Q exists on node A 4. consumer B connects to node B (binds queue Q to exchange E) and listens for messages via basic_consume (* Producers declare and bind queues to ensure messages don't get "blackholed" - borrowing Jason's terminology which seems very apt). Now, if node A is taken down, producer A of course can't produce messages due to socket errors, but producer B continues producing messages not knowing they actually are just getting dropped with no queue to route to (since Q is on node A). What's even more surprising to me on this matter is that if producer B restarts and publishes messages, the messages are still blackholed. Another bad side effect is that once node A comes back up, while messages are then routed correctly, consumers don't receive messages unless they're restarted. My guess is that the consumer tag used by the consumers is not longer valid? So far as I can tell there is no easy way to detect either of these scenarios. > Well that explains why it doesn't happen. :-) > >> >> - Quorum decisions are difficult at the best of times, hence why we >> would need to think long and hard about how to do transparent >> replication; > > While replication would be nice, I don't really mind having to replay > the messages later. > >> >> - Replay logic is potentially equally as tricky, once you have >> considered all of the corner cases; > > I can see where it would be tricky, particularly for applications that > resubmitted messages. Personally, we'd like to see it as either a > start-up option (--enable-auto-replay) or a separate utility that can > be pointed at a persister log with a particular queue name. > >> >> I can tell you right now that Rabbit does not currently cater for >> these circumstances OOTB, so if these are hard requirements for you, >> you may want to look somewhere else. > > Unfortunately, there's no where else to go. :-) We wrote our code to > be fairly failure tolerant, and have upgraded the producers to now > also create exchanges/queues/bindings so nothing gets blackholed. As a > result, we'll be able to work around it for this project by deploying > two non-clustered Rabbit instances. It's workable just not optimal. > We'll have to be careful to upgrade the producers queue creation code > any time we add new queues and consumer types. Allowing producers to > be dumb about consumers is really our design target. > >> >> If your application could subscribe to AMQP level events OTOH, there >> may be a simple way to solve this issue for you in a protocol >> compliant fashion - for example, we do have patches that allow clients >> to subscribe to presence events. If the above is a not a KO critiereon >> for you, we could look into this option. > This feels like overkill to me on the client end. From my naive perspective, it seems like queue bindings for non-exclusive queues should be made redundant in a cluster, so that if the node holding the queue goes down, other nodes can provisionally take responsibility for routing the messages to consumers' queues and persisting if necessary. > I'll need to research AMQP level events, but yes we can write it in if > py-amqplib can support it.That would be fine. > We don't mind recreating the queues, but consumers need to know > they're orphaned in edge cases. > > Thank you so much for your help! I do really appreciate it and do not > mean to be a pain. > > -J > > _______________________________________________ > rabbitmq-discuss mailing list > rabbitmq-discuss at lists.rabbitmq.com > http://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss > From jasonjwwilliams at gmail.com Wed Feb 11 23:34:12 2009 From: jasonjwwilliams at gmail.com (Jason J. W. Williams) Date: Wed, 11 Feb 2009 16:34:12 -0700 Subject: [rabbitmq-discuss] Cluster Pathology In-Reply-To: <368574aa0902111419o7d3ee6a9r84cd57ef7d8d88@mail.gmail.com> References: <3b949f090902091229r372a78ci84ed70b5fa5f2b68@mail.gmail.com> <49922C3C.7040004@cohesiveft.com> <3b949f090902101754n14babf88o88e6bacc875501ca@mail.gmail.com> <4992FD65.9040105@cohesiveft.com> <3b949f090902110850sa5a081fx8df758289423bfa1@mail.gmail.com> <269388e30902110932n460831b9rf318bca3c53ce7c1@mail.gmail.com> <3b949f090902111111s450fa33cre254c91bb3b4692d@mail.gmail.com> <368574aa0902111419o7d3ee6a9r84cd57ef7d8d88@mail.gmail.com> Message-ID: <3b949f090902111534x791009aeq7aaf9109a3fccd0a@mail.gmail.com> Drew, > Now, if node A is taken down, producer A of course can't produce > messages due to socket errors, but producer B continues producing > messages not knowing they actually are just getting dropped with no > queue to route to (since Q is on node A). What's even more surprising > to me on this matter is that if producer B restarts and publishes > messages, the messages are still blackholed. Are the messages from the reconnected Producer B being blackholed, or just not being consumed by consumer B? What we've seen is that Producer B (in this case) recreates the queue, but consumer B (still connected) isn't considered subscribed to it, so the messages just build up. -J From drew.smathers at gmail.com Thu Feb 12 03:23:52 2009 From: drew.smathers at gmail.com (Drew Smathers) Date: Wed, 11 Feb 2009 22:23:52 -0500 Subject: [rabbitmq-discuss] Cluster Pathology In-Reply-To: <3b949f090902111534x791009aeq7aaf9109a3fccd0a@mail.gmail.com> References: <3b949f090902091229r372a78ci84ed70b5fa5f2b68@mail.gmail.com> <49922C3C.7040004@cohesiveft.com> <3b949f090902101754n14babf88o88e6bacc875501ca@mail.gmail.com> <4992FD65.9040105@cohesiveft.com> <3b949f090902110850sa5a081fx8df758289423bfa1@mail.gmail.com> <269388e30902110932n460831b9rf318bca3c53ce7c1@mail.gmail.com> <3b949f090902111111s450fa33cre254c91bb3b4692d@mail.gmail.com> <368574aa0902111419o7d3ee6a9r84cd57ef7d8d88@mail.gmail.com> <3b949f090902111534x791009aeq7aaf9109a3fccd0a@mail.gmail.com> Message-ID: <368574aa0902111923r71d00a46o6ae8f2450270224a@mail.gmail.com> On Wed, Feb 11, 2009 at 6:34 PM, Jason J. W. Williams wrote: > Drew, > >> Now, if node A is taken down, producer A of course can't produce >> messages due to socket errors, but producer B continues producing >> messages not knowing they actually are just getting dropped with no >> queue to route to (since Q is on node A). What's even more surprising >> to me on this matter is that if producer B restarts and publishes >> messages, the messages are still blackholed. > > Are the messages from the reconnected Producer B being blackholed, or > just not being consumed by consumer B? What we've seen is that > Producer B (in this case) recreates the queue, but consumer B (still > connected) isn't considered subscribed to it, so the messages just > build up. Ah, sorry. My test wasn't quite correct because the node was not fully halted (I was stopping with stop_app instead of stop). When stopping with "rabbitmqctl stop" the behavior is as you've describe above: when a new publisher connects the queue is recreated on the connected broker, but publishers that are already connected are in a bad state: they lose their messages. The same is true for consumers - they stop receiving messages until reconnected. -Drew From jasonjwwilliams at gmail.com Thu Feb 12 03:25:09 2009 From: jasonjwwilliams at gmail.com (Jason J. W. Williams) Date: Wed, 11 Feb 2009 20:25:09 -0700 Subject: [rabbitmq-discuss] Cluster Pathology In-Reply-To: <368574aa0902111923r71d00a46o6ae8f2450270224a@mail.gmail.com> References: <3b949f090902091229r372a78ci84ed70b5fa5f2b68@mail.gmail.com> <49922C3C.7040004@cohesiveft.com> <3b949f090902101754n14babf88o88e6bacc875501ca@mail.gmail.com> <4992FD65.9040105@cohesiveft.com> <3b949f090902110850sa5a081fx8df758289423bfa1@mail.gmail.com> <269388e30902110932n460831b9rf318bca3c53ce7c1@mail.gmail.com> <3b949f090902111111s450fa33cre254c91bb3b4692d@mail.gmail.com> <368574aa0902111419o7d3ee6a9r84cd57ef7d8d88@mail.gmail.com> <3b949f090902111534x791009aeq7aaf9109a3fccd0a@mail.gmail.com> <368574aa0902111923r71d00a46o6ae8f2450270224a@mail.gmail.com> Message-ID: <3b949f090902111925x7e5bb8c1xb55fca6c2d372e6a@mail.gmail.com> Hey Drew, Our experience was that messages weren't lost (if marked persistent on a durable queue), they just weren't consumed until the consumers were restarted. -J On Wed, Feb 11, 2009 at 8:23 PM, Drew Smathers wrote: > On Wed, Feb 11, 2009 at 6:34 PM, Jason J. W. Williams > wrote: >> Drew, >> >>> Now, if node A is taken down, producer A of course can't produce >>> messages due to socket errors, but producer B continues producing >>> messages not knowing they actually are just getting dropped with no >>> queue to route to (since Q is on node A). What's even more surprising >>> to me on this matter is that if producer B restarts and publishes >>> messages, the messages are still blackholed. >> >> Are the messages from the reconnected Producer B being blackholed, or >> just not being consumed by consumer B? What we've seen is that >> Producer B (in this case) recreates the queue, but consumer B (still >> connected) isn't considered subscribed to it, so the messages just >> build up. > > Ah, sorry. My test wasn't quite correct because the node was not fully > halted (I was stopping with stop_app instead of stop). When stopping > with "rabbitmqctl stop" the behavior is as you've describe above: when > a new publisher connects the queue is recreated on the connected > broker, but publishers that are already connected are in a bad state: > they lose their messages. The same is true for consumers - they stop > receiving messages until reconnected. > > -Drew > From drew.smathers at gmail.com Thu Feb 12 05:18:13 2009 From: drew.smathers at gmail.com (Drew Smathers) Date: Thu, 12 Feb 2009 00:18:13 -0500 Subject: [rabbitmq-discuss] Cluster Pathology In-Reply-To: <3b949f090902111925x7e5bb8c1xb55fca6c2d372e6a@mail.gmail.com> References: <3b949f090902091229r372a78ci84ed70b5fa5f2b68@mail.gmail.com> <3b949f090902101754n14babf88o88e6bacc875501ca@mail.gmail.com> <4992FD65.9040105@cohesiveft.com> <3b949f090902110850sa5a081fx8df758289423bfa1@mail.gmail.com> <269388e30902110932n460831b9rf318bca3c53ce7c1@mail.gmail.com> <3b949f090902111111s450fa33cre254c91bb3b4692d@mail.gmail.com> <368574aa0902111419o7d3ee6a9r84cd57ef7d8d88@mail.gmail.com> <3b949f090902111534x791009aeq7aaf9109a3fccd0a@mail.gmail.com> <368574aa0902111923r71d00a46o6ae8f2450270224a@mail.gmail.com> <3b949f090902111925x7e5bb8c1xb55fca6c2d372e6a@mail.gmail.com> Message-ID: <368574aa0902112118s4ffd0587ib1aa22ed1ec28d7b@mail.gmail.com> On Wed, Feb 11, 2009 at 10:25 PM, Jason J. W. Williams wrote: > Hey Drew, > > Our experience was that messages weren't lost (if marked persistent on > a durable queue), they just weren't consumed until the consumers were > restarted. > Our experience has been the messages are lost (they're also marked persistent via delivery_mode=2 and queues are durable). -Drew From dan.dispaltro at gmail.com Thu Feb 12 09:36:14 2009 From: dan.dispaltro at gmail.com (Dan Di Spaltro) Date: Thu, 12 Feb 2009 01:36:14 -0800 Subject: [rabbitmq-discuss] STOMP Frame Message-ID: Hi RabbitMQ Folks, I noticed that at the end of the STOMP frame you only have a null character when the reference implementation looks to have a null followed by a \n character. Am I misinterpreting this, because the documentation doesn't seem to say anything about a null followed by a return. Is this an issue for anyone else? diff -r 41ccb4722952 src/stomp_frame.erl --- a/src/stomp_frame.erl Thu Dec 11 22:54:37 2008 +0000 +++ b/src/stomp_frame.erl Thu Feb 12 01:30:58 2009 -0800 @@ -219,7 +219,8 @@ end, $\n, Body, - 0]. + 0, + $\n]. serialize_header({K, V}) when is_integer(V) -> [K, $:, integer_to_list(V), $\n]; -- Dan Di Spaltro From 0x6e6562 at gmail.com Thu Feb 12 11:17:00 2009 From: 0x6e6562 at gmail.com (Ben Hood) Date: Thu, 12 Feb 2009 11:17:00 +0000 Subject: [rabbitmq-discuss] Cluster Pathology In-Reply-To: <368574aa0902112118s4ffd0587ib1aa22ed1ec28d7b@mail.gmail.com> References: <3b949f090902091229r372a78ci84ed70b5fa5f2b68@mail.gmail.com> <4992FD65.9040105@cohesiveft.com> <3b949f090902110850sa5a081fx8df758289423bfa1@mail.gmail.com> <269388e30902110932n460831b9rf318bca3c53ce7c1@mail.gmail.com> <3b949f090902111111s450fa33cre254c91bb3b4692d@mail.gmail.com> <368574aa0902111419o7d3ee6a9r84cd57ef7d8d88@mail.gmail.com> <3b949f090902111534x791009aeq7aaf9109a3fccd0a@mail.gmail.com> <368574aa0902111923r71d00a46o6ae8f2450270224a@mail.gmail.com> <3b949f090902111925x7e5bb8c1xb55fca6c2d372e6a@mail.gmail.com> <368574aa0902112118s4ffd0587ib1aa22ed1ec28d7b@mail.gmail.com> Message-ID: <269388e30902120317g560b6792o610bbe86da224709@mail.gmail.com> Drew, On Thu, Feb 12, 2009 at 5:18 AM, Drew Smathers wrote: > Our experience has been the messages are lost (they're also marked > persistent via delivery_mode=2 and queues are durable). Interesting. And you definitely have at least one route to at least on queue for each routing key? Ben From 0x6e6562 at gmail.com Thu Feb 12 11:32:25 2009 From: 0x6e6562 at gmail.com (Ben Hood) Date: Thu, 12 Feb 2009 11:32:25 +0000 Subject: [rabbitmq-discuss] Examining Queue Failover Behavior In-Reply-To: <3b949f090902111157s2ba96fa8oa1c351ffd42331e1@mail.gmail.com> References: <3b949f090902061215k3ab288dbg4e8047b51e581183@mail.gmail.com> <269388e30902090227y36da0099h3d7e09b5113bd6a@mail.gmail.com> <3b949f090902090945w35d841c9k3decc75e910bd536@mail.gmail.com> <269388e30902110114j6b13ddcbw2f24d926e2d3e73d@mail.gmail.com> <3b949f090902110843v29060c88gd1ffd8e693c3ed73@mail.gmail.com> <269388e30902110957h8c38ecbmdd734fe780f8ef62@mail.gmail.com> <3b949f090902111157s2ba96fa8oa1c351ffd42331e1@mail.gmail.com> Message-ID: <269388e30902120332v5e4c93feh75fec8263d189527@mail.gmail.com> Jason, On Wed, Feb 11, 2009 at 7:57 PM, Jason J. W. Williams wrote: > Well, my only argument would be that a persistent queue doesn't > guarantee a whole lot if the message never makes it there. True. But this is fundamentally a tricky problem to solve without tightly coupling producers and consumers. In general I think that it is better for the messaging infrastructure to provide the application with the primitives it needs to get the desired level of service, because the application knows more about the application that the broker does (what this could mean is exemplified below). Basically what I mean is that exploiting application specific knowledge can help prevent turning a messaging broker into a database. > The problem > it seems to me depends on the application. If the producer has > pre-knowledge that the message its entrusting to the MQ is important, > it needs to be able top specify a level of persistence in case the MQ > crashes before the exchange can route it. True and ties in with the above - a blunt yet effective solution would be to set up some kind of archiving consumer that keeps a copy of each published message in some kind of store - some people are using CouchDB for this kind of thing. This pushes the reliability guarantee up to a layer that can decide what is important and what is not, thus keeping the core lean and mean. > Beyond that, I think its up > to the consumer to make sure here's a queue available for the message. > But in a failure environment, since exchanges fail over, but queues do > not, you now have an issue where producers may publish messages before > consumers can re-attach and recreate the queues. Where as initially, > neither the exchanges nor the queues would exist until the consumers > created them, thereby preventing the producers from publishing into > ether. As I write this out, it now strikes me that that is the crux of > our issue: Exchange metadata fails over automatically but not queues. This is a fair point and ties in with my previous comments about a) it being tricky to determine a distributed consensus; b) the questionable semantics of queue deletes for subscriptions according to the spec; b) using AMQP events to allow an application to react to changes in the system; > Regarding RAS, RAS = Reliability, Availability, Serviceability: > http://en.wikipedia.org/wiki/Reliability,_Availability_and_Serviceability Good to know what TLAs Rabbit is being benchmarked against - in light of the recent discussion on what a transaction actually is, you could even suggest this definition to the working group :-) Ben From 0x6e6562 at gmail.com Thu Feb 12 11:35:40 2009 From: 0x6e6562 at gmail.com (Ben Hood) Date: Thu, 12 Feb 2009 11:35:40 +0000 Subject: [rabbitmq-discuss] STOMP Frame In-Reply-To: References: Message-ID: <269388e30902120335w6c17d1cdy29e7e38894c0c707@mail.gmail.com> Dan, On Thu, Feb 12, 2009 at 9:36 AM, Dan Di Spaltro wrote: > I noticed that at the end of the STOMP frame you only have a null > character when the reference implementation looks to have a null > followed by a \n character. Am I misinterpreting this, because the > documentation doesn't seem to say anything about a null followed by a > return. Is this an issue for anyone else? Have you read this thread: http://www.nabble.com/Stomp-frame-not-terminated-with-null-character-td19447635.html Ben From alexis.richardson at cohesiveft.com Thu Feb 12 11:49:20 2009 From: alexis.richardson at cohesiveft.com (Alexis Richardson) Date: Thu, 12 Feb 2009 11:49:20 +0000 Subject: [rabbitmq-discuss] lettuce.squarespace.com no longer open to public? In-Reply-To: <4992060F.6050300@canonical.com> References: <368574aa0902090958r6304851cyf2f512b32d002d90@mail.gmail.com> <269388e30902091644t6dc43bc4nca8685c3048f9a49@mail.gmail.com> <4991CD63.50701@canonical.com> <167204d20902101200m2e1e31b9r8eb9b59c4b38fc56@mail.gmail.com> <4992060F.6050300@canonical.com> Message-ID: <167204d20902120349o1aa0ff25pea515c972823372e@mail.gmail.com> Guys, FYI - we are still working out the best solution for this. The rabbitmq.com is organised into one place, but static and centrally controlled, but OTOH weve stumbled about with different wikis, so often folks have rolled their own pages as Ben did with his lettuce FAQ. alexis On Tue, Feb 10, 2009 at 10:56 PM, Elliot Murphy wrote: > On 02/10/2009 03:00 PM, Alexis Richardson wrote: >> >> It's tempting -- how would that integrate with our existing FAQ? >> > > You know, it really wouldn't. Launchpad doesn't have any branding > capabilities. When I sent this, I was mixed up and thought that the lettuce > stuff was more official - sorry about the noise. Probably the easiest and > most consistent thing to do is just copy the old lettuce content into the > FAQ section on rabbitmq.com. > -- > Elliot Murphy | https://launchpad.net/~statik/ > From dan.dispaltro at gmail.com Thu Feb 12 17:04:46 2009 From: dan.dispaltro at gmail.com (Dan Di Spaltro) Date: Thu, 12 Feb 2009 09:04:46 -0800 Subject: [rabbitmq-discuss] STOMP Frame In-Reply-To: <269388e30902120335w6c17d1cdy29e7e38894c0c707@mail.gmail.com> References: <269388e30902120335w6c17d1cdy29e7e38894c0c707@mail.gmail.com> Message-ID: Ben, Thats exactly what I read; however, I looked at the reference implementation and they search for the combo as the end of the frame. However, the wording of the Protocol does make it sound like just a null byte ends the frame. 2009/2/12 Ben Hood <0x6e6562 at gmail.com>: > Dan, > > On Thu, Feb 12, 2009 at 9:36 AM, Dan Di Spaltro wrote: >> I noticed that at the end of the STOMP frame you only have a null >> character when the reference implementation looks to have a null >> followed by a \n character. Am I misinterpreting this, because the >> documentation doesn't seem to say anything about a null followed by a >> return. Is this an issue for anyone else? > > Have you read this thread: > http://www.nabble.com/Stomp-frame-not-terminated-with-null-character-td19447635.html > I just joined the list by the way, and I guess my google searches weren't good enough > Ben > -- Dan Di Spaltro From opendev at gmail.com Thu Feb 12 17:15:26 2009 From: opendev at gmail.com (Joern) Date: Thu, 12 Feb 2009 19:15:26 +0200 Subject: [rabbitmq-discuss] Getting Started with RabbitMQ In-Reply-To: <167204d20902091144j6442c6bbrd45d2a45c35c4c32@mail.gmail.com> References: <167204d20902091144j6442c6bbrd45d2a45c35c4c32@mail.gmail.com> Message-ID: <9e009ad0902120915w4951854av62f0c92701fd6006@mail.gmail.com> Hi Alexis, 2009/2/9 Alexis Richardson : > Thanks for posting. We do need more examples. I had some idle time today and wrote down a bit of text detailing the AMQP model. It is likely to have errors, ommits quite a few things and might need clarification, especially for people new to AMQP (see discussion page for details). http://en.wikipedia.org/wiki/Advanced_Message_Queuing_Protocol Maybe this could be helpful? Best regards, Joern -- From jasonjwwilliams at gmail.com Thu Feb 12 17:52:52 2009 From: jasonjwwilliams at gmail.com (Jason J. W. Williams) Date: Thu, 12 Feb 2009 10:52:52 -0700 Subject: [rabbitmq-discuss] lettuce.squarespace.com no longer open to public? In-Reply-To: <167204d20902120349o1aa0ff25pea515c972823372e@mail.gmail.com> References: <368574aa0902090958r6304851cyf2f512b32d002d90@mail.gmail.com> <269388e30902091644t6dc43bc4nca8685c3048f9a49@mail.gmail.com> <4991CD63.50701@canonical.com> <167204d20902101200m2e1e31b9r8eb9b59c4b38fc56@mail.gmail.com> <4992060F.6050300@canonical.com> <167204d20902120349o1aa0ff25pea515c972823372e@mail.gmail.com> Message-ID: <3b949f090902120952x1b504994tdc6fae008d88cd0d@mail.gmail.com> Just my two cents. Not sure why but I always find wiki sites more navigable than Launchpad ones. Particularly ones based on MediaWiki or TWiki. -J On 2/12/09, Alexis Richardson wrote: > Guys, > > FYI - we are still working out the best solution for this. The > rabbitmq.com is organised into one place, but static and centrally > controlled, but OTOH weve stumbled about with different wikis, so > often folks have rolled their own pages as Ben did with his lettuce > FAQ. > > alexis > > > On Tue, Feb 10, 2009 at 10:56 PM, Elliot Murphy > wrote: >> On 02/10/2009 03:00 PM, Alexis Richardson wrote: >>> >>> It's tempting -- how would that integrate with our existing FAQ? >>> >> >> You know, it really wouldn't. Launchpad doesn't have any branding >> capabilities. When I sent this, I was mixed up and thought that the >> lettuce >> stuff was more official - sorry about the noise. Probably the easiest and >> most consistent thing to do is just copy the old lettuce content into the >> FAQ section on rabbitmq.com. >> -- >> Elliot Murphy | https://launchpad.net/~statik/ >> > > _______________________________________________ > rabbitmq-discuss mailing list > rabbitmq-discuss at lists.rabbitmq.com > http://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss > From roger.wilson at lehman.com Thu Feb 12 18:04:16 2009 From: roger.wilson at lehman.com (Wilson, Roger) Date: Thu, 12 Feb 2009 18:04:16 -0000 Subject: [rabbitmq-discuss] Multiple subscription in the same thread Message-ID: A question to the wise. Is it legal, advisable/risky or simply deviant to subscribe to multiple queues from the same Consumer? I have a java client implementing the Consumer interface which calls Channel.basicConsume on two queues, stays subscribed for about 10s and then calls basicCancel. This tends to work for a few calls and then when calling Channel.basicConsume for the second queue it hangs. Always the second queue. Is there something fundamentally wrong with the same consumer consuming two queues? ---------------------------------------- This message is intended only for the personal and confidential use of the designated recipient(s) named above. If you are not the intended recipient of this message you are hereby notified that any review, dissemination, distribution or copying of this message is strictly prohibited. This communication is for information purposes only and should not be regarded as an offer to sell or as a solicitation of an offer to buy any financial product, an official confirmation of any transaction, or as an official statement of Lehman Brothers. Email transmission cannot be guaranteed to be secure or error-free. Therefore, we do not represent that this information is complete or accurate and it should not be relied upon as such. All information is subject to change without notice. ---------------------------------------- From drew.smathers at gmail.com Thu Feb 12 19:31:42 2009 From: drew.smathers at gmail.com (Drew Smathers) Date: Thu, 12 Feb 2009 14:31:42 -0500 Subject: [rabbitmq-discuss] Cluster Pathology In-Reply-To: <269388e30902120317g560b6792o610bbe86da224709@mail.gmail.com> References: <3b949f090902091229r372a78ci84ed70b5fa5f2b68@mail.gmail.com> <3b949f090902110850sa5a081fx8df758289423bfa1@mail.gmail.com> <269388e30902110932n460831b9rf318bca3c53ce7c1@mail.gmail.com> <3b949f090902111111s450fa33cre254c91bb3b4692d@mail.gmail.com> <368574aa0902111419o7d3ee6a9r84cd57ef7d8d88@mail.gmail.com> <3b949f090902111534x791009aeq7aaf9109a3fccd0a@mail.gmail.com> <368574aa0902111923r71d00a46o6ae8f2450270224a@mail.gmail.com> <3b949f090902111925x7e5bb8c1xb55fca6c2d372e6a@mail.gmail.com> <368574aa0902112118s4ffd0587ib1aa22ed1ec28d7b@mail.gmail.com> <269388e30902120317g560b6792o610bbe86da224709@mail.gmail.com> Message-ID: <368574aa0902121131lde019ew18858506d4241493@mail.gmail.com> On Thu, Feb 12, 2009 at 6:17 AM, Ben Hood <0x6e6562 at gmail.com> wrote: > Drew, > > On Thu, Feb 12, 2009 at 5:18 AM, Drew Smathers wrote: >> Our experience has been the messages are lost (they're also marked >> persistent via delivery_mode=2 and queues are durable). > > Interesting. And you definitely have at least one route to at least on > queue for each routing key? > > Ben > Yes, the publisher in our case preemptively declares and binds queues - to ensure messages are not lost. (The consumers also make the same queue declaration). Below I've included a stripped down example of a publisher and consumer (using py-amqplib) which can be used to reproduce the issue. Steps to reproduce: 1. run publisher and consumer against one node to ensure queue is created there: $ python publisher.py hostB 5 $ python consumer.py hostB # CTL-C after receiving 5 messages 2. run publisher/consumer against other node - hostA $ python publisher.py hostA 20 $ python consumer.py hostA 3. Before publisher from step 2 has finished, bring down rabbitmq on hostB hostB $ rabbitmqctl stop 4. After publisher from step 2 has finished, restart consumer: $ python consumer.py hostA Notice messages delivered after hostB was brought down were not delivered. ==== publisher.py ============== import sys from time import sleep, time from amqplib import client_0_8 as amqp host = sys.argv[1] message_count = int(sys.argv[2]) SLEEP = 2 EXCHANGE = 'publisher_test' QUEUE = 'queue1' connection = amqp.Connection(host, userid='guest', password='guest', insist=True, connect_timeout=5) channel = connection.channel() channel.access_request('/data', active=True, read=True, write=True) channel.exchange_declare(EXCHANGE, 'direct', auto_delete=False, durable=True) channel.queue_declare(QUEUE, auto_delete=False, durable=True) channel.queue_bind(QUEUE, EXCHANGE, routing_key='messages') for ct in range(message_count): message = amqp.Message('%d-%d' % (int(1000 * time()), ct), content_type='text/plain', delivery_mode=2) channel.basic_publish(message, EXCHANGE, routing_key='messages', mandatory=True) print 'published message', message.body sleep(SLEEP) channel.close() connection.close() ==== python consumer.py ======================= import sys from amqplib import client_0_8 as amqp host = sys.argv[1] EXCHANGE = 'publisher_test' QUEUE = 'queue1' connection = amqp.Connection(host, userid='guest', password='guest', insist=True, connect_timeout=5) channel = connection.channel() channel.access_request('/data', active=True, read=True, write=True) channel.exchange_declare(EXCHANGE, 'direct', auto_delete=False, durable=True) channel.queue_declare(QUEUE, auto_delete=False, durable=True) channel.queue_bind(QUEUE, EXCHANGE, routing_key='messages') def handle_message(message): print 'got message', message.body channel.basic_ack(message.delivery_tag) tag = channel.basic_consume( QUEUE, callback=handle_message) while channel.callbacks: try: channel.wait() except KeyboardInterrupt: break channel.close() connection.close() From vinorasmus at gmail.com Fri Feb 13 08:34:17 2009 From: vinorasmus at gmail.com (Gavin Bong) Date: Fri, 13 Feb 2009 16:34:17 +0800 Subject: [rabbitmq-discuss] Interoperability between server v1.5 and java client API v1.4 Message-ID: <33784a0c0902130034r3e81a2feqeead08c9c26c3df9@mail.gmail.com> Hi, Just recently noticed that the server and java client library has been updated to 1.5.1 Will the java client API v1.4 work with the latest server ? Will the upgrade to java client API v1.5 be as simple as removing any code that deals with realms and tickets ? We're going live next week and I don't want this upgrade to cause any delay. Thanks for a great piece of software. Regards, Gavin From 0x6e6562 at gmail.com Fri Feb 13 09:58:34 2009 From: 0x6e6562 at gmail.com (Ben Hood) Date: Fri, 13 Feb 2009 09:58:34 +0000 Subject: [rabbitmq-discuss] Multiple subscription in the same thread In-Reply-To: References: Message-ID: <269388e30902130158l6a94a2edgdf5a0352b3f6c1cd@mail.gmail.com> Roger, On Thu, Feb 12, 2009 at 6:04 PM, Wilson, Roger wrote: > A question to the wise. Is it legal, advisable/risky or simply deviant > to subscribe to multiple queues from the same Consumer? >From a protocol perspective I would say that it shouldn't make a difference. This is because the broker has knowledge of the existence of any consumer, just the fact that it it can send deliveries to a client with a particular tag so that the client can dispatch messages accordingly. > I have a java client implementing the Consumer interface which calls > Channel.basicConsume on two queues, stays subscribed for about 10s and > then calls basicCancel. > > This tends to work for a few calls and then when calling > Channel.basicConsume for the second queue it hangs. Always the second > queue. > > Is there something fundamentally wrong with the same consumer consuming > two queues? Not really. The client will maintain two keys for the same consumer reference, that's all. Maybe you can post some code that can reproduce this behaviour. Ben From 0x6e6562 at gmail.com Fri Feb 13 10:10:03 2009 From: 0x6e6562 at gmail.com (Ben Hood) Date: Fri, 13 Feb 2009 10:10:03 +0000 Subject: [rabbitmq-discuss] Interoperability between server v1.5 and java client API v1.4 In-Reply-To: <33784a0c0902130034r3e81a2feqeead08c9c26c3df9@mail.gmail.com> References: <33784a0c0902130034r3e81a2feqeead08c9c26c3df9@mail.gmail.com> Message-ID: <269388e30902130210w44838bd6ya9f6c36f1c096ad6@mail.gmail.com> Gavin, On Fri, Feb 13, 2009 at 8:34 AM, Gavin Bong wrote: > Just recently noticed that the server and java client library has been > updated to 1.5.1 > > Will the java client API v1.4 work with the latest server ? Yes, the wire protocol is the same. The 1.5.x server will just ignore tickets and treat the access.request command as a NOOP. > Will the upgrade to java client API v1.5 be as simple as removing any > code that deals with realms and tickets ? Yep. > We're going live next week and I don't want this upgrade to cause any > delay. Thanks for a great piece of software. Although the 1.4 client will work, there are a number of bugs that have been fixed in the 1.5.x client, especially surrounding edge cases with the shutdown protocol. Hence if you do have any issues with it, our first repsonse is likely to be "upgrade to the latest stable version". If you do have the time to retest your application, it may be worth upgrading before you go into prod. HTH, Ben From 0x6e6562 at gmail.com Fri Feb 13 10:26:00 2009 From: 0x6e6562 at gmail.com (Ben Hood) Date: Fri, 13 Feb 2009 10:26:00 +0000 Subject: [rabbitmq-discuss] Cluster Pathology In-Reply-To: <368574aa0902121131lde019ew18858506d4241493@mail.gmail.com> References: <3b949f090902091229r372a78ci84ed70b5fa5f2b68@mail.gmail.com> <269388e30902110932n460831b9rf318bca3c53ce7c1@mail.gmail.com> <3b949f090902111111s450fa33cre254c91bb3b4692d@mail.gmail.com> <368574aa0902111419o7d3ee6a9r84cd57ef7d8d88@mail.gmail.com> <3b949f090902111534x791009aeq7aaf9109a3fccd0a@mail.gmail.com> <368574aa0902111923r71d00a46o6ae8f2450270224a@mail.gmail.com> <3b949f090902111925x7e5bb8c1xb55fca6c2d372e6a@mail.gmail.com> <368574aa0902112118s4ffd0587ib1aa22ed1ec28d7b@mail.gmail.com> <269388e30902120317g560b6792o610bbe86da224709@mail.gmail.com> <368574aa0902121131lde019ew18858506d4241493@mail.gmail.com> Message-ID: <269388e30902130226od942d18s8029842946bd3135@mail.gmail.com> Drew, On Thu, Feb 12, 2009 at 7:31 PM, Drew Smathers wrote: > Steps to reproduce: > > 1. run publisher and consumer against one node to ensure queue is created there: > > $ python publisher.py hostB 5 > $ python consumer.py hostB # CTL-C after receiving 5 messages > > 2. run publisher/consumer against other node - hostA > > $ python publisher.py hostA 20 > $ python consumer.py hostA > > 3. Before publisher from step 2 has finished, bring down rabbitmq on hostB > > hostB $ rabbitmqctl stop > > 4. After publisher from step 2 has finished, restart consumer: > > $ python consumer.py hostA > > Notice messages delivered after hostB was brought down were not delivered. Yes, this is the behaviour I would expect as well. As indicated previously (on this thread and the other related one) this is because the queue to which both consumers are subscribed was initially declared on node B. Because there is a) no automatic failover, just recovery; b) no propagation of the queue removal event to each consumer (the spec compliancy issue); the queue is taken down and the guy consuming via node A will be none the wiser. Any subsequent messages published to that queue will be treated as unroutable and hence will be discarded. To recover from this situation, you would need to restart node B and restart the consumer on node A. Obviously it would be nice to have better handling for this kind of thing, which will probably happen at some stage. HTH, Ben From vinorasmus at gmail.com Fri Feb 13 11:06:53 2009 From: vinorasmus at gmail.com (Gavin Bong) Date: Fri, 13 Feb 2009 19:06:53 +0800 Subject: [rabbitmq-discuss] Interoperability between server v1.5 and java client API v1.4 In-Reply-To: <269388e30902130210w44838bd6ya9f6c36f1c096ad6@mail.gmail.com> References: <33784a0c0902130034r3e81a2feqeead08c9c26c3df9@mail.gmail.com> <269388e30902130210w44838bd6ya9f6c36f1c096ad6@mail.gmail.com> Message-ID: <33784a0c0902130306l1ea2727fs6657223442375190@mail.gmail.com> Ben, >> We're going live next week and I don't want this upgrade to cause any >> delay. Thanks for a great piece of software. > > Although the 1.4 client will work, there are a number of bugs that > have been fixed in the 1.5.x client, especially surrounding edge cases > with the shutdown protocol. Hence if you do have any issues with it, > our first repsonse is likely to be "upgrade to the latest stable > version". If you do have the time to retest your application, it may > be worth upgrading before you go into prod. Ok. Since the upgrade seems to be rather simple, it should not be a problem for me to upgrade to 1.5. Thanks. Regards, Gavin From drew.smathers at gmail.com Fri Feb 13 15:34:01 2009 From: drew.smathers at gmail.com (Drew Smathers) Date: Fri, 13 Feb 2009 10:34:01 -0500 Subject: [rabbitmq-discuss] Cluster Pathology In-Reply-To: <269388e30902130226od942d18s8029842946bd3135@mail.gmail.com> References: <3b949f090902091229r372a78ci84ed70b5fa5f2b68@mail.gmail.com> <3b949f090902111111s450fa33cre254c91bb3b4692d@mail.gmail.com> <368574aa0902111419o7d3ee6a9r84cd57ef7d8d88@mail.gmail.com> <3b949f090902111534x791009aeq7aaf9109a3fccd0a@mail.gmail.com> <368574aa0902111923r71d00a46o6ae8f2450270224a@mail.gmail.com> <3b949f090902111925x7e5bb8c1xb55fca6c2d372e6a@mail.gmail.com> <368574aa0902112118s4ffd0587ib1aa22ed1ec28d7b@mail.gmail.com> <269388e30902120317g560b6792o610bbe86da224709@mail.gmail.com> <368574aa0902121131lde019ew18858506d4241493@mail.gmail.com> <269388e30902130226od942d18s8029842946bd3135@mail.gmail.com> Message-ID: <368574aa0902130734h57b10c79y6a280c16534975eb@mail.gmail.com> On Fri, Feb 13, 2009 at 5:26 AM, Ben Hood <0x6e6562 at gmail.com> wrote: > Drew, > > On Thu, Feb 12, 2009 at 7:31 PM, Drew Smathers wrote: >> Steps to reproduce: >> >> 1. run publisher and consumer against one node to ensure queue is created there: >> >> $ python publisher.py hostB 5 >> $ python consumer.py hostB # CTL-C after receiving 5 messages >> >> 2. run publisher/consumer against other node - hostA >> >> $ python publisher.py hostA 20 >> $ python consumer.py hostA >> >> 3. Before publisher from step 2 has finished, bring down rabbitmq on hostB >> >> hostB $ rabbitmqctl stop >> >> 4. After publisher from step 2 has finished, restart consumer: >> >> $ python consumer.py hostA >> >> Notice messages delivered after hostB was brought down were not delivered. > > Yes, this is the behaviour I would expect as well. As indicated > previously (on this thread and the other related one) this is because > the queue to which both consumers are subscribed was initially > declared on node B. Because there is > > a) no automatic failover, just recovery; > b) no propagation of the queue removal event to each consumer (the > spec compliancy issue); > > the queue is taken down and the guy consuming via node A will be none > the wiser. Any subsequent messages published to that queue will be > treated as unroutable and hence will be discarded. To recover from > this situation, you would need to restart node B and restart the > consumer on node A. > Thanks for the information. The consumer is not as much my concern as the publisher (also attached to A) who would continue publishing messages which should be delivered but get discarded. (Btw, it's still _very_ unclear to me who to get notification that a message cannot be routed.) I'm solving this issue by making publisher attach to only one node where the queue is defined so socket errors would stop the publisher; this is appropriate for our system where there are very few publishers but many consumers. We're also keeping a rotating log for critical messages as another point of recovery in the event a persister log cannot be recovered. I haven't finalized what to do from the consumers' perspective except perhaps having some activity monitor with a timeout to trigger reestablishing a channel, queue declarations, etc. Any ideas how to best handle this without to many complications such as AMQP-level events, etc? > Obviously it would be nice to have better handling for this kind of > thing, which will probably happen at some stage. > Yes, please :) If there are significant performance impacts, I think it would still be to nice to have as an optional runtime configuration for applications where "(99.99999%) guaranteed delivery" is a requirement more than overall throughput. -Drew From 0x6e6562 at gmail.com Fri Feb 13 16:57:32 2009 From: 0x6e6562 at gmail.com (Ben Hood) Date: Fri, 13 Feb 2009 16:57:32 +0000 Subject: [rabbitmq-discuss] Cluster Pathology In-Reply-To: <368574aa0902130734h57b10c79y6a280c16534975eb@mail.gmail.com> References: <3b949f090902091229r372a78ci84ed70b5fa5f2b68@mail.gmail.com> <368574aa0902111419o7d3ee6a9r84cd57ef7d8d88@mail.gmail.com> <3b949f090902111534x791009aeq7aaf9109a3fccd0a@mail.gmail.com> <368574aa0902111923r71d00a46o6ae8f2450270224a@mail.gmail.com> <3b949f090902111925x7e5bb8c1xb55fca6c2d372e6a@mail.gmail.com> <368574aa0902112118s4ffd0587ib1aa22ed1ec28d7b@mail.gmail.com> <269388e30902120317g560b6792o610bbe86da224709@mail.gmail.com> <368574aa0902121131lde019ew18858506d4241493@mail.gmail.com> <269388e30902130226od942d18s8029842946bd3135@mail.gmail.com> <368574aa0902130734h57b10c79y6a280c16534975eb@mail.gmail.com> Message-ID: <269388e30902130857k2856c6a6r1aa798feaa8bd656@mail.gmail.com> Drew, On Fri, Feb 13, 2009 at 3:34 PM, Drew Smathers wrote: > Thanks for the information. The consumer is not as much my concern as > the publisher (also attached to A) who would continue publishing > messages which should be delivered but get discarded. (Btw, it's still > _very_ unclear to me who to get notification that a message cannot be > routed.) IMHO this shouldn't be the producer because this otherwise couples production and consumption, which is what the messaging broker is supposed to avoid. I think it should be something else that is montoring the presence of a queue. > I'm solving this issue by making publisher attach to only > one node where the queue is defined so socket errors would stop the > publisher; this is appropriate for our system where there are very few > publishers but many consumers. We're also keeping a rotating log for > critical messages as another point of recovery in the event a > persister log cannot be recovered. This would be a slightly different issue though. Are you saying that you are having troubles replaying the log? > I haven't finalized what to do > from the consumers' perspective except perhaps having some activity > monitor with a timeout to trigger reestablishing a channel, queue > declarations, etc. Any ideas how to best handle this without to many > complications such as AMQP-level events, etc? ATM you can't do anything because AMQP level events are currently vaporware :-) The idea behind this is an event system that provides the necessary primitives for userland code to be able to extend broker functionality without having to bloat the core. So right now, your only options are to either build in a supervisor into the broker (which requires you to hack on the broker), or to do some kind of external polling. >> Obviously it would be nice to have better handling for this kind of >> thing, which will probably happen at some stage. >> > > Yes, please :) If there are significant performance impacts, I think > it would still be to nice to have as an optional runtime configuration > for applications where "(99.99999%) guaranteed delivery" is a > requirement more than overall throughput. I'll take this down as something to consider doing. No ETA on this, of course. Ben From darien at kindlund.com Sat Feb 14 01:49:37 2009 From: darien at kindlund.com (Darien Kindlund) Date: Fri, 13 Feb 2009 20:49:37 -0500 Subject: [rabbitmq-discuss] STOMP Error? In-Reply-To: <4992BBDE.3020500@lshift.net> References: <50c8ffe90902051008i36bfe6b1n3c92af8c739ba522@mail.gmail.com> <4992BBDE.3020500@lshift.net> Message-ID: <50c8ffe90902131749udf339ddnaafe6e960d953d@mail.gmail.com> Okay, I need further clarification on this error... On Wed, Feb 11, 2009 at 6:51 AM, Tony Garnock-Jones wrote: > Darien Kindlund wrote: >> =ERROR REPORT==== 5-Feb-2009::13:05:28 === >> STOMP error frame sent: >> Message: "Processing error" >> Detail: "{timeout,{gen_server,call,[rabbit_persister,serial]}}\n" > > This looks like the persister rollover problem I mentioned just a moment > ago: when there's a large volume of data, it can take a while for the > log file to roll over. Processes calling the persister during a long > rollover may block long enough for their timeout to fire. A fix is in > the works! Are you referring to rolling the persister log file? To be clear, when things are working "normally", this activity is normally logged as: =INFO REPORT==== 8-Feb-2009::06:34:23 === Rolling persister log to "/var/lib/rabbitmq/mnesia/rabbit/rabbit_persister.LOG.previous" =INFO REPORT==== 8-Feb-2009::06:39:12 === Rolling persister log to "/var/lib/rabbitmq/mnesia/rabbit/rabbit_persister.LOG.previous" =INFO REPORT==== 8-Feb-2009::06:44:02 === Rolling persister log to "/var/lib/rabbitmq/mnesia/rabbit/rabbit_persister.LOG.previous" ... right? 1) Is it "normal" for this activity to occur every 5 minutes? Is this a fixed time or is it variable? If it's variable, what factors control when and how often this occurs? 2) When one STOMP connection generates this error, does it affect any/all future STOMP connections? Meaning, is this error more likely to occur with 500 connections as opposed to 5? Or does that not matter? Thanks, -- Darien From matthias at lshift.net Sun Feb 15 16:20:58 2009 From: matthias at lshift.net (Matthias Radestock) Date: Sun, 15 Feb 2009 16:20:58 +0000 Subject: [rabbitmq-discuss] Cluster Issues? In-Reply-To: <3b949f090902101345k5b5e6ae9u9635d31c60518210@mail.gmail.com> References: <3b949f090902101345k5b5e6ae9u9635d31c60518210@mail.gmail.com> Message-ID: <499840EA.9080904@lshift.net> Jason, Jason J. W. Williams wrote: > Were my experiences with the cluster failover unique, or are they known issues? The aim of RabbitMQ's current clustering implementation is to offer horizontal scalability. Clustering for fault tolerance is a separate goal and still on our todo list. Regards, Matthias. From matthias at lshift.net Mon Feb 16 11:28:55 2009 From: matthias at lshift.net (Matthias Radestock) Date: Mon, 16 Feb 2009 11:28:55 +0000 Subject: [rabbitmq-discuss] memory usage In-Reply-To: <4992BB90.5070104@lshift.net> References: <20090205151617.GA31965@muspelheim.parasec.net> <4992BB90.5070104@lshift.net> Message-ID: <49994DF7.8030502@lshift.net> Phil, Tony Garnock-Jones wrote: > Philip Stubbings wrote: >> Why does the process still require 3G of memory even after 24 >> hours of inactivity? > > Very good question. If you can post the code (producer and consumer) > that causes the problem, I can investigate. It might be worth repeating the experiment with non-persistent messages. That will tell us whether the problem is in the persister. Matthias. From matthias at lshift.net Tue Feb 17 11:13:05 2009 From: matthias at lshift.net (Matthias Radestock) Date: Tue, 17 Feb 2009 11:13:05 +0000 Subject: [rabbitmq-discuss] does anybody depend on Erlang/OTP R11? Message-ID: <499A9BC1.8060700@lshift.net> To date RabbitMQ has been targeting Erlang/OTP R11 - it runs fine on more recent releases but the code only has dependencies on R11 APIs, our "binary" distributions are compiled for R11 (if they were compiled for R12 they wouldn't run on an R11 Erlang), and our Windows bundle contains R11B-5. R11 is getting quite old and we'd like to start targeting R12B-3 so that we can take advantage of some of the features introduced in the later releases, and ditch the various workarounds we have in place for R11 bugs. R12B-3 or later is available as a package for many OS distributions, such as Ubuntu Intrepid, EPEL and macports. However, we have been holding back on the switch to R12 because the stable Debian distribution only contained R11. With the release of Debian "lenny" a few days ago that has changed - it contains R12B-3. So my question is this: Does anybody have a dependency on running the R11 version of Erlang/OTP? Regards, Matthias. From toby.o.h.white at googlemail.com Tue Feb 17 12:54:54 2009 From: toby.o.h.white at googlemail.com (Toby White) Date: Tue, 17 Feb 2009 12:54:54 +0000 Subject: [rabbitmq-discuss] does anybody depend on Erlang/OTP R11? In-Reply-To: <499A9BC1.8060700@lshift.net> References: <499A9BC1.8060700@lshift.net> Message-ID: <3629B377-122E-4D99-93B2-8D5264AF3BD3@gmail.com> This may not affect your decision, but we're running Ubuntu Hardy specifically because of the promise of long term support, and Hardy is stuck at R11B5. There are probably backports available, and in extremis we can compile up erlang ourselves, but obviously we'd rather stick as close to the supported package versions as possible. So unless Hardy is upgraded, there will be a barrier to us (and anyone else in this situation) following any Rabbit releases which depend on later versions. Toby On 17 Feb 2009, at 11:13, Matthias Radestock wrote: > To date RabbitMQ has been targeting Erlang/OTP R11 - it runs fine on > more recent releases but the code only has dependencies on R11 APIs, > our > "binary" distributions are compiled for R11 (if they were compiled for > R12 they wouldn't run on an R11 Erlang), and our Windows bundle > contains > R11B-5. > > R11 is getting quite old and we'd like to start targeting R12B-3 so > that > we can take advantage of some of the features introduced in the later > releases, and ditch the various workarounds we have in place for R11 > bugs. > > R12B-3 or later is available as a package for many OS distributions, > such as Ubuntu Intrepid, EPEL and macports. However, we have been > holding back on the switch to R12 because the stable Debian > distribution > only contained R11. With the release of Debian "lenny" a few days ago > that has changed - it contains R12B-3. > > So my question is this: > > Does anybody have a dependency on running the R11 version of Erlang/ > OTP? > > > Regards, > > Matthias. > > _______________________________________________ > rabbitmq-discuss mailing list > rabbitmq-discuss at lists.rabbitmq.com > http://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss From tonyg at lshift.net Tue Feb 17 14:04:22 2009 From: tonyg at lshift.net (Tony Garnock-Jones) Date: Tue, 17 Feb 2009 14:04:22 +0000 Subject: [rabbitmq-discuss] Cluster Pathology In-Reply-To: <3b949f090902110850sa5a081fx8df758289423bfa1@mail.gmail.com> References: <3b949f090902091229r372a78ci84ed70b5fa5f2b68@mail.gmail.com> <49922C3C.7040004@cohesiveft.com> <3b949f090902101754n14babf88o88e6bacc875501ca@mail.gmail.com> <4992FD65.9040105@cohesiveft.com> <3b949f090902110850sa5a081fx8df758289423bfa1@mail.gmail.com> Message-ID: <499AC3E6.4090901@lshift.net> Jason J. W. Williams wrote: > Unclustered Rabbit nodes eliminates the orphaned consumer problem. In > RAS terms, RabbitMQ clustering seems to only provide the A. It seems > to me on a node failure, either Rabbit needs to migrate an empty > version of the queue to another node, or send a "you're dead" notice > to consumers attached to the queue via nodes that aren't hosting the > queue. Also, if the queue has been redeclared, there optimally would > be a way for the dead node to replay its messages (if desired) into > the recreated queue(s) when it comes back up. Agreed. Our current clustering is really pretty lame as regards queues. Exchanges are fine, being stateless, but clustered queues Need Work. Which, incidentally, is next on my plate. I'll be looking at pluggable queues, distributed queues, and fixing the persister, since they all affect the same little areas of code. Tony From tonyg at lshift.net Tue Feb 17 14:10:41 2009 From: tonyg at lshift.net (Tony Garnock-Jones) Date: Tue, 17 Feb 2009 14:10:41 +0000 Subject: [rabbitmq-discuss] Multiple subscription in the same thread In-Reply-To: References: Message-ID: <499AC561.6030608@lshift.net> Wilson, Roger wrote: > This tends to work for a few calls and then when calling > Channel.basicConsume for the second queue it hangs. Always the second > queue. The hang is unusual. That shouldn't happen. Are you using server-generated or your own consumer tags? (Phrased differently: which overload of Channel.basicConsume are you using, and if it's the one with an explicit consumer tag, how are you building the consumer tag string?) Regards, Tony -- [][][] Tony Garnock-Jones | Mob: +44 (0)7905 974 211 [][] LShift Ltd | Tel: +44 (0)20 7729 7060 [] [] http://www.lshift.net/ | Email: tonyg at lshift.net From tonyg at lshift.net Tue Feb 17 14:13:27 2009 From: tonyg at lshift.net (Tony Garnock-Jones) Date: Tue, 17 Feb 2009 14:13:27 +0000 Subject: [rabbitmq-discuss] Upgrading RabbitMQ Version in Cluster In-Reply-To: <368574aa0902091415p472f1f8bh99fc12676da2af8f@mail.gmail.com> References: <368574aa0902091415p472f1f8bh99fc12676da2af8f@mail.gmail.com> Message-ID: <499AC607.9000304@lshift.net> Hi Drew, Thank you for that. As far as I know, you're the first to write about this topic. The one hairy bit is preserving the message journal, which at the moment is not guaranteed to remain stable from version to version. It might be worth advising people to drain all the messages from the queues on each node before it is upgraded. Regards, Tony Drew Smathers wrote: > I've posted a article > (http://blog.enterthefoo.com/2009/02/notes-on-upgrading-rabbitmq-cluster.html) > detailing some of the steps I've gone through in upgrading a RabbitMQ > cluster (1.4.x to 1.5.1). I sense this is the by now means the > "right" or "safe" way to do it - especially on a live system - and as > I've indicated in the intro. Luckily, I've only had to do this on a > dev system so far - but I need to finalize a written procedure for > production. The blog posting is mostly to get ideas from other > RabbitMQ developers (or seasoned users) on the best practices for > upgrading clusters. I would appreciated any feedback. > > Regards, > -Drew > > _______________________________________________ > rabbitmq-discuss mailing list > rabbitmq-discuss at lists.rabbitmq.com > http://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss -- [][][] Tony Garnock-Jones | Mob: +44 (0)7905 974 211 [][] LShift Ltd | Tel: +44 (0)20 7729 7060 [] [] http://www.lshift.net/ | Email: tonyg at lshift.net From roger.wilson at lehman.com Tue Feb 17 14:19:48 2009 From: roger.wilson at lehman.com (Wilson, Roger) Date: Tue, 17 Feb 2009 14:19:48 -0000 Subject: [rabbitmq-discuss] Multiple subscription in the same thread In-Reply-To: <499AC561.6030608@lshift.net> References: <499AC561.6030608@lshift.net> Message-ID: This is the subscription code... consumerTag = new Long(_consumerTagCounter++).toString(); _logger.info(String.format("Starting registration of consumer for dispatch %s and consumer tag %s", _queueName, consumerTag)); _channelAMQP.basicConsume(_queueName, false, consumerTag, false, false, this); _logger.info(String.format("Completed registration of consumer for dispatch %s and consumer tag %s", _queueName, consumerTag)); This is within a Consumer derived object. When the above snippet sat in a loop over two queues it would often hang on the second subscription. I have since adapted the code to use a topic subscription, side stepping the issue. Just wondering if it should have worked. Roger -----Original Message----- From: Tony Garnock-Jones [mailto:tonyg at lshift.net] Sent: 17 February 2009 14:11 To: Wilson, Roger Cc: rabbitmq-discuss at lists.rabbitmq.com Subject: Re: [rabbitmq-discuss] Multiple subscription in the same thread Wilson, Roger wrote: > This tends to work for a few calls and then when calling > Channel.basicConsume for the second queue it hangs. Always the second > queue. The hang is unusual. That shouldn't happen. Are you using server-generated or your own consumer tags? (Phrased differently: which overload of Channel.basicConsume are you using, and if it's the one with an explicit consumer tag, how are you building the consumer tag string?) Regards, Tony -- [][][] Tony Garnock-Jones | Mob: +44 (0)7905 974 211 [][] LShift Ltd | Tel: +44 (0)20 7729 7060 [] [] http://www.lshift.net/ | Email: tonyg at lshift.net ---------------------------------------- This message is intended only for the personal and confidential use of the designated recipient(s) named above. If you are not the intended recipient of this message you are hereby notified that any review, dissemination, distribution or copying of this message is strictly prohibited. This communication is for information purposes only and should not be regarded as an offer to sell or as a solicitation of an offer to buy any financial product, an official confirmation of any transaction, or as an official statement of Lehman Brothers. Email transmission cannot be guaranteed to be secure or error-free. Therefore, we do not represent that this information is complete or accurate and it should not be relied upon as such. All information is subject to change without notice. ---------------------------------------- From tonyg at lshift.net Tue Feb 17 14:25:14 2009 From: tonyg at lshift.net (Tony Garnock-Jones) Date: Tue, 17 Feb 2009 14:25:14 +0000 Subject: [rabbitmq-discuss] Examining Queue Failover Behavior In-Reply-To: <4992F66D.1030509@cohesiveft.com> References: <3b949f090902061215k3ab288dbg4e8047b51e581183@mail.gmail.com> <269388e30902090227y36da0099h3d7e09b5113bd6a@mail.gmail.com> <3b949f090902090945w35d841c9k3decc75e910bd536@mail.gmail.com> <269388e30902110114j6b13ddcbw2f24d926e2d3e73d@mail.gmail.com> <4992F66D.1030509@cohesiveft.com> Message-ID: <499AC8CA.6010802@lshift.net> Dmitriy Samovskiy wrote: > Speaking about tools. How doable/easy/difficult would it be to develop a tool to inspect > and/or replay persister log outside of the broker's erlang vm? Maybe not all of it but > only basic.publish methods. Such tool would be shipped with broker but will run as a > standalone process launched by user on demand. Not just doable, but a very good idea. Contributions welcome :-) Replaying is interesting: you'd need to be sure to somehow arrange for the "REDELIVERED" flag to be set. That involves using a rabbit-internal API, at present. (Unless you don't care about such niceties, in which case a simple basicPublish to the default exchange (with an appropriate routing key) for each non-acked message that's either untransacted or part of a known-complete transaction would suffice.) I'd do it in two stages: something that turned a persister-log into, say, a mime/multipart document or equivalent ;-), and then a separate tool that read such a file and injected its contents into rabbitmq. So a batch-loading tool that's separate from a log-analysis tool. Regards, Tony -- [][][] Tony Garnock-Jones | Mob: +44 (0)7905 974 211 [][] LShift Ltd | Tel: +44 (0)20 7729 7060 [] [] http://www.lshift.net/ | Email: tonyg at lshift.net From rboucher at guardianmobility.com Tue Feb 17 14:25:45 2009 From: rboucher at guardianmobility.com (Robert Boucher) Date: Tue, 17 Feb 2009 09:25:45 -0500 Subject: [rabbitmq-discuss] does anybody depend on Erlang/OTP R11? In-Reply-To: <499A9BC1.8060700@lshift.net> References: <499A9BC1.8060700@lshift.net> Message-ID: <499AC8E9.3000908@guardianmobility.com> We are currently using RabbitMQ on an ARM-based embedded platform. The current OpenEmbedded cross-builing environment that we are using is limited to R11B-1. I attempted to build a later release of OTP but encountered a number of issues which I did not have time to tackle. Robert Boucher Matthias Radestock wrote: > To date RabbitMQ has been targeting Erlang/OTP R11 - it runs fine on > more recent releases but the code only has dependencies on R11 APIs, our > "binary" distributions are compiled for R11 (if they were compiled for > R12 they wouldn't run on an R11 Erlang), and our Windows bundle contains > R11B-5. > > R11 is getting quite old and we'd like to start targeting R12B-3 so that > we can take advantage of some of the features introduced in the later > releases, and ditch the various workarounds we have in place for R11 bugs. > > R12B-3 or later is available as a package for many OS distributions, > such as Ubuntu Intrepid, EPEL and macports. However, we have been > holding back on the switch to R12 because the stable Debian distribution > only contained R11. With the release of Debian "lenny" a few days ago > that has changed - it contains R12B-3. > > So my question is this: > > Does anybody have a dependency on running the R11 version of Erlang/OTP? > > > Regards, > > Matthias. > > _______________________________________________ > rabbitmq-discuss mailing list > rabbitmq-discuss at lists.rabbitmq.com > http://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss > > -- Robert Boucher Software Architect Guardian Mobility Corporation Phone: +1 613 225-8885 ext 355 Email: rboucher at guardianmobility.com From tonyg at lshift.net Tue Feb 17 14:33:46 2009 From: tonyg at lshift.net (Tony Garnock-Jones) Date: Tue, 17 Feb 2009 14:33:46 +0000 Subject: [rabbitmq-discuss] Getting Started with RabbitMQ In-Reply-To: <9e009ad0902120915w4951854av62f0c92701fd6006@mail.gmail.com> References: <167204d20902091144j6442c6bbrd45d2a45c35c4c32@mail.gmail.com> <9e009ad0902120915w4951854av62f0c92701fd6006@mail.gmail.com> Message-ID: <499ACACA.2000401@lshift.net> Joern wrote: > http://en.wikipedia.org/wiki/Advanced_Message_Queuing_Protocol > Maybe this could be helpful? Fabulous. Thanks very much. I'll try to find some time to add a few diagrams. Regards, Tony From alexis.richardson at cohesiveft.com Tue Feb 17 14:38:17 2009 From: alexis.richardson at cohesiveft.com (Alexis Richardson) Date: Tue, 17 Feb 2009 14:38:17 +0000 Subject: [rabbitmq-discuss] Getting Started with RabbitMQ In-Reply-To: <499ACACA.2000401@lshift.net> References: <167204d20902091144j6442c6bbrd45d2a45c35c4c32@mail.gmail.com> <9e009ad0902120915w4951854av62f0c92701fd6006@mail.gmail.com> <499ACACA.2000401@lshift.net> Message-ID: <167204d20902170638n991d47cw710ec384826cbfb0@mail.gmail.com> On Tue, Feb 17, 2009 at 2:33 PM, Tony Garnock-Jones wrote: > Joern wrote: >> http://en.wikipedia.org/wiki/Advanced_Message_Queuing_Protocol >> Maybe this could be helpful? > > Fabulous. Thanks very much. I'll try to find some time to add a few > diagrams. Yeah, I agree this is good stuff. My thought was that the first few paragraphs need an even simpler introduction, maybe something like "AMQP combines messaging models into one protocol, including pubsub, point to point, store and forward". I too shall try to find time to add words to that effect. a > Regards, > Tony > > > _______________________________________________ > rabbitmq-discuss mailing list > rabbitmq-discuss at lists.rabbitmq.com > http://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss > From tonyg at lshift.net Tue Feb 17 14:48:26 2009 From: tonyg at lshift.net (Tony Garnock-Jones) Date: Tue, 17 Feb 2009 14:48:26 +0000 Subject: [rabbitmq-discuss] STOMP Frame In-Reply-To: References: Message-ID: <499ACE3A.8060505@lshift.net> Dan Di Spaltro wrote: > I noticed that at the end of the STOMP frame you only have a null > character when the reference implementation looks to have a null > followed by a \n character. Am I misinterpreting this, because the > documentation doesn't seem to say anything about a null followed by a > return. Is this an issue for anyone else? IMO the wording in the protocol spec http://stomp.codehaus.org/Protocol could be tightened, but implies that a newline after the nul is an error. And personally, I think a newline after a nul is nonsensical and should be an error. I don't know how to fix this properly: ignore the spec, and supply a newline? Try to get the other implementations changed? Get the spec changed? Tony -- [][][] Tony Garnock-Jones | Mob: +44 (0)7905 974 211 [][] LShift Ltd | Tel: +44 (0)20 7729 7060 [] [] http://www.lshift.net/ | Email: tonyg at lshift.net From tonyg at lshift.net Tue Feb 17 14:55:34 2009 From: tonyg at lshift.net (Tony Garnock-Jones) Date: Tue, 17 Feb 2009 14:55:34 +0000 Subject: [rabbitmq-discuss] STOMP Error? In-Reply-To: <50c8ffe90902131749udf339ddnaafe6e960d953d@mail.gmail.com> References: <50c8ffe90902051008i36bfe6b1n3c92af8c739ba522@mail.gmail.com> <4992BBDE.3020500@lshift.net> <50c8ffe90902131749udf339ddnaafe6e960d953d@mail.gmail.com> Message-ID: <499ACFE6.5030705@lshift.net> Darien Kindlund wrote: > 1) Is it "normal" for this activity to occur every 5 minutes? Is this > a fixed time or is it variable? If it's variable, what factors > control when and how often this occurs? 5 minutes is an interesting coincidence. It's variable: it happens every 500 "persister events" -- see http://hg.rabbitmq.com/rabbitmq-server/file/1c307e454a52/src/rabbit_persister.erl#l280 and the definition of MAX_WRAP_ENTRIES at http://hg.rabbitmq.com/rabbitmq-server/file/1c307e454a52/src/rabbit_persister.erl#l52 You may wish to bump up this definition and see if it changes things for you. (Note also I am working on general improvements to the persister, but that could take Quite Some Time) > 2) When one STOMP connection generates this error, does it affect > any/all future STOMP connections? Meaning, is this error more likely > to occur with 500 connections as opposed to 5? Or does that not > matter? The system should *recover* from it; but with more connections and more activity, you'll see log rollovers more frequently, and more stress on the persister process. Tony From tonyg at lshift.net Tue Feb 17 14:57:23 2009 From: tonyg at lshift.net (Tony Garnock-Jones) Date: Tue, 17 Feb 2009 14:57:23 +0000 Subject: [rabbitmq-discuss] Multiple subscription in the same thread In-Reply-To: References: <499AC561.6030608@lshift.net> Message-ID: <499AD053.7030803@lshift.net> Wilson, Roger wrote: > Just wondering if it should have worked. Yes, it should have. If you have a small complete program that can reproduce the issue, we'd very much like to see it. This could be a bug in the Java client. Regards, Tony -- [][][] Tony Garnock-Jones | Mob: +44 (0)7905 974 211 [][] LShift Ltd | Tel: +44 (0)20 7729 7060 [] [] http://www.lshift.net/ | Email: tonyg at lshift.net From tonyg at lshift.net Tue Feb 17 14:58:10 2009 From: tonyg at lshift.net (Tony Garnock-Jones) Date: Tue, 17 Feb 2009 14:58:10 +0000 Subject: [rabbitmq-discuss] does anybody depend on Erlang/OTP R11? In-Reply-To: <499AC8E9.3000908@guardianmobility.com> References: <499A9BC1.8060700@lshift.net> <499AC8E9.3000908@guardianmobility.com> Message-ID: <499AD082.5090303@lshift.net> Robert Boucher wrote: > We are currently using RabbitMQ on an ARM-based embedded platform. The > current OpenEmbedded cross-builing environment that we are using is > limited to R11B-1. I attempted to build a later release of OTP but > encountered a number of issues which I did not have time to tackle. Aha! How interesting. I managed to get OTP built and running on an oldish OE for OpenMoko last year. Which bitbake recipes are you using? Tony From bhyde at pobox.com Tue Feb 17 15:07:59 2009 From: bhyde at pobox.com (Ben Hyde) Date: Tue, 17 Feb 2009 10:07:59 -0500 Subject: [rabbitmq-discuss] Topic exchange trouble with python's amqplib Message-ID: I've got a problem; maybe people can offer some suggestions for things to try. I've a listener on a topic exchange. Using python amqplib I connect to a topic exchange, binding a pattern, read messages off the wire, and handle them. This works great for about ten minutes at which point it hangs in the read. The rabbitmq log shows the connection starting, and when I kill my listener I see the connection_closed_abruptly. If I turn on tracing in amqplib I can watch the listener take delivery and acknowledge repeatedly until the hang occurs. Hopefully I'm doing something obviously wrong. - ben From rboucher at guardianmobility.com Tue Feb 17 15:10:36 2009 From: rboucher at guardianmobility.com (Robert Boucher) Date: Tue, 17 Feb 2009 10:10:36 -0500 Subject: [rabbitmq-discuss] does anybody depend on Erlang/OTP R11? In-Reply-To: <499AD082.5090303@lshift.net> References: <499A9BC1.8060700@lshift.net> <499AC8E9.3000908@guardianmobility.com> <499AD082.5090303@lshift.net> Message-ID: <499AD36C.3000805@guardianmobility.com> Tony Garnock-Jones wrote: > Aha! How interesting. I managed to get OTP built and running on an > oldish OE for OpenMoko last year. Which bitbake recipes are you using? > > Tony I am using the erlang_R11B.1.bb recipe from the org.openembedded.stable branch. I have not looked into the .dev branch to see if a newer recipe is available. -- Robert Boucher Software Architect Guardian Mobility Corporation Phone: +1 613 225-8885 ext 355 Email: rboucher at guardianmobility.com From tonyg at lshift.net Tue Feb 17 15:31:46 2009 From: tonyg at lshift.net (Tony Garnock-Jones) Date: Tue, 17 Feb 2009 15:31:46 +0000 Subject: [rabbitmq-discuss] Erlang/OTP on OpenEmbedded (was Re: does anybody depend on Erlang/OTP R11?) In-Reply-To: <499AD36C.3000805@guardianmobility.com> References: <499A9BC1.8060700@lshift.net> <499AC8E9.3000908@guardianmobility.com> <499AD082.5090303@lshift.net> <499AD36C.3000805@guardianmobility.com> Message-ID: <499AD862.7010809@lshift.net> Robert Boucher wrote: > I am using the erlang_R11B.1.bb recipe from the org.openembedded.stable > branch. I have not looked into the .dev branch to see if a newer recipe > is available. FWIW, http://bugs.openembedded.org/show_bug.cgi?id=3014 has my updated build scripts. Things have probably moved on since Dec '07, which is the last time I tried it all out, but they're there for the dusting-off if you're interested. Do let me know if you try them out :-) Regards, Tony -- [][][] Tony Garnock-Jones | Mob: +44 (0)7905 974 211 [][] LShift Ltd | Tel: +44 (0)20 7729 7060 [] [] http://www.lshift.net/ | Email: tonyg at lshift.net From tonyg at lshift.net Tue Feb 17 16:05:02 2009 From: tonyg at lshift.net (Tony Garnock-Jones) Date: Tue, 17 Feb 2009 16:05:02 +0000 Subject: [rabbitmq-discuss] Topic exchange trouble with python's amqplib In-Reply-To: References: Message-ID: <499AE02E.90501@lshift.net> I've little experience with amqplib, but in general, you could try running your traffic through the tracer and collecting the output. Run the Java program com.rabbitmq.tools.Tracer, copying stdout and stderr to some file, and direct your python program to connect on port 5673 (unless you supplied a different port on the Tracer command-line) instead of 5672. When the hang happens, send us either the whole collected output or the last few entries -- if it's a big file, perhaps send it to us off-list. Regards, Tony Ben Hyde wrote: > I've got a problem; maybe people can offer some suggestions for things > to try. > > I've a listener on a topic exchange. Using python amqplib I connect > to a topic > exchange, binding a pattern, read messages off the wire, and handle > them. > This works great for about ten minutes at which point it hangs in the > read. > The rabbitmq log shows the connection starting, and when I kill my > listener > I see the connection_closed_abruptly. > > If I turn on tracing in amqplib I can watch the listener take delivery > and > acknowledge repeatedly until the hang occurs. > > Hopefully I'm doing something obviously wrong. > > - ben > > _______________________________________________ > rabbitmq-discuss mailing list > rabbitmq-discuss at lists.rabbitmq.com > http://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss -- [][][] Tony Garnock-Jones | Mob: +44 (0)7905 974 211 [][] LShift Ltd | Tel: +44 (0)20 7729 7060 [] [] http://www.lshift.net/ | Email: tonyg at lshift.net From rboucher at guardianmobility.com Tue Feb 17 17:29:02 2009 From: rboucher at guardianmobility.com (Robert Boucher) Date: Tue, 17 Feb 2009 12:29:02 -0500 Subject: [rabbitmq-discuss] Erlang/OTP on OpenEmbedded (was Re: does anybody depend on Erlang/OTP R11?) In-Reply-To: <499AD862.7010809@lshift.net> References: <499A9BC1.8060700@lshift.net> <499AC8E9.3000908@guardianmobility.com> <499AD082.5090303@lshift.net> <499AD36C.3000805@guardianmobility.com> <499AD862.7010809@lshift.net> Message-ID: <499AF3DE.1050101@guardianmobility.com> An HTML attachment was scrubbed... URL: http://lists.rabbitmq.com/pipermail/rabbitmq-discuss/attachments/20090217/0fe810fa/attachment.htm From jasonjwwilliams at gmail.com Tue Feb 17 17:37:26 2009 From: jasonjwwilliams at gmail.com (Jason J. W. Williams) Date: Tue, 17 Feb 2009 10:37:26 -0700 Subject: [rabbitmq-discuss] Topic exchange trouble with python's amqplib In-Reply-To: References: Message-ID: <3b949f090902170937m654823a8r42edeeffb40bca75@mail.gmail.com> Hey Ben, Are you acknowledging the messages with basic_ack? -J On Tue, Feb 17, 2009 at 8:07 AM, Ben Hyde wrote: > I've got a problem; maybe people can offer some suggestions for things > to try. > > I've a listener on a topic exchange. Using python amqplib I connect > to a topic > exchange, binding a pattern, read messages off the wire, and handle > them. > This works great for about ten minutes at which point it hangs in the > read. > The rabbitmq log shows the connection starting, and when I kill my > listener > I see the connection_closed_abruptly. > > If I turn on tracing in amqplib I can watch the listener take delivery > and > acknowledge repeatedly until the hang occurs. > > Hopefully I'm doing something obviously wrong. > > - ben > > _______________________________________________ > rabbitmq-discuss mailing list > rabbitmq-discuss at lists.rabbitmq.com > http://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss > From jasonjwwilliams at gmail.com Tue Feb 17 18:14:42 2009 From: jasonjwwilliams at gmail.com (Jason J. W. Williams) Date: Tue, 17 Feb 2009 11:14:42 -0700 Subject: [rabbitmq-discuss] Cluster Pathology In-Reply-To: <499AC3E6.4090901@lshift.net> References: <3b949f090902091229r372a78ci84ed70b5fa5f2b68@mail.gmail.com> <49922C3C.7040004@cohesiveft.com> <3b949f090902101754n14babf88o88e6bacc875501ca@mail.gmail.com> <4992FD65.9040105@cohesiveft.com> <3b949f090902110850sa5a081fx8df758289423bfa1@mail.gmail.com> <499AC3E6.4090901@lshift.net> Message-ID: <3b949f090902171014k76f1f140t7c99e53556e0baf4@mail.gmail.com> Hey Tony > > Agreed. Our current clustering is really pretty lame as regards queues. > Exchanges are fine, being stateless, but clustered queues Need Work. > > Which, incidentally, is next on my plate. I'll be looking at pluggable > queues, distributed queues, and fixing the persister, since they all > affect the same little areas of code. That's pretty exciting. :-) What would be the difference between a pluggable and distributed queue? I owe Alexis a write-up on our use case and will get that to him this week. -J From bhyde at pobox.com Tue Feb 17 18:33:19 2009 From: bhyde at pobox.com (Ben Hyde) Date: Tue, 17 Feb 2009 13:33:19 -0500 Subject: [rabbitmq-discuss] Topic exchange trouble with python's amqplib In-Reply-To: <3b949f090902170937m654823a8r42edeeffb40bca75@mail.gmail.com> References: <3b949f090902170937m654823a8r42edeeffb40bca75@mail.gmail.com> Message-ID: yes Here is what it looks like as it goes into the hang, with amqplib's debug log enabled (which shows the channel traffic). > (60, 60): Channel.basic_deliver < (60, 80): Channel.basic_ack update ... > (60, 60): Channel.basic_deliver < (60, 80): Channel.basic_ack update ... > (60, 60): Channel.basic_deliver < (60, 80): Channel.basic_ack update ... > (60, 60): Channel.basic_deliver < (60, 80): Channel.basic_ack update ... On Feb 17, 2009, at 12:37 PM, Jason J. W. Williams wrote: > Hey Ben, > > Are you acknowledging the messages with basic_ack? > > -J > > On Tue, Feb 17, 2009 at 8:07 AM, Ben Hyde wrote: >> I've got a problem; maybe people can offer some suggestions for >> things >> to try. >> >> I've a listener on a topic exchange. Using python amqplib I connect >> to a topic >> exchange, binding a pattern, read messages off the wire, and handle >> them. >> This works great for about ten minutes at which point it hangs in the >> read. >> The rabbitmq log shows the connection starting, and when I kill my >> listener >> I see the connection_closed_abruptly. >> >> If I turn on tracing in amqplib I can watch the listener take >> delivery >> and >> acknowledge repeatedly until the hang occurs. >> >> Hopefully I'm doing something obviously wrong. >> >> - ben >> >> _______________________________________________ >> rabbitmq-discuss mailing list >> rabbitmq-discuss at lists.rabbitmq.com >> http://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss >> From dmitriy.samovskiy at cohesiveft.com Tue Feb 17 19:01:15 2009 From: dmitriy.samovskiy at cohesiveft.com (Dmitriy Samovskiy) Date: Tue, 17 Feb 2009 13:01:15 -0600 Subject: [rabbitmq-discuss] Topic exchange trouble with python's amqplib In-Reply-To: References: <3b949f090902170937m654823a8r42edeeffb40bca75@mail.gmail.com> Message-ID: <499B097B.7050100@cohesiveft.com> Ben Hyde wrote: >>> I've got a problem; maybe people can offer some suggestions for >>> things >>> to try. >>> >>> I've a listener on a topic exchange. Using python amqplib I connect >>> to a topic >>> exchange, binding a pattern, read messages off the wire, and handle >>> them. >>> This works great for about ten minutes at which point it hangs in the >>> read. Could it be tied to some event from underlying network? Maybe run tcpdump on both broker and client to make sure all packets reach their destination in each direction. Tcpdump should also show if messages published after hang occurs are being delivered to your consumer or not. Also, you might be able to isolate the issue by running your consumer code on broker machine - this will eliminate the network from the equation. HTH, Dmitriy From bhyde at pobox.com Tue Feb 17 19:58:19 2009 From: bhyde at pobox.com (Ben Hyde) Date: Tue, 17 Feb 2009 14:58:19 -0500 Subject: [rabbitmq-discuss] Topic exchange trouble with python's amqplib In-Reply-To: <499AE02E.90501@lshift.net> References: <499AE02E.90501@lshift.net> Message-ID: Thanks for all the help... Looks like the problem in the python code, someplace. On Feb 17, 2009, at 1:41 PM, Jason J. W. Williams wrote: > if there isn't any traffic for a couple of hours the conn to RMQ > will close I believe the longest quiet times are the order of a few seconds. On Feb 17, 2009, at 2:01 PM, Dmitriy Samovskiy wrote: > running your consumer code on broker machine tried that, same behavior On Feb 17, 2009, at 11:05 AM, Tony Garnock-Jones wrote: > ...you could try running your traffic through the tracer ... oh, that's fun On Feb 17, 2009, at 2:01 PM, Dmitriy Samovskiy wrote: > ...Tcpdump should also show if messages published after hang ... Didn't break out tcpdump yet, but the java tracer shows that after the hang messages are being pushed toward the python client. A bit it's tracing log cleaned up with grep -o ... 1234899260133: conn#0 ch#1 -> {#method 1234899261041: conn#0 ch#1 <- {#method 1234899261042: conn#0 ch#1 -> {#method 1234899263217: conn#0 ch#1 <- {#method 1234899263219: conn#0 ch#1 <- {#method 1234899263220: conn#0 ch#1 -> {#method 1234899263220: conn#0 ch#1 -> {#method 1234899263992: conn#0 ch#1 <- {#method 1234899263993: conn#0 ch#1 -> {#method 1234899265527: conn#0 ch#1 <- {#method 1234899265528: conn#0 ch#1 -> {#method 1234899268306: conn#0 ch#1 <- {#method 1234899268307: conn#0 ch#1 -> {#method 1234899268322: conn#0 ch#1 <- {#method 1234899268323: conn#0 ch#1 -> {#method 1234899268747: conn#0 ch#1 <- {#method 1234899268748: conn#0 ch#1 -> {#method 1234899270163: conn#0 ch#1 <- {#method 1234899270166: conn#0 ch#1 -> {#method <<-- after this it get's hung. 1234899273214: conn#0 ch#1 <- {#method 1234899273217: conn#0 ch#1 <- {#method 1234899273300: conn#0 ch#1 <- {#method 1234899273742: conn#0 ch#1 <- {#method 1234899275357: conn#0 ch#1 <- {#method 1234899278435: conn#0 ch#1 <- {#method 1234899278436: conn#0 ch#1 <- {#method 1234899278741: conn#0 ch#1 <- {#method 1234899280579: conn#0 ch#1 <- {#method 1234899283216: conn#0 ch#1 <- {#method 1234899283387: conn#0 ch#1 <- {#method 1234899283741: conn#0 ch#1 <- {#method From rdw at lindenlab.com Tue Feb 17 22:28:08 2009 From: rdw at lindenlab.com (Ryan Williams (Which)) Date: Tue, 17 Feb 2009 14:28:08 -0800 Subject: [rabbitmq-discuss] Millions of Queues Message-ID: <499B39F8.2040400@lindenlab.com> Hey all, we have a different use case for rabbit than usual. We'd like to create a rabbit cluster that handles at least 250,000 queues, with at leat 1 million total bindings; ideally we would have 20+ million and 80+ million respectively. Basically we want infinite scalability along the # of queues axis. We've been testing this configuration by using a modified ScalabilityTest that simply created oodles of queues with 4 bindings each. We observed that we were able to get up around 200,000 queues before the test would halt. At this time the server was consuming a large amount of physical memory and was entering swap. We repeated the experiment with a cluster of two machines and achieved basically the same result -- except the "primary" machine (the one ScalabilityTest was interacting with) had most of its memory consumed, and the "secondary" machine had 40% of its memory consumed by beam processes. Would we have achieved better results by manually targeting ScalabilityTest at the secondary machine as well? Are we doing something wrong in our setup here? What's the maximum number of queues that has been achieved by anyone on this list, and how did you get there? I see that in this email: http://lists.rabbitmq.com/pipermail/rabbitmq-discuss/2008-October/002150.html , Ben Hood mentions that routing complexity is O(n), where n is the number of bindings, which doesn't bode well for our particular application. Assuming that I'm interpreting that correctly, is there anything we can do to tackle that problem to enable huge numbers of queues? From matthias at lshift.net Tue Feb 17 23:09:10 2009 From: matthias at lshift.net (Matthias Radestock) Date: Tue, 17 Feb 2009 23:09:10 +0000 Subject: [rabbitmq-discuss] Millions of Queues In-Reply-To: <499B39F8.2040400@lindenlab.com> References: <499B39F8.2040400@lindenlab.com> Message-ID: <499B4396.80902@lshift.net> Ryan, Ryan Williams (Which) wrote: > Hey all, we have a different use case for rabbit than usual. We'd like > to create a rabbit cluster that handles at least 250,000 queues, with at > leat 1 million total bindings; That should be possible on a single machine with a decent amount of memory - just. > ideally we would have 20+ million and 80+ million respectively. > Basically we want infinite scalability along the # of queues axis. One problem you are going to run into here is that while queue processes reside on single nodes (and hence adding more nodes gives you more room to host the queue processes), all the routing info - i.e. queue, exchange and binding records - is held in memory on each node. 80 million binding records are unlikely to fit into physical memory. > We repeated the experiment with a cluster of two machines and achieved > basically the same result -- except the "primary" machine (the one > ScalabilityTest was interacting with) had most of its memory consumed, > and the "secondary" machine had 40% of its memory consumed by beam > processes. Would we have achieved better results by manually targeting > ScalabilityTest at the secondary machine as well? What you are observing here follows directly from the explanation above - the queue and binding records will consume memory on both machines whereas the queue processes will only consume memory on the machine on which they were created. So by targeting ScalabilityTest at both machines you'd be able to balance the memory usage. > Are we doing something wrong in our setup here? What's the maximum > number of queues that has been achieved by anyone on this list, and how > did you get there? I am pretty sure Ben managed to get to 100s of thousands of queues and bindings in his tests on a single node. > I see that in this email: > http://lists.rabbitmq.com/pipermail/rabbitmq-discuss/2008-October/002150.html > , Ben Hood mentions that routing complexity is O(n), where n is the > number of bindings, which doesn't bode well for our particular > application. Assuming that I'm interpreting that correctly, is there > anything we can do to tackle that problem to enable huge numbers of queues? Ben was referring to topic exchanges. For direct exchanges the routing cost is linear (or possibly O(n * log n)) in the number of *matching* bindings. Does your application definitely require the use of topic exchanges or would direct exchanges be sufficient? Also, regarding the 20/80 million queues/bindings, would it be possible to partition these s.t. rather than having a single RabbitMQ cluster with that number of queues/bindings you could have n individual RabbitMQ servers, each with 1/nth of the queues/bindings? That might involve your producers having to publish messages to more than one broker, and consumers consuming from more than one broker, but depending on the exact nature of your app that may not be too arduous. Matthias. From has.sox at gmail.com Tue Feb 17 23:24:42 2009 From: has.sox at gmail.com (Daniel N) Date: Wed, 18 Feb 2009 10:24:42 +1100 Subject: [rabbitmq-discuss] My App Isn't Scaling Message-ID: <2fff50390902171524p7ee7ec56w53ae08b5f6e55d66@mail.gmail.com> Hi Guys, I tried to bring this up in IRC but I couldn't get a bite. I've created an application in an attempt to learn rabbitmq via the ruby gem amqp. My basic setup is that I have a very simple web app out front that recieves requests and creates the initial message in the system. The flow goes like this: Web App Direct Exchange + Queue -> do some work (forward 1 message) -> Direct Exchange + Queue -> do stuff (forward 2 messages for each one)-> Direct Exchange + Queue -> do stuff (forward 2 messages for each one) -> Topic Exchange + routed to a queue (forward 0 messages for each one) -> finish Firstly, this is all being done on my laptop and I'm hammering it with ab and 3 instances of the web app. So firstly this is really slow. I was expecting that with 3 instances of the web app out front would increase it's concurrency a bit. What I found though was unexpected by me. I hit the system with 3 ab's and sent in 1000 requests each with a concurrecy of 40. This went through a rack app so the concurrency may not actually matter all that much. Throughout the run, the output from each worker (single worker on a queue) was sporadic. It would hammer for a bit, then pause then go again. Once the ab's had finished making requests to the web apps, and they'd finished creating messages on the rabbitmq network, the downstream workers didn't stop. Instead they continued, basically in order. The upstream one would empty, with the downstream ones paused and only consuming messages sporadically. Then once that queue was effectively finished the next consumer would become active and empty etc. It took a significant ammount of time to empty the queues and I was only getting 18rps from each web app! This is one of the most unscientific benchmarks possible and this was only observed by watching the logs of the consumers. Each hop reads from a couchdb for some information. This is about all I can think to list at the moment. I'd really appreciate any insights into why I'm seeing this build up of messages. I would think this should barely stress the rabbitmq network at all. Is it possible to attach many queues to a single Direct Exchange? All my consumers are setup as subscribers to a queue, and all direct exchanges have only one queue. Cheers Daniel -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.rabbitmq.com/pipermail/rabbitmq-discuss/attachments/20090218/7a5ab8b6/attachment.htm From 0x6e6562 at gmail.com Wed Feb 18 00:32:06 2009 From: 0x6e6562 at gmail.com (Ben Hood) Date: Wed, 18 Feb 2009 00:32:06 +0000 Subject: [rabbitmq-discuss] My App Isn't Scaling In-Reply-To: <2fff50390902171524p7ee7ec56w53ae08b5f6e55d66@mail.gmail.com> References: <2fff50390902171524p7ee7ec56w53ae08b5f6e55d66@mail.gmail.com> Message-ID: <269388e30902171632p49c19f00h6e74b07f337ee1e0@mail.gmail.com> Daniel, On Tue, Feb 17, 2009 at 11:24 PM, Daniel N wrote: > I tried to bring this up in IRC but I couldn't get a bite. Not many of the Rabbit developers are on IRC, the mailing list is always the best place. > This is about all I can think to list at the moment. I'd really appreciate > any insights into why I'm seeing this build up of messages. I would think > this should barely stress the rabbitmq network at all. Is it possible to > attach many queues to a single Direct Exchange? It's hard to tell what is going if you can't supply the code that is causing this problem - can you produce a cut down version to reproduce the issue? Ben From rdw at lindenlab.com Wed Feb 18 00:39:16 2009 From: rdw at lindenlab.com (Ryan Williams (Which)) Date: Tue, 17 Feb 2009 16:39:16 -0800 Subject: [rabbitmq-discuss] Millions of Queues In-Reply-To: <499B4396.80902@lshift.net> References: <499B39F8.2040400@lindenlab.com> <499B4396.80902@lshift.net> Message-ID: <499B58B4.6010703@lindenlab.com> Thanks for your reply, Matthias! Matthias Radestock wrote: > That should be possible on a single machine with a decent amount of > memory - just. > Yes, we basically got almost there with our 2 GB of RAM. The interesting question for us is how to grow beyond this when our needs increase. >> ideally we would have 20+ million and 80+ million respectively. >> Basically we want infinite scalability along the # of queues axis. > > One problem you are going to run into here is that while queue > processes reside on single nodes (and hence adding more nodes gives > you more room to host the queue processes), all the routing info - > i.e. queue, exchange and binding records - is held in memory on each > node. 80 million binding records are unlikely to fit into physical > memory. > Really? Each node contains a complete copy of the entire mnesia database? For some reason I thought that it did partitioning of the data. >> We repeated the experiment with a cluster of two machines and >> achieved basically the same result -- except the "primary" machine >> (the one ScalabilityTest was interacting with) had most of its memory >> consumed, and the "secondary" machine had 40% of its memory consumed >> by beam processes. Would we have achieved better results by manually >> targeting ScalabilityTest at the secondary machine as well? > > What you are observing here follows directly from the explanation > above - the queue and binding records will consume memory on both > machines whereas the queue processes will only consume memory on the > machine on which they were created. So by targeting ScalabilityTest at > both machines you'd be able to balance the memory usage. OK, we'll give a run at the test on both hosts. One thing that we'd really like is for the client to not have too much knowledge of the configuration of the cluster; so it would connect to some well-known host which would then make sure the queues created by the client are made on a host that has spare load. I imagine that connection.redirect would be helpful here. What I'm a little mystified about is that the clustering guide implies that rabbit already does this sort of load balancing -- this was why we didn't think it was necessary to run ScalabilityTest on multiple hosts. But, now that I think about it, ScalabilityTest only opens up one connection for the entire duration of the test so it's not weird that said connection only points at one host. >> Are we doing something wrong in our setup here? What's the maximum >> number of queues that has been achieved by anyone on this list, and >> how did you get there? > > I am pretty sure Ben managed to get to 100s of thousands of queues and > bindings in his tests on a single node. > >> I see that in this email: >> http://lists.rabbitmq.com/pipermail/rabbitmq-discuss/2008-October/002150.html >> , Ben Hood mentions that routing complexity is O(n), where n is the >> number of bindings, which doesn't bode well for our particular >> application. Assuming that I'm interpreting that correctly, is there >> anything we can do to tackle that problem to enable huge numbers of >> queues? > > Ben was referring to topic exchanges. For direct exchanges the routing > cost is linear (or possibly O(n * log n)) in the number of *matching* > bindings. Does your application definitely require the use of topic > exchanges or would direct exchanges be sufficient? > Direct exchanges are perfectly sufficient for our use case; so that's wonderful news! > Also, regarding the 20/80 million queues/bindings, would it be > possible to partition these s.t. rather than having a single RabbitMQ > cluster with that number of queues/bindings you could have n > individual RabbitMQ servers, each with 1/nth of the queues/bindings? > That might involve your producers having to publish messages to more > than one broker, and consumers consuming from more than one broker, > but depending on the exact nature of your app that may not be too > arduous. Yes, we could do this, but it kind of defeats the point of having a cluster if we have to partition very much manually. To be more clear about our use case, we want to create a chat room system, where each user is a member of K rooms. The way we're thinking of modeling this is that each room is represented as a (direct) routing key, and each user has an individual queue which is then bound to K routing keys. There's not really any pattern between users and rooms, so if we partitioned the queues (and thus users) among clusters, any message sent to an individual room would have to get sent to every cluster on the (small) chance that a listening user was in that cluster. It'd work for a while, but it can't possibly scale indefinitely. Is there perhaps a better way to structure this application? From rdw at lindenlab.com Wed Feb 18 03:34:52 2009 From: rdw at lindenlab.com (Ryan Williams (Which)) Date: Tue, 17 Feb 2009 19:34:52 -0800 Subject: [rabbitmq-discuss] Millions of Queues In-Reply-To: <499B58B4.6010703@lindenlab.com> References: <499B39F8.2040400@lindenlab.com> <499B4396.80902@lshift.net> <499B58B4.6010703@lindenlab.com> Message-ID: <499B81DC.5010805@lindenlab.com> Ryan Williams (Which) wrote: >> Also, regarding the 20/80 million queues/bindings, would it be >> possible to partition these s.t. rather than having a single RabbitMQ >> cluster with that number of queues/bindings you could have n >> individual RabbitMQ servers, each with 1/nth of the queues/bindings? >> That might involve your producers having to publish messages to more >> than one broker, and consumers consuming from more than one broker, >> but depending on the exact nature of your app that may not be too >> arduous. >> > Yes, we could do this, but it kind of defeats the point of having a > cluster if we have to partition very much manually. To be more clear > about our use case, we want to create a chat room system, where each > user is a member of K rooms. The way we're thinking of modeling this is > that each room is represented as a (direct) routing key, and each user > has an individual queue which is then bound to K routing keys. There's > not really any pattern between users and rooms, so if we partitioned the > queues (and thus users) among clusters, any message sent to an > individual room would have to get sent to every cluster on the (small) > chance that a listening user was in that cluster. It'd work for a > while, but it can't possibly scale indefinitely. Is there perhaps a > better way to structure this application? > Answering my own question, another way to structure this would be to partition on routing key, such that when sending to or binding to a particular routing key, the client connects to the same cluster. The downside of this is that, at the extreme, each chat room participant will have to maintain as many connections as rooms they are in (since at the extreme each chat room would be hosted in its own cluster). But assuming K (the number of chat rooms a user can be in) is finite, then it's not as bad as replicating every message across the entire cluster. From sustrik at imatix.com Wed Feb 18 06:03:29 2009 From: sustrik at imatix.com (Martin Sustrik) Date: Wed, 18 Feb 2009 07:03:29 +0100 Subject: [rabbitmq-discuss] Millions of Queues In-Reply-To: <499B81DC.5010805@lindenlab.com> References: <499B39F8.2040400@lindenlab.com> <499B4396.80902@lshift.net> <499B58B4.6010703@lindenlab.com> <499B81DC.5010805@lindenlab.com> Message-ID: <499BA4B1.4040403@imatix.com> Ryan, >>> Also, regarding the 20/80 million queues/bindings, would it be >>> possible to partition these s.t. rather than having a single RabbitMQ >>> cluster with that number of queues/bindings you could have n >>> individual RabbitMQ servers, each with 1/nth of the queues/bindings? >>> That might involve your producers having to publish messages to more >>> than one broker, and consumers consuming from more than one broker, >>> but depending on the exact nature of your app that may not be too >>> arduous. >>> >> Yes, we could do this, but it kind of defeats the point of having a >> cluster if we have to partition very much manually. To be more clear >> about our use case, we want to create a chat room system, where each >> user is a member of K rooms. The way we're thinking of modeling this is >> that each room is represented as a (direct) routing key, and each user >> has an individual queue which is then bound to K routing keys. There's >> not really any pattern between users and rooms, so if we partitioned the >> queues (and thus users) among clusters, any message sent to an >> individual room would have to get sent to every cluster on the (small) >> chance that a listening user was in that cluster. It'd work for a >> while, but it can't possibly scale indefinitely. Is there perhaps a >> better way to structure this application? >> > > Answering my own question, another way to structure this would be to > partition on routing key, such that when sending to or binding to a > particular routing key, the client connects to the same cluster. The > downside of this is that, at the extreme, each chat room participant > will have to maintain as many connections as rooms they are in (since at > the extreme each chat room would be hosted in its own cluster). But > assuming K (the number of chat rooms a user can be in) is finite, then > it's not as bad as replicating every message across the entire cluster. This is a classic example of application that requires pub/sub federation. I don't believe it's implemented in RabbitMQ yet, but it should be doable. The idea is that one broker can subscribes for messages to another broker, passing any binds/unbinds to the parent broker. That way you are able to build a tree hierarchy of brokers in your datacenter. Thus, root broker would speak to 10 subordinated brokers and each of them to 10 more subordinated brokers in its turn. Level 3 of the federation would have 100 brokers sharing the queues fairly (80M queues / 100 = 80,000 queues which seems viable). If user subscribes for particular topic (bind (myqueue, chatroom)) the bind gets propagated to from level 3 broker to level 2 broker and finally to the root broker. At that point, incoming messages are routed from root broker to level 2 broker, then to level 3 broker (where the queue resides) and finally to the user. As for memory requirements, say there are 80M users each being subscribed in average to 4 chatrooms. Total number of chatrooms is K. K is much less than 80M. On each level 3 broker, there are 80,000 queues, so there are 320,000 bindings. On level 2 broker there are 10 subordinated brokers meaning only 10 queues. Thus, the number of bindings will be limited by K - at most K*10 bindings. Same applies to the root broker. No idea whether this helps. Martin From matthias at lshift.net Wed Feb 18 08:02:22 2009 From: matthias at lshift.net (Matthias Radestock) Date: Wed, 18 Feb 2009 08:02:22 +0000 Subject: [rabbitmq-discuss] Millions of Queues In-Reply-To: <499B58B4.6010703@lindenlab.com> References: <499B39F8.2040400@lindenlab.com> <499B4396.80902@lshift.net> <499B58B4.6010703@lindenlab.com> Message-ID: <499BC08E.8020806@lshift.net> Ryan, Ryan Williams (Which) wrote: > Really? Each node contains a complete copy of the entire mnesia > database? Indeed. > One thing that we'd > really like is for the client to not have too much knowledge of the > configuration of the cluster; so it would connect to some well-known > host which would then make sure the queues created by the client are > made on a host that has spare load. I imagine that connection.redirect > would be helpful here. What I'm a little mystified about is that the > clustering guide implies that rabbit already does this sort of load > balancing -- this was why we didn't think it was necessary to run > ScalabilityTest on multiple hosts. But, now that I think about it, > ScalabilityTest only opens up one connection for the entire duration of > the test so it's not weird that said connection only points at one host. There is indeed some load balancing going on but, as you say, it will only come into play when new connections are established. Also, connection.redirect has been removed from version 0-9-1 of the AMQP spec - ordinary load balancers should do a much better job so there is no point in AMQP attempting to duplicate their functionality. > another way to structure this would be to partition on routing key, > such that when sending to or binding to a particular routing key, the > client connects to the same cluster. The downside of this is that, > at the extreme, each chat room participant will have to maintain as > many connections as rooms they are in (since at the extreme each chat > room would be hosted in its own cluster). But assuming K (the number > of chat rooms a user can be in) is finite, then it's not as bad as > replicating every message across the entire cluster. That sounds like a good way to do the partitioning - it requires very little knowledge on part of the clients and should scale very well. Matthias. From opendev at gmail.com Wed Feb 18 08:31:32 2009 From: opendev at gmail.com (Joern) Date: Wed, 18 Feb 2009 10:31:32 +0200 Subject: [rabbitmq-discuss] Getting Started with RabbitMQ In-Reply-To: <167204d20902170638n991d47cw710ec384826cbfb0@mail.gmail.com> References: <167204d20902091144j6442c6bbrd45d2a45c35c4c32@mail.gmail.com> <9e009ad0902120915w4951854av62f0c92701fd6006@mail.gmail.com> <499ACACA.2000401@lshift.net> <167204d20902170638n991d47cw710ec384826cbfb0@mail.gmail.com> Message-ID: <9e009ad0902180031r35cce3ceheba27621ceedcce1@mail.gmail.com> Hi Alexis, hi Tony, 2009/2/17 Alexis Richardson : > My thought was that the first few paragraphs need an even simpler > introduction, maybe something like "AMQP combines messaging models > into one protocol, including pubsub, point to point, store and > forward". I only wrote about the AMQP model, everything else was already there. I think there is still a quite substantial problem with the text (with others being related to it): - It does not clearly communicate the specification version targeted (0.10) - It does not clearly communicate the differences between the version (0.8 ... 0.10) I used 0.10 as it is (IMHO at least) a much more structured read than it's predecessors. Some concepts however (such as sessions) are not directly present in RabbitMQ with 0.8 being it's target (btw - how far down the road is 0.10?). Maybe someone with more knowledge about the details could write something about the key differences between the revisions? Related to that problem is that the article should highlight the failure modes (returns, the mandatory / immidiate flag, manual acks, delievery modes and unroutable messages) - these are quite important things for most users of AMQP. Since these have changed between the revisions it would make quite a lot of sense to detail failure modes and error handling in a form where the differences between the spec revisions could also be highlighted. Best regards, Joern -- From opendev at gmail.com Wed Feb 18 08:38:20 2009 From: opendev at gmail.com (Joern) Date: Wed, 18 Feb 2009 10:38:20 +0200 Subject: [rabbitmq-discuss] Getting Started with RabbitMQ In-Reply-To: <499ACACA.2000401@lshift.net> References: <167204d20902091144j6442c6bbrd45d2a45c35c4c32@mail.gmail.com> <9e009ad0902120915w4951854av62f0c92701fd6006@mail.gmail.com> <499ACACA.2000401@lshift.net> Message-ID: <9e009ad0902180038w1729f77fr48983e5e4ae221af@mail.gmail.com> Hi Tony, 2009/2/17 Tony Garnock-Jones : > Fabulous. Thanks very much. I'll try to find some time to add a few > diagrams. Thank you! I tried to clarify the relationship between the entities in a graphical way but I think I failed horribly[1]. We really should try to make the text as easy to understand as possible (without hiding the details such as entity properties or failure modes - developers are still the audience). Best regards, Joern [1]: http://i43.tinypic.com/288xoix.jpg -- From alexis.richardson at cohesiveft.com Wed Feb 18 08:47:35 2009 From: alexis.richardson at cohesiveft.com (Alexis Richardson) Date: Wed, 18 Feb 2009 08:47:35 +0000 Subject: [rabbitmq-discuss] Getting Started with RabbitMQ In-Reply-To: <9e009ad0902180031r35cce3ceheba27621ceedcce1@mail.gmail.com> References: <167204d20902091144j6442c6bbrd45d2a45c35c4c32@mail.gmail.com> <9e009ad0902120915w4951854av62f0c92701fd6006@mail.gmail.com> <499ACACA.2000401@lshift.net> <167204d20902170638n991d47cw710ec384826cbfb0@mail.gmail.com> <9e009ad0902180031r35cce3ceheba27621ceedcce1@mail.gmail.com> Message-ID: <167204d20902180047s2839fa1bxedced35859d07f34@mail.gmail.com> Joern, Thanks again for this wikipedia work, it is great for AMQP. On Wed, Feb 18, 2009 at 8:31 AM, Joern wrote: > > I used 0.10 as it is (IMHO at least) a much more structured read than > it's predecessors. Some concepts however (such as sessions) are not > directly present in RabbitMQ with 0.8 being it's target (btw - how far > down the road is 0.10?). Speaking for the RabbitMQ team, we have no current plans to implement AMQP 0-10. Instead we're moving to 0-9-1, which is a very small change from 0-8 and will lead to interop with other brokers. From there we shall attend AMQP 1.0. Speaking for the AMQP Working Group: there is 1.0 work under way, which among others things aims to refactor and simplify 0-10. It is hoped that drafts and even release candidates will be published for review by summertime. We've learnt in the past that it is not prudent to put hard dates on GA release, because baking protocols takes time and care. > Maybe someone with more knowledge about the > details could write something about the key differences between the > revisions? It's probably a good idea to do that if it can be done briefly. How about: The main technology introduced in 0-10 and subsequently, is the 'session' which abstracts a bilateral conversation across failures. Flow control and distributed transactions should also be mentioned, and more rigrorous support for JMS. IMO - These concepts are all important, but do leave the 0-10 reader craving a simpler approach. BTW, JMS has annoying and lovely impedance mismatches with AMQP. It truly is a hairy thing. > Related to that problem is that the article should highlight the > failure modes (returns, the mandatory / immidiate flag, manual acks, > delievery modes and unroutable messages) - these are quite important > things for most users of AMQP. Yes, that is a good point. Arguably the whole idea of a 'message protocol' is to standardise how parties get out of trouble. > Since these have changed between the > revisions it would make quite a lot of sense to detail failure modes > and error handling in a form where the differences between the spec > revisions could also be highlighted. Maybe ... I'd hold back from turning the wikipedia page into a new spec though ;-) alexis > Best regards, > > > Joern > -- > From alexis.richardson at cohesiveft.com Wed Feb 18 09:19:29 2009 From: alexis.richardson at cohesiveft.com (Alexis Richardson) Date: Wed, 18 Feb 2009 09:19:29 +0000 Subject: [rabbitmq-discuss] memory usage In-Reply-To: References: <20090205151617.GA31965@muspelheim.parasec.net> <498C7F1F.1060801@lshift.net> <20090209111207.GA10995@muspelheim.parasec.net> <167204d20902092327l543aae91w9e15abf9da9f7c1@mail.gmail.com> Message-ID: <167204d20902180119x387987e4xfd07d93d971c4a62@mail.gmail.com> Valentino, Did you get anywhere with this? Let us know your latest thoughts. alexis On Tue, Feb 10, 2009 at 7:59 AM, Valentino Volonghi wrote: > -----BEGIN PGP SIGNED MESSAGE----- > Hash: SHA1 > > > On Feb 9, 2009, at 11:27 PM, Alexis Richardson wrote: > >> One question (not very helpful..) >> >> Is this in your local system? I recall you mentioned EC2 and would >> like to ask whether it is on there. > > Yes, it's on a couple of EC2 c1.medium instances running Ubuntu 8.04. > > When I manage to complete the test I can get pretty good numbers > of about 4000 users connected at the same time (short requests) with > about 2500 req/sec handled on those relatively poor machines, but > the test only runs for about 15 minutes and if I keep the rate for some > more time I'm pretty sure i can get the system to reliably crash. > > The problem here, before erlang crashing because addressable space > is finished is erlang crashing for timeouts while kswapd is running :). > > - -- > Valentino Volonghi aka Dialtone > Now running MacOS X 10.5 > Home Page: http://www.twisted.it > http://www.adroll.com > > -----BEGIN PGP SIGNATURE----- > Version: GnuPG v1.4.9 (Darwin) > > iEYEARECAAYFAkmRM+YACgkQ9Llz28widGXO8gCgmfdbxqtanJShafA2mJ4AshOa > 6acAoL9c9Ra4eIERecUxSqVqZEqGp9mD > =Jkm5 > -----END PGP SIGNATURE----- > From dialtone at gmail.com Wed Feb 18 09:42:11 2009 From: dialtone at gmail.com (Valentino Volonghi) Date: Wed, 18 Feb 2009 01:42:11 -0800 Subject: [rabbitmq-discuss] memory usage In-Reply-To: <167204d20902180119x387987e4xfd07d93d971c4a62@mail.gmail.com> References: <20090205151617.GA31965@muspelheim.parasec.net> <498C7F1F.1060801@lshift.net> <20090209111207.GA10995@muspelheim.parasec.net> <167204d20902092327l543aae91w9e15abf9da9f7c1@mail.gmail.com> <167204d20902180119x387987e4xfd07d93d971c4a62@mail.gmail.com> Message-ID: <11289B40-4C0F-4A6F-A46A-2A0D6EF48661@gmail.com> -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 On Feb 18, 2009, at 1:19 AM, Alexis Richardson wrote: > Valentino, > > Did you get anywhere with this? Let us know your latest thoughts. Unfortunately we had to drop this solution after this problem. The main reason is that some things here are starting to change very very rapidly and we need to have a service up and running way before we intended to in order to meet our customers demand. I still believe that a solution with rabbitmq would have been more flexible but it's hard to argue when on the other side there's a slightly less flexible solution that is more conservative and simple (as in less components and a simpler system). We still use rabbitmq in other parts of the system as a communication bus and we probably will start using it to send small changes to the ad servers, but the reduced memory usage of the new solution plus its simplicity have won my boss over... So I haven't had time to test again under different conditions, sorry about this. - -- Valentino Volonghi aka Dialtone Now running MacOS X 10.5 Home Page: http://www.twisted.it http://www.adroll.com -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.9 (Darwin) iEYEARECAAYFAkmb1/MACgkQ9Llz28widGW75QCfetjpHXWsA3PMPeIBhbHWNwOB J54AoI9XYcSb/0y8UmjxO9QdAe1h4nQH =iDou -----END PGP SIGNATURE----- From alexis.richardson at cohesiveft.com Wed Feb 18 10:06:23 2009 From: alexis.richardson at cohesiveft.com (Alexis Richardson) Date: Wed, 18 Feb 2009 10:06:23 +0000 Subject: [rabbitmq-discuss] Millions of Queues In-Reply-To: <499BA4B1.4040403@imatix.com> References: <499B39F8.2040400@lindenlab.com> <499B4396.80902@lshift.net> <499B58B4.6010703@lindenlab.com> <499B81DC.5010805@lindenlab.com> <499BA4B1.4040403@imatix.com> Message-ID: <167204d20902180206y65b4b0d7xb36241459ae94910@mail.gmail.com> Martin, Ryan, On Wed, Feb 18, 2009 at 6:03 AM, Martin Sustrik wrote: > Ryan, > >>> To be more clear >>> about our use case, we want to create a chat room system, where each >>> user is a member of K rooms. The way we're thinking of modeling this is >>> that each room is represented as a (direct) routing key, and each user >>> has an individual queue which is then bound to K routing keys. There's >>> not really any pattern between users and rooms, so if we partitioned the >>> queues (and thus users) among clusters, any message sent to an >>> individual room would have to get sent to every cluster on the (small) >>> chance that a listening user was in that cluster. It'd work for a >>> while, but it can't possibly scale indefinitely. Is there perhaps a >>> better way to structure this application? >>> >> >> Answering my own question, another way to structure this would be to >> partition on routing key, such that when sending to or binding to a >> particular routing key, the client connects to the same cluster. As Matthias said, this is a good pattern. You may want to use hashing to provide a uniform distribution across nodes. If you look at say Twitter, a solution would work in a similar sort of way. Each user has a queue representing the consolidated feed of people whose tweets they follow. Each 'follow' relationship is a binding from that queue to the (direct) exchange. The keys can just be user names. So, each queue will be bound to the exchange N times, if the queue owner is following N people. >> The >> downside of this is that, at the extreme, each chat room participant >> will have to maintain as many connections as rooms they are in (since at >> the extreme each chat room would be hosted in its own cluster). But >> assuming K (the number of chat rooms a user can be in) is finite, then >> it's not as bad as replicating every message across the entire cluster. On option (probably not the best but worth mulling over) is to use the twitter pattern that I described. This would mean each chat room participant has exactly one connection to the cluster. The price you pay is that the chat room participant's queue contains messages from each chat room that they are in. You would need to disaggregate the feed at the point of consumption. > This is a classic example of application that requires pub/sub > federation. I don't believe it's implemented in RabbitMQ yet, but it > should be doable. Martin, you could achieve this using the relay queue in Ben's shovel, rather than a true federation, right? This is because the model you describe is actually a cascade, with messages propagating in one direction through a ramified 'branching tree' structure, with view consistency at every point. If the branches recombined, then we would want a true federation. But they don't afaict. Although, I am not convinced a federated solution is needed at all. The cluster should suffice, no? alexis From alexis.richardson at cohesiveft.com Wed Feb 18 10:07:48 2009 From: alexis.richardson at cohesiveft.com (Alexis Richardson) Date: Wed, 18 Feb 2009 10:07:48 +0000 Subject: [rabbitmq-discuss] memory usage In-Reply-To: <11289B40-4C0F-4A6F-A46A-2A0D6EF48661@gmail.com> References: <20090205151617.GA31965@muspelheim.parasec.net> <498C7F1F.1060801@lshift.net> <20090209111207.GA10995@muspelheim.parasec.net> <167204d20902092327l543aae91w9e15abf9da9f7c1@mail.gmail.com> <167204d20902180119x387987e4xfd07d93d971c4a62@mail.gmail.com> <11289B40-4C0F-4A6F-A46A-2A0D6EF48661@gmail.com> Message-ID: <167204d20902180207g2b885a19q93f782fdcf6a0d98@mail.gmail.com> Valentino, Thanks for that. We'll try to understand what was going on a bit better. As I recall you had a relay network set up, which is a use pattern we need to investigate more. alexis On Wed, Feb 18, 2009 at 9:42 AM, Valentino Volonghi wrote: > -----BEGIN PGP SIGNED MESSAGE----- > Hash: SHA1 > > > On Feb 18, 2009, at 1:19 AM, Alexis Richardson wrote: > >> Valentino, >> >> Did you get anywhere with this? Let us know your latest thoughts. > > > Unfortunately we had to drop this solution after this problem. The main > reason is that some things here are starting to change very very rapidly > and we need to have a service up and running way before we intended > to in order to meet our customers demand. > > I still believe that a solution with rabbitmq would have been more flexible > but it's hard to argue when on the other side there's a slightly less > flexible > solution that is more conservative and simple (as in less components > and a simpler system). > > We still use rabbitmq in other parts of the system as a communication > bus and we probably will start using it to send small changes to the > ad servers, but the reduced memory usage of the new solution plus > its simplicity have won my boss over... So I haven't had time to test > again under different conditions, sorry about this. > > - -- > Valentino Volonghi aka Dialtone > Now running MacOS X 10.5 > Home Page: http://www.twisted.it > http://www.adroll.com > > -----BEGIN PGP SIGNATURE----- > Version: GnuPG v1.4.9 (Darwin) > > iEYEARECAAYFAkmb1/MACgkQ9Llz28widGW75QCfetjpHXWsA3PMPeIBhbHWNwOB > J54AoI9XYcSb/0y8UmjxO9QdAe1h4nQH > =iDou > -----END PGP SIGNATURE----- > From sustrik at imatix.com Wed Feb 18 10:15:57 2009 From: sustrik at imatix.com (Martin Sustrik) Date: Wed, 18 Feb 2009 11:15:57 +0100 Subject: [rabbitmq-discuss] Millions of Queues In-Reply-To: <167204d20902180206y65b4b0d7xb36241459ae94910@mail.gmail.com> References: <499B39F8.2040400@lindenlab.com> <499B4396.80902@lshift.net> <499B58B4.6010703@lindenlab.com> <499B81DC.5010805@lindenlab.com> <499BA4B1.4040403@imatix.com> <167204d20902180206y65b4b0d7xb36241459ae94910@mail.gmail.com> Message-ID: <499BDFDD.90602@imatix.com> Alexis, >> This is a classic example of application that requires pub/sub >> federation. I don't believe it's implemented in RabbitMQ yet, but it >> should be doable. > > Martin, you could achieve this using the relay queue in Ben's shovel, > rather than a true federation, right? This is because the model you > describe is actually a cascade, with messages propagating in one > direction through a ramified 'branching tree' structure, with view > consistency at every point. If the branches recombined, then we would > want a true federation. But they don't afaict. > > Although, I am not convinced a federated solution is needed at all. > The cluster should suffice, no? It depends on the use case, of course. If the message load is moderate you can pass each message down the tree to *all* terminal brokers. These would do the matching and distribute the message to appropriate queues. If the message load is high (no idea how much traffic can 80M users produce) you can easily overload the network by passing every message to every terminal broker. In this case some kind of up-the-tree binding propagation (whether we'll call it federation or not) would be required. Martin From alexis.richardson at cohesiveft.com Wed Feb 18 10:39:24 2009 From: alexis.richardson at cohesiveft.com (Alexis Richardson) Date: Wed, 18 Feb 2009 10:39:24 +0000 Subject: [rabbitmq-discuss] Millions of Queues In-Reply-To: <499BDFDD.90602@imatix.com> References: <499B39F8.2040400@lindenlab.com> <499B4396.80902@lshift.net> <499B58B4.6010703@lindenlab.com> <499B81DC.5010805@lindenlab.com> <499BA4B1.4040403@imatix.com> <167204d20902180206y65b4b0d7xb36241459ae94910@mail.gmail.com> <499BDFDD.90602@imatix.com> Message-ID: <167204d20902180239t786da18bg1c7da60c8dfe48a2@mail.gmail.com> Martin, On Wed, Feb 18, 2009 at 10:15 AM, Martin Sustrik wrote: >> >> Although, I am not convinced a federated solution is needed at all. >> The cluster should suffice, no? > > It depends on the use case, of course. If the message load is moderate you > can pass each message down the tree to *all* terminal brokers. These would > do the matching and distribute the message to appropriate queues. For sure. > If the message load is high (no idea how much traffic can 80M users produce) > you can easily overload the network by passing every message to every > terminal broker. In this case some kind of up-the-tree binding propagation > (whether we'll call it federation or not) would be required. Although, using Ryan's model, one could still achieve this with a RabbitMQ cluster. You would need to make sure that for a given chat room K, all the queues listening to K were on the same node. The price, as Ryan stated, is that a user may then have N connections to N rooms, but that is perhaps ok. All this aside, I think we are in agreement and there are lots of ways that the propagation of bindings is useful :-) a From sustrik at imatix.com Wed Feb 18 10:49:51 2009 From: sustrik at imatix.com (Martin Sustrik) Date: Wed, 18 Feb 2009 11:49:51 +0100 Subject: [rabbitmq-discuss] Millions of Queues In-Reply-To: <167204d20902180239t786da18bg1c7da60c8dfe48a2@mail.gmail.com> References: <499B39F8.2040400@lindenlab.com> <499B4396.80902@lshift.net> <499B58B4.6010703@lindenlab.com> <499B81DC.5010805@lindenlab.com> <499BA4B1.4040403@imatix.com> <167204d20902180206y65b4b0d7xb36241459ae94910@mail.gmail.com> <499BDFDD.90602@imatix.com> <167204d20902180239t786da18bg1c7da60c8dfe48a2@mail.gmail.com> Message-ID: <499BE7CF.8080002@imatix.com> >> If the message load is high (no idea how much traffic can 80M users produce) >> you can easily overload the network by passing every message to every >> terminal broker. In this case some kind of up-the-tree binding propagation >> (whether we'll call it federation or not) would be required. > > Although, using Ryan's model, one could still achieve this with a > RabbitMQ cluster. You would need to make sure that for a given chat > room K, all the queues listening to K were on the same node. The > price, as Ryan stated, is that a user may then have N connections to N > rooms, but that is perhaps ok. Sure. Actually, if there's large number of chatrooms with every user being subscribed to just a few of them this is the optimal model. I must have gone fairly one-sided over last year always looking for the worst possible use cases, congestion scenarios etc. It's time to have a holiday :) Martin From 0x6e6562 at gmail.com Wed Feb 18 11:03:45 2009 From: 0x6e6562 at gmail.com (Ben Hood) Date: Wed, 18 Feb 2009 11:03:45 +0000 Subject: [rabbitmq-discuss] My App Isn't Scaling In-Reply-To: <2fff50390902171659m6ba3623cvf20dc5ef4085445@mail.gmail.com> References: <2fff50390902171524p7ee7ec56w53ae08b5f6e55d66@mail.gmail.com> <269388e30902171632p49c19f00h6e74b07f337ee1e0@mail.gmail.com> <2fff50390902171659m6ba3623cvf20dc5ef4085445@mail.gmail.com> Message-ID: <269388e30902180303r7ba4a06ei9159c554be7a5b39@mail.gmail.com> Daniel, On Wed, Feb 18, 2009 at 12:59 AM, Daniel N wrote: > Unfortunately I can't cut it down easily... Sure, but it does make it difficult to help you though. > I have been talking to tmm1 on IRC and he's suggested that I pop the > messages in my consumers rather than subscribe due to the way the event > machine handles subscriptions in ruby. In general a subscription should perform better than a get. In terms of tracking down any potential server side issues, it can sometimes be an idea to replicate the issue with a different client library, just to be able to rule out any client side issues. > The slow times could very well be couchdb's fault rather than the rabbit mq > so I will try to pinpoint that as an issue / not an issue and let you know. > If I can't get to the bottom of it with this I'll work out a cut down > version of what I'm doing. Yes, this would be very helpful. Ben From bhyde at pobox.com Wed Feb 18 15:19:00 2009 From: bhyde at pobox.com (Ben Hyde) Date: Wed, 18 Feb 2009 10:19:00 -0500 Subject: [rabbitmq-discuss] Topic exchange trouble with python's amqplib In-Reply-To: References: <499AE02E.90501@lshift.net> Message-ID: <7AEC6898-E02E-4E68-AB23-AFF58DAF4490@pobox.com> ben wrote: > Thanks for all the help... Looks like the problem in the python > code ... Switching to txamqp[1] resolved the issue. Now I can look forward subtle bugs of the twisted variety. - ben [1] https://launchpad.net/txamqp From dmitriy.samovskiy at cohesiveft.com Wed Feb 18 15:38:05 2009 From: dmitriy.samovskiy at cohesiveft.com (Dmitriy Samovskiy) Date: Wed, 18 Feb 2009 09:38:05 -0600 Subject: [rabbitmq-discuss] Topic exchange trouble with python's amqplib In-Reply-To: <7AEC6898-E02E-4E68-AB23-AFF58DAF4490@pobox.com> References: <499AE02E.90501@lshift.net> <7AEC6898-E02E-4E68-AB23-AFF58DAF4490@pobox.com> Message-ID: <499C2B5D.1080004@cohesiveft.com> Ben Hyde wrote: >> Thanks for all the help... Looks like the problem in the python >> code ... > > Switching to txamqp[1] resolved the issue. Now I can > look forward subtle bugs of the twisted variety. - ben > Glad to hear it worked for you. I was wondering if you could share some of your code that broke under py-amqplib when you have a chance. Just bare minimum sufficient to recreate the issue. I use py-amqplib in several relatively important places and if there is an oddity there, I would like to take a look. Thanks, Dmitriy From alexis.richardson at cohesiveft.com Wed Feb 18 20:38:04 2009 From: alexis.richardson at cohesiveft.com (Alexis Richardson) Date: Wed, 18 Feb 2009 20:38:04 +0000 Subject: [rabbitmq-discuss] erlang at facebook Message-ID: <167204d20902181238m47eabcb4l8154f6c6ed607454@mail.gmail.com> Hi, This is a kind of "one year on" blog post by the FB chat guys, with details of running a real (big) system: http://www.facebook.com/note.php?note_id=51412338919 Enjoy.. a From dan.dispaltro at gmail.com Thu Feb 19 00:40:37 2009 From: dan.dispaltro at gmail.com (Dan Di Spaltro) Date: Wed, 18 Feb 2009 16:40:37 -0800 Subject: [rabbitmq-discuss] STOMP and anonymous queue deletions Message-ID: I am using a combination of RabbitMQ and the STOMP adapter to create a comet application, so this means I have a few different clients talking to rabbit. Lets back up a bit, I am using the latest mercurial source of the application. The first one is the python Twisted clients using txamqp. For the most part everything is straightforward and works very well on the AMQP side. The second piece is the javascript piece, (which is routed through orbited). This piece is working okay. Mainly my biggest concern is that while I finally figured out how to use the exchanges correctly from JS and get all my permissions lined up I now run into a new problem. That problem is simply that my private queues I use to route messages to on the client side don't seem to properly getting cleaned up. This seems odd since I mark them in the stomp headers as auto_delete=True yet they don't clean up. Here is a bit of output rabbitmqctl list_queues name auto_delete messages consumers transactions Listing queues ... amq.gen-53+dXDPAtlBB/wuKzyMGDg== true 0 0 0 amq.gen-j+ewTR2zx3PQDCUCGhiWzA== true 0 0 0 amq.gen-4ma/+dB7D+bvXpEuXWgj0A== true 0 1 0 amq.gen-3UOPEX7YnpY1cQlG5A+qZA== true 0 0 0 ... Since there are no consumers and no messages and no transactions shouldn't queue be destroyed? Now as a browser app, it is hard to guarantee things being cleaned up perfectly, so should I consider a different way of issuing a subscribe? Below is what I use... stomp.subscribe('', {exchange:'public-ops', "routing_key":'public-'+session, "auto_delete":true" }); Now I like the multicast capabilities this brings but I would like the queue to go away once someone disconnects, is there a setting I am missing? Do you need more info? Thanks for your help! -- Dan Di Spaltro From 0x6e6562 at gmail.com Thu Feb 19 08:36:00 2009 From: 0x6e6562 at gmail.com (Ben Hood) Date: Thu, 19 Feb 2009 08:36:00 +0000 Subject: [rabbitmq-discuss] STOMP and anonymous queue deletions In-Reply-To: References: Message-ID: <269388e30902190036r6556adb7q5793a358c5c7cf56@mail.gmail.com> Dan, On Thu, Feb 19, 2009 at 12:40 AM, Dan Di Spaltro wrote: > Since there are no consumers and no messages and no transactions > shouldn't queue be destroyed? For the queues that currently have no comsumers, are you sure there was at least one consumer on each one at some time in the past? If this is not the case, then a queue cannot be auto-deleted. > Now as a browser app BTW, if you are using JS, have you looked at the http extension for Rabbit? Ben From dan.dispaltro at gmail.com Thu Feb 19 08:47:07 2009 From: dan.dispaltro at gmail.com (Dan Di Spaltro) Date: Thu, 19 Feb 2009 00:47:07 -0800 Subject: [rabbitmq-discuss] STOMP and anonymous queue deletions In-Reply-To: <269388e30902190036r6556adb7q5793a358c5c7cf56@mail.gmail.com> References: <269388e30902190036r6556adb7q5793a358c5c7cf56@mail.gmail.com> Message-ID: On Thu, Feb 19, 2009 at 12:36 AM, Ben Hood <0x6e6562 at gmail.com> wrote: > Dan, > > On Thu, Feb 19, 2009 at 12:40 AM, Dan Di Spaltro > wrote: >> Since there are no consumers and no messages and no transactions >> shouldn't queue be destroyed? > > For the queues that currently have no comsumers, are you sure there > was at least one consumer on each one at some time in the past? If > this is not the case, then a queue cannot be auto-deleted. There definitely was one consumer at one time which plucked a message of that queue, but isn't the point of auto_delete to "...the queue will be deleted automatically when no longer used. " Wouldn't no consumers constitute no longer used? Does something change with the STOMP adapter that I don't understand? > >> Now as a browser app > > BTW, if you are using JS, have you looked at the http extension for Rabbit? No I have not, however the solution I am using seems to work fine (minus the queues not auto-deleting) I don't have a bunch of time to rewrite all that pesky long polling xhr stuff that I get for free with orbited. > > Ben > -- Dan Di Spaltro From matthias at lshift.net Thu Feb 19 08:53:31 2009 From: matthias at lshift.net (Matthias Radestock) Date: Thu, 19 Feb 2009 08:53:31 +0000 Subject: [rabbitmq-discuss] STOMP and anonymous queue deletions In-Reply-To: References: <269388e30902190036r6556adb7q5793a358c5c7cf56@mail.gmail.com> Message-ID: <499D1E0B.5060309@lshift.net> Dan, Dan Di Spaltro wrote: > There definitely was one consumer at one time which plucked a message > of that queue, Actually, a STOMP 'subscribe' will always result in a consumer being created. Also note that auto_delete is the default. Did you definitely close the connections on which the 'subscribe's were issued? It might be worth first checking that there aren't any old queues hanging around before you start your test, and then, after the test, run netstat to determine whether there are still any connections open to the stomp port. Matthias. From alex.arnon at gmail.com Thu Feb 19 09:45:40 2009 From: alex.arnon at gmail.com (Alex Arnon) Date: Thu, 19 Feb 2009 11:45:40 +0200 Subject: [rabbitmq-discuss] Request: Erlang client synchronized with server distribution. Message-ID: <944da41d0902190145r7397b96cw30308aa3fa186357@mail.gmail.com> Hi guys, We would like to request that an erlang client version that is synchronized with the distributed server version be made available for download. Yes, we are aware that the client is Experimental, but having to pull and build the tip version of the server in order to have an erlang client to play around with is a little troublesome since we are trying to keep a "stable" Rabbit server around on our servers. At the very least, would it be possible to post the tag of the client version which will work with the downloadable server version? Regards, Alex. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.rabbitmq.com/pipermail/rabbitmq-discuss/attachments/20090219/b6725537/attachment.htm From 0x6e6562 at gmail.com Thu Feb 19 09:57:12 2009 From: 0x6e6562 at gmail.com (Ben Hood) Date: Thu, 19 Feb 2009 09:57:12 +0000 Subject: [rabbitmq-discuss] Request: Erlang client synchronized with server distribution. In-Reply-To: <944da41d0902190145r7397b96cw30308aa3fa186357@mail.gmail.com> References: <944da41d0902190145r7397b96cw30308aa3fa186357@mail.gmail.com> Message-ID: <269388e30902190157v7b767835n65ad1be857cac0c5@mail.gmail.com> Alex, On Thu, Feb 19, 2009 at 9:45 AM, Alex Arnon wrote: > We would like to request that an erlang client version that is synchronized > with the distributed server version be made available for download. At some stage soon we're going to promote the Erlang client to a supported status so that it has a released version that works with a known version of the server. No ETA on that though. > Yes, we > are aware that the client is Experimental, but having to pull and build the > tip version of the server in order to have an erlang client to play around > with is a little troublesome since we are trying to keep a "stable" Rabbit > server around on our servers. IMHO never use tip for any hg repo, because it is a lucky dip. Use hg up -C default instead, apart from very short periods of time, the QA'ed default branches will be in sync with each other. > At the very least, would it be possible to post the tag of the client > version which will work with the downloadable server version? I think the answer to this question is the same: always use hg up -C default Ben From emile at lshift.net Thu Feb 19 10:44:39 2009 From: emile at lshift.net (Emile Joubert) Date: Thu, 19 Feb 2009 10:44:39 +0000 Subject: [rabbitmq-discuss] .NET client version poll Message-ID: <499D3817.9090306@lshift.net> Hi all, We are contemplating dropping backwards compatiblity with .NET 1.1 when building the RabbitMQ .NET/C# client from source. It will be useful to get an indication of how many people will be negatively affected by this decision. Details about .NET support are here: http://www.rabbitmq.com/dotnet.html The binary packages for release 1.5.1 are already compiled for .NET 2.0 or later. The motivation for dropping source compatibility with .NET 1.1 is to remove the dependency on deprecated classes. Thanks for any feedback -Emile From tonyg at lshift.net Thu Feb 19 11:09:13 2009 From: tonyg at lshift.net (Tony Garnock-Jones) Date: Thu, 19 Feb 2009 11:09:13 +0000 Subject: [rabbitmq-discuss] STOMP and anonymous queue deletions In-Reply-To: <499D1E0B.5060309@lshift.net> References: <269388e30902190036r6556adb7q5793a358c5c7cf56@mail.gmail.com> <499D1E0B.5060309@lshift.net> Message-ID: <499D3DD9.9060206@lshift.net> Matthias Radestock wrote: > Also note that auto_delete is the default. ... which means that the system somehow considers the channel on which the queue was declared to still be open. Matthias' suggestion about running netstat is good one. However, it could well be something else. Looking at the output of list_queues, the consumer count is shown as zero, at the same time as auto_delete is shown as true, which is very strange. We don't collect information on whether a queue ever had a consumer as part of the list_queues output, unfortunately. Does the number of garbage queues exactly match the number of connections, or is it much smaller? If it's close to the number of connections, there may be something systematic going on, which gives us a good chance of reproducing it; but if it's much smaller, it's possible that something is happening between the queue declaration and the basic.consume that the STOMP gateway does on the client's behalf. If possible, please put a trace on one of the zombie queues (run appmon:start() and use the "trace" button in the view for rabbit), and then in another window run "rabbitmqctl list_queues". This will result in output similar to the following in the shell in which you started appmon: *DBG* <0.164.0> got call {info,[name,messages]} from <0.169.0> *DBG* <0.164.0> sent {ok,[{name,{resource,<<"/">>,queue,<<"foo">>}}, {messages,0}]} to <0.169.0>, new state {q,{amqqueue,{resource,<<47>>,queue,<<102,111,111>>},false,true,[],none},none,none,true,1,{[],[]},{[{<0.163.0>,{consumer,<<81,95,102,111,111>>,false}}],[]}} *DBG* <0.164.0> got timeout The piece of the output that we are interested in is the "{q,{...}}" part. Where my output says "true" in the fourth entry after the initial "q", yours may say "false", and if it does, that indicates that something went wrong between queue declaration and basic.consume. Regards, Tony From tonyg at lshift.net Thu Feb 19 12:08:56 2009 From: tonyg at lshift.net (Tony Garnock-Jones) Date: Thu, 19 Feb 2009 12:08:56 +0000 Subject: [rabbitmq-discuss] STOMP and anonymous queue deletions In-Reply-To: References: Message-ID: <499D4BD8.6080507@lshift.net> Hi Dan, Dan Di Spaltro wrote: > rabbitmqctl list_queues name auto_delete messages consumers transactions > Listing queues ... > amq.gen-53+dXDPAtlBB/wuKzyMGDg== true 0 0 0 > amq.gen-j+ewTR2zx3PQDCUCGhiWzA== true 0 0 0 > amq.gen-4ma/+dB7D+bvXpEuXWgj0A== true 0 1 0 > amq.gen-3UOPEX7YnpY1cQlG5A+qZA== true 0 0 0 > ... I've managed to reproduce this by SUBSCRIBE destination:anything exchange:doesntexist If the exchange doesn't exist, or anything else causes the queue.bind operation to fail, then the connection gets dropped and the queue sticks around. I'm experimenting now with a fix. Tony From eran.sandler at gmail.com Thu Feb 19 12:15:47 2009 From: eran.sandler at gmail.com (Eran Sandler) Date: Thu, 19 Feb 2009 14:15:47 +0200 Subject: [rabbitmq-discuss] .NET client version poll In-Reply-To: <499D3817.9090306@lshift.net> References: <499D3817.9090306@lshift.net> Message-ID: <5f884b720902190415w64143250p5c6f2db248bbf5bb@mail.gmail.com> We are using .NET 2.0 and should be moving up to 3.5 in the next couple of month. I support dropping 1.1 and rewrting the code to use the benefits of 2.0 (.NET 3.5 actually runs .NET CLR 2.0 SP1, so its almost the same as .NET 2.0 in terms of compiler capabilities and runtime capablities, the only difference is in some of the added libraries), i.e. Generics and friends (thought the rewrite can wait for a later release). :-) Eran On Thu, Feb 19, 2009 at 12:44 PM, Emile Joubert wrote: > > Hi all, > > We are contemplating dropping backwards compatiblity with .NET 1.1 when > building the RabbitMQ .NET/C# client from source. It will be useful to > get an indication of how many people will be negatively affected by this > decision. > > Details about .NET support are here: http://www.rabbitmq.com/dotnet.html > The binary packages for release 1.5.1 are already compiled for .NET 2.0 > or later. The motivation for dropping source compatibility with .NET 1.1 > is to remove the dependency on deprecated classes. > > > Thanks for any feedback > > > -Emile > > _______________________________________________ > rabbitmq-discuss mailing list > rabbitmq-discuss at lists.rabbitmq.com > http://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss > -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.rabbitmq.com/pipermail/rabbitmq-discuss/attachments/20090219/1ee42734/attachment.htm From tonyg at lshift.net Thu Feb 19 12:30:20 2009 From: tonyg at lshift.net (Tony Garnock-Jones) Date: Thu, 19 Feb 2009 12:30:20 +0000 Subject: [rabbitmq-discuss] STOMP and anonymous queue deletions In-Reply-To: <499D4BD8.6080507@lshift.net> References: <499D4BD8.6080507@lshift.net> Message-ID: <499D50DC.5020906@lshift.net> Hi again, Tony Garnock-Jones wrote: > I'm experimenting now with a fix. The fix is checked in. Try tip-of-default (cd rabbitmq-stomp; hg update default) if you like. I'm investigating a problem with the error reporting now. Tony From tonyg at lshift.net Thu Feb 19 12:54:15 2009 From: tonyg at lshift.net (Tony Garnock-Jones) Date: Thu, 19 Feb 2009 12:54:15 +0000 Subject: [rabbitmq-discuss] STOMP and anonymous queue deletions In-Reply-To: <499D50DC.5020906@lshift.net> References: <499D4BD8.6080507@lshift.net> <499D50DC.5020906@lshift.net> Message-ID: <499D5677.8020506@lshift.net> Hi again, Tony Garnock-Jones wrote: > I'm investigating a problem with the error reporting now. That's fixed too. Try tip-of-default. Regards, Tony From opendev at gmail.com Thu Feb 19 13:04:38 2009 From: opendev at gmail.com (Joern) Date: Thu, 19 Feb 2009 15:04:38 +0200 Subject: [rabbitmq-discuss] Getting Started with RabbitMQ In-Reply-To: <167204d20902180047s2839fa1bxedced35859d07f34@mail.gmail.com> References: <167204d20902091144j6442c6bbrd45d2a45c35c4c32@mail.gmail.com> <9e009ad0902120915w4951854av62f0c92701fd6006@mail.gmail.com> <499ACACA.2000401@lshift.net> <167204d20902170638n991d47cw710ec384826cbfb0@mail.gmail.com> <9e009ad0902180031r35cce3ceheba27621ceedcce1@mail.gmail.com> <167204d20902180047s2839fa1bxedced35859d07f34@mail.gmail.com> Message-ID: <9e009ad0902190504p545128fdyc04d3063af57d189@mail.gmail.com> Hi Alexis, 2009/2/18 Alexis Richardson : > Thanks again for this wikipedia work, it is great for AMQP. No problem. > Speaking for the RabbitMQ team, we have no current plans to implement > AMQP 0-10. Instead we're moving to 0-9-1, which is a very small > change from 0-8 and will lead to interop with other brokers. From > there we shall attend AMQP 1.0. Sounds like a good plan. > Speaking for the AMQP Working Group: there is 1.0 work under way, > which among others things aims to refactor and simplify 0-10. It is > hoped that drafts and even release candidates will be published for > review by summertime. We've learnt in the past that it is not prudent > to put hard dates on GA release, because baking protocols takes time > and care. I've taken a look. Sounds like a pretty big deal with exchanges and bindings going out of the window. > How about: The main technology introduced in 0-10 and subsequently, is > the 'session' which abstracts a bilateral conversation across > failures. Flow control and distributed transactions should also be > mentioned, and more rigrorous support for JMS. > IMO - These concepts are all important, but do leave the 0-10 reader > craving a simpler approach. I think sessions are actually make things simpler e.g. coupling the lifespan of a session to the lifespan of auto deleting, exclusive queues for instance. IMO we should just sketch a short history of the AMQP specifications and make a note that the article is about version 0.10. This probably means (among other things) we should put sessions into the model. > BTW, JMS has annoying and lovely impedance mismatches with AMQP. It > truly is a hairy thing. I never did use JMS so I can't really tell. > Yes, that is a good point. Arguably the whole idea of a 'message > protocol' is to standardise how parties get out of trouble. And this is where things get a bit involved. Did the specs involve that much between revisions? If not it would make sense to just write about the 0.10 way of handling errors. > Maybe ... I'd hold back from turning the wikipedia page into a new > spec though ;-) Of course. We should put our efforts into making the description _simple_ not complete. How should we proceed? Do we just assume 0.10 for everything, sketch out the rough differences between 0.8, 0.9 ... and make the model complete (including transactions, sessions etc.)? Best regards, Joern From alexis.richardson at cohesiveft.com Thu Feb 19 13:24:55 2009 From: alexis.richardson at cohesiveft.com (Alexis Richardson) Date: Thu, 19 Feb 2009 13:24:55 +0000 Subject: [rabbitmq-discuss] Getting Started with RabbitMQ In-Reply-To: <9e009ad0902190504p545128fdyc04d3063af57d189@mail.gmail.com> References: <167204d20902091144j6442c6bbrd45d2a45c35c4c32@mail.gmail.com> <9e009ad0902120915w4951854av62f0c92701fd6006@mail.gmail.com> <499ACACA.2000401@lshift.net> <167204d20902170638n991d47cw710ec384826cbfb0@mail.gmail.com> <9e009ad0902180031r35cce3ceheba27621ceedcce1@mail.gmail.com> <167204d20902180047s2839fa1bxedced35859d07f34@mail.gmail.com> <9e009ad0902190504p545128fdyc04d3063af57d189@mail.gmail.com> Message-ID: <167204d20902190524g2984daccm1687e024d3528f94@mail.gmail.com> Joern, On Thu, Feb 19, 2009 at 1:04 PM, Joern wrote: > >> Speaking for the AMQP Working Group: there is 1.0 work under way, >> which among others things aims to refactor and simplify 0-10. It is >> hoped that drafts and even release candidates will be published for >> review by summertime. We've learnt in the past that it is not prudent >> to put hard dates on GA release, because baking protocols takes time >> and care. > > I've taken a look. Sounds like a pretty big deal with exchanges and > bindings going out of the window. It's in draft form at the moment. The thinking is to retain the same flexibility in terms of routing, but simplify the tools needed to deliver it. > I think sessions are actually make things simpler e.g. coupling the > lifespan of a session to the lifespan of auto deleting, exclusive > queues for instance. Well, yes, possibly, provided complexity is decreased elsewhere. The 1.0 work at the moment can be seen as trying to reduce the number of moving parts back down to something more like AMQP's core elegance. > IMO we should just sketch a short history of the AMQP specifications > and make a note that the article is about version 0.10. This probably > means (among other things) we should put sessions into the model. I would not make the article about 0-10. It would be more useful to just have separate sections. > And this is where things get a bit involved. Did the specs involve > that much between revisions? If not it would make sense to just write > about the 0.10 way of handling errors. By all means write about that under the 0-10 section. Since we won't support 0-10 and nor will OpenAMQ, I'd rather see a good summary of AMQP in the abstract first of all, and smaller sections about the specs. > Of course. We should put our efforts into making the description > _simple_ not complete. > > How should we proceed? Do we just assume 0.10 for everything, sketch > out the rough differences between 0.8, 0.9 ... and make the model > complete (including transactions, sessions etc.)? I would much rather see a description of how AMQP works in general terms focussing on routing and delivery using exchanges and queues, with shorter sections on each spec. alexis From alex.arnon at gmail.com Thu Feb 19 16:06:45 2009 From: alex.arnon at gmail.com (Alex Arnon) Date: Thu, 19 Feb 2009 18:06:45 +0200 Subject: [rabbitmq-discuss] Request: Erlang client synchronized with server distribution. In-Reply-To: <269388e30902190157v7b767835n65ad1be857cac0c5@mail.gmail.com> References: <944da41d0902190145r7397b96cw30308aa3fa186357@mail.gmail.com> <269388e30902190157v7b767835n65ad1be857cac0c5@mail.gmail.com> Message-ID: <944da41d0902190806m6671a081p59cd1f5e4de878d@mail.gmail.com> Ben, Thanks for the advice! Regards, Alex. On Thu, Feb 19, 2009 at 11:57 AM, Ben Hood <0x6e6562 at gmail.com> wrote: > Alex, > > On Thu, Feb 19, 2009 at 9:45 AM, Alex Arnon wrote: > > We would like to request that an erlang client version that is > synchronized > > with the distributed server version be made available for download. > > At some stage soon we're going to promote the Erlang client to a > supported status so that it has a released version that works with a > known version of the server. No ETA on that though. > > > Yes, we > > are aware that the client is Experimental, but having to pull and build > the > > tip version of the server in order to have an erlang client to play > around > > with is a little troublesome since we are trying to keep a "stable" > Rabbit > > server around on our servers. > > IMHO never use tip for any hg repo, because it is a lucky dip. Use hg > up -C default instead, apart from very short periods of time, the > QA'ed default branches will be in sync with each other. > > > At the very least, would it be possible to post the tag of the client > > version which will work with the downloadable server version? > > I think the answer to this question is the same: always use hg up -C > default > > Ben > -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.rabbitmq.com/pipermail/rabbitmq-discuss/attachments/20090219/551b7da0/attachment.htm From riteshrathi at gmail.com Thu Feb 19 16:52:53 2009 From: riteshrathi at gmail.com (rathi) Date: Thu, 19 Feb 2009 22:22:53 +0530 Subject: [rabbitmq-discuss] Error while starting rabbitmq server. Message-ID: I am new to rabbitmq. I am trying to start the server but it is quiting with a dump I am attaching the dump. Please help me. thanks & regards, rathi -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.rabbitmq.com/pipermail/rabbitmq-discuss/attachments/20090219/e66bb2c2/attachment.htm -------------- next part -------------- A non-text attachment was scrubbed... Name: erl_crash.dump Type: application/octet-stream Size: 228671 bytes Desc: not available Url : http://lists.rabbitmq.com/pipermail/rabbitmq-discuss/attachments/20090219/e66bb2c2/attachment.obj From matthias at lshift.net Thu Feb 19 19:10:56 2009 From: matthias at lshift.net (Matthias Radestock) Date: Thu, 19 Feb 2009 19:10:56 +0000 Subject: [rabbitmq-discuss] Error while starting rabbitmq server. In-Reply-To: References: Message-ID: <499DAEC0.9060002@lshift.net> Rathi, rathi wrote: > I am trying to start the server but it is quiting > with a dump How are you starting the server? And are there any errors in the logs or on the console? Matthias. From dan.dispaltro at gmail.com Fri Feb 20 17:35:49 2009 From: dan.dispaltro at gmail.com (Dan Di Spaltro) Date: Fri, 20 Feb 2009 09:35:49 -0800 Subject: [rabbitmq-discuss] STOMP and anonymous queue deletions In-Reply-To: <499D5677.8020506@lshift.net> References: <499D4BD8.6080507@lshift.net> <499D50DC.5020906@lshift.net> <499D5677.8020506@lshift.net> Message-ID: Tony, Thanks for the help, that seemed to solve the problem! On Thu, Feb 19, 2009 at 4:54 AM, Tony Garnock-Jones wrote: > Hi again, > > Tony Garnock-Jones wrote: >> >> I'm investigating a problem with the error reporting now. > > That's fixed too. Try tip-of-default. We were definitely starting things in the wrong order, leading to that race condition. Since we can't declare exchanges in STOMP and whatnot (which is fine, since we use STOMP only in JS). Thanks for addressing the problem! > > Regards, > Tony > > -- Dan Di Spaltro From tonyg at lshift.net Sat Feb 21 12:45:32 2009 From: tonyg at lshift.net (Tony Garnock-Jones) Date: Sat, 21 Feb 2009 12:45:32 +0000 Subject: [rabbitmq-discuss] STOMP and anonymous queue deletions In-Reply-To: References: <499D4BD8.6080507@lshift.net> <499D50DC.5020906@lshift.net> <499D5677.8020506@lshift.net> Message-ID: <499FF76C.5000001@lshift.net> Hi Dan, Dan Di Spaltro wrote: > We were definitely starting things in the wrong order, leading to > that race condition. Since we can't declare exchanges in STOMP and > whatnot (which is fine, since we use STOMP only in JS). Thanks for > addressing the problem! Glad it worked for you. Have you thought about what might be a STOMPish way of declaring exchanges? BTW, the current rabbitmq-http2 code uses plain-old JSON-RPC/HTTP to expose a full(ish) suite of AMQP operations. Perhaps Orbited has a JSON-RPC adapter? Tony From aymerick at fotonauts.com Sun Feb 22 10:57:55 2009 From: aymerick at fotonauts.com (=?ISO-8859-1?Q?Aymerick_J=E9hanne?=) Date: Sun, 22 Feb 2009 11:57:55 +0100 Subject: [rabbitmq-discuss] How to set max processes number ? Message-ID: <74F9226D-99FA-467A-8010-3809CB8281E5@fotonauts.com> Hi, Can you tell me what's the best way to set the "max number of erlang processes" setting when launching rabbitmq ? I tried to add that in /etc/default/rabbitmq MULTI_ERL_ARGS=' +P 1000000' But rabbitmq still crashed a few hours latter because it reached the max number of erlang processes. So even: 1. I didn't set this value properly 2. It reached the 1 000 000 processes limit... but It should not, as I have less then 40 000 queues, and "only" a few hundreds of active channels. Someone knows how I can see how maybe erlang processes are running in rabbitmq ? Thanks, Aymerick From 0x6e6562 at gmail.com Sun Feb 22 12:38:54 2009 From: 0x6e6562 at gmail.com (Ben Hood) Date: Sun, 22 Feb 2009 12:38:54 +0000 Subject: [rabbitmq-discuss] Fwd: How to set max processes number ? In-Reply-To: <269388e30902220438h3328589as7f0ef104f5f1821d@mail.gmail.com> References: <74F9226D-99FA-467A-8010-3809CB8281E5@fotonauts.com> <269388e30902220438h3328589as7f0ef104f5f1821d@mail.gmail.com> Message-ID: <269388e30902220438r5abcede6n6033a193c90eaa70@mail.gmail.com> ---------- Forwarded message ---------- From: Ben Hood <0x6e6562 at gmail.com> Date: Sun, Feb 22, 2009 at 12:38 PM Subject: Re: [rabbitmq-discuss] How to set max processes number ? To: Aymerick J?hanne Aymerick, On Sun, Feb 22, 2009 at 10:57 AM, Aymerick J?hanne wrote: > Someone knows how I can see how maybe erlang processes are running in > rabbitmq ? Use this command in the Erlang shell: erlang:system_info(process_limit). To get a current process count, you could try this: length(processes()). Bear in mind that these stats are only relevant for the local node. HTH, Ben From matthias at lshift.net Sun Feb 22 13:12:49 2009 From: matthias at lshift.net (Matthias Radestock) Date: Sun, 22 Feb 2009 13:12:49 +0000 Subject: [rabbitmq-discuss] How to set max processes number ? In-Reply-To: <74F9226D-99FA-467A-8010-3809CB8281E5@fotonauts.com> References: <74F9226D-99FA-467A-8010-3809CB8281E5@fotonauts.com> Message-ID: <49A14F51.8030401@lshift.net> Aymerick, Aymerick J?hanne wrote: > Can you tell me what's the best way to set the "max number of erlang > processes" setting when launching rabbitmq ? > > I tried to add that in /etc/default/rabbitmq > MULTI_ERL_ARGS=' > +P 1000000' > > But rabbitmq still crashed a few hours latter because it reached the > max number of erlang processes. The above settings (like all MULTI_* settings) only affect the launcher, not the server. Try setting SERVER_ERL_ARGS - see the rabbitmq-server script for the default values. Matthias. From dan.dispaltro at gmail.com Mon Feb 23 09:00:35 2009 From: dan.dispaltro at gmail.com (Dan Di Spaltro) Date: Mon, 23 Feb 2009 01:00:35 -0800 Subject: [rabbitmq-discuss] STOMP and anonymous queue deletions In-Reply-To: <499FF76C.5000001@lshift.net> References: <499D4BD8.6080507@lshift.net> <499D50DC.5020906@lshift.net> <499D5677.8020506@lshift.net> <499FF76C.5000001@lshift.net> Message-ID: Hey Tony, On Sat, Feb 21, 2009 at 4:45 AM, Tony Garnock-Jones wrote: > Hi Dan, > > Dan Di Spaltro wrote: >> >> We were definitely starting things in the wrong order, leading to >> that race condition. Since we can't declare exchanges in STOMP and >> whatnot (which is fine, since we use STOMP only in JS). Thanks for >> addressing the problem! > > Glad it worked for you. Have you thought about what might be a STOMPish way > of declaring exchanges? It seems like the most selling point of the STOMP and rabbit is that it is a dumbed down version of AMQP that can be sufficient for things like JS. I am not sure how many share that same view, > > BTW, the current rabbitmq-http2 code uses plain-old JSON-RPC/HTTP to expose > a full(ish) suite of AMQP operations. Perhaps Orbited has a JSON-RPC > adapter? > I just acts as a medium to handle all the forever frame and whatever hacks it uses to make all browsers support comet, so I imagine it wouldn't take too long to implement, but I don't think it comes with that out of the box. > Tony > -- Dan Di Spaltro From jewel at subvert-the-dominant-paradigm.net Tue Feb 24 11:52:08 2009 From: jewel at subvert-the-dominant-paradigm.net (John Leuner) Date: Tue, 24 Feb 2009 13:52:08 +0200 Subject: [rabbitmq-discuss] Debian rabbitmq-server package rejected In-Reply-To: References: Message-ID: <1235476328.4289.52.camel@cmalu.WAG54GS> There were some queries from the Debian ftpmaster about rabbitmq's copyright. 1. We should explicitly list the copyright and (BSD License) for amqp-0.8.json at the top of debian/copyright 2. > the files src/tcp_* seem to be taken from the cacherl project: > http://code.google.com/p/cacherl/ which is listed as being LGPL, but > there is no mention of this in debian/copyright. Can you please get a > clarification on the origin and distribution license of this code 3. In debian/copyright we list the copyright and license as: Copyright: 2006-2009 Rabbit Technologies Ltd. License: The RabbitMQ server is licensed under the MPL. but further down in the actual text of the MPL license there are additional copyright holders --- The Initial Developers of the Original Code are LShift Ltd, Cohesive Financial Technologies LLC, and Rabbit Technologies Ltd. Portions created before 22-Nov-2008 00:00:00 GMT by LShift Ltd, Cohesive Financial Technologies LLC, or Rabbit Technologies Ltd are Copyright (C) 2007-2008 LShift Ltd, Cohesive Financial Technologies LLC, and Rabbit Technologies Ltd. Portions created by LShift Ltd are Copyright (C) 2007-2009 LShift Ltd. Portions created by Cohesive Financial Technologies LLC are Copyright (C) 2007-2009 Cohesive Financial Technologies LLC. Portions created by Rabbit Technologies Ltd are Copyright (C) 2007-2009 Rabbit Technologies Ltd. --- We need to address these issues and any other possible copyright/license problems before submitting to Debian again. John Leuner On Tue, 2009-02-24 at 04:16 +0000, Mike O'Connor wrote: > Hi maintainer, > > REJECT: enhance copyright, clarify origin of source > > I'm sorry, but I must REJECT this package at this time. > > codegen/amqp-0.8.json appears to have a different distribution license > than MPL 1.1, which is the only license menitoned in debian/copyrigh > > --- > > the files src/tcp_* seem to be taken from the cacherl project: > http://code.google.com/p/cacherl/ which is listed as being LGPL, but > there is no mention of this in debian/copyright. Can you please get a > clarification on the origin and distribution license of this code > > --- > > debian/rules says: > Copyright: 2006-2009 Rabbit Technologies Ltd. > > But there are several other copyright holders mentioned below, can you > please list them all near the top with this copyright holder? > > > bye, > stew > > > > === > > If you don't understand why your files were rejected, or if the > override file requires editing, reply to this email. From matthias at lshift.net Tue Feb 24 12:31:07 2009 From: matthias at lshift.net (Matthias Radestock) Date: Tue, 24 Feb 2009 12:31:07 +0000 Subject: [rabbitmq-discuss] Debian rabbitmq-server package rejected In-Reply-To: <1235476328.4289.52.camel@cmalu.WAG54GS> References: <1235476328.4289.52.camel@cmalu.WAG54GS> Message-ID: <49A3E88B.1050608@lshift.net> John, John Leuner wrote: > There were some queries from the Debian ftpmaster about rabbitmq's > copyright. > > 1. We should explicitly list the copyright and (BSD License) for > amqp-0.8.json at the top of debian/copyright > > 2. >> the files src/tcp_* seem to be taken from the cacherl project: >> http://code.google.com/p/cacherl/ It's the other way round. It looks like the cacherl folks simply copied the code that *I* wrote (and first released as part of RabbitMQ 1.1.0 in August 2007), removed all copyright and licensing notices, and added themselves as the author. > 3. In debian/copyright we list the copyright and license as: > > Copyright: 2006-2009 Rabbit Technologies Ltd. > > License: > The RabbitMQ server is licensed under the MPL. > > but further down in the actual text of the MPL license there are > additional copyright holders What's the best way of fixing that and point 1 above? Do we simply need to tweak debian/copyright? If so, could you please make those changes and send the amended file back to me? I can then make sure it gets incorporated in the next release. Regards, Matthias. From jewel at subvert-the-dominant-paradigm.net Tue Feb 24 14:28:46 2009 From: jewel at subvert-the-dominant-paradigm.net (John Leuner) Date: Tue, 24 Feb 2009 16:28:46 +0200 Subject: [rabbitmq-discuss] Debian rabbitmq-server package rejected In-Reply-To: <49A3E88B.1050608@lshift.net> References: <1235476328.4289.52.camel@cmalu.WAG54GS> <49A3E88B.1050608@lshift.net> Message-ID: <1235485726.4289.74.camel@cmalu.WAG54GS> On Tue, 2009-02-24 at 12:31 +0000, Matthias Radestock wrote: > John, > > John Leuner wrote: > > There were some queries from the Debian ftpmaster about rabbitmq's > > copyright. > > > > 1. We should explicitly list the copyright and (BSD License) for > > amqp-0.8.json at the top of debian/copyright > > > > 2. > >> the files src/tcp_* seem to be taken from the cacherl project: > >> http://code.google.com/p/cacherl/ > > It's the other way round. It looks like the cacherl folks simply copied > the code that *I* wrote (and first released as part of RabbitMQ 1.1.0 in > August 2007), removed all copyright and licensing notices, and added > themselves as the author. > > > 3. In debian/copyright we list the copyright and license as: > > > > Copyright: 2006-2009 Rabbit Technologies Ltd. > > > > License: > > The RabbitMQ server is licensed under the MPL. > > > > but further down in the actual text of the MPL license there are > > additional copyright holders > > What's the best way of fixing that and point 1 above? Do we simply need > to tweak debian/copyright? If so, could you please make those changes > and send the amended file back to me? I can then make sure it gets > incorporated in the next release. Yes, please have a look at my changes attached. For point 2. I will make a comment in the changelog saying that cacherl post-dates rabbit and that you have claimed you are the original author. John -------------- next part -------------- This package was debianized by Tony Garnock-Jones on Wed, 3 Jan 2007 15:43:44 +0000. It was downloaded from http://www.rabbitmq.com/ codegen/amqp-0.8.json is released under the MIT License and is Copyright (C) 2008-2009 LShift Ltd, Cohesive Financial Technologies LLC, and Rabbit Technologies Ltd. The rest of this package is licensed under the Mozilla Public License 1.1 Authors and Copyright are as described below: The Initial Developers of the Original Code are LShift Ltd, Cohesive Financial Technologies LLC, and Rabbit Technologies Ltd. Portions created before 22-Nov-2008 00:00:00 GMT by LShift Ltd, Cohesive Financial Technologies LLC, or Rabbit Technologies Ltd are Copyright (C) 2007-2008 LShift Ltd, Cohesive Financial Technologies LLC, and Rabbit Technologies Ltd. Portions created by LShift Ltd are Copyright (C) 2007-2009 LShift Ltd. Portions created by Cohesive Financial Technologies LLC are Copyright (C) 2007-2009 Cohesive Financial Technologies LLC. Portions created by Rabbit Technologies Ltd are Copyright (C) 2007-2009 Rabbit Technologies Ltd. MOZILLA PUBLIC LICENSE Version 1.1 --------------- 1. Definitions. 1.0.1. "Commercial Use" means distribution or otherwise making the Covered Code available to a third party. 1.1. "Contributor" means each entity that creates or contributes to the creation of Modifications. 1.2. "Contributor Version" means the combination of the Original Code, prior Modifications used by a Contributor, and the Modifications made by that particular Contributor. 1.3. "Covered Code" means the Original Code or Modifications or the combination of the Original Code and Modifications, in each case including portions thereof. 1.4. "Electronic Distribution Mechanism" means a mechanism generally accepted in the software development community for the electronic transfer of data. 1.5. "Executable" means Covered Code in any form other than Source Code. 1.6. "Initial Developer" means the individual or entity identified as the Initial Developer in the Source Code notice required by Exhibit A. 1.7. "Larger Work" means a work which combines Covered Code or portions thereof with code not governed by the terms of this License. 1.8. "License" means this document. 1.8.1. "Licensable" means having the right to grant, to the maximum extent possible, whether at the time of the initial grant or subsequently acquired, any and all of the rights conveyed herein. 1.9. "Modifications" means any addition to or deletion from the substance or structure of either the Original Code or any previous Modifications. When Covered Code is released as a series of files, a Modification is: A. Any addition to or deletion from the contents of a file containing Original Code or previous Modifications. B. Any new file that contains any part of the Original Code or previous Modifications. 1.10. "Original Code" means Source Code of computer software code which is described in the Source Code notice required by Exhibit A as Original Code, and which, at the time of its release under this License is not already Covered Code governed by this License. 1.10.1. "Patent Claims" means any patent claim(s), now owned or hereafter acquired, including without limitation, method, process, and apparatus claims, in any patent Licensable by grantor. 1.11. "Source Code" means the preferred form of the Covered Code for making modifications to it, including all modules it contains, plus any associated interface definition files, scripts used to control compilation and installation of an Executable, or source code differential comparisons against either the Original Code or another well known, available Covered Code of the Contributor's choice. The Source Code can be in a compressed or archival form, provided the appropriate decompression or de-archiving software is widely available for no charge. 1.12. "You" (or "Your") means an individual or a legal entity exercising rights under, and complying with all of the terms of, this License or a future version of this License issued under Section 6.1. For legal entities, "You" includes any entity which controls, is controlled by, or is under common control with You. For purposes of this definition, "control" means (a) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (b) ownership of more than fifty percent (50%) of the outstanding shares or beneficial ownership of such entity. 2. Source Code License. 2.1. The Initial Developer Grant. The Initial Developer hereby grants You a world-wide, royalty-free, non-exclusive license, subject to third party intellectual property claims: (a) under intellectual property rights (other than patent or trademark) Licensable by Initial Developer to use, reproduce, modify, display, perform, sublicense and distribute the Original Code (or portions thereof) with or without Modifications, and/or as part of a Larger Work; and (b) under Patents Claims infringed by the making, using or selling of Original Code, to make, have made, use, practice, sell, and offer for sale, and/or otherwise dispose of the Original Code (or portions thereof). (c) the licenses granted in this Section 2.1(a) and (b) are effective on the date Initial Developer first distributes Original Code under the terms of this License. (d) Notwithstanding Section 2.1(b) above, no patent license is granted: 1) for code that You delete from the Original Code; 2) separate from the Original Code; or 3) for infringements caused by: i) the modification of the Original Code or ii) the combination of the Original Code with other software or devices. 2.2. Contributor Grant. Subject to third party intellectual property claims, each Contributor hereby grants You a world-wide, royalty-free, non-exclusive license (a) under intellectual property rights (other than patent or trademark) Licensable by Contributor, to use, reproduce, modify, display, perform, sublicense and distribute the Modifications created by such Contributor (or portions thereof) either on an unmodified basis, with other Modifications, as Covered Code and/or as part of a Larger Work; and (b) under Patent Claims infringed by the making, using, or selling of Modifications made by that Contributor either alone and/or in combination with its Contributor Version (or portions of such combination), to make, use, sell, offer for sale, have made, and/or otherwise dispose of: 1) Modifications made by that Contributor (or portions thereof); and 2) the combination of Modifications made by that Contributor with its Contributor Version (or portions of such combination). (c) the licenses granted in Sections 2.2(a) and 2.2(b) are effective on the date Contributor first makes Commercial Use of the Covered Code. (d) Notwithstanding Section 2.2(b) above, no patent license is granted: 1) for any code that Contributor has deleted from the Contributor Version; 2) separate from the Contributor Version; 3) for infringements caused by: i) third party modifications of Contributor Version or ii) the combination of Modifications made by that Contributor with other software (except as part of the Contributor Version) or other devices; or 4) under Patent Claims infringed by Covered Code in the absence of Modifications made by that Contributor. 3. Distribution Obligations. 3.1. Application of License. The Modifications which You create or to which You contribute are governed by the terms of this License, including without limitation Section 2.2. The Source Code version of Covered Code may be distributed only under the terms of this License or a future version of this License released under Section 6.1, and You must include a copy of this License with every copy of the Source Code You distribute. You may not offer or impose any terms on any Source Code version that alters or restricts the applicable version of this License or the recipients' rights hereunder. However, You may include an additional document offering the additional rights described in Section 3.5. 3.2. Availability of Source Code. Any Modification which You create or to which You contribute must be made available in Source Code form under the terms of this License either on the same media as an Executable version or via an accepted Electronic Distribution Mechanism to anyone to whom you made an Executable version available; and if made available via Electronic Distribution Mechanism, must remain available for at least twelve (12) months after the date it initially became available, or at least six (6) months after a subsequent version of that particular Modification has been made available to such recipients. You are responsible for ensuring that the Source Code version remains available even if the Electronic Distribution Mechanism is maintained by a third party. 3.3. Description of Modifications. You must cause all Covered Code to which You contribute to contain a file documenting the changes You made to create that Covered Code and the date of any change. You must include a prominent statement that the Modification is derived, directly or indirectly, from Original Code provided by the Initial Developer and including the name of the Initial Developer in (a) the Source Code, and (b) in any notice in an Executable version or related documentation in which You describe the origin or ownership of the Covered Code. 3.4. Intellectual Property Matters (a) Third Party Claims. If Contributor has knowledge that a license under a third party's intellectual property rights is required to exercise the rights granted by such Contributor under Sections 2.1 or 2.2, Contributor must include a text file with the Source Code distribution titled "LEGAL" which describes the claim and the party making the claim in sufficient detail that a recipient will know whom to contact. If Contributor obtains such knowledge after the Modification is made available as described in Section 3.2, Contributor shall promptly modify the LEGAL file in all copies Contributor makes available thereafter and shall take other steps (such as notifying appropriate mailing lists or newsgroups) reasonably calculated to inform those who received the Covered Code that new knowledge has been obtained. (b) Contributor APIs. If Contributor's Modifications include an application programming interface and Contributor has knowledge of patent licenses which are reasonably necessary to implement that API, Contributor must also include this information in the LEGAL file. (c) Representations. Contributor represents that, except as disclosed pursuant to Section 3.4(a) above, Contributor believes that Contributor's Modifications are Contributor's original creation(s) and/or Contributor has sufficient rights to grant the rights conveyed by this License. 3.5. Required Notices. You must duplicate the notice in Exhibit A in each file of the Source Code. If it is not possible to put such notice in a particular Source Code file due to its structure, then You must include such notice in a location (such as a relevant directory) where a user would be likely to look for such a notice. If You created one or more Modification(s) You may add your name as a Contributor to the notice described in Exhibit A. You must also duplicate this License in any documentation for the Source Code where You describe recipients' rights or ownership rights relating to Covered Code. You may choose to offer, and to charge a fee for, warranty, support, indemnity or liability obligations to one or more recipients of Covered Code. However, You may do so only on Your own behalf, and not on behalf of the Initial Developer or any Contributor. You must make it absolutely clear than any such warranty, support, indemnity or liability obligation is offered by You alone, and You hereby agree to indemnify the Initial Developer and every Contributor for any liability incurred by the Initial Developer or such Contributor as a result of warranty, support, indemnity or liability terms You offer. 3.6. Distribution of Executable Versions. You may distribute Covered Code in Executable form only if the requirements of Section 3.1-3.5 have been met for that Covered Code, and if You include a notice stating that the Source Code version of the Covered Code is available under the terms of this License, including a description of how and where You have fulfilled the obligations of Section 3.2. The notice must be conspicuously included in any notice in an Executable version, related documentation or collateral in which You describe recipients' rights relating to the Covered Code. You may distribute the Executable version of Covered Code or ownership rights under a license of Your choice, which may contain terms different from this License, provided that You are in compliance with the terms of this License and that the license for the Executable version does not attempt to limit or alter the recipient's rights in the Source Code version from the rights set forth in this License. If You distribute the Executable version under a different license You must make it absolutely clear that any terms which differ from this License are offered by You alone, not by the Initial Developer or any Contributor. You hereby agree to indemnify the Initial Developer and every Contributor for any liability incurred by the Initial Developer or such Contributor as a result of any such terms You offer. 3.7. Larger Works. You may create a Larger Work by combining Covered Code with other code not governed by the terms of this License and distribute the Larger Work as a single product. In such a case, You must make sure the requirements of this License are fulfilled for the Covered Code. 4. Inability to Comply Due to Statute or Regulation. If it is impossible for You to comply with any of the terms of this License with respect to some or all of the Covered Code due to statute, judicial order, or regulation then You must: (a) comply with the terms of this License to the maximum extent possible; and (b) describe the limitations and the code they affect. Such description must be included in the LEGAL file described in Section 3.4 and must be included with all distributions of the Source Code. Except to the extent prohibited by statute or regulation, such description must be sufficiently detailed for a recipient of ordinary skill to be able to understand it. 5. Application of this License. This License applies to code to which the Initial Developer has attached the notice in Exhibit A and to related Covered Code. 6. Versions of the License. 6.1. New Versions. Netscape Communications Corporation ("Netscape") may publish revised and/or new versions of the License from time to time. Each version will be given a distinguishing version number. 6.2. Effect of New Versions. Once Covered Code has been published under a particular version of the License, You may always continue to use it under the terms of that version. You may also choose to use such Covered Code under the terms of any subsequent version of the License published by Netscape. No one other than Netscape has the right to modify the terms applicable to Covered Code created under this License. 6.3. Derivative Works. If You create or use a modified version of this License (which you may only do in order to apply it to code which is not already Covered Code governed by this License), You must (a) rename Your license so that the phrases "Mozilla", "MOZILLAPL", "MOZPL", "Netscape", "MPL", "NPL" or any confusingly similar phrase do not appear in your license (except to note that your license differs from this License) and (b) otherwise make it clear that Your version of the license contains terms which differ from the Mozilla Public License and Netscape Public License. (Filling in the name of the Initial Developer, Original Code or Contributor in the notice described in Exhibit A shall not of themselves be deemed to be modifications of this License.) 7. DISCLAIMER OF WARRANTY. COVERED CODE IS PROVIDED UNDER THIS LICENSE ON AN "AS IS" BASIS, WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, WITHOUT LIMITATION, WARRANTIES THAT THE COVERED CODE IS FREE OF DEFECTS, MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE OR NON-INFRINGING. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE COVERED CODE IS WITH YOU. SHOULD ANY COVERED CODE PROVE DEFECTIVE IN ANY RESPECT, YOU (NOT THE INITIAL DEVELOPER OR ANY OTHER CONTRIBUTOR) ASSUME THE COST OF ANY NECESSARY SERVICING, REPAIR OR CORRECTION. THIS DISCLAIMER OF WARRANTY CONSTITUTES AN ESSENTIAL PART OF THIS LICENSE. NO USE OF ANY COVERED CODE IS AUTHORIZED HEREUNDER EXCEPT UNDER THIS DISCLAIMER. 8. TERMINATION. 8.1. This License and the rights granted hereunder will terminate automatically if You fail to comply with terms herein and fail to cure such breach within 30 days of becoming aware of the breach. All sublicenses to the Covered Code which are properly granted shall survive any termination of this License. Provisions which, by their nature, must remain in effect beyond the termination of this License shall survive. 8.2. If You initiate litigation by asserting a patent infringement claim (excluding declatory judgment actions) against Initial Developer or a Contributor (the Initial Developer or Contributor against whom You file such action is referred to as "Participant") alleging that: (a) such Participant's Contributor Version directly or indirectly infringes any patent, then any and all rights granted by such Participant to You under Sections 2.1 and/or 2.2 of this License shall, upon 60 days notice from Participant terminate prospectively, unless if within 60 days after receipt of notice You either: (i) agree in writing to pay Participant a mutually agreeable reasonable royalty for Your past and future use of Modifications made by such Participant, or (ii) withdraw Your litigation claim with respect to the Contributor Version against such Participant. If within 60 days of notice, a reasonable royalty and payment arrangement are not mutually agreed upon in writing by the parties or the litigation claim is not withdrawn, the rights granted by Participant to You under Sections 2.1 and/or 2.2 automatically terminate at the expiration of the 60 day notice period specified above. (b) any software, hardware, or device, other than such Participant's Contributor Version, directly or indirectly infringes any patent, then any rights granted to You by such Participant under Sections 2.1(b) and 2.2(b) are revoked effective as of the date You first made, used, sold, distributed, or had made, Modifications made by that Participant. 8.3. If You assert a patent infringement claim against Participant alleging that such Participant's Contributor Version directly or indirectly infringes any patent where such claim is resolved (such as by license or settlement) prior to the initiation of patent infringement litigation, then the reasonable value of the licenses granted by such Participant under Sections 2.1 or 2.2 shall be taken into account in determining the amount or value of any payment or license. 8.4. In the event of termination under Sections 8.1 or 8.2 above, all end user license agreements (excluding distributors and resellers) which have been validly granted by You or any distributor hereunder prior to termination shall survive termination. 9. LIMITATION OF LIABILITY. UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY, WHETHER TORT (INCLUDING NEGLIGENCE), CONTRACT, OR OTHERWISE, SHALL YOU, THE INITIAL DEVELOPER, ANY OTHER CONTRIBUTOR, OR ANY DISTRIBUTOR OF COVERED CODE, OR ANY SUPPLIER OF ANY OF SUCH PARTIES, BE LIABLE TO ANY PERSON FOR ANY INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY CHARACTER INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF GOODWILL, WORK STOPPAGE, COMPUTER FAILURE OR MALFUNCTION, OR ANY AND ALL OTHER COMMERCIAL DAMAGES OR LOSSES, EVEN IF SUCH PARTY SHALL HAVE BEEN INFORMED OF THE POSSIBILITY OF SUCH DAMAGES. THIS LIMITATION OF LIABILITY SHALL NOT APPLY TO LIABILITY FOR DEATH OR PERSONAL INJURY RESULTING FROM SUCH PARTY'S NEGLIGENCE TO THE EXTENT APPLICABLE LAW PROHIBITS SUCH LIMITATION. SOME JURISDICTIONS DO NOT ALLOW THE EXCLUSION OR LIMITATION OF INCIDENTAL OR CONSEQUENTIAL DAMAGES, SO THIS EXCLUSION AND LIMITATION MAY NOT APPLY TO YOU. 10. U.S. GOVERNMENT END USERS. The Covered Code is a "commercial item," as that term is defined in 48 C.F.R. 2.101 (Oct. 1995), consisting of "commercial computer software" and "commercial computer software documentation," as such terms are used in 48 C.F.R. 12.212 (Sept. 1995). Consistent with 48 C.F.R. 12.212 and 48 C.F.R. 227.7202-1 through 227.7202-4 (June 1995), all U.S. Government End Users acquire Covered Code with only those rights set forth herein. 11. MISCELLANEOUS. This License represents the complete agreement concerning subject matter hereof. If any provision of this License is held to be unenforceable, such provision shall be reformed only to the extent necessary to make it enforceable. This License shall be governed by California law provisions (except to the extent applicable law, if any, provides otherwise), excluding its conflict-of-law provisions. With respect to disputes in which at least one party is a citizen of, or an entity chartered or registered to do business in the United States of America, any litigation relating to this License shall be subject to the jurisdiction of the Federal Courts of the Northern District of California, with venue lying in Santa Clara County, California, with the losing party responsible for costs, including without limitation, court costs and reasonable attorneys' fees and expenses. The application of the United Nations Convention on Contracts for the International Sale of Goods is expressly excluded. Any law or regulation which provides that the language of a contract shall be construed against the drafter shall not apply to this License. 12. RESPONSIBILITY FOR CLAIMS. As between Initial Developer and the Contributors, each party is responsible for claims and damages arising, directly or indirectly, out of its utilization of rights under this License and You agree to work with Initial Developer and Contributors to distribute such responsibility on an equitable basis. Nothing herein is intended or shall be deemed to constitute any admission of liability. 13. MULTIPLE-LICENSED CODE. Initial Developer may designate portions of the Covered Code as "Multiple-Licensed". "Multiple-Licensed" means that the Initial Developer permits you to utilize portions of the Covered Code under Your choice of the NPL or the alternative licenses, if any, specified by the Initial Developer in the file described in Exhibit A. EXHIBIT A -Mozilla Public License. ``The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is RabbitMQ. The Initial Developers of the Original Code are LShift Ltd, Cohesive Financial Technologies LLC, and Rabbit Technologies Ltd. Portions created before 22-Nov-2008 00:00:00 GMT by LShift Ltd, Cohesive Financial Technologies LLC, or Rabbit Technologies Ltd are Copyright (C) 2007-2008 LShift Ltd, Cohesive Financial Technologies LLC, and Rabbit Technologies Ltd. Portions created by LShift Ltd are Copyright (C) 2007-2009 LShift Ltd. Portions created by Cohesive Financial Technologies LLC are Copyright (C) 2007-2009 Cohesive Financial Technologies LLC. Portions created by Rabbit Technologies Ltd are Copyright (C) 2007-2009 Rabbit Technologies Ltd. All Rights Reserved. Contributor(s): ______________________________________.'' [NOTE: The text of this Exhibit A may differ slightly from the text of the notices in the Source Code files of the Original Code. You should use the text of this Exhibit A rather than the text found in the Original Code Source Code for Your Modifications.] If you have any questions regarding licensing, please contact us at info at rabbitmq.com. The Debian packaging is (C) 2007-2009, Rabbit Technologies Ltd. and is licensed under the MPL 1.1, see above. From tonyg at lshift.net Tue Feb 24 18:47:25 2009 From: tonyg at lshift.net (Tony Garnock-Jones) Date: Tue, 24 Feb 2009 18:47:25 +0000 Subject: [rabbitmq-discuss] RabbitMQ 1.5.3 released Message-ID: <49A440BD.6060306@lshift.net> The RabbitMQ team is pleased to announce the release of RabbitMQ 1.5.3. This release has 'final' status and fixes a number of bugs in the server, the Java client, the .net client, and the Debian/RPM packaging. For details see the attached release notes. Binary and source distributions of the new release can be found in the usual place, at http://www.rabbitmq.com/download.html We recommend that all users of earlier versions of RabbitMQ upgrade to this latest release. As always, we welcome any questions, bug reports, and other feedback on this release, as well as general suggestions for features and enhancements in future releases. Mail us via the RabbitMQ discussion list at rabbitmq-discuss at lists.rabbitmq.com, or directly at info at rabbitmq.com. Regards, The RabbitMQ Team Release: RabbitMQ 1.5.3 Status : final Release Highlights ================== server ------ bug fixes - prevent the shell from attempting to perform path expansion on vars in the startup scripts, which was resulting in errors when starting rabbit on some systems. - make guid generation independent of persister, thus preventing timeouts when the persister is busy - get scripts to source configuration from /etc/rabbitmq/rabbitmq.conf rather than /etc/default/rabbitmq, since the latter is reserved for init.d scripts. Java client ----------- bug fixes - eliminate race condition in server-initiated channel closure that could lead to deadlock .net client ----------- bug fixes - eliminate race condition in server-initiated channel closure that could lead to deadlock building & packaging -------------------- enhancements - minor tweaks in Debian and RPM packaging for better compliance with packaging guidelines - place wrapper scripts for rabbitmq-server and rabbitmq-multi alongside the rabbitmqctl wrapper in /usr/sbin - do not start the server by default on RPM-based systems, in order to comply with common practice and guidelines - suppress stdout in logrotate scripts, to keep cron et al happy Upgrading ========= The place from which the server startup and control scripts source configuration information on Unix systems has changed from /etc/default/rabbitmq to /etc/rabbitmq/rabbitmq.conf. If you have been using the former, just move the file to the latter location. The /etc/default/rabbitmq file (/etc/sysconfig/rabbitmq on RPM-based systems) is still being sourced by the init.d script, but it should only contain settings directly affecting the behaviour of the init.d script, such as NODE_COUNT. When upgrading from releases earlier than RabbitMQ-1.5.x, note that the database schema has changed. When the RabbitMQ server detects the presence of an old database, it moves it to a backup location, creates a fresh, empty database, and logs a warning. If your RabbitMQ installation contains important data, such as user accounts, durable exchanges and queues, or persistent messages, then we recommend you contact support at rabbitmq.com for assistance with the upgrade. Credits ======= We would like to thank the following individuals for submitting bug reports and feedback that we incorporated into this release: Billy Chasen Charl Matthee Christopher Hoover Darien Kindlund Dmitriy Samovskiy Jason Williams Mathias Gug Peter Lemenkov Phil Stubbings From tonyg at lshift.net Tue Feb 24 20:30:28 2009 From: tonyg at lshift.net (Tony Garnock-Jones) Date: Tue, 24 Feb 2009 20:30:28 +0000 Subject: [rabbitmq-discuss] STOMP for 1.5.3 Message-ID: <49A458E4.2080107@lshift.net> If you're using the STOMP adapter with RabbitMQ server 1.5.3, please use the rabbitmq_v1_5_3 tag on the rabbitmq-stomp hg module: hg up rabbitmq_v1_5_3 Regards, Tony -- [][][] Tony Garnock-Jones | Mob: +44 (0)7905 974 211 [][] LShift Ltd | Tel: +44 (0)20 7729 7060 [] [] http://www.lshift.net/ | Email: tonyg at lshift.net From darien at kindlund.com Tue Feb 24 22:46:15 2009 From: darien at kindlund.com (Darien Kindlund) Date: Tue, 24 Feb 2009 17:46:15 -0500 Subject: [rabbitmq-discuss] STOMP for 1.5.3 In-Reply-To: <49A458E4.2080107@lshift.net> References: <49A458E4.2080107@lshift.net> Message-ID: <50c8ffe90902241446xee83d7djbebe9bb50bc05033@mail.gmail.com> Hi Tony, Hrm, I'm getting the following errors when compiling the STOMP adapter. I'm using the v1.5.3 Debian package to install, but I also downloaded/extracted the v1.5.3 source .tar.gz and created a corresponding 'rabbitmq-server' symlink, as shown below. -- Darien -=[root at manager src]=-# ll total 1708 drwxr-xr-x 7 root root 4096 2009-02-24 17:42 ./ drwxr-xr-x 8 root root 4096 2009-02-24 17:43 ../ drwxrwxrwx 9 root root 4096 2009-01-14 16:31 protobuf-2.0.3/ -rw-r--r-- 1 root root 1013535 2009-01-14 16:15 protobuf-2.0.3.tar.gz drwxrwxrwx 4 root root 4096 2009-02-24 17:34 protobuf-perlxs-0.5/ -rw-r--r-- 1 root root 733 2009-01-21 01:38 protobuf-perlxs-0.5-repeated.patch -rw-r--r-- 1 root root 94351 2009-01-14 16:13 protobuf-perlxs-0.5.tar.gz drwxrwxrwx 4 root root 4096 2009-02-24 17:35 protobuf-perlxs-0.7/ -rw-r--r-- 1 root root 99181 2009-02-24 17:34 protobuf-perlxs-0.7.tar.gz lrwxrwxrwx 1 root root 21 2009-02-24 17:39 rabbitmq-server -> rabbitmq-server-1.5.3/ drwxr-xr-x 8 root root 4096 2009-02-24 13:29 rabbitmq-server-1.5.3/ -rw-r--r-- 1 root root 364264 2009-02-24 13:41 rabbitmq-server_1.5.3-1_all.deb -rw-r--r-- 1 root root 112165 2009-02-24 13:41 rabbitmq-server-1.5.3.tar.gz drwxr-xr-x 7 root root 4096 2009-02-24 17:43 rabbitmq-stomp/ -=[root at manager src]=-# cd rabbitmq-stomp/ -=[root at manager rabbitmq-stomp]=-# hg up rabbitmq_v1_5_3 0 files updated, 0 files merged, 0 files removed, 0 files unresolved -=[root at manager rabbitmq-stomp]=-# make run erlc -I ../rabbitmq-server/include -I include -o ebin -Wall +debug_info src/rabbit_stomp.erl src/rabbit_stomp.erl:43: can't find include file "rabbit_framing.hrl" src/rabbit_stomp.erl:201: record 'channel.close_ok' undefined src/rabbit_stomp.erl:212: record 'basic.deliver' undefined src/rabbit_stomp.erl:216: record 'P_basic' undefined src/rabbit_stomp.erl:227: variable 'RoutingKey' is unbound src/rabbit_stomp.erl:228: variable 'Exchange' is unbound src/rabbit_stomp.erl:231: variable 'DeliveryTag' is unbound src/rabbit_stomp.erl:232: variable 'ContentType' is unbound src/rabbit_stomp.erl:233: variable 'ContentEncoding' is unbound src/rabbit_stomp.erl:234: variable 'ConsumerTag' is unbound src/rabbit_stomp.erl:240: variable 'Headers' is unbound src/rabbit_stomp.erl:244: variable 'DeliveryMode' is unbound src/rabbit_stomp.erl:245: variable 'Priority' is unbound src/rabbit_stomp.erl:246: variable 'CorrelationId' is unbound src/rabbit_stomp.erl:247: variable 'ReplyTo' is unbound src/rabbit_stomp.erl:248: variable 'MessageId' is unbound src/rabbit_stomp.erl:330: record 'channel.open_ok' undefined src/rabbit_stomp.erl:331: record 'channel.open' undefined src/rabbit_stomp.erl:334: record 'access.request_ok' undefined src/rabbit_stomp.erl:335: record 'access.request' undefined src/rabbit_stomp.erl:345: variable 'Ticket' is unbound src/rabbit_stomp.erl:437: record 'P_basic' undefined src/rabbit_stomp.erl:447: record 'basic.publish' undefined src/rabbit_stomp.erl:470: record 'basic.ack' undefined src/rabbit_stomp.erl:506: record 'queue.declare' undefined src/rabbit_stomp.erl:522: record 'queue.bind' undefined src/rabbit_stomp.erl:534: record 'basic.consume' undefined src/rabbit_stomp.erl:566: record 'basic.cancel' undefined src/rabbit_stomp.erl:571: record 'channel.close' undefined src/rabbit_stomp.erl:324: Warning: variable 'Realm' is unused src/rabbit_stomp.erl:349: Warning: function user_header_key/1 is unused src/rabbit_stomp.erl:352: Warning: function user_queue_header_key/1 is unused src/rabbit_stomp.erl:355: Warning: function user_binding_header_key/1 is unused src/rabbit_stomp.erl:358: Warning: function make_string_table/2 is unused src/rabbit_stomp.erl:432: Warning: variable 'Headers' is unused src/rabbit_stomp.erl:433: Warning: variable 'Ticket' is unused src/rabbit_stomp.erl:435: Warning: variable 'RoutingKeyStr' is unused src/rabbit_stomp.erl:436: Warning: variable 'ExchangeStr' is unused src/rabbit_stomp.erl:469: Warning: variable 'DeliveryTag' is unused src/rabbit_stomp.erl:491: Warning: variable 'Headers' is unused src/rabbit_stomp.erl:492: Warning: variable 'Ticket' is unused src/rabbit_stomp.erl:493: Warning: variable 'AckMode' is unused src/rabbit_stomp.erl:499: Warning: variable 'ConsumerTag' is unused src/rabbit_stomp.erl:505: Warning: variable 'Queue' is unused src/rabbit_stomp.erl:519: Warning: variable 'Exchange' is unused src/rabbit_stomp.erl:521: Warning: variable 'RoutingKey' is unused make: *** [ebin/rabbit_stomp.beam] Error 1 On Tue, Feb 24, 2009 at 3:30 PM, Tony Garnock-Jones wrote: > If you're using the STOMP adapter with RabbitMQ server 1.5.3, please use > the rabbitmq_v1_5_3 tag on the rabbitmq-stomp hg module: > > ?hg up rabbitmq_v1_5_3 > > > Regards, > ?Tony > -- > ?[][][] Tony Garnock-Jones ? ? | Mob: +44 (0)7905 974 211 > ? [][] LShift Ltd ? ? ? ? ? ? | Tel: +44 (0)20 7729 7060 > ?[] ?[] http://www.lshift.net/ | Email: tonyg at lshift.net > > _______________________________________________ > rabbitmq-discuss mailing list > rabbitmq-discuss at lists.rabbitmq.com > http://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss > From matthias at lshift.net Tue Feb 24 23:32:21 2009 From: matthias at lshift.net (Matthias Radestock) Date: Tue, 24 Feb 2009 23:32:21 +0000 Subject: [rabbitmq-discuss] STOMP for 1.5.3 In-Reply-To: <50c8ffe90902241446xee83d7djbebe9bb50bc05033@mail.gmail.com> References: <49A458E4.2080107@lshift.net> <50c8ffe90902241446xee83d7djbebe9bb50bc05033@mail.gmail.com> Message-ID: <49A48385.5010905@lshift.net> Darien, Darien Kindlund wrote: > Hrm, I'm getting the following errors when compiling the STOMP > adapter. I'm using the v1.5.3 Debian package to install, but I also > downloaded/extracted the v1.5.3 source .tar.gz and created a > corresponding 'rabbitmq-server' symlink, as shown below. From the README ... To build the plugin, you should have the RabbitMQ broker source code *compiled* in "../rabbitmq-server". i.e. you'll need need to compile the server code. Or, alternatively, just point the symlink at the server dir installed by the debian package (i.e. /usr/lib/erlang/lib/rabbitmq_server-). Matthias. From darien at kindlund.com Wed Feb 25 00:35:57 2009 From: darien at kindlund.com (Darien Kindlund) Date: Tue, 24 Feb 2009 19:35:57 -0500 Subject: [rabbitmq-discuss] STOMP for 1.5.3 In-Reply-To: <49A48385.5010905@lshift.net> References: <49A458E4.2080107@lshift.net> <50c8ffe90902241446xee83d7djbebe9bb50bc05033@mail.gmail.com> <49A48385.5010905@lshift.net> Message-ID: <4579C9FA-B844-4323-A2B8-8AEFC601D76F@kindlund.com> Oops; yeah, I forgot to compile. I'll point it to the debian pre- built dir. Thanks, -- Darien On Feb 24, 2009, at 6:32 PM, Matthias Radestock wrote: > Darien, > > Darien Kindlund wrote: >> Hrm, I'm getting the following errors when compiling the STOMP >> adapter. I'm using the v1.5.3 Debian package to install, but I also >> downloaded/extracted the v1.5.3 source .tar.gz and created a >> corresponding 'rabbitmq-server' symlink, as shown below. > > From the README ... > > To build the plugin, you should have the RabbitMQ broker source code > *compiled* in "../rabbitmq-server". > > > i.e. you'll need need to compile the server code. > > Or, alternatively, just point the symlink at the server dir > installed by the debian package (i.e. /usr/lib/erlang/lib/ > rabbitmq_server-). > > > Matthias. From darien at kindlund.com Wed Feb 25 04:43:08 2009 From: darien at kindlund.com (Darien Kindlund) Date: Tue, 24 Feb 2009 23:43:08 -0500 Subject: [rabbitmq-discuss] STOMP for 1.5.3 In-Reply-To: <4579C9FA-B844-4323-A2B8-8AEFC601D76F@kindlund.com> References: <49A458E4.2080107@lshift.net> <50c8ffe90902241446xee83d7djbebe9bb50bc05033@mail.gmail.com> <49A48385.5010905@lshift.net> <4579C9FA-B844-4323-A2B8-8AEFC601D76F@kindlund.com> Message-ID: <50c8ffe90902242043q32b0d5e2i620cb17e53e61dbd@mail.gmail.com> Okay, a couple of things: When using the pre-built debian dir, 'make run' won't work all the way. Specifically, the make will succeed, but then this error message will occur during the 'run' part: make[1]: Entering directory `/usr/lib/erlang/lib/rabbitmq_server-1.5.3' make[1]: *** No rule to make target `run'. Stop. make[1]: Leaving directory `/usr/lib/erlang/lib/rabbitmq_server-1.5.3' make: *** [start_server] Error 2 ...which isn't a bad thing, since the stomp module did get built successfully and works just fine. It may be worth documenting this in the README. Also, the README still mentions '/etc/default/rabbitmq' instead of '/etc/rabbitmq/rabbitmq.conf'. I assume that's a minor typo. FYI, -- Darien On Tue, Feb 24, 2009 at 7:35 PM, Darien Kindlund wrote: > Oops; yeah, I forgot to compile. ?I'll point it to the debian pre-built dir. > > Thanks, > -- Darien > > On Feb 24, 2009, at 6:32 PM, Matthias Radestock wrote: > >> Darien, >> >> Darien Kindlund wrote: >>> >>> Hrm, I'm getting the following errors when compiling the STOMP >>> adapter. ?I'm using the v1.5.3 Debian package to install, but I also >>> downloaded/extracted the v1.5.3 source .tar.gz and created a >>> corresponding 'rabbitmq-server' symlink, as shown below. >> >> From the README ... >> >> To build the plugin, you should have the RabbitMQ broker source code >> *compiled* in "../rabbitmq-server". >> >> >> i.e. you'll need need to compile the server code. >> >> Or, alternatively, just point the symlink at the server dir installed by >> the debian package (i.e. /usr/lib/erlang/lib/rabbitmq_server-). >> >> >> Matthias. > From cpettitt at gmail.com Thu Feb 26 04:23:05 2009 From: cpettitt at gmail.com (Chris Pettitt) Date: Wed, 25 Feb 2009 20:23:05 -0800 Subject: [rabbitmq-discuss] MacPort for RabbitMQ Server 1.5.3 Message-ID: Hello, I noticed that the latest version of RabbitMQ Server in the MacPorts repo is version 1.3.0, so I've created a MacPort for RabbitMQ Server 1.5.3. I thought I would share it with this list. The MacPort is available here: http://www.samsarin.com/blog/files/uploads/2009/02/rabbitmq-server-macport-1.5.3.tar.gz I hope this will be of help to the community. If there is interest from the RabbitMQ team I would be happy to submit it to the MacPorts repository. INSTALL 1. If you don't have a local MacPorts repo, set this up first [1]. 2. Extract rabbitmq-1.5.3-macport.tar.gz to the root of your local MacPorts repo (it will extract files to ./net/rabbitmq-server). 3. Run portindex in the root of your local MacPorts repo 4. Run: sudo port install rabbitmq-server RUNNING To start the server, you can either use launchctl (see instructions emitted during MacPort install) or you can start it from the command line with: sudo -H -u rabbitmq rabbitmq-server rabbitmqctl automatically (through sudo) runs in the context of the rabbitmq user so that the Erlang cookie can be read from $MACPORTS_PREFIX/var/lib/rabbitmq/.erlang.cookie NOTES * The MacPort uses the install target to build and install the package into the destroot. Hardcoded paths in the shell scripts are modified to use the MacPort filesystem. * I followed tonyg's approach of running the server under the "rabbitmq" user. Unfortunately, the adduser command sets the shell for the rabbitmq user to /dev/null, so using su was not working. I switched this to use sudo -H -u rabbitmq, which does work in my environment. * When tonyg submitted the original MacPort he commented that calling launchctl stop on the server would cause the process to exit and restart. This appears to be the default behavior for launchd - unloading it stops the reload process. I suspect setting KeepAlive to false will have the same effect. In any case, I left it to restart automatically, but I'm open to suggestions on the behavior. FOOTNOTES [1]: http://guide.macports.org/#development.local-repositories - Chris From tonyg at lshift.net Fri Feb 27 17:44:14 2009 From: tonyg at lshift.net (Tony Garnock-Jones) Date: Fri, 27 Feb 2009 17:44:14 +0000 Subject: [rabbitmq-discuss] MacPort for RabbitMQ Server 1.5.3 In-Reply-To: References: Message-ID: <49A8266E.8000000@lshift.net> Hi Chris, Thanks so much for picking this up. I'd been meaning to get around to it for far too long now. Chris Pettitt wrote: > I hope this will be of help to the community. If there is interest > from the RabbitMQ team I would be happy to submit it to the MacPorts > repository. Absolutely. I've just checked it in, and as luck would have it, I have my mac with me today, so I'm about to try it out. > To start the server, you can either use launchctl (see instructions > emitted during MacPort install) or you can start it from the command > line with: sudo -H -u rabbitmq rabbitmq-server > > rabbitmqctl automatically (through sudo) runs in the context of the > rabbitmq user so that the Erlang cookie can be read from > $MACPORTS_PREFIX/var/lib/rabbitmq/.erlang.cookie This is good stuff. We'll have to update our website with this information. > * When tonyg submitted the original MacPort he commented that calling > launchctl stop on the server would cause the process to exit and > restart. This appears to be the default behavior for launchd - > unloading it stops the reload process. I suspect setting KeepAlive to > false will have the same effect. In any case, I left it to restart > automatically, but I'm open to suggestions on the behavior. Excellent! Thanks very much, I'm glad someone who understands this took a look. I have no opinion on the matter -- I just want it to do whatever's most correct for the platform. Regards, Tony -- [][][] Tony Garnock-Jones | Mob: +44 (0)7905 974 211 [][] LShift Ltd | Tel: +44 (0)20 7729 7060 [] [] http://www.lshift.net/ | Email: tonyg at lshift.net From tonyg at lshift.net Fri Feb 27 18:13:53 2009 From: tonyg at lshift.net (Tony Garnock-Jones) Date: Fri, 27 Feb 2009 18:13:53 +0000 Subject: [rabbitmq-discuss] MacPort for RabbitMQ Server 1.5.3 In-Reply-To: References: Message-ID: <49A82D61.1050903@lshift.net> Chris Pettitt wrote: > http://www.samsarin.com/blog/files/uploads/2009/02/rabbitmq-server-macport-1.5.3.tar.gz That worked perfectly. > I hope this will be of help to the community. If there is interest > from the RabbitMQ team I would be happy to submit it to the MacPorts > repository. Yes please, that'd be great. Ah, I've just seen the ticket -- https://trac.macports.org/ticket/18665 -- and CCed myself. Thanks. Regards, Tony