Pivotal Mac OS
- Resolved Issues in Pivotal RabbitMQ 3.5.4
What’s New in Pivotal RabbitMQ 3.5.4
And it's true; today, Mac OS X is an impressive operating system. But imagine how much further Apple could have gone if it had delivered its next-gen OS when it originally intended to, back in 1995. Some of the key features of Greenplum Database are: Massively Parallel Processing (MPP) Architecture for Loading and Query Processing Polymorphic Data Storage-MultiStorage/SSD Support Multi-level Partitioning with Dynamic Partitioning Elimination If you want to test this database on your Mac you can get a community edition that works on single node. Essentially, Psystar would make a master copy of the Mac OS X software, and install a copy on one of their computers. Psystar would then bundle the computer for sale with an unopened packaged version of MAC OSX that it would purchase from any number of retailers. You can use the cf CLI to communicate securely with a Pivotal Platform deployment without specifying -skip-ssl-validation under these circumstances: The deployment uses a self-signed certificate. The deployment uses a certificate that is signed by a self-signed certificate authority (CA), or a certificate signed by a certificate that is signed.
Pivotal RabbitMQ 3.5.4 is based on the open-source release 3.5.4. RabbitMQ 3.5.4 includes the following changes and enhancements:
- server. Move priority queues from an external plugin to the broker.
- server. Embed messages smaller than a configurable size in the queue index.
- server. Add read buffer cache to improve on-disk messages consumption.
- server. Improve I/O performance by reading or writing several file segments in one operation.
- server. New “pause_if_all_down” partition handling mode.
- server. Ensure new mirrors are started when old ones go down when ha-mode=exactly.
- server. Support separate authentication/authorization backends.
- server. Add “rabbitmqctl rename_cluster_node”.
- server. Further limit queues journal size to avoid excessive memory use.
- server. Prohibit deletion of amq.* exchanges.
- server. Improve performance parsing AMQP tables / arrays.
- server. Add routing decision information to firehose messages.
- server. Notify systemd when RabbitMQ is started, if “sd_notify” is available.
- server. Improve unacked messages requeueing performance in priority queues.
- server. Silence connection errors from load balancer sanity checks.
- server. Log when HiPE is enabled.
- server. Remove support for the legacy (2.x compatible) form of the “cluster_nodes” configuration directive.
- server. Introduce a new channel log category for channel log messages.
- server. Improve integration with Docker.
- server. Report a queue is under flow control only if it was in this situation in the last 1 second, instead of the last 5 seconds previously.
- server. Add a check to ensure the Mnesia directory is not shared with the PID file location or the plugin expansion directory. This should help users facing non-working automatic clustering.
- server. If
rabbitmqctl
can’t contact a node, suggest to verify any Erlang TLS distribution configuration. - server.
rabbitmq-env.conf.bat
Support on Windows. It is now possible to use a separate file for configuring RabbitMQ environment variables on Windows. - server. Excessive SASL Logging on Windows. SASL logger was needlessly verbose on Windows, even when configured to only log errors.
- server. warn as alias to warning. When configuring log levels, warn can now be used as an alias for warning.
- server.
rabbitmqctl purge_queue
.rabbitmqctl purge_queue
is a newrabbitmqctl
command which purges a queue and can be used in situations whenrabbitmqadmin
or management UI are not available. - server.
file_handle_cache:clear_read_cache/0
.file_handle_cache:clear_read_cache/0
is a new function that clears read cache buffers. It is meant to be used withrabbitmqctl eval.
- server. Improved
rabbitmqctl
Error Messages. Whenrabbitmqctl
list_user_permissions
is invoked without any arguments, it now outputs a sensible error message. - server. Kernel Polling Enabled Unconditionally by Default. Previously it was possible to accidentally disable runtime kernel polling (epoll, kqueue, etc) by overriding
RABBITMQ_SERVER_ERL_ARGS
. Now kernel polling is always enabled unless explicitly disabled usingRABBITMQ_SERVER_ADDITIONAL_ERL_ARGS
. - server. Easier I/O Thread Pool Size Configuration. Runtime I/O thread pool size is now easier to tweak: just use the
RABBITMQ_IO_THREAD_POOL_SIZE
environment variable. - server. Higher I/O Thread Pool Size Default. Runtime I/O thread pool size is now 64 instead of 30 by default. This reduces time spent waiting for file I/O operations to complete on machines with 8 or more cores.
- server. Improved Heartbeat Timeout Logging. Heartbeat timeouts are now logged with clearer messages and mention effective timeout value.
- building & packaging. Teach make checkout to retry if GitHub closes the connection.
- building & packaging. Add make sync_gitremote and make sync_gituser targets to synchronize Git remote and user/email across the umbrella and all its subrepositories.
- building & packaging. Upgrade Mac OS X standalone package to Erlang/OTP 17.5.
- Erlang client. Treat a server shutdown as an expected event and do not report an error. Thanks to
@gotthardp
for the patch! - Java client. Undeprecate QueueingConsumer.
- Java client. Dynamically calculate number of consumer work service executor threads feature removal.
- Java client. Remove deprecated
ConnectionFactory#getNumConsumerThreads
,ConnectionFactory#setNumConsumerThreads
,BasicProperties
setters (in favour ofBasicProperties.Builder
) andChannel#recoveryAsync
. - Java client. Uplift
RecoveryAwareAMQConnection
andRecoveryAwareChannelManager
to useConnectionFactory
’s customthreadFactory
. - Java client. Fix documentation of
Recoverable.addRecoveryListener()
. Thanks to@xuwei-k
for the patch! - Java client. Fix several typos. Thanks to
@xuwei-k
for the patch!. - Java client.Deprecate
com.rabbitmq.client.Channel
methods related to the old flow control:boolean flowBlocked()
;void addFlowListener(FlowListener listener)
;boolean removeFlowListener(FlowListener listener)
;void clearFlowListeners()
. - Java client. Queue Name Length Validated Early. Queue names longer than 255 characters (per protocol spec) now result in an IllegalArgumentException thrown early and with a clear error message.
- Java client. Forgiving Exception Handler. Default
ExceptionHandler
implementation closes the channel after an unhandled consumer exception. This is not desirable in every case, so a newForgivingExceptionHandler
was introduced. It works exactly asDefaultExceptionHandler
but does not close the channel. - managementplugin. Provide statistics about accesses to message store and queue index.
- managementplugin. Provide statistics about file I/O.
- managementplugin.
rabbitmqadmin
: Support Python 3. - managementplugin. Add a “move messages” UI.
- managementplugin. Show per-queue disk message read/write rates.
- managementplugin. Show cross-cluster networking statistics.
- managementplugin. Display a warning when the management database is overloaded.
- managementplugin. Support if-unused and if-empty for queue / exchange deletion.
- managementplugin. Allow to configure rates_mode even if only rabbitmq-management-agent is enabled. Thanks to
@databus23
for the idea and tests! - .NET client. Add a unit test to ensure channels are notified when a connection is closed.
- .NET client. Dispatch consumer methods concurrently.
- .NET client. Move the .NET guide to www.rabbitmq.com.
- .NET client. Use timer for heartbeats to reduce the number of threads and memory consumption.
- .NET client. Add
ISubscription
andIQueueingBasicConsumer
interfaces. - .NET client. Upgrade to Visual Studio 2013 project files.
- .NET client. Use a static exchange types array instead of creating a new list each time (since 3.3.5).
- .NET client. Switch to auto-properties (since 3.3.5).
- .NET client. Use a separate lock object in
BlockingCell
(since 3.3.5). - .NET client. Assorted doc string and member name prefix changes (since 3.3.5).
- .NET client. Use
EventHandler<T>
and similar instead of homebrew event handler classes (since 3.3.5). - .NET client. Improve how authentication method names and URI schemas are compared in
ConnectionFactory
(since 3.3.5). - .NET client. Use
TryParse
instead ofParse
inPrimitiveParser
(since 3.3.5). - .NET client. Remove MSI installer.
- .NET client. Support TLS connections without client certificates.
- .NET client. Make
IQueueingBasicConsumer
andISubscription
public. - .NET client. Add a test case to ensure consumers are properly resumed after automatic recovery.
- STOMP plugin. Add flow control for message deliveries through STOMP. This change greatly reduces memory use when slow consumers without prefetch-count connect to a large or fast moving queue.
- STOMP plugin. Ensure all stomp-named queues are named
stomp-*
. - STOMP plugin. Support
requeue
header on NACK frames. - Tracing plugin. Add milliseconds to timestamps.
- Web-STOMP plugin. Don’t depend on the SockJS CDN.
What’s New in JMS Client for Pivotal RabbitMQ 1.4.4
JMS Client for Pivotal RabbitMQ 1.4.4 is upgraded to work with RabbitMQ 3.5.4 client and broker and is a compatibility release only. There are no new features in this release and no bug fixes. The server and plugin in Pivotal RabbitMQ 3.5.4 will interoperate with previously released versions of the client from RJMS 1.2.0 to RJMS 1.4.1
Resolved Issues in Pivotal RabbitMQ 3.5.4
Note:Pivotal RabbitMQ, a commercial product, is based on open source RabbitMQ. Pivotal RabbitMQ 3.5.x releases are based on the prior open source release 3.5.x and incorporate all fixes that were added to open source RabbitMQ 3.5.x. The following section highlights some of those fixes.
See https://github.com/rabbitmq/rabbitmq-server/releases/tag/rabbitmq_v3_5_0, https://github.com/rabbitmq/rabbitmq-server/releases/tag/rabbitmq_v3_5_1, https://github.com/rabbitmq/rabbitmq-server/releases/tag/rabbitmq_v3_5_2, https://github.com/rabbitmq/rabbitmq-server/releases/tag/rabbitmq_v3_5_3, and https://github.com/rabbitmq/rabbitmq-server/releases/tag/rabbitmq_v3_5_4 for the complete open source RabbitMQ 3.5.x release notes.
Security Fixes in RabbitMQ 3.5.4
- MQTT plugin. Support authentication via SSL certificate.
Pivotal Mac Os Catalina
Resolved Issues in RabbitMQ 3.5.4
Pivotal Microsoft Partner
- server. Prevent huge GM / slave memory consumption under load by adding flow control to messages via GM (since 2.6.0).
- server. Fix inconsistencies and hangs when a node comes back online before its disappearance is fulled treated (since 3.1.0).
- server. Ensure channels don’t deliver confirms when a pause mode lasts (since 3.3.5).
- server. When using autoheal, ensure the leader waits for the winner to finish the autoheal process (since 3.3.0).
- server. Fix promotion of offline slaves, in particular if the slave crashed (since 3.4.0).
- server. Work around a possible hang in Erlang’s “global” (since 3.4.2).
- server. Ensure rabbitmqctl.bat exits with code 1 if
ERLANG_HOME
is incorrect (since 1.0.0). - server. Ensure
epmd
is restarted on Windows if it ends up running as a normal user and thus getting killed on logout (since 1.0.0). - server. Fix a crash when querying SSL certificate info while the connection is closing (since 2.1.1).
- server. Restore the timeout error message while waiting for other cluster nodes (since 3.4.0).
- server. Only send ’
user_authentication_success
’ event ifrabbit_reader:auth_phase/2
accepts the user (since 3.3.0). - server. Ensure consumer_closed events are emitted for the actually closed channels only, not all of them (since 3.3.0). The events were filtered later in the management plugin so the behaviour was correct. However, the broker did way too much work.
- server. Ensure the number of
x-death
message headers doesn’t grow indefinitely. Now, there is a single entry for each{queue, reason}
pair. - server. Adjust the file read buffer cache size to avoid useless reads (since 3.5.0). Before this fix, reading a file backward would cause the buffer to be filled and thrown away quickly, leading to a large I/O bandwidth consumption.
- server. Ensure the priority queue plugin reports its memory consumption properly (since 3.5.0). Before this fix, the queue might not be paged out under memory pressure.
- server. Prevent a crash while synchronising paged out priority queues (since 3.5.0). This was caused by priority queues accessing message properties without checking their existence.
- server. Pass the PID file to
rabbitmqctl stop
inrabbitmq-server.ocf
, exactly like Debian- and Red Hat-flavour init scripts (since 2.6.0). - server. Ensure the file handle cache remains under the memory high watermark when syncing a mirrored queue (since 2.0.0).
- server. Restore support for messages stored on disk with the previous
x-death
header format (since 3.5.1) - server. Ensure passwords containing $ characters are properly escaped so they are not interpreted by the shell, when a password is changed using
rabbitmqctl change_password
(since 1.5.2) server. Ensure the memory monitor is fully started before the file handle cache is used (since 3.5.2). Before, the problem could lead to the following crash during RabbitMQ startup:
server. Recoverable Mirror Could Be Reset Due to Race Condition. Recoverable mirror could be reset (considered to be unrecoverable) on start due to a race condition (since 3.5.0).
server. Throughput Regression Fix (since 3.4.0).
server.
x-death
headers can now safely be republished by clients. When a client republished anx-death
event injected during dead-lettering, it could lead to queue process termination (since 3.5.2).building & packaging. Use “
exec
” to runrabbitmq-server
inrabbitmq-script-wrapper
to ensure signals are correctly propagated (since 2.8.3).building & packaging. Improve error message when build dependencies are missing on Mac OS X (since 3.1.0). https://hereuup671.weebly.com/sheep-mac-os.html.
building & packaging. Do not install rabbitmq.config.example if
DOC_INSTALL_DIR
is unset (since 3.2.0).building & packaging. Replace GNU patch specific “
--no-backup-if-mismatch
” by a portable combination ofpatch(1)
andfind(1)
(since 3.4.0).building & packaging. Make internal database files private to the group (eg.
rabbitmq
).building & packaging. Improve
make up_c
to work with detachedHEAD
. This allows to checkout a tag again (since 3.5.0).building & packaging. Fix
make status
so it walks through directories correctly.building & packaging. Use
$(MAKE)
instead of a hard-codedmake
inmake plugins-srcdist
.building & packaging. Fix a problem where Erlang crash dumps (
erl_crash.dump
) were created when using the Mac OS X standalone package, even though RabbitMQ was running properly. Thanks to Vitaly Numenta for the report!building & packaging. Ensure
rabbit_misc:otp_release/0
returns an appropriate value when using the Mac OS X standalone package.building & packaging. Ignore
$RABBITMQ_PID_FILE
set in /etc/rabbitmq/rabbitmq-env.conf as it would break the init script.building & packaging. Ensure
$RABBITMQ_PID_FILE
is not used before being set in the Debian init script (since 2.8.2).building & packaging. Use
$(MAKE)
instead of hard-coding make in the MQTT and STOMP plugins.Java client. Make sure
Channel#abort
ignoresIOExceptions
as the docs say.Java client. Use a timeout to ensure a closing channel does not wait for the server forever (since 1.5.0). Thanks to
@dpratt
for the patch!Java client. Interrupt the thread when an
InterruptedException
is caught instead of ignoring it. Thanks to@vfelberg
for the report!Java client. Ensure the virtual host is correct in the generated URI in
AMQConnection.toString()
(since 1.4.0). Thanks to@dharrigan
for the patch!Java client. During handshake, await on continuations with a timeout. Unfortunately, this change breaks the API. Thanks to
@jhalterman
for the bug report and testing!Java client. Memory Leak. TCP back pressure added to the client in the 3.5.0 cycle had a memory leak that manifested itself when channel churn was high (since 3.5.0).
management plugin. Fix exception on the node details page if the node goes online or offline while viewing (since 3.4.0).
management plugin. Fix a
badarith
crash if for some reasons, the disk free space or the file descriptors count are temporarily reported incorrectly.management plugin. Fix a crash during RabbitMQ startup if
force_fine_statistics
is set inrabbitmq_management_agent
configuration (since 3.5.2). The error was:Thanks to Kevin Blackwell for the bug report!
.NET client. Synchronise
SessionManager
Count
method (since 3.3.5)..NET client. Ensure no bindings are lost during automatic recovery (since 3.4.0).
.NET client. Ensure client certificates are not mandatory with SSL connections. There was a previous attempt in fixing this but it broke the ability to require specific SSL versions (since 3.5.0).
.NET client. Ensure
ConsumerWorkService
uses the scheduler it is constructed with (since 3.5.0)..NET client. Rework heartbeat handling to fix several timeout issues. Thanks to
@btecu
for the report and tests!.NET client. Ensure timers are destroyed when a connection is closed (since 3.5.0). Thanks to @chrhlnd for the report and tests, and
@mikebridge
and@acquleo
for the tests!.NET client. When a channel is closed, ensure consumer dispatch for other channels are not affected (since 3.5.0). Thanks to
@ferviri
for the patch!.NET client. Fix a
NullPointerException
inMapMessageBuilder.GetContentBody()
(since 3.5.0). Thanks to@BrentSouza
for the report!.NET client. Framing Errors When Publishing During Flow Control. Several clients (including the .NET one) had a subtle socket write failure handling issue that resulted in incorrect frame interleaving errors when (temporary) flow control kicked in in the server.
.NET client. Heartbeat Implementation Fixes. Several issues around heartbeats are fixed. They resulted in the client failing to send heartbeat frames on time and being disconnected on idle connections, in particular when TLS was enabled (since 3.5.2).
.NET client. Fixed Memory Leak in Automatically Recovering Connections (since 3.4.0).
.NET client. Explicit
Connection.Close
Prevents Automatic Recovery Attempts. Explicitly invoked Connection.Close or Connection.Abort will disable ongoing and future automatic connection recovery attempts (since 3.4.0)..NET client.
Subscription.Close
Hangs if Queue is Deleted Underneath it.Subscription.Close()
used to hang if the queue it was consuming from was previously deleted (since 1.0.0).Galtron - 2d shooter mac os. STOMP plugin. Ensure the “processor” thread is terminated at the same time the “reader” thread exits. Thanks to
@martink2
for the report and tests!LDAP plugin. Ensure tag_queries respects other_bind setting.
AMQP 1.0 plugin. Fix heartbeats. The awkward steve duology mac os.
AMQP 1.0 plugin. https://tiagramadsue1980.netlify.com/kube-mac-os.html. Respond with a protocol error if a disposition frame is incorrect.
AMQP 1.0 plugin. Fix a crash if the initial-delivery-count is not 0.
Resolved Issues in JMS Client for Pivotal RabbitMQ 1.4.4
JMS Client for Pivotal RabbitMQ 1.4.4 is a compatibility release only. There are no issues resolved.