-
-
Notifications
You must be signed in to change notification settings - Fork 942
Closed
Labels
Milestone
Description
MRI works / JRuby unsupported:
s.setsockopt(Socket::Option.linger(true, 0))
MRI works / JRuby accepted, but does nothing (broken):
require 'socket'; s = Socket.tcp('localhost', 6379); s.setsockopt(Socket::SOL_SOCKET, Socket::SO_LINGER, [1,0].pack('ii')); s.close
MRI:
17358 7700.821842 127.0.0.1 127.0.0.1 TCP 44 62123 → 6379 [RST, ACK] Seq=1 Ack=1 Win=408288 Len=0
JRuby:
17291 7541.692073 127.0.0.1 127.0.0.1 TCP 56 62096 → 6379 [FIN, ACK] Seq=1 Ack=1 Win=408288 Len=0 TSval=457027447 TSecr=457027443
17292 7541.692126 127.0.0.1 127.0.0.1 TCP 56 6379 → 62096 [ACK] Seq=1 Ack=2 Win=408288 Len=0 TSval=457027447 TSecr=457027447
17293 7541.692133 127.0.0.1 127.0.0.1 TCP 56 [TCP Dup ACK 17289#1] 62096 → 6379 [ACK] Seq=2 Ack=1 Win=408288 Len=0 TSval=457027447 TSecr=457027447
17294 7541.692164 127.0.0.1 127.0.0.1 TCP 56 6379 → 62096 [FIN, ACK] Seq=1 Ack=2 Win=408288 Len=0 TSval=457027447 TSecr=457027447
17295 7541.692252 127.0.0.1 127.0.0.1 TCP 56 62096 → 6379 [ACK] Seq=2 Ack=2 Win=408288 Len=0 TSval=457027447 TSecr=457027447
MRI unsupported / JRuby broken:
MRI:
[7] pry(main)> require 'socket'; s = Socket.tcp('localhost', 6379); s.setsockopt(Socket::SOL_SOCKET, Socket::SO_LINGER, 0); s.close
Errno::EINVAL: Invalid argument - setsockopt(2)
from (pry):7:in `setsockopt'
JRuby same as previous.
MRI unsupported / JRuby actually works:
require 'socket'; s = Socket.tcp('localhost', 6379); s.setsockopt(Socket::SOL_SOCKET, :LINGER, 0); s.close
MRI same as previous.
JRuby:
require 'socket'; s = Socket.tcp('localhost', 6379); s.setsockopt(Socket::SOL_SOCKET, :LINGER, 0); s.close
=> nil
17553 8085.477203 127.0.0.1 127.0.0.1 TCP 44 62165 → 6379 [RST, ACK] Seq=1 Ack=1 Win=408288 Len=0
Reactions are currently unavailable