From: Greg.mpls@... Date: 2019-10-25T15:39:39+00:00 Subject: [ruby-core:95548] [Ruby master Bug#16277] UNIXServer#listen fails with Errno::EADDRINUSE error under Windows 10 / WSL Ubuntu 18.04 Issue #16277 has been updated by MSP-Greg (Greg L). Would something like the following yield an equivalent object? ```ruby require 'socket' sock = Socket.new :UNIX, :STREAM sock.bind Addrinfo.unix('tmp.sock', :STREAM) sock.listen 1024 puts sock.local_address.unix? ``` ---------------------------------------- Bug #16277: UNIXServer#listen fails with Errno::EADDRINUSE error under Windows 10 / WSL Ubuntu 18.04 https://bugs.ruby-lang.org/issues/16277#change-82324 * Author: bradland (Brad Landers) * Status: Open * Priority: Normal * Assignee: * Target version: * ruby -v: ruby 2.6.5p114 (2019-10-01 revision 67812) [x86_64-linux-gnu] * Backport: 2.5: UNKNOWN, 2.6: UNKNOWN ---------------------------------------- When running the following script under Windows 10 / WSL Ubuntu 18.04, an Errno::EADDRINUSE error is thrown. Expected result is that the script would run and simply exit. ``` ruby #!/usr/bin/env ruby # This script establishes a UNIX server socket. # # Expected result: Script should run and immediately exit. # # Actual result: Script fails with Errno::EADDRINUSE error. # # Environment: Windows 10 Pro, WSL, Ubuntu 18.04.2, ruby 2.6.5p114 (2019-10-01 revision 67812) [x86_64-linux-gnu] # # To reproduce: Create a tmp folder, copy this script there, and execute. require 'socket' path = File.expand_path('listen.sock') backlog = 5 s = UNIXServer.new(path) if backlog s.listen backlog else s.listen end File.delete(path) if File.exists?(path) ``` The bug was discoverd as part of Puma (gem) issue #1521: https://github.com/puma/puma/issues/1521. -- https://bugs.ruby-lang.org/ Unsubscribe: