Skip to content

Releases: ruby-protobuf/protobuf

Fix enum equality

13 Nov 17:25
Compare
Choose a tag to compare

Fix enum equality #387
Fix enum hash equality #390

v3.6.7

19 Feb 04:45
Compare
Choose a tag to compare

An issue was reported with the encode memoization added in #293 with using any array modification method on repeated fields. Remove memoization on encode (#305) until we can find a better solution.

v3.4.4

18 Feb 04:49
Compare
Choose a tag to compare
  • Fix class-level field inheritance for custom-crafted messages that inherit from other messages. [#246, #247, @skippy]

v3.3.6

10 Oct 22:22
Compare
Choose a tag to compare

Fix an issue where the server hangs on shutdown by ensuring that it properly calls exit.

v3.3.5

11 Oct 02:02
Compare
Choose a tag to compare

Add support for send and receive timeouts on requests and available checks:

  • Move client timeout (for request/response) to the ZMQ layer since ZMQ 3 supports timeout on the socket layer directly. It works better than a poller/polling item and makes the timeout intervals configurable (via the PB_ZMQ_CLIENT_SND_TIMEOUT and PB_ZMQ_CLIENT_RCV_TIMEOUT environment variables, both default to 300 seconds).
  • Set send and receive timeouts to fix an issue where ZMQ clients hang when sending available checks to servers that have are in the process of shutting down by (configurable via the PB_ZMQ_CLIENT_CHECK_AVAILABLE_SND_TIMEOUT and PB_ZMQ_CLIENT_CHECK_AVAILABLE_RCV_TIMEOUT environment variables, both default to 200 milliseconds).

Adding these timeouts made a significant change in time to recover after a process failure or process blockage

v3.3.4

10 Oct 23:13
Compare
Choose a tag to compare

Move values that were hardcoded into the Zmq broker/connector into environment variables with "reasonable" defaults:

  • PB_ZMQ_CLIENT_HOST_ALIVE_CHECK_INTERVAL
    How many seconds between health checks (defaults to 1)
  • PB_ZMQ_CLIENT_SERVER_LOOKUP_ATTEMPTS
    How many times to lookup the server in the service directory list (defaults to 5)
  • PB_ZMQ_SERVER_BACKEND_POLL_WEIGHT
    In the broker, this is how many backend reads will be executed (if the backend socket is readable) while processing the backend responses (defaults to 1)
  • PB_ZMQ_SERVER_FRONTEND_POLL_WEIGHT
    In the broker, this is how many frontend reads will be executed if the frontend socket is readable while processing the frontend requests (defaults to 1)

v3.3.3

10 Oct 23:06
Compare
Choose a tag to compare

This release contains several fixes to improve throughput and performance of ZeroMQ RPC server:

  • Fixed a bug where the local (in-memory) queue was incorrectly being treated as LIFO instead of FIFO. This significantly impacted throughput under heavy load.
  • Use concat instead of + when writing frames. + makes a new copy of the array and is up to 100x slower on large message bodies.
  • Process responses and the local queue before processing new requests. This makes the broker more fair since new work is no longer prioritized over finishing up existing work.

It also contains several fixes to improve performance on the client side:

  • Reduce traffic on the ping-port by adjusting the service directory's health check interval from every second to every 2 seconds
  • Only check for expired service directory listings every 5 seconds (instead of every second)

v3.3.2

27 Aug 23:43
Compare
Choose a tag to compare
  • Ensure Ruby Logger is properly required to avoid load order issues [1e55916]

v3.3.1

27 Aug 22:30
Compare
Choose a tag to compare
  • Do not attempt to close the old logger when initializing a new logger. Fixes issues caused when STDOUT is closed. [#214, @quixoten]

v3.3.0

27 Aug 22:25
Compare
Choose a tag to compare
  • Make logging a pluggable component of Protobuf. [#210, @quixoten]
  • Allow the RPC server's local queue size to be configurable in ZeroMQ mode via the PB_ZMQ_SERVER_QUEUE_MAX_SIZE environment variable (defaults to 5) [#213, @abrandoned]