)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":36765,"name":"Seunghun Lee","display_name":"Seunghun Lee","email":"seunghun@stackhpc.com","username":"seunghun1ee","status":"Cloud Engineer at StackHPC"},"change_message_id":"2632b2b327076357a901e572a142d15bdca3b098","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"9a8efd65_ec1de7b0","updated":"2025-06-25 10:28:39.000000000","message":"This needs to be backported to 2025.1, 2024.2 and 2024.1","commit_id":"dcc4fe2378dabc31a3509c7d99956149673d3cc9"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"c548c13ca7ebbb2054e11ac609cf53b39630a606","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"cd9a7a51_0293ad1a","updated":"2025-06-25 12:16:26.000000000","message":"oslo follows stable branch policy which prohibits feature backport. Unless this requires a severe problem which completely breaks the functionality this CAN\u0027T be backported.","commit_id":"0972c0e489a0efba2b8732795538fca5e89f1496"}],"oslo_messaging/_drivers/impl_rabbit.py":[{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"c548c13ca7ebbb2054e11ac609cf53b39630a606","unresolved":true,"context_lines":[{"line_number":279,"context_line":"                \u0027as of RabbitMQ 3.9.0. If set this option will replace all \u0027"},{"line_number":280,"context_line":"                \u0027fanout queues with only one stream queue.\u0027),"},{"line_number":281,"context_line":"    cfg.IntOpt(\u0027rabbit_stream_max_segment_size_bytes\u0027,"},{"line_number":282,"context_line":"               default\u003d500000000,"},{"line_number":283,"context_line":"               help\u003d\u0027Positive interger representing the maximum size of \u0027"},{"line_number":284,"context_line":"               \u0027stream queue segments. This option is only applied when \u0027"},{"line_number":285,"context_line":"               \u0027rabbitmq_stream_fanout is set to True. Messages in stream \u0027"}],"source_content_type":"text/x-python","patch_set":3,"id":"e53fcbfb_5fb5f5c9","line":282,"range":{"start_line":282,"start_character":23,"end_line":282,"end_character":32},"updated":"2025-06-25 12:16:26.000000000","message":"Can use 0 as the default, as a sign to omit the header ? It would be probably most safe for existing deployments.","commit_id":"0972c0e489a0efba2b8732795538fca5e89f1496"},{"author":{"_account_id":11583,"name":"Arnaud Morin","email":"arnaud.morin@gmail.com","username":"arnaudmorin"},"change_message_id":"067af180ca3565ffcfa7263b16d82efa61ded9fb","unresolved":true,"context_lines":[{"line_number":375,"context_line":"        args \u003d {"},{"line_number":376,"context_line":"            \u0027x-queue-type\u0027: \u0027stream\u0027,"},{"line_number":377,"context_line":"            \u0027x-stream-max-segment-size-bytes\u0027:"},{"line_number":378,"context_line":"                rabbit_stream_max_segment_size_bytes"},{"line_number":379,"context_line":"        }"},{"line_number":380,"context_line":"        if rabbit_queue_ttl \u003e 0:"},{"line_number":381,"context_line":"            # max-age is a string"}],"source_content_type":"text/x-python","patch_set":3,"id":"9b1bbb51_a3466f2c","line":378,"updated":"2025-06-25 12:25:52.000000000","message":"I am not against that idea, BUT, IIRC, rabbitmq is heavily pushing to set all of these params from policies instead of hardcoded on queue creation.\n\nWe do use policies on our side, I suspect it enough\n\ne.g.\nrabbitmqctl list_policies\n/       stream-policy   .*_fanout.*     streams {\"max-length-bytes\":15000000,\"stream-max-segment-size-bytes\":5000000}   1","commit_id":"0972c0e489a0efba2b8732795538fca5e89f1496"},{"author":{"_account_id":36765,"name":"Seunghun Lee","display_name":"Seunghun Lee","email":"seunghun@stackhpc.com","username":"seunghun1ee","status":"Cloud Engineer at StackHPC"},"change_message_id":"16b383ace6855cd94e19be65b513404c87968c19","unresolved":true,"context_lines":[{"line_number":375,"context_line":"        args \u003d {"},{"line_number":376,"context_line":"            \u0027x-queue-type\u0027: \u0027stream\u0027,"},{"line_number":377,"context_line":"            \u0027x-stream-max-segment-size-bytes\u0027:"},{"line_number":378,"context_line":"                rabbit_stream_max_segment_size_bytes"},{"line_number":379,"context_line":"        }"},{"line_number":380,"context_line":"        if rabbit_queue_ttl \u003e 0:"},{"line_number":381,"context_line":"            # max-age is a string"}],"source_content_type":"text/x-python","patch_set":3,"id":"f86aca9b_4d5fdbc2","line":378,"in_reply_to":"032294fa_990a96bb","updated":"2025-08-27 10:19:48.000000000","message":"Hello @schwerdtfeger.kevin@heb.com\nThanks for providing more information. So, should we consider this feature again?","commit_id":"0972c0e489a0efba2b8732795538fca5e89f1496"},{"author":{"_account_id":36765,"name":"Seunghun Lee","display_name":"Seunghun Lee","email":"seunghun@stackhpc.com","username":"seunghun1ee","status":"Cloud Engineer at StackHPC"},"change_message_id":"2c069ea9a9ce64f054cf01bdaf3387e8bad9b776","unresolved":true,"context_lines":[{"line_number":375,"context_line":"        args \u003d {"},{"line_number":376,"context_line":"            \u0027x-queue-type\u0027: \u0027stream\u0027,"},{"line_number":377,"context_line":"            \u0027x-stream-max-segment-size-bytes\u0027:"},{"line_number":378,"context_line":"                rabbit_stream_max_segment_size_bytes"},{"line_number":379,"context_line":"        }"},{"line_number":380,"context_line":"        if rabbit_queue_ttl \u003e 0:"},{"line_number":381,"context_line":"            # max-age is a string"}],"source_content_type":"text/x-python","patch_set":3,"id":"b5c89873_2aaad07c","line":378,"in_reply_to":"1beb281d_1d1afe52","updated":"2025-06-26 09:25:43.000000000","message":"Thanks for the advice. Server side policy works. It even overrides the queue argument x-max-age: 1800 when policy uses max-age.\nI\u0027ll close this.","commit_id":"0972c0e489a0efba2b8732795538fca5e89f1496"},{"author":{"_account_id":11583,"name":"Arnaud Morin","email":"arnaud.morin@gmail.com","username":"arnaudmorin"},"change_message_id":"0f181f042b47b48375ea18ffa7194c87bfafdc31","unresolved":true,"context_lines":[{"line_number":375,"context_line":"        args \u003d {"},{"line_number":376,"context_line":"            \u0027x-queue-type\u0027: \u0027stream\u0027,"},{"line_number":377,"context_line":"            \u0027x-stream-max-segment-size-bytes\u0027:"},{"line_number":378,"context_line":"                rabbit_stream_max_segment_size_bytes"},{"line_number":379,"context_line":"        }"},{"line_number":380,"context_line":"        if rabbit_queue_ttl \u003e 0:"},{"line_number":381,"context_line":"            # max-age is a string"}],"source_content_type":"text/x-python","patch_set":3,"id":"1beb281d_1d1afe52","line":378,"in_reply_to":"9b1bbb51_a3466f2c","updated":"2025-06-25 12:27:42.000000000","message":"See here:\n\nhttps://www.rabbitmq.com/docs/policies#policies-vs-the-optional-arguments-set-by-applications","commit_id":"0972c0e489a0efba2b8732795538fca5e89f1496"},{"author":{"_account_id":36193,"name":"Kevin Schwerdtfeger","display_name":"Kevin Schwerdtfeger","email":"schwerdtfeger.kevin@heb.com","username":"kevin-schwerdtfeger"},"change_message_id":"161944860b041452c730d2b8b66d8606e62a23d2","unresolved":true,"context_lines":[{"line_number":375,"context_line":"        args \u003d {"},{"line_number":376,"context_line":"            \u0027x-queue-type\u0027: \u0027stream\u0027,"},{"line_number":377,"context_line":"            \u0027x-stream-max-segment-size-bytes\u0027:"},{"line_number":378,"context_line":"                rabbit_stream_max_segment_size_bytes"},{"line_number":379,"context_line":"        }"},{"line_number":380,"context_line":"        if rabbit_queue_ttl \u003e 0:"},{"line_number":381,"context_line":"            # max-age is a string"}],"source_content_type":"text/x-python","patch_set":3,"id":"032294fa_990a96bb","line":378,"in_reply_to":"b5c89873_2aaad07c","updated":"2025-08-06 16:04:49.000000000","message":"I know the change was already marked as abandoned, but I just thought to point out that while rabbitmq does seem to be pushing the use of policies, their docs also state the following (See: https://www.rabbitmq.com/docs/streams#declaring for reference)\n\n\n\u003e While the x-stream-max-segment-size-bytes and x-stream-filter-size-bytes arguments can be configured via a policy, they will only be applied to the stream if the policy is set (exists) at stream declaration time. If these arguments are changed for a matching but pre-existing stream they will not be changed even if the effective policy of the queue record may indicate it is.\n\u003e\n\u003e Hence it is best to only configure these via queue arguments.","commit_id":"0972c0e489a0efba2b8732795538fca5e89f1496"},{"author":{"_account_id":11583,"name":"Arnaud Morin","email":"arnaud.morin@gmail.com","username":"arnaudmorin"},"change_message_id":"540b2a76e13db00842b027f19368383a981fe5ad","unresolved":true,"context_lines":[{"line_number":375,"context_line":"        args \u003d {"},{"line_number":376,"context_line":"            \u0027x-queue-type\u0027: \u0027stream\u0027,"},{"line_number":377,"context_line":"            \u0027x-stream-max-segment-size-bytes\u0027:"},{"line_number":378,"context_line":"                rabbit_stream_max_segment_size_bytes"},{"line_number":379,"context_line":"        }"},{"line_number":380,"context_line":"        if rabbit_queue_ttl \u003e 0:"},{"line_number":381,"context_line":"            # max-age is a string"}],"source_content_type":"text/x-python","patch_set":3,"id":"9670e482_baf9d18b","line":378,"in_reply_to":"f86aca9b_4d5fdbc2","updated":"2025-08-29 12:16:38.000000000","message":"What if the queue exists before? Is the x-stream-max-segment-size-bytes updated? Or is it the same as policies (not beeing updated)?\nIf so, I don\u0027t think this patch is adding any value compared to policies","commit_id":"0972c0e489a0efba2b8732795538fca5e89f1496"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"c548c13ca7ebbb2054e11ac609cf53b39630a606","unresolved":true,"context_lines":[{"line_number":803,"context_line":"                self.rabbit_transient_quorum_queue):"},{"line_number":804,"context_line":"            raise RuntimeError(\u0027Configuration Error: rabbit_stream_fanout \u0027"},{"line_number":805,"context_line":"                               \u0027need rabbit_transient_quorum_queue to be set \u0027"},{"line_number":806,"context_line":"                               \u0027to true.\u0027)"},{"line_number":807,"context_line":""},{"line_number":808,"context_line":"        if (self.rabbit_stream_max_segment_size_bytes \u003c\u003d 0):"},{"line_number":809,"context_line":"            raise RuntimeError(\u0027Configuration Error: \u0027"},{"line_number":810,"context_line":"                               \u0027rabbit_stream_max_segment_size_bytes \u0027"},{"line_number":811,"context_line":"                               \u0027needs to be set to a value greater than 0.\u0027)"},{"line_number":812,"context_line":""},{"line_number":813,"context_line":"        if self.heartbeat_in_pthread:"},{"line_number":814,"context_line":"            # NOTE(hberaud): Experimental: threading module is in use to run"},{"line_number":815,"context_line":"            # the rabbitmq health check heartbeat. in some situation like"}],"source_content_type":"text/x-python","patch_set":3,"id":"3c7b1e7e_7613c96a","line":812,"range":{"start_line":806,"start_character":42,"end_line":812,"end_character":1},"updated":"2025-06-25 12:16:26.000000000","message":"Add min\u003d1 to L283 then this is not needed.","commit_id":"0972c0e489a0efba2b8732795538fca5e89f1496"}],"releasenotes/notes/make-x-stream-max-segment-size-bytes-configurable-a1b3e5c45fec53b2.yaml":[{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"c548c13ca7ebbb2054e11ac609cf53b39630a606","unresolved":true,"context_lines":[{"line_number":5,"context_line":"    configurable. The default value is 500MB (RabbitMQ default)."},{"line_number":6,"context_line":"    This makes the size of segments of stream queues can be changed by users."},{"line_number":7,"context_line":"    It is recommened to set the values based on the user\u0027s environment."},{"line_number":8,"context_line":"fixes:"},{"line_number":9,"context_line":"  - |"},{"line_number":10,"context_line":"    Fixes a bug (feature request)"},{"line_number":11,"context_line":"    `LP#2089845 \u003chttps://bugs.launchpad.net/oslo.messaging/+bug/2089845\u003e`__"}],"source_content_type":"text/x-yaml","patch_set":3,"id":"369629a5_f0e337a0","line":11,"range":{"start_line":8,"start_character":0,"end_line":11,"end_character":75},"updated":"2025-06-25 12:16:26.000000000","message":"This is not really a bug fix so remove this.","commit_id":"0972c0e489a0efba2b8732795538fca5e89f1496"}]}
