Xena Series Release Notes

12.9.4-4

Upgrade Notes

  • If kombu_reconnect_delay is specified in the [oslo_messaging_rabbit] section, ensure that it is less than 5.0, the value of ACK_REQUEUE_EVERY_SECONDS_MAX

Bug Fixes

  • Increased ACK_REQUEUE_EVERY_SECONDS_MAX to resolve issues with rabbitmq HA failover.

12.9.3

Bug Fixes

  • As a fix for bug 1917645 the rabbit backend is changed to use the [oslo_messaging_notifications]retry parameter when driver tries to connect to the message bus during notification sending. Before this fix the rabbit backend retried the connection forever blocking the caller thread.

12.9.0

New Features

  • Introduce support for sending rpc client metrics to oslo.metrics.
    This feature can be enabled by setting a configuration parameter:

    [oslo_messaging_metrics] metrics_enabled = True # default is false

12.7.1

New Features

  • Adding retry strategy based on the mandatory flag. Missing exchanges and queues are now identified separately for logging purposes.

12.7.0

Upgrade Notes

  • Deprecating the direct_mandatory_flag. It will not be possible to deactivate this functionality anymore.

12.6.0

Upgrade Notes

  • The [oslo_messaging_rabbit] heartbeat_in_pthread config option now defaults to True. Applications will run RabbitMQ heartbeat in a Python thread by default.

Deprecation Notes

  • heartbeat_in_pthread has been deprecated and will be removed in a future release. If configured, this option should be unset.

12.4.0

New Features

  • RPC dispatcher can have an extra endpoint named ping. This endpoint can be enabled thanks to a specific configuration parameter: [DEFAULT] rpc_ping_enabled=true # default is false

    The purpose of this new endpoint is to help operators do a RPC call (a ping) toward a specific RPC callback (e.g. a nova-compute, or a neutron-agent). This is helping a lot for monitoring agents (for example, if agents are deployed in a kubernetes pod).

12.3.0

Bug Fixes

  • Add a new option enable_cancel_on_failover for rabbitmq driver which when enabled, will cancel consumers when queue appears to be down.

12.0.0

Upgrade Notes

  • The blocking executor has been deprecated for removal in Rocky and support is now dropped in Ussuri. Its usage was never recommended for applications, and it has no test coverage. Applications should choose the appropriate threading model that maps to their usage instead.

11.0.0

New Features

  • SSL support for oslo_messaging’s kafka driver
    Next configuration params was added
    • ssl_client_cert_file (default=’’)

    • ssl_client_key_file (default=’’)

    • ssl_client_key_password (default=’’)

Upgrade Notes

  • Support for Python 2.7 has been dropped. The minimum version of Python now supported is Python 3.6.

Other Notes

  • NoSuchMethod exception will not be logged for special non-existing methods which names end with ‘_ignore_errors’. Such methods might be used as health probes for openstack services.

9.5.0

Critical Issues

  • In combination with amqp<=2.4.0, oslo.messaging was unreliable when configured with TLS (as is generally recommended). Users would see frequent errors such as this:

    MessagingTimeout: Timed out waiting for a reply to message ID ae039d1695984addbfaaef032ce4fda3
    

    Such issues would typically lead to downstream service timeouts, with no recourse available other than disabling TLS altogether (see bug 1800957).

    The underlying issue is fixed in amqp version 2.4.1, which is now the minimum version that oslo.messaging requires.

9.3.0

Upgrade Notes

  • With the change in the client library used, projects using the Kafka driver should use extras oslo.messaging[kafka] to pull in dependencies for the driver.

Bug Fixes

  • Threading issues with the kafka-python consumer client were identified and documented. The driver has been updated to integrate the confluent-kafka python library. The confluent-kafka client leverages the high performance librdkafka C client and is safe for multiple thread use.

9.0.0

Prelude

The ZMQ-based driver for RPC communications has been removed

Upgrade Notes

  • Remove deprecated configuration options from multiple drivers.

    • The rpc_backend option from the [DEFAULT] section has been removed.

    • The AMQP driver has removed the configuration options of allow_insecure_clients, username and password from the [oslo_messaging_amqp] section.

    • The Kafa driver has removed the configuration options of kafka_default_host and kafka_default_port from the [oslo_messaging_kafka] section.

    • The Rabbit driver has removed the configuration options of rabbit_host, rabbit_port, rabbit_hosts, rabbit_userid, rabbit_password, rabbit_virtual_host rabbit_max_retries and rabbit_durable_queues from the [oslo_messaging_rabbit] section.

    Operators must switch to setting the transport_url directive in the [DEFAULT] section.

Deprecation Notes

  • The driver support for the ZeroMQ messaging library is removed. Users of the oslo.messaging RPC services must use the supported rabbit (“rabbit://…”) or amqp1 (“amqp://…” )drivers.

8.0.0

Prelude

RPCClient now supports RPC call monitoring for detecting the loss of a server during an RPC call.

New Features

  • RPC call monitoring is a new RPCClient feature. Call monitoring causes the RPC server to periodically send keepalive messages back to the RPCClient while the RPC call is being processed. This can be used for early detection of a server failure without having to wait for the full call timeout to expire.

7.0.0

Deprecation Notes

  • ZeroMQ support has been deprecated. The ZeroMQ driver zmq:// has been unmaintained for over a year and no longer functions properly. It is recommended to use one of the maintained backends instead, such as RabbitMQ or AMQP 1.0.

6.2.0

Prelude

Projects using any of the optional drivers can use extras to pull in dependencies for that driver.

Upgrade Notes

  • Projects using the AMQP 1.0 driver may now depend on oslo.messaging[amqp1]. Projects using the Kafka driver may now depend on oslo.messaging[kafka]

6.0.0

Prelude

The Pika-based driver for RabbitMQ has been removed.

Upgrade Notes

  • Users of the Pika-based driver must change the prefix of all the transport_url configuration options from “pika://…” to “rabbit://…” to use the default kombu based RabbitMQ driver.

5.34.1

Other Notes

  • On rabbitmq, in the past, acknownlegement of messages was done within the application callback thread/greenlet. This thread was blocked until the message was ack. In newton, we rewrote the message acknownlegement to ensure we haven’t two threads writting the socket at the same times. Now all pendings ack are done by the main thread. They are no more reason to block the application callback thread until the message is ack. Other driver already release the application callback threads before the message is acknownleged. This is also the case for rabbitmq, now.

5.33.0

Upgrade Notes

  • Change the default value of RPC dispatcher access_policy to DefaultRPCAccessPolicy.

5.27.0

Deprecation Notes

  • The blocking executor has been deprecated for removal in Rocky. Its usage was never recommended for applications, and it has no test coverage. Applications should choose the appropriate threading model that maps their usage instead.

5.26.0

Deprecation Notes

  • The pika driver has been deprecated for removal in Rocky. This driver was developed as a replacement for the default rabbit driver. However testing has not shown any appreciable improvement over the default rabbit driver in terms of performance and stability.

5.24.2

New Features

  • Add get_rpc_transport call to make the API clear for the separation of RPC and Notification messaging backends.

Deprecation Notes

  • Deprecate get_transport and use get_rpc_transport or get_notification_transport to make the API usage clear for the separation of RPC and Notification messaging backends.

5.24.0

New Features

  • Retry support for oslo_messaging_notifications driver
    Configuration param ‘retry’ is added. Default is -1, indefinite
    • retry (default=-1)

5.20.0

Upgrade Notes

  • RequestContextSerializer was deprecated since 4.6, and it isn’t used by any other project, so we can remove it safely.

5.6.0

New Features

  • Idle connections in the pool will be expired and closed.
    Default ttl is 1200s. Next configuration params was added
    • conn_pool_ttl (defaul 1200)

    • conn_pool_min_size (default 2)

Deprecation Notes

  • The rabbitmq driver option DEFAULT/max_retries has been deprecated for removal (at a later point in the future) as it did not make logical sense for notifications and for RPC.