t8y2/dbx · error

RocketMQ proxy manager is closed

Error message

RocketMQ proxy manager is closed

What it means

Returned by proxyManager.ProxyFor in the rocketmq driver when a new proxy endpoint is requested after the manager was closed (connection teardown). The closed flag makes the proxy fail closed: no new local listeners are created once the client shuts down, preventing dangling proxies.

Source

Thrown at agents/drivers/rocketmq/routing.go:70

}

func (manager *proxyManager) ProxyFor(original string, kind proxyTargetKind) (string, error) {
	original = strings.TrimSpace(original)
	if original == "" {
		return "", fmt.Errorf("empty RocketMQ endpoint")
	}
	manager.mu.RLock()
	if endpoint := manager.byOriginal[original]; endpoint != nil {
		address := endpoint.listener.Addr().String()
		manager.mu.RUnlock()
		return address, nil
	}
	manager.mu.RUnlock()

	manager.mu.Lock()
	defer manager.mu.Unlock()
	if manager.closed {
		return "", fmt.Errorf("RocketMQ proxy manager is closed")
	}
	if endpoint := manager.byOriginal[original]; endpoint != nil {
		return endpoint.listener.Addr().String(), nil
	}
	targets, fallback := manager.routeTargetsLocked(original, kind)
	listener, err := net.Listen("tcp", "127.0.0.1:0")
	if err != nil {
		return "", fmt.Errorf("start RocketMQ endpoint proxy: %w", err)
	}
	endpoint := &proxyEndpoint{original: original, targets: targets, fallback: fallback, listener: listener, manager: manager}
	local := listener.Addr().String()
	manager.byOriginal[original] = endpoint
	manager.originalByLocal[local] = original
	go endpoint.serve()
	return local, nil
}

func (manager *proxyManager) routeTargetsLocked(original string, kind proxyTargetKind) ([]string, bool) {

View on GitHub (pinned to c0390bff16)

Solutions

  1. Do not issue new requests on a closed RocketMQ client; reconnect first
  2. Check for concurrent disconnect/reconnect racing in-flight operations
Defensive patterns

Strategy: validation

When it happens

Trigger: Thrown at agents/drivers/rocketmq/routing.go:70 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of t8y2/dbx@c0390bff16 (2026-09-05). Data as JSON: /api/errors/1c22ea44956b67af. Report an issue: GitHub.