From c022c048dcbe15a2757ab90d2d03d89f615744a8 Mon Sep 17 00:00:00 2001 From: Pieter Hintjens Date: Tue, 19 Nov 2013 16:51:06 +0100 Subject: [PATCH 1/2] Fixed test_many_sockets * failed on systems where process could not allocate 1024 sockets by default * include path for platform.hpp was wrong; fixed it --- tests/test_many_sockets.cpp | 73 ++++++++++++++++--------------------- tests/testutil.hpp | 2 +- 2 files changed, 32 insertions(+), 43 deletions(-) diff --git a/tests/test_many_sockets.cpp b/tests/test_many_sockets.cpp index d2c3f4f6..e98a030d 100644 --- a/tests/test_many_sockets.cpp +++ b/tests/test_many_sockets.cpp @@ -23,76 +23,65 @@ #include #include - void test_system_max () { // Keep allocating sockets until we run out of system resources - const int no_of_sockets = 2 * 65536; - void *ctx = zmq_ctx_new(); - zmq_ctx_set(ctx, ZMQ_MAX_SOCKETS, no_of_sockets); - std::vector sockets; + void *ctx = zmq_ctx_new (); + zmq_ctx_set (ctx, ZMQ_MAX_SOCKETS, no_of_sockets); + std::vector sockets; - while (true) - { - void *socket = zmq_socket(ctx, ZMQ_PAIR); + while (true) { + void *socket = zmq_socket (ctx, ZMQ_PAIR); if (!socket) break; - - sockets.push_back(socket); + sockets.push_back (socket); } + assert ((int) sockets.size () < no_of_sockets); - assert((int)sockets.size() < no_of_sockets); - - // System is out of resources, further calls to zmq_socket should return NULL. - for (unsigned int i = 0; i < 10; ++i) - { - void *socket = zmq_socket(ctx, ZMQ_PAIR); - assert(socket == NULL); + // System is out of resources, further calls to zmq_socket should return NULL + for (unsigned int i = 0; i < 10; ++i) { + void *socket = zmq_socket (ctx, ZMQ_PAIR); + assert (socket == NULL); } - // Clean up. - for (unsigned int i = 0; i < sockets.size(); ++i) - zmq_close(sockets[i]); + for (unsigned int i = 0; i < sockets.size (); ++i) + zmq_close (sockets [i]); - zmq_ctx_destroy(ctx); + zmq_ctx_destroy (ctx); } void test_zmq_default_max () { - // Keep allocating sockets until we hit the default zeromq limit - - void *ctx = zmq_ctx_new(); + // Keep allocating sockets until we hit the default limit + void *ctx = zmq_ctx_new (); std::vector sockets; - while (true) - { - void *socket = zmq_socket(ctx, ZMQ_PAIR); + while (true) { + void *socket = zmq_socket (ctx, ZMQ_PAIR); if (!socket) break; - - sockets.push_back(socket); + sockets.push_back (socket); } + // We may stop sooner if system has fewer available sockets + assert (sockets.size () <= ZMQ_MAX_SOCKETS_DFLT); - assert(sockets.size() == ZMQ_MAX_SOCKETS_DFLT); - - // At zeromq max, further calls to zmq_socket should return NULL. - for (unsigned int i = 0; i < 10; ++i) - { - void *socket = zmq_socket(ctx, ZMQ_PAIR); - assert(socket == NULL); + // Further calls to zmq_socket should return NULL + for (unsigned int i = 0; i < 10; ++i) { + void *socket = zmq_socket (ctx, ZMQ_PAIR); + assert (socket == NULL); } - // Clean up. - for (unsigned int i = 0; i < sockets.size(); ++i) - zmq_close(sockets[i]); + // Clean up + for (unsigned int i = 0; i < sockets.size (); ++i) + zmq_close (sockets [i]); - zmq_ctx_destroy(ctx); + zmq_ctx_destroy (ctx); } -int main(void) +int main (void) { - setup_test_environment(); + setup_test_environment (); test_system_max (); test_zmq_default_max (); diff --git a/tests/testutil.hpp b/tests/testutil.hpp index 31db1e40..efb2a43d 100644 --- a/tests/testutil.hpp +++ b/tests/testutil.hpp @@ -22,7 +22,7 @@ #include "../include/zmq.h" #include "../include/zmq_utils.h" -#include "platform.hpp" +#include "../src/platform.hpp" // This defines the settle time used in tests; raise this if we // get test failures on slower systems due to binds/connects not From 4363b75b4d9aec70b297e96d4b933110ce161a62 Mon Sep 17 00:00:00 2001 From: Pieter Hintjens Date: Sun, 24 Nov 2013 18:56:50 +0100 Subject: [PATCH 2/2] Release notes for 4.0.3 --- NEWS | 10 ++++++++++ include/zmq.h | 2 +- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/NEWS b/NEWS index 5d51aba6..fe6011cd 100644 --- a/NEWS +++ b/NEWS @@ -1,3 +1,13 @@ +0MQ version 4.0.3 stable, released on 2013/11/24 +================================================ + +Bug Fixes +--------- + +* Fixed test_many_sockets case, which failed when process socket limit + was 1024. + + 0MQ version 4.0.2 stable, released on 2013/11/24 ================================================ diff --git a/include/zmq.h b/include/zmq.h index d8084ab6..f7b10db6 100644 --- a/include/zmq.h +++ b/include/zmq.h @@ -31,7 +31,7 @@ /* Version macros for compile-time API version detection */ #define ZMQ_VERSION_MAJOR 4 #define ZMQ_VERSION_MINOR 0 -#define ZMQ_VERSION_PATCH 2 +#define ZMQ_VERSION_PATCH 3 #define ZMQ_MAKE_VERSION(major, minor, patch) \ ((major) * 10000 + (minor) * 100 + (patch))