Skip to content

puma plugin breaks devcontainer debugger #572

@pbendersky

Description

@pbendersky

When I start my project from the devcontainer with solid_queue and the puma plugin, I get several #<Errno::EADDRINUSE: Address already in use - bind(2) for /tmp/rdbg-1000/rdbg-72696> related to the debugger:

21:07:26 web.1  | Puma starting in single mode...
21:07:26 web.1  | * Puma version: 6.4.2 (ruby 3.3.1-p55) ("The Eagle of Durango")
21:07:26 web.1  | *  Min threads: 3
21:07:26 web.1  | *  Max threads: 3
21:07:26 web.1  | *  Environment: development
21:07:26 web.1  | *          PID: 72696
21:07:26 web.1  | * Listening on http://127.0.0.1:3000
21:07:26 web.1  | * Listening on http://[::1]:3000
21:07:27 web.1  | Use Ctrl-C to stop
21:07:27 web.1  | DEBUGGER[bin/rails#72857]: Debugger can attach via UNIX domain socket (/tmp/rdbg-1000/rdbg-72696)
21:07:27 web.1  |   TRANSACTION (0.1ms)  BEGIN /*application='XXX'*/
21:07:27 web.1  |   SolidQueue::Process Create (27.1ms)  INSERT INTO "solid_queue_processes" ("kind", "last_heartbeat_at", "supervisor_id", "pid", "hostname", "metadata", "created_at", "name") VALUES ('Supervisor', '2025-06-04 21:07:27.046552', NULL, 72857, '7d9a13fef5f6', NULL, '2025-06-04 21:07:27.131022', 'supervisor-a7a0bbae90000aae2156') RETURNING "id" /*application='XXX'*/
21:07:27 web.1  |   TRANSACTION (0.4ms)  COMMIT /*application='XXX'*/
21:07:27 web.1  | SolidQueue-1.1.5 Register Supervisor (150.0ms)  pid: 72857, hostname: "7d9a13fef5f6", process_id: 71, name: "supervisor-a7a0bbae90000aae2156"
21:07:27 web.1  |   SolidQueue::ClaimedExecution Load (0.6ms)  SELECT "solid_queue_claimed_executions".* FROM "solid_queue_claimed_executions" LEFT OUTER JOIN "solid_queue_processes" ON "solid_queue_processes"."id" = "solid_queue_claimed_executions"."process_id" WHERE "solid_queue_processes"."id" IS NULL /*application='XXX'*/
21:07:27 web.1  | SolidQueue-1.1.5 Fail claimed jobs (6.4ms)  job_ids: [], process_ids: []
21:07:27 web.1  | SolidQueue-1.1.5 Started Supervisor (208.1ms)  pid: 72857, hostname: "7d9a13fef5f6", process_id: 71, name: "supervisor-a7a0bbae90000aae2156"
21:07:27 web.1  | DEBUGGER[bin/rails#72891]: Debugger can attach via UNIX domain socket (/tmp/rdbg-1000/rdbg-72696)
21:07:27 web.1  | DEBUGGER[bin/rails#72896]: Debugger can attach via UNIX domain socket (/tmp/rdbg-1000/rdbg-72696)
21:07:27 web.1  | #<Thread:0x0000ffff677670c0@DEBUGGER__::Server::reader /home/vscode/.rbenv/versions/3.3.1/lib/ruby/gems/3.3.0/gems/debug-1.9.2/lib/debug/server.rb:44 run> terminated with exception (report_on_exception is true):
21:07:27 web.1  | /home/vscode/.rbenv/versions/3.3.1/lib/ruby/3.3.0/socket.rb:205:in `bind': Address already in use - bind(2) for /tmp/rdbg-1000/rdbg-72696 (Errno::EADDRINUSE)
21:07:27 web.1  |       from /home/vscode/.rbenv/versions/3.3.1/lib/ruby/3.3.0/socket.rb:205:in `listen'
21:07:27 web.1  |       from /home/vscode/.rbenv/versions/3.3.1/lib/ruby/3.3.0/socket.rb:1121:in `unix_server_socket'
21:07:27 web.1  |       from /home/vscode/.rbenv/versions/3.3.1/lib/ruby/3.3.0/socket.rb:1169:in `unix_server_loop'
21:07:27 web.1  |       from /home/vscode/.rbenv/versions/3.3.1/lib/ruby/gems/3.3.0/gems/debug-1.9.2/lib/debug/server.rb:502:in `accept'
21:07:27 web.1  |       from /home/vscode/.rbenv/versions/3.3.1/lib/ruby/gems/3.3.0/gems/debug-1.9.2/lib/debug/server.rb:49:in `block in activate'
21:07:27 web.1  | nil
21:07:27 web.1  | #<Errno::EADDRINUSE: Address already in use - bind(2) for /tmp/rdbg-1000/rdbg-72696>
21:07:27 web.1  | @@@ #<Thread:0x0000ffff8576a9a0 run>

When I attach the debugger from VS Code, it attaches to the solid_queue process:

21:13:06 web.1  | DEBUGGER[solid-queue-dispatcher(1.1.5): dispatching every 1 seconds#72949]: Connected.

So this breaks the development environment for me. My current workaround is to disable the puma plugin, but I'd like to keep it running in dev.

I'm using:

solid_queue (1.1.5)
rails (8.0.1)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions