qpid-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Pavel Moravec <pmora...@redhat.com>
Subject QMF creating huge durable queue causes cluster desync
Date Mon, 30 Jan 2012 12:04:59 GMT
Hi all,
it seems to me that sending QMF methods to create a queue over-passes "cluster error checking
mechanism" (if a sole node detects an error, it preventive leaves the cluster).

Having a simple C++ client to create a huge durable queue:

        Connection connection("amqp:tcp:127.0.0.1:5672");
        connection.open();
        Session session = connection.createSession();
        Sender sender = session.createSender("qmf.default.direct/broker");
        Address responseQueue("#reply-queue; {create:always, node:{x-declare:{auto-delete:true}}}");
        Receiver receiver = session.createReceiver(responseQueue);

        Message message;
        Variant::Map content;
	Variant::Map OID;
	Variant::Map arguments;
	Variant::Map properties;

	properties["durable"] = "true";
        properties["qpid.file_count"] = "3000";

	arguments["type"] = "queue";
	arguments["name"] = "HugeDurableQueue";
	arguments["properties"] = properties;
	
	OID["_object_name"] = "org.apache.qpid.broker:broker:amqp-broker";
        content["_object_id"] = OID;
        content["_method_name"] = "create";
        content["_arguments"] = arguments;
	
        encode(content, message);
	message.setReplyTo(responseQueue);
	message.setProperty("x-amqp-0-10.app-id", "qmf2");
	message.setProperty("qmf.opcode", "_method_request");
	message.setContentType("amqp/map");

        sender.send(message, true);

and running the client to a clustered pair of brokers creates a durable queue with 3000 files
in its journal.

However, if one of the brokers (let say node1) has insufficient free disk space, qpid on node1
shall shut down due to the "cluster error checking mechanism". At least, that I see when I
create the queue via qpid-config or using proper address string and spout/drain.

But running the above QMF method leaves the cluster in state where node1 has not have the
queue created while node2 has it created - a substantial cluster de-sync.

Did I do something wrong or is it a bug?

Thanks in advance for your answers.


Kind regards,
Pavel



---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project:      http://qpid.apache.org
Use/Interact: mailto:users-subscribe@qpid.apache.org


Mime
View raw message