[Feature Request] Support wildcard/regex patterns for Unix socket path allowlisting

Status Closed — not planned
Reported on v2.1.15
Maintainer reply None cached
Activity 3 comments · opened Jan 22, 2026 · closed Feb 27, 2026

Bug Description
Some Ruby libraries generate Unix socket paths dynamically, making it impossible to allowlist them with the current static path configuration.

Example: DRb (Distributed Ruby)

DRb generates socket paths using the pattern:

${TMPDIR}/druby${PID}.${N}

Reference: https://github.com/ruby/drb/blob/master/lib/drb/unix.rb#L77

Use case:

This commonly occurs when running parallel Rails tests, which is the default behavior when running 50+ tests. Each parallel worker spawns processes with different PIDs, resulting in unpredictable socket paths.

Problem:

It's not always possible to configure the socket path—especially when the socket is created by a dependency rather than your own code.

Proposed solution:

Add support for wildcard or regex patterns when configuring allowed Unix sockets, e.g.:

  • ${TMPDIR}/druby*.sock
  • /tmp/druby[0-9]+\.[0-9]+

Environment Info

  • Platform: darwin
  • Terminal: tmux
  • Version: 2.1.15
  • Feedback ID: 3210e5a5-addb-4223-abdd-2838bd54838d

Errors

/Users/joedupuis/workspace/rails_relay/.devenv/state/.bundle/ruby/3.3.0/gems/drb-2.2.3/lib/drb/unix.rb:89:in `initialize': Operation not permitted - connect(2) for /tmp/claude/druby35814.0 (Errno::EPERM)
	from /Users/joedupuis/workspace/rails_relay/.devenv/state/.bundle/ruby/3.3.0/gems/drb-2.2.3/lib/drb/unix.rb:89:in `new'
	from /Users/joedupuis/workspace/rails_relay/.devenv/state/.bundle/ruby/3.3.0/gems/drb-2.2.3/lib/drb/unix.rb:89:in `temp_server'
	from /Users/joedupuis/workspace/rails_relay/.devenv/state/.bundle/ruby/3.3.0/gems/drb-2.2.3/lib/drb/unix.rb:37:in `open_server'
	from /Users/joedupuis/workspace/rails_relay/.devenv/state/.bundle/ruby/3.3.0/gems/drb-2.2.3/lib/drb/drb.rb:795:in `block in open_server'
	from /Users/joedupuis/workspace/rails_relay/.devenv/state/.bundle/ruby/3.3.0/gems/drb-2.2.3/lib/drb/drb.rb:793:in `each'
	from /Users/joedupuis/workspace/rails_relay/.devenv/state/.bundle/ruby/3.3.0/gems/drb-2.2.3/lib/drb/drb.rb:793:in `open_server'
	from /Users/joedupuis/workspace/rails_relay/.devenv/state/.bundle/ruby/3.3.0/gems/drb-2.2.3/lib/drb/drb.rb:1491:in `initialize'
	from /Users/joedupuis/workspace/rails_relay/.devenv/state/.bundle/ruby/3.3.0/gems/drb-2.2.3/lib/drb/drb.rb:1819:in `new'
	from /Users/joedupuis/workspace/rails_relay/.devenv/state/.bundle/ruby/3.3.0/gems/drb-2.2.3/lib/drb/drb.rb:1819:in `start_service'
	from /Users/joedupuis/workspace/rails_relay/.devenv/state/.bundle/ruby/3.3.0/gems/activesupport-8.1.1/lib/active_support/testing/parallelization.rb:40:in `initialize'
	from /Users/joedupuis/workspace/rails_relay/.devenv/state/.bundle/ruby/3.3.0/gems/activesupport-8.1.1/lib/active_support/testing/parallelize_executor.rb:38:in `new'
	from /Users/joedupuis/workspace/rails_relay/.devenv/state/.bundle/ruby/3.3.0/gems/activesupport-8.1.1/lib/active_support/testing/parallelize_executor.rb:38:in `build_parallel_executor'
	from /Users/joedupuis/workspace/rails_relay/.devenv/state/.bundle/ruby/3.3.0/gems/activesupport-8.1.1/lib/active_support/testing/parallelize_executor.rb:32:in `parallel_executor'
	from /Users/joedupuis/workspace/rails_relay/.devenv/state/.bundle/ruby/3.3.0/gems/activesupport-8.1.1/lib/active_support/testing/parallelize_executor.rb:74:in `execution_info'
	from /Users/joedupuis/workspace/rails_relay/.devenv/state/.bundle/ruby/3.3.0/gems/activesupport-8.1.1/lib/active_support/testing/parallelize_executor.rb:69:in `show_execution_info'
	from /Users/joedupuis/workspace/rails_relay/.devenv/state/.bundle/ruby/3.3.0/gems/activesupport-8.1.1/lib/active_support/testing/parallelize_executor.rb:17:in `start'
	from /Users/joedupuis/workspace/rails_relay/.devenv/state/.bundle/ruby/3.3.0/gems/minitest-5.26.2/lib/minitest.rb:299:in `run'
	from /Users/joedupuis/workspace/rails_relay/.devenv/state/.bundle/ruby/3.3.0/gems/minitest-5.26.2/lib/minitest.rb:86:in `block in autorun'

View original on GitHub ↗

This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗