Skip to content

Instantly share code, notes, and snippets.

View lukebakken's full-sized avatar

Luke Bakken lukebakken

View GitHub Profile

Issue 16347 - per-protocol connection limits implementation plan

Context

GitHub issue: rabbitmq/rabbitmq-server#16347

The issue is a review of what remains to be done for per-protocol connection limits. The stream plugin already has stream.max_connections and the web_mqtt plugin already has web_mqtt.max_connections. This document covers the implementation of mqtt.max_connections (PR #16367, under revision) and stomp.max_connections (PR #16368, open).

Status of PR #16367: The initial implementation used ranch:info(RanchRef) (same as the stream plugin). Reviewer @ansd identified that this gives a per-listener count, not a node-wide count. MQTT supports port-to-vhost mapping (multiple listeners on different ports), dual-stack (separate IPv4/IPv6 listeners), and mixed TCP/TLS deployments — each of which is a separate Ranch ref with its own supervisor. With four listeners and max_connections = 1000, the actual node limit would be 4000. The fix is to use the MQTT P

Review: cloudamqp/rabbitmq-delayed-message-exchange#2 - Migrate from Mnesia to Leveled

Scope: PR head 3878a85 (24 commits, +1377 / -259). Focus: correctness and design.

TL;DR

The layering is defensible and follows the RabbitMQ precedent for Mnesia-to-Khepri backends (recent-history, JMS, consistent-hash exchanges). Single-bucket timestamp-prefixed keys are a reasonable choice. But the Leveled backend has two critical correctness bugs: storage is never actually freed after delivery, and messages_delayed/1 is wrong for any exchange that has ever delivered a message. There are also several design and robustness issues around the gen_server / migration handoff and a macOS-hostile Makefile. The migration path has a documented "at-most-one extra delivery" tradeoff that is defensible but not exercised by the tests. The PR should not merge as-is; the two critical bugs are blockers. A follow-up topic branch has already landed fixes for several other items in this review; see the section below.

A

@lukebakken
lukebakken / Update-AUPackages.md
Last active May 13, 2026 08:14
Update-AUPackages Report #powershell #chocolatey
@lukebakken
lukebakken / Update-AUPackages.md
Last active May 15, 2026 06:41
Update-AUPackages Report #powershell #chocolatey
@lukebakken
lukebakken / MIGRATION_TO_COMMUNITY.md
Last active January 2, 2026 18:47
au-packages-template

Migration to chocolatey-community Organization

Overview

This document outlines the steps required if the chocolatey-community organization chooses to accept this template and its associated wiki as the official AU packages template.

Current State

Repositories:

  • Template: chocolatey-beam/au-packages-template
@lukebakken
lukebakken / POWERSHELL7_FIXES.md
Last active January 2, 2026 13:24
chocolatey-au + PowerShell 7

PowerShell 7 Empty String Argument Passing Test

This test demonstrates the PowerShell 7.3.0+ breaking change in empty string argument passing and verifies that the fix using $null instead of '' works correctly.

The Bug

PowerShell 7.3.0+ changed how empty strings are passed to external commands:

PowerShell 5.1: Empty strings are filtered out

RabbitMQ 4.0.5 Consumer Count Discrepancy Analysis

Summary

When rabbitmqctl list_consumers -q | wc -l reports a significantly lower number of consumers than the Management UI → Global counts → Consumers, the mismatch is usually due to one or more of the following factors.


1. CLI Limits to a Single VHost

@lukebakken
lukebakken / NOTES.md
Last active February 26, 2025 18:28
CiloGear 60L MOB WorkSack

https://www.cilogear.com/dyneema60.html

Size: Large Purchased April 28th, 2021

This pack is $849 new, selling for $450 plus shipping. Used on a trip up Mt Rainier and Glacier Peak in WA state. It’s a great pack but is more than what I need.

Size is Large. I am 5′ 10″ tall (70 inches / 177cm), 32″ waist, and average build. The pack fits perfectly.

Contact via email or text message

[
{rabbit, [
{tcp_listeners, [{"127.0.0.1", 1672}]},
{ssl_listeners, [1671]}, % This needs to be unique on each node
{log_levels, [{connection, debug}]},
{heartbeat, 30},
{handshake_timeout, 20000},
{consumer_timeout, 86400000},
{ssl_handshake_timeout, 20000},
{default_vhost, <<"default">>},