Hi all,
I spent quite a bit of time to look into a weird issue.
Here's my setup: 
     1 PUB socket  connected to a STEERABLE PROXY FRONTED socket, using INPROC transport
     1 SUB socket  connected to the STEERABLE PROXY BACKEND socket, using TCP transport

Before starting stuff (i.e. calling zmq_connect() or zmq_bind()) I lower all HWMs (for both TX/RX) of all sockets to just "10".  Moreover I set ZMQ_XPUB_NODROP=1.
Now my expected behaviour is that after 20 messages sent from the PUB socket, the zmq_send() on that PUB becomes blocking.
You may argue that since I have the XPUB/XSUB sockets of the proxy in the middle, the value after it becomes blocking is 40. That's ok.

The experimental result I found is that the PUB NEVER becomes blocking.
If I send 10000 messages from the PUB they all go through.
In the SUB I sleep 1 second after EVERY message received. It takes a while but in the end the SUB receives all the 10000 messages...

Is there an explanation for this? Who buffered all those messages (against my will) ?

Thanks for any hint!