jruby / jruby

JRuby, an implementation of Ruby on the JVM
https://www.jruby.org
Other
3.78k stars 921 forks source link

JRuby 9.4.3.0(and 9.3.11.0): gem push raise IOError #7938

Open hiroyuki-sato opened 1 year ago

hiroyuki-sato commented 1 year ago

Hello members.

gem push raise IOError.

Environment Information

Expected Behavior

gem push embulk-filter-calc-0.2.1.pretest-java.gem
Pushing gem to https://rubygems.org...
You have enabled multi-factor authentication. Please enter OTP code.
Code:   

Actual Behavior

9.4.3.0

java -cp /path/to/jruby-complete-9.4.3.0.jar  org.jruby.Main -rjars/setup -S gem push embulk-filter-calc-0.2.1.pretest-java.gem --verbose
Pushing gem to https://rubygems.org...
POST https://rubygems.org/api/v1/gems
ERROR:  While executing gem ... (IOError)
    Broken pipe
    uri:classloader:/META-INF/jruby.home/lib/ruby/stdlib/net/http.rb:1602:in `block in transport_request'
    org/jruby/RubyKernel.java:1308:in `catch'
    uri:classloader:/META-INF/jruby.home/lib/ruby/stdlib/net/http.rb:1600:in `transport_request'
    uri:classloader:/META-INF/jruby.home/lib/ruby/stdlib/net/http.rb:1573:in `request'
    uri:classloader:/META-INF/jruby.home/lib/ruby/stdlib/rubygems/request.rb:222:in `perform_request'
    uri:classloader:/META-INF/jruby.home/lib/ruby/stdlib/rubygems/request.rb:154:in `fetch'
    uri:classloader:/META-INF/jruby.home/lib/ruby/stdlib/rubygems/remote_fetcher.rb:309:in `request'
    uri:classloader:/META-INF/jruby.home/lib/ruby/stdlib/rubygems/gemcutter_utilities.rb:247:in `request_with_otp'
    uri:classloader:/META-INF/jruby.home/lib/ruby/stdlib/rubygems/gemcutter_utilities.rb:105:in `rubygems_api_request'
    uri:classloader:/META-INF/jruby.home/lib/ruby/stdlib/rubygems/commands/push_command.rb:89:in `send_push_request'
    uri:classloader:/META-INF/jruby.home/lib/ruby/stdlib/rubygems/commands/push_command.rb:81:in `send_gem'
    uri:classloader:/META-INF/jruby.home/lib/ruby/stdlib/rubygems/commands/push_command.rb:66:in `execute'
    uri:classloader:/META-INF/jruby.home/lib/ruby/stdlib/rubygems/command.rb:323:in `invoke_with_build_args'
    uri:classloader:/META-INF/jruby.home/lib/ruby/stdlib/rubygems/command_manager.rb:185:in `process_args'
    uri:classloader:/META-INF/jruby.home/lib/ruby/stdlib/rubygems/command_manager.rb:149:in `run'
    uri:classloader:/META-INF/jruby.home/lib/ruby/stdlib/rubygems/gem_runner.rb:51:in `run'
    uri:classloader:/META-INF/jruby.home/bin/jgem:21:in `<main>'
    org/jruby/RubyKernel.java:1105:in `load'
    uri:classloader:/META-INF/jruby.home/bin/gem:4:in `<main>'

9.3.11.0

java -cp /path/to/jruby-complete-9.3.11.0.jar  org.jruby.Main -rjars/setup -S gem push embulk-filter-calc-0.2.1.pretest-java.gem --verbose
Pushing gem to https://rubygems.org...
POST https://rubygems.org/api/v1/gems
ERROR:  While executing gem ... (IOError)

    Broken pipe
hiroyuki-sato commented 1 year ago

I updated gem 3.3.26 to 3.4.19. but It caused the same result. (This test also used Java 17.)

gem --version
3.4.19
gem push embulk-filter-calc-0.2.1.pretest-java.gem
Pushing gem to https://rubygems.org...
ERROR:  While executing gem ... (IOError)
    Broken pipe
    /Users/user/.rbenv.m1/versions/jruby-9.4.3.0/lib/ruby/stdlib/net/http.rb:1602:in `block in transport_request'
    org/jruby/RubyKernel.java:1308:in `catch'
    /Users/user/.rbenv.m1/versions/jruby-9.4.3.0/lib/ruby/stdlib/net/http.rb:1600:in `transport_request'
    /Users/user/.rbenv.m1/versions/jruby-9.4.3.0/lib/ruby/stdlib/net/http.rb:1573:in `request'
    /Users/user/.rbenv.m1/versions/jruby-9.4.3.0/lib/ruby/stdlib/rubygems/request.rb:223:in `perform_request'
    /Users/user/.rbenv.m1/versions/jruby-9.4.3.0/lib/ruby/stdlib/rubygems/request.rb:155:in `fetch'
    /Users/user/.rbenv.m1/versions/jruby-9.4.3.0/lib/ruby/stdlib/rubygems/remote_fetcher.rb:310:in `request'
    /Users/user/.rbenv.m1/versions/jruby-9.4.3.0/lib/ruby/stdlib/rubygems/gemcutter_utilities.rb:250:in `request_with_otp'
    /Users/user/.rbenv.m1/versions/jruby-9.4.3.0/lib/ruby/stdlib/rubygems/gemcutter_utilities.rb:107:in `rubygems_api_request'
    /Users/user/.rbenv.m1/versions/jruby-9.4.3.0/lib/ruby/stdlib/rubygems/commands/push_command.rb:90:in `send_push_request'
    /Users/user/.rbenv.m1/versions/jruby-9.4.3.0/lib/ruby/stdlib/rubygems/commands/push_command.rb:82:in `send_gem'
    /Users/user/.rbenv.m1/versions/jruby-9.4.3.0/lib/ruby/stdlib/rubygems/commands/push_command.rb:67:in `execute'
    /Users/user/.rbenv.m1/versions/jruby-9.4.3.0/lib/ruby/stdlib/rubygems/command.rb:328:in `invoke_with_build_args'
    /Users/user/.rbenv.m1/versions/jruby-9.4.3.0/lib/ruby/stdlib/rubygems/command_manager.rb:253:in `invoke_command'
    /Users/user/.rbenv.m1/versions/jruby-9.4.3.0/lib/ruby/stdlib/rubygems/command_manager.rb:193:in `process_args'
    /Users/user/.rbenv.m1/versions/jruby-9.4.3.0/lib/ruby/stdlib/rubygems/command_manager.rb:151:in `run'
    /Users/user/.rbenv.m1/versions/jruby-9.4.3.0/lib/ruby/stdlib/rubygems/gem_runner.rb:52:in `run'
    /Users/user/.rbenv.m1/versions/jruby-9.4.3.0/bin/gem:12:in `<main>'
ruby -v
jruby 9.4.3.0 (3.1.4) 2023-06-07 3086960792 OpenJDK 64-Bit Server VM 17.0.7+7-LTS on 17.0.7+7-LTS +jit [arm64-darwin]
jsvd commented 1 year ago

I wonder if this is related to https://github.com/jruby/jruby-openssl/issues/242

hiroyuki-sato commented 12 months ago

Hello, @jsvd. Thank you for your reply It seems the same error.

Summary

SSLSocket.syswriteImpl java.io.IOException: Broken pipe
        at java.base/sun.nio.ch.FileDispatcherImpl.write0(Native Method)
        at java.base/sun.nio.ch.SocketDispatcher.write(SocketDispatcher.java:62)
        at java.base/sun.nio.ch.IOUtil.writeFromNativeBuffer(IOUtil.java:132)
        at java.base/sun.nio.ch.IOUtil.write(IOUtil.java:97)
        at java.base/sun.nio.ch.IOUtil.write(IOUtil.java:53)
        at java.base/sun.nio.ch.SocketChannelImpl.write(SocketChannelImpl.java:532)
        at org.jruby.ext.openssl.SSLSocket$JavaSocketChannel.write(SSLSocket.java:1279)
        at org.jruby.ext.openssl.SSLSocket.writeToChannel(SSLSocket.java:652)
        at org.jruby.ext.openssl.SSLSocket.flushData(SSLSocket.java:640)
        at org.jruby.ext.openssl.SSLSocket.write(SSLSocket.java:687)
        at org.jruby.ext.openssl.SSLSocket.syswriteImpl(SSLSocket.java:940)
        at org.jruby.ext.openssl.SSLSocket.syswrite_nonblock(SSLSocket.java:975)
        at org.jruby.ext.openssl.SSLSocket$INVOKER$i$syswrite_nonblock.call(SSLSocket$INVOKER$i$syswrite_nonblock.gen)

Complete log

JRUBY_OPTS="-J-Djruby.openssl.debug=true -J-Djavax.net.debug=ssl:handshake" gem push embulk-filter-calc-0.2.1.pretest-java.gem
Pushing gem to https://rubygems.org...
javax.net.ssl|DEBUG|10|main|2023-09-25 24:38:25.345 JST|SSLCipher.java:466|jdk.tls.keyLimits:  entry = AES/GCM/NoPadding KeyUpdate 2^37. AES/GCM/NOPADDING:KEYUPDATE = 137438953472
javax.net.ssl|INFO|10|main|2023-09-25 24:38:25.392 JST|AlpnExtension.java:182|No available application protocols
javax.net.ssl|DEBUG|10|main|2023-09-25 24:38:25.392 JST|SSLExtensions.java:272|Ignore, context unavailable extension: application_layer_protocol_negotiation
javax.net.ssl|DEBUG|10|main|2023-09-25 24:38:25.393 JST|SessionTicketExtension.java:408|Stateless resumption supported
javax.net.ssl|DEBUG|10|main|2023-09-25 24:38:25.393 JST|SSLExtensions.java:272|Ignore, context unavailable extension: cookie
javax.net.ssl|DEBUG|10|main|2023-09-25 24:38:25.403 JST|PreSharedKeyExtension.java:661|No session to resume.
javax.net.ssl|DEBUG|10|main|2023-09-25 24:38:25.404 JST|SSLExtensions.java:272|Ignore, context unavailable extension: pre_shared_key
javax.net.ssl|DEBUG|10|main|2023-09-25 24:38:25.407 JST|ClientHello.java:641|Produced ClientHello handshake message (
"ClientHello": {
  "client version"      : "TLSv1.2",
  "random"              : "2F74A8A98AFE77A46A0B522D6F69351615B8DBA862DF8A59F89E684BFD153D0F",
  "session id"          : "929EB81844F345F95B2854FB84A00796EF5B26ECD3183E608DA7F4C2FA2CF2B8",
  "cipher suites"       : "[TLS_AES_256_GCM_SHA384(0x1302), TLS_AES_128_GCM_SHA256(0x1301), TLS_CHACHA20_POLY1305_SHA256(0x1303), TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384(0xC02C), TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256(0xC02B), TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384(0xC030), TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256(0xC02F), TLS_DHE_RSA_WITH_AES_256_GCM_SHA384(0x009F), TLS_DHE_DSS_WITH_AES_256_GCM_SHA384(0x00A3), TLS_DHE_RSA_WITH_AES_128_GCM_SHA256(0x009E), TLS_DHE_DSS_WITH_AES_128_GCM_SHA256(0x00A2), TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384(0xC024), TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384(0xC028), TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256(0xC023), TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256(0xC027), TLS_DHE_RSA_WITH_AES_256_CBC_SHA256(0x006B), TLS_DHE_DSS_WITH_AES_256_CBC_SHA256(0x006A), TLS_DHE_RSA_WITH_AES_128_CBC_SHA256(0x0067), TLS_DHE_DSS_WITH_AES_128_CBC_SHA256(0x0040), TLS_ECDH_ECDSA_WITH_AES_256_GCM_SHA384(0xC02E), TLS_ECDH_RSA_WITH_AES_256_GCM_SHA384(0xC032), TLS_ECDH_ECDSA_WITH_AES_128_GCM_SHA256(0xC02D), TLS_ECDH_RSA_WITH_AES_128_GCM_SHA256(0xC031), TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA384(0xC026), TLS_ECDH_RSA_WITH_AES_256_CBC_SHA384(0xC02A), TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA256(0xC025), TLS_ECDH_RSA_WITH_AES_128_CBC_SHA256(0xC029), TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA(0xC00A), TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA(0xC014), TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA(0xC009), TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA(0xC013), TLS_DHE_RSA_WITH_AES_256_CBC_SHA(0x0039), TLS_DHE_DSS_WITH_AES_256_CBC_SHA(0x0038), TLS_DHE_RSA_WITH_AES_128_CBC_SHA(0x0033), TLS_DHE_DSS_WITH_AES_128_CBC_SHA(0x0032), TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA(0xC005), TLS_ECDH_RSA_WITH_AES_256_CBC_SHA(0xC00F), TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA(0xC004), TLS_ECDH_RSA_WITH_AES_128_CBC_SHA(0xC00E), TLS_RSA_WITH_AES_256_GCM_SHA384(0x009D), TLS_RSA_WITH_AES_128_GCM_SHA256(0x009C), TLS_RSA_WITH_AES_256_CBC_SHA256(0x003D), TLS_RSA_WITH_AES_128_CBC_SHA256(0x003C), TLS_RSA_WITH_AES_256_CBC_SHA(0x0035), TLS_RSA_WITH_AES_128_CBC_SHA(0x002F)]",
  "compression methods" : "00",
  "extensions"          : [
    "server_name (0)": {
      type=host_name (0), value=rubygems.org
    },
    "status_request (5)": {
      "certificate status type": ocsp
      "OCSP status request": {
        "responder_id": <empty>
        "request extensions": {
          <empty>
        }
      }
    },
    "supported_groups (10)": {
      "versions": [x25519, secp256r1, secp384r1, secp521r1, x448, ffdhe2048, ffdhe3072, ffdhe4096, ffdhe6144, ffdhe8192]
    },
    "ec_point_formats (11)": {
      "formats": [uncompressed]
    },
    "status_request_v2 (17)": {
      "cert status request": {
        "certificate status type": ocsp_multi
        "OCSP status request": {
          "responder_id": <empty>
          "request extensions": {
            <empty>
          }
        }
      }
    },
    "extended_master_secret (23)": {
      <empty>
    },
    "session_ticket (35)": {
      <empty>
    },
    "signature_algorithms (13)": {
      "signature schemes": [ecdsa_secp256r1_sha256, ecdsa_secp384r1_sha384, ecdsa_secp521r1_sha512, ed25519, ed448, rsa_pss_rsae_sha256, rsa_pss_rsae_sha384, rsa_pss_rsae_sha512, rsa_pss_pss_sha256, rsa_pss_pss_sha384, rsa_pss_pss_sha512, rsa_pkcs1_sha256, rsa_pkcs1_sha384, rsa_pkcs1_sha512, dsa_sha256, ecdsa_sha224, rsa_sha224, dsa_sha224, ecdsa_sha1, rsa_pkcs1_sha1, dsa_sha1]
    },
    "supported_versions (43)": {
      "versions": [TLSv1.3, TLSv1.2]
    },
    "psk_key_exchange_modes (45)": {
      "ke_modes": [psk_dhe_ke]
    },
    "signature_algorithms_cert (50)": {
      "signature schemes": [ecdsa_secp256r1_sha256, ecdsa_secp384r1_sha384, ecdsa_secp521r1_sha512, ed25519, ed448, rsa_pss_rsae_sha256, rsa_pss_rsae_sha384, rsa_pss_rsae_sha512, rsa_pss_pss_sha256, rsa_pss_pss_sha384, rsa_pss_pss_sha512, rsa_pkcs1_sha256, rsa_pkcs1_sha384, rsa_pkcs1_sha512, dsa_sha256, ecdsa_sha224, rsa_sha224, dsa_sha224, ecdsa_sha1, rsa_pkcs1_sha1, dsa_sha1]
    },
    "key_share (51)": {
      "client_shares": [
        {
          "named group": x25519
          "key_exchange": {
            0000: CB 91 46 C9 19 17 80 08   EF E0 19 65 16 17 C8 0A  ..F........e....
            0010: 33 A1 9A 04 53 0C 92 11   6B 5A C0 95 A9 4D 57 35  3...S...kZ...MW5
          }
        },
        {
          "named group": secp256r1
          "key_exchange": {
            0000: 04 45 26 AC 77 0D 4F B0   9D 2D F9 EA E1 EC A1 8D  .E&.w.O..-......
            0010: 71 FB A7 FB 77 A3 11 14   9D E1 1B 1D BE 87 AC B3  q...w...........
            0020: 58 53 98 F4 F5 FB 07 45   46 B7 53 4B 78 24 2F 4B  XS.....EF.SKx$/K
            0030: 45 AF 4D 39 91 9B ED 54   90 01 59 81 D8 CA 53 ED  E.M9...T..Y...S.
            0040: 7D
          }
        },
      ]
    },
    "renegotiation_info (65,281)": {
      "renegotiated connection": [<no renegotiated connection>]
    }
  ]
}
)
javax.net.ssl|DEBUG|10|main|2023-09-25 24:38:25.420 JST|ServerHello.java:888|Consuming ServerHello handshake message (
"ServerHello": {
  "server version"      : "TLSv1.2",
  "random"              : "3ECE8D66109812E9F67592CFD65786356CD00AED15D2B63005B5289A12305DDC",
  "session id"          : "929EB81844F345F95B2854FB84A00796EF5B26ECD3183E608DA7F4C2FA2CF2B8",
  "cipher suite"        : "TLS_AES_256_GCM_SHA384(0x1302)",
  "compression methods" : "00",
  "extensions"          : [
    "supported_versions (43)": {
      "selected version": [TLSv1.3]
    },
    "key_share (51)": {
      "server_share": {
        "named group": x25519
        "key_exchange": {
          0000: FC D0 53 35 49 09 3E 03   49 8D ED 50 3F 60 D1 7D  ..S5I.>.I..P?`..
          0010: A9 57 33 F4 64 C9 3B DD   2E B7 7F E3 F4 06 FA 02  .W3.d.;.........
        }
      },
    }
  ]
}
)
javax.net.ssl|DEBUG|10|main|2023-09-25 24:38:25.420 JST|SSLExtensions.java:204|Consumed extension: supported_versions
javax.net.ssl|DEBUG|10|main|2023-09-25 24:38:25.420 JST|ServerHello.java:984|Negotiated protocol version: TLSv1.3
javax.net.ssl|DEBUG|10|main|2023-09-25 24:38:25.421 JST|SSLExtensions.java:175|Ignore unsupported extension: server_name
javax.net.ssl|DEBUG|10|main|2023-09-25 24:38:25.421 JST|SSLExtensions.java:175|Ignore unsupported extension: max_fragment_length
javax.net.ssl|DEBUG|10|main|2023-09-25 24:38:25.421 JST|SSLExtensions.java:175|Ignore unsupported extension: status_request
javax.net.ssl|DEBUG|10|main|2023-09-25 24:38:25.421 JST|SSLExtensions.java:175|Ignore unsupported extension: ec_point_formats
javax.net.ssl|DEBUG|10|main|2023-09-25 24:38:25.421 JST|SSLExtensions.java:175|Ignore unsupported extension: application_layer_protocol_negotiation
javax.net.ssl|DEBUG|10|main|2023-09-25 24:38:25.421 JST|SSLExtensions.java:175|Ignore unsupported extension: status_request_v2
javax.net.ssl|DEBUG|10|main|2023-09-25 24:38:25.421 JST|SSLExtensions.java:175|Ignore unsupported extension: extended_master_secret
javax.net.ssl|DEBUG|10|main|2023-09-25 24:38:25.421 JST|SSLExtensions.java:175|Ignore unsupported extension: session_ticket
javax.net.ssl|DEBUG|10|main|2023-09-25 24:38:25.421 JST|SSLExtensions.java:204|Consumed extension: supported_versions
javax.net.ssl|DEBUG|10|main|2023-09-25 24:38:25.422 JST|SSLExtensions.java:204|Consumed extension: key_share
javax.net.ssl|DEBUG|10|main|2023-09-25 24:38:25.422 JST|SSLExtensions.java:175|Ignore unsupported extension: renegotiation_info
javax.net.ssl|DEBUG|10|main|2023-09-25 24:38:25.422 JST|PreSharedKeyExtension.java:924|Handling pre_shared_key absence.
javax.net.ssl|DEBUG|10|main|2023-09-25 24:38:25.422 JST|SSLExtensions.java:219|Ignore unavailable extension: server_name
javax.net.ssl|DEBUG|10|main|2023-09-25 24:38:25.423 JST|SSLExtensions.java:219|Ignore unavailable extension: max_fragment_length
javax.net.ssl|DEBUG|10|main|2023-09-25 24:38:25.423 JST|SSLExtensions.java:219|Ignore unavailable extension: status_request
javax.net.ssl|DEBUG|10|main|2023-09-25 24:38:25.423 JST|SSLExtensions.java:219|Ignore unavailable extension: ec_point_formats
javax.net.ssl|DEBUG|10|main|2023-09-25 24:38:25.423 JST|SSLExtensions.java:219|Ignore unavailable extension: application_layer_protocol_negotiation
javax.net.ssl|DEBUG|10|main|2023-09-25 24:38:25.423 JST|SSLExtensions.java:219|Ignore unavailable extension: status_request_v2
javax.net.ssl|DEBUG|10|main|2023-09-25 24:38:25.423 JST|SSLExtensions.java:219|Ignore unavailable extension: extended_master_secret
javax.net.ssl|DEBUG|10|main|2023-09-25 24:38:25.423 JST|SSLExtensions.java:219|Ignore unavailable extension: session_ticket
javax.net.ssl|WARNING|10|main|2023-09-25 24:38:25.423 JST|SSLExtensions.java:227|Ignore impact of unsupported extension: supported_versions
javax.net.ssl|WARNING|10|main|2023-09-25 24:38:25.423 JST|SSLExtensions.java:227|Ignore impact of unsupported extension: key_share
javax.net.ssl|DEBUG|10|main|2023-09-25 24:38:25.423 JST|SSLExtensions.java:219|Ignore unavailable extension: renegotiation_info
javax.net.ssl|DEBUG|10|main|2023-09-25 24:38:25.423 JST|SSLExtensions.java:219|Ignore unavailable extension: pre_shared_key
javax.net.ssl|DEBUG|10|main|2023-09-25 24:38:25.426 JST|SSLCipher.java:1870|KeyLimit read side: algorithm = AES/GCM/NOPADDING:KEYUPDATE
countdown value = 137438953472
javax.net.ssl|DEBUG|10|main|2023-09-25 24:38:25.426 JST|SSLCipher.java:2024|KeyLimit write side: algorithm = AES/GCM/NOPADDING:KEYUPDATE
countdown value = 137438953472
javax.net.ssl|DEBUG|10|main|2023-09-25 24:38:25.427 JST|ChangeCipherSpec.java:246|Consuming ChangeCipherSpec message
javax.net.ssl|DEBUG|10|main|2023-09-25 24:38:25.428 JST|EncryptedExtensions.java:171|Consuming EncryptedExtensions handshake message (
"EncryptedExtensions": [
  "server_name (0)": {
    <empty extension_data field>
  }
]
)
javax.net.ssl|DEBUG|10|main|2023-09-25 24:38:25.428 JST|SSLExtensions.java:204|Consumed extension: server_name
javax.net.ssl|DEBUG|10|main|2023-09-25 24:38:25.428 JST|SSLExtensions.java:185|Ignore unavailable extension: max_fragment_length
javax.net.ssl|DEBUG|10|main|2023-09-25 24:38:25.428 JST|SSLExtensions.java:185|Ignore unavailable extension: supported_groups
javax.net.ssl|WARNING|10|main|2023-09-25 24:38:25.428 JST|SSLExtensions.java:227|Ignore impact of unsupported extension: server_name
javax.net.ssl|DEBUG|10|main|2023-09-25 24:38:25.428 JST|SSLExtensions.java:219|Ignore unavailable extension: max_fragment_length
javax.net.ssl|DEBUG|10|main|2023-09-25 24:38:25.429 JST|SSLExtensions.java:219|Ignore unavailable extension: supported_groups
javax.net.ssl|DEBUG|10|main|2023-09-25 24:38:25.429 JST|SSLExtensions.java:219|Ignore unavailable extension: application_layer_protocol_negotiation
javax.net.ssl|DEBUG|10|main|2023-09-25 24:38:25.436 JST|CertificateMessage.java:1172|Consuming server Certificate handshake message (
"Certificate": {
  "certificate_request_context": "",
  "certificate_list": [
  {
    "certificate" : {
      "version"            : "v3",
      "serial number"      : "012D77F44FEA82DFB64AAF6E89CF176D",
      "signature algorithm": "SHA256withRSA",
      "issuer"             : "CN=GlobalSign Atlas R3 DV TLS CA 2023 Q3, O=GlobalSign nv-sa, C=BE",
      "not before"         : "2023-07-31 02:45:18.000 JST",
      "not  after"         : "2024-08-31 02:45:17.000 JST",
      "subject"            : "CN=rubygems.org",
      "subject public key" : "RSA",
      "extensions"         : [
        {
          ObjectId: 1.3.6.1.4.1.11129.2.4.2 Criticality=false
        },
        {
          ObjectId: 1.3.6.1.5.5.7.1.1 Criticality=false
          AuthorityInfoAccess [
            [
             accessMethod: ocsp
             accessLocation: URIName: http://ocsp.globalsign.com/ca/gsatlasr3dvtlsca2023q3
          ,
             accessMethod: caIssuers
             accessLocation: URIName: http://secure.globalsign.com/cacert/gsatlasr3dvtlsca2023q3.crt
          ]
          ]
        },
        {
          ObjectId: 2.5.29.35 Criticality=false
          AuthorityKeyIdentifier [
          KeyIdentifier [
          0000: ED A0 E6 01 05 3E 34 82   1A A4 4F 5F C5 BD 11 41  .....>4...O_...A
          0010: AA DF F3 61                                        ...a
          ]
          ]
        },
        {
          ObjectId: 2.5.29.19 Criticality=true
          BasicConstraints:[
            CA:false
            PathLen: undefined
          ]
        },
        {
          ObjectId: 2.5.29.31 Criticality=false
          CRLDistributionPoints [
            [DistributionPoint:
               [URIName: http://crl.globalsign.com/ca/gsatlasr3dvtlsca2023q3.crl]
          ]]
        },
        {
          ObjectId: 2.5.29.32 Criticality=false
          CertificatePolicies [
            [CertificatePolicyId: [2.23.140.1.2.1]
          []  ]
            [CertificatePolicyId: [1.3.6.1.4.1.4146.10.1.3]
          [PolicyQualifierInfo: [
            qualifierID: 1.3.6.1.5.5.7.2.1
            qualifier: 0000: 16 26 68 74 74 70 73 3A   2F 2F 77 77 77 2E 67 6C  .&https://www.gl
          0010: 6F 62 61 6C 73 69 67 6E   2E 63 6F 6D 2F 72 65 70  obalsign.com/rep
          0020: 6F 73 69 74 6F 72 79 2F                            ository/

          ]]  ]
          ]
        },
        {
          ObjectId: 2.5.29.37 Criticality=false
          ExtendedKeyUsages [
            serverAuth
            clientAuth
          ]
        },
        {
          ObjectId: 2.5.29.15 Criticality=true
          KeyUsage [
            DigitalSignature
            Key_Encipherment
          ]
        },
        {
          ObjectId: 2.5.29.17 Criticality=false
          SubjectAlternativeName [
            DNSName: rubygems.org
            DNSName: *.rubygems.org
            DNSName: *.staging.rubygems.org
            DNSName: staging.rubygems.org
          ]
        },
        {
          ObjectId: 2.5.29.14 Criticality=false
          SubjectKeyIdentifier [
          KeyIdentifier [
          0000: AC 81 26 A1 8A 74 26 30   D6 C6 1D 89 07 97 01 44  ..&..t&0.......D
          0010: CB 0F EC 3D                                        ...=
          ]
          ]
        }
      ]}
    "extensions": {
      "status_request (5)": {
        "certificate status response type": ocsp
        "OCSP status response": {
          OCSP Response:
          Response Status: SUCCESSFUL
          Responder ID: byKey: 643A03CECDF5B262AE8A822C865DAF9EAF033D73
          Produced at: Sun Sep 24 20:51:00 JST 2023
          1 response:
          SingleResponse:
          CertId
          Algorithm: SHA-1
          issuerNameHash
          0000: 52 EA AE BC D2 89 11 C9   DF 50 BF 48 3C 03 7F 8C  R........P.H<...
          0010: 4F D1 D4 8B
          issuerKeyHash:
          0000: ED A0 E6 01 05 3E 34 82   1A A4 4F 5F C5 BD 11 41  .....>4...O_...A
          0010: AA DF F3 61
          SerialNumber: [    012d77f4 4fea82df b64aaf6e 89cf176d]
          CertStatus: GOOD
          thisUpdate is Sun Sep 24 20:00:00 JST 2023
          nextUpdate is Mon Sep 25 08:00:00 JST 2023
        }
      }
    }
  },
  {
    "certificate" : {
      "version"            : "v3",
      "serial number"      : "7E87C2A325B274BBFABC90D6C528655E",
      "signature algorithm": "SHA256withRSA",
      "issuer"             : "CN=GlobalSign, O=GlobalSign, OU=GlobalSign Root CA - R3",
      "not before"         : "2023-04-19 12:52:32.000 JST",
      "not  after"         : "2025-04-19 09:00:00.000 JST",
      "subject"            : "CN=GlobalSign Atlas R3 DV TLS CA 2023 Q3, O=GlobalSign nv-sa, C=BE",
      "subject public key" : "RSA",
      "extensions"         : [
        {
          ObjectId: 1.3.6.1.5.5.7.1.1 Criticality=false
          AuthorityInfoAccess [
            [
             accessMethod: ocsp
             accessLocation: URIName: http://ocsp2.globalsign.com/rootr3
          ,
             accessMethod: caIssuers
             accessLocation: URIName: http://secure.globalsign.com/cacert/root-r3.crt
          ]
          ]
        },
        {
          ObjectId: 2.5.29.35 Criticality=false
          AuthorityKeyIdentifier [
          KeyIdentifier [
          0000: 8F F0 4B 7F A8 2E 45 24   AE 4D 50 FA 63 9A 8B DE  ..K...E$.MP.c...
          0010: E2 DD 1B BC                                        ....
          ]
          ]
        },
        {
          ObjectId: 2.5.29.19 Criticality=true
          BasicConstraints:[
            CA:true
            PathLen:0
          ]
        },
        {
          ObjectId: 2.5.29.31 Criticality=false
          CRLDistributionPoints [
            [DistributionPoint:
               [URIName: http://crl.globalsign.com/root-r3.crl]
          ]]
        },
        {
          ObjectId: 2.5.29.32 Criticality=false
          CertificatePolicies [
            [CertificatePolicyId: [2.23.140.1.2.1]
          []  ]
            [CertificatePolicyId: [1.3.6.1.4.1.4146.10.1.3]
          []  ]
          ]
        },
        {
          ObjectId: 2.5.29.37 Criticality=false
          ExtendedKeyUsages [
            serverAuth
            clientAuth
          ]
        },
        {
          ObjectId: 2.5.29.15 Criticality=true
          KeyUsage [
            DigitalSignature
            Key_CertSign
            Crl_Sign
          ]
        },
        {
          ObjectId: 2.5.29.14 Criticality=false
          SubjectKeyIdentifier [
          KeyIdentifier [
          0000: ED A0 E6 01 05 3E 34 82   1A A4 4F 5F C5 BD 11 41  .....>4...O_...A
          0010: AA DF F3 61                                        ...a
          ]
          ]
        }
      ]}
    "extensions": {
      <no extension>
    }
  },
]
}
)
javax.net.ssl|DEBUG|10|main|2023-09-25 24:38:25.436 JST|SSLExtensions.java:204|Consumed extension: status_request
javax.net.ssl|DEBUG|10|main|2023-09-25 24:38:25.436 JST|SSLExtensions.java:185|Ignore unavailable extension: status_request
javax.net.ssl|DEBUG|10|main|2023-09-25 24:38:25.484 JST|CertificateVerify.java:1166|Consuming CertificateVerify handshake message (
"CertificateVerify": {
  "signature algorithm": rsa_pss_rsae_sha256
  "signature": {
    0000: 1E 01 70 10 BA ED C6 1F   2F 57 C4 9E 51 6D 10 03  ..p...../W..Qm..
    0010: 4A F7 5F 5B D8 83 E4 C8   AD 23 25 CC EB 23 22 05  J._[.....#%..#".
    0020: 65 B1 9A 09 E9 CA 34 EE   BE C4 E8 55 77 10 83 C8  e.....4....Uw...
    0030: 3E B7 01 D2 43 E7 6C 0D   3C A2 B5 83 60 66 02 B0  >...C.l.<...`f..
    0040: F2 1F 49 51 AB F2 2B 84   2E E0 F5 6F 5F 23 46 C2  ..IQ..+....o_#F.
    0050: 3B 0B FF 44 EA F2 5D 49   6F 3C CF 85 82 63 36 6F  ;..D..]Io<...c6o
    0060: CD 3C 30 82 34 D4 D9 15   23 FB 97 3E F9 F6 5F 83  .<0.4...#..>.._.
    0070: E7 70 CA 4E AD 4F CF C7   DB 09 1F F5 63 BE 99 52  .p.N.O......c..R
    0080: B9 81 EB 0D 16 4E 57 7C   19 9D 82 6B 88 7C C8 C0  .....NW....k....
    0090: 64 FC F4 C3 D3 7E 01 53   50 F3 B0 EB 67 EF D4 42  d......SP...g..B
    00A0: 86 1D B5 B9 71 7F B3 75   CE CD 02 D9 29 D1 54 E5  ....q..u....).T.
    00B0: 35 77 8F B8 B3 BC A7 D8   0C FD 2A 7D DC C0 20 68  5w........*... h
    00C0: 0E 52 1B 12 1D 39 D2 6F   DA AE 69 F7 62 95 C4 D7  .R...9.o..i.b...
    00D0: BD B5 03 1C BC 48 80 5A   28 D5 59 53 2B 9F CD 7A  .....H.Z(.YS+..z
    00E0: 67 03 7C D3 E4 26 F5 51   64 BC EF D0 6D 1E C3 3D  g....&.Qd...m..=
    00F0: 07 C3 B2 05 D0 22 DD BF   2E 3E FA 8E 14 4E E3 8A  ....."...>...N..
  }
}
)
javax.net.ssl|DEBUG|10|main|2023-09-25 24:38:25.486 JST|Finished.java:917|Consuming server Finished handshake message (
"Finished": {
  "verify data": {
    0000: 6F 45 4D 4F EE 54 2B 78   93 A2 B5 6A 54 A4 EB 30  oEMO.T+x...jT..0
    0010: F9 56 4A 4E 6C C0 ED 7E   91 EA 3A AD B4 4C F2 C1  .VJNl.....:..L..
    0020: F5 6A FB B6 AD D9 67 7C   84 83 EE D8 93 43 24 A7  .j....g......C$.
  }'}
)
javax.net.ssl|DEBUG|10|main|2023-09-25 24:38:25.486 JST|SSLCipher.java:1870|KeyLimit read side: algorithm = AES/GCM/NOPADDING:KEYUPDATE
countdown value = 137438953472
javax.net.ssl|DEBUG|10|main|2023-09-25 24:38:25.487 JST|Finished.java:687|Produced client Finished handshake message (
"Finished": {
  "verify data": {
    0000: 69 A6 98 F1 9F 7B 49 7B   85 D3 61 EE A2 6C 64 3A  i.....I...a..ld:
    0010: E7 2A A1 6A D3 81 81 AF   BF ED B7 4A 5F 2A CA 43  .*.j.......J_*.C
    0020: C4 C9 F7 F1 48 BC A3 CB   5E FA E9 FB 48 D6 9C E6  ....H...^...H...
  }'}
)
javax.net.ssl|DEBUG|10|main|2023-09-25 24:38:25.487 JST|SSLCipher.java:2024|KeyLimit write side: algorithm = AES/GCM/NOPADDING:KEYUPDATE
countdown value = 137438953472
javax.net.ssl|DEBUG|10|main|2023-09-25 24:38:25.489 JST|NewSessionTicket.java:567|Consuming NewSessionTicket message (
"NewSessionTicket": {
  "ticket_lifetime"      : "3,600",
  "ticket_age_add"       : "<omitted>",
  "ticket_nonce"         : "",
  "ticket"               : {
    0000: D3 0F A6 94 02 98 D4 FA   5F 8D 38 E1 E3 DB 55 79  ........_.8...Uy
    0010: 65 E9 CC 88 5F 9E 0F 0F   40 F3 66 0A BE B5 B5 66  e..._...@.f....f
    0020: F2 8A 62 53 98 AD 24 D2   2E 8A F1 E6 9A C9 19 BE  ..bS..$.........
    0030: 95 A3 52 11 70 FE 80 5E   6B B6 34 E3 CD 43 25 2B  ..R.p..^k.4..C%+
    0040: 1B 44 B3 31 1A E6 AA FB   3F AB 42 23 EB 9A EF 11  .D.1....?.B#....
    0050: 67 1B 27 1F AF 73 D4 B3   83 D3 E9 42 61 E2 E0 09  g.'..s.....Ba...
    0060: CC A2 84 3F F0 52 83 26   09 2A 29 D4 CD FB 6B 62  ...?.R.&.*)...kb
    0070: 5E C3 1E 52 38 21 CD E6   04 D9 D7 B9 3C F3 4C 3E  ^..R8!......<.L>
    0080: 47 4D C6 45 A1 C5 07 76   48 82 F5 2F 89 BB 68 CF  GM.E...vH../..h.
    0090: 46 6A D4 DB 17 CF 37 2B   1C 38 93 61 B4 A4 74 71  Fj....7+.8.a..tq
    00A0: F3 FB 3C ED 65 18 5D 26   94 30 0E 83 1D CA 39 7F  ..<.e.]&.0....9.
  }  "extensions"           : [
    <no extension>
  ]
}
)
SSLSocket.syswriteImpl java.io.IOException: Broken pipe
    at java.base/sun.nio.ch.FileDispatcherImpl.write0(Native Method)
    at java.base/sun.nio.ch.SocketDispatcher.write(SocketDispatcher.java:62)
    at java.base/sun.nio.ch.IOUtil.writeFromNativeBuffer(IOUtil.java:132)
    at java.base/sun.nio.ch.IOUtil.write(IOUtil.java:97)
    at java.base/sun.nio.ch.IOUtil.write(IOUtil.java:53)
    at java.base/sun.nio.ch.SocketChannelImpl.write(SocketChannelImpl.java:532)
    at org.jruby.ext.openssl.SSLSocket$JavaSocketChannel.write(SSLSocket.java:1279)
    at org.jruby.ext.openssl.SSLSocket.writeToChannel(SSLSocket.java:652)
    at org.jruby.ext.openssl.SSLSocket.flushData(SSLSocket.java:640)
    at org.jruby.ext.openssl.SSLSocket.write(SSLSocket.java:687)
    at org.jruby.ext.openssl.SSLSocket.syswriteImpl(SSLSocket.java:940)
    at org.jruby.ext.openssl.SSLSocket.syswrite_nonblock(SSLSocket.java:975)
    at org.jruby.ext.openssl.SSLSocket$INVOKER$i$syswrite_nonblock.call(SSLSocket$INVOKER$i$syswrite_nonblock.gen)
    at org.jruby.dist/org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:291)
    at org.jruby.dist/org.jruby.runtime.callsite.CachingCallSite.fcall(CachingCallSite.java:297)
    at Users.user.$_dot_rbenv_dot_m1.versions.jruby_minus_9_dot_4_dot_3_dot_0.lib.ruby.stdlib.openssl.buffering_dot_rb.invokeOther1:syswrite_nonblock(/Users/user/.rbenv.m1/versions/jruby-9.4.3.0/lib/ruby/stdlib/openssl/buffering.rb:406)
    at Users.user.$_dot_rbenv_dot_m1.versions.jruby_minus_9_dot_4_dot_3_dot_0.lib.ruby.stdlib.openssl.buffering_dot_rb.RUBY$method$write_nonblock$0(/Users/user/.rbenv.m1/versions/jruby-9.4.3.0/lib/ruby/stdlib/openssl/buffering.rb:406)
    at org.jruby.dist/org.jruby.internal.runtime.methods.CompiledIRMethod.call(CompiledIRMethod.java:139)
    at org.jruby.dist/org.jruby.internal.runtime.methods.CompiledIRMethod.call(CompiledIRMethod.java:175)
    at org.jruby.dist/org.jruby.internal.runtime.methods.MixedModeIRMethod.call(MixedModeIRMethod.java:222)
    at org.jruby.dist/org.jruby.internal.runtime.methods.DynamicMethod.call(DynamicMethod.java:228)
    at org.jruby.dist/org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:291)
    at org.jruby.dist/org.jruby.ir.interpreter.InterpreterEngine.processCall(InterpreterEngine.java:328)
    at org.jruby.dist/org.jruby.ir.interpreter.StartupInterpreterEngine.interpret(StartupInterpreterEngine.java:66)
    at org.jruby.dist/org.jruby.ir.interpreter.Interpreter.INTERPRET_BLOCK(Interpreter.java:116)
    at org.jruby.dist/org.jruby.runtime.MixedModeIRBlockBody.commonYieldPath(MixedModeIRBlockBody.java:136)
    at org.jruby.dist/org.jruby.runtime.IRBlockBody.call(IRBlockBody.java:66)
    at org.jruby.dist/org.jruby.runtime.IRBlockBody.call(IRBlockBody.java:48)
    at org.jruby.dist/org.jruby.runtime.Block.call(Block.java:170)
    at org.jruby.dist/org.jruby.RubyEnumerable$EachWithIndex.call(RubyEnumerable.java:1178)
    at org.jruby.dist/org.jruby.runtime.CallBlock.doYield(CallBlock.java:97)
    at org.jruby.dist/org.jruby.runtime.BlockBody.yield(BlockBody.java:108)
    at org.jruby.dist/org.jruby.runtime.Block.yield(Block.java:189)
    at org.jruby.dist/org.jruby.RubyArray.each(RubyArray.java:1989)
    at org.jruby.dist/org.jruby.RubyArray$INVOKER$i$0$0$each.call(RubyArray$INVOKER$i$0$0$each.gen)
    at org.jruby.dist/org.jruby.internal.runtime.methods.JavaMethod$JavaMethodZeroBlock.call(JavaMethod.java:561)
    at org.jruby.dist/org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:90)
    at org.jruby.dist/org.jruby.RubyEnumerable.callEach(RubyEnumerable.java:106)
    at org.jruby.dist/org.jruby.RubyEnumerable.each_with_indexCommon(RubyEnumerable.java:1195)
    at org.jruby.dist/org.jruby.RubyEnumerable.each_with_index(RubyEnumerable.java:1229)
    at org.jruby.dist/org.jruby.RubyEnumerable$INVOKER$s$each_with_index.call(RubyEnumerable$INVOKER$s$each_with_index.gen)
    at org.jruby.dist/org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:90)
    at org.jruby.dist/org.jruby.runtime.callsite.CachingCallSite.callIter(CachingCallSite.java:103)
    at org.jruby.dist/org.jruby.ir.instructions.CallBase.interpret(CallBase.java:558)
    at org.jruby.dist/org.jruby.ir.interpreter.InterpreterEngine.processCall(InterpreterEngine.java:367)
    at org.jruby.dist/org.jruby.ir.interpreter.StartupInterpreterEngine.interpret(StartupInterpreterEngine.java:66)
    at org.jruby.dist/org.jruby.internal.runtime.methods.MixedModeIRMethod.INTERPRET_METHOD(MixedModeIRMethod.java:128)
    at org.jruby.dist/org.jruby.internal.runtime.methods.MixedModeIRMethod.call(MixedModeIRMethod.java:115)
    at org.jruby.dist/org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:90)
    at org.jruby.dist/org.jruby.ir.instructions.CallBase.interpret(CallBase.java:561)
    at org.jruby.dist/org.jruby.ir.interpreter.InterpreterEngine.processCall(InterpreterEngine.java:367)
    at org.jruby.dist/org.jruby.ir.interpreter.StartupInterpreterEngine.interpret(StartupInterpreterEngine.java:66)
    at org.jruby.dist/org.jruby.ir.interpreter.Interpreter.INTERPRET_BLOCK(Interpreter.java:116)
    at org.jruby.dist/org.jruby.runtime.MixedModeIRBlockBody.commonYieldPath(MixedModeIRBlockBody.java:136)
    at org.jruby.dist/org.jruby.runtime.IRBlockBody.yieldSpecific(IRBlockBody.java:76)
    at org.jruby.dist/org.jruby.runtime.Block.yieldSpecific(Block.java:158)
    at org.jruby.dist/org.jruby.ir.runtime.IRRuntimeHelpers.yieldSpecific(IRRuntimeHelpers.java:500)
    at org.jruby.dist/org.jruby.ir.instructions.YieldInstr.interpret(YieldInstr.java:84)
    at org.jruby.dist/org.jruby.ir.interpreter.StartupInterpreterEngine.processOtherOp(StartupInterpreterEngine.java:166)
    at org.jruby.dist/org.jruby.ir.interpreter.StartupInterpreterEngine.interpret(StartupInterpreterEngine.java:98)
    at org.jruby.dist/org.jruby.internal.runtime.methods.MixedModeIRMethod.INTERPRET_METHOD(MixedModeIRMethod.java:128)
    at org.jruby.dist/org.jruby.internal.runtime.methods.MixedModeIRMethod.call(MixedModeIRMethod.java:115)
    at org.jruby.dist/org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:90)
    at org.jruby.dist/org.jruby.runtime.callsite.CachingCallSite.callIter(CachingCallSite.java:103)
    at org.jruby.dist/org.jruby.ir.instructions.CallBase.interpret(CallBase.java:558)
    at org.jruby.dist/org.jruby.ir.interpreter.InterpreterEngine.processCall(InterpreterEngine.java:367)
    at org.jruby.dist/org.jruby.ir.interpreter.StartupInterpreterEngine.interpret(StartupInterpreterEngine.java:66)
    at org.jruby.dist/org.jruby.ir.interpreter.InterpreterEngine.interpret(InterpreterEngine.java:82)
    at org.jruby.dist/org.jruby.internal.runtime.methods.MixedModeIRMethod.INTERPRET_METHOD(MixedModeIRMethod.java:201)
    at org.jruby.dist/org.jruby.internal.runtime.methods.MixedModeIRMethod.call(MixedModeIRMethod.java:188)
    at org.jruby.dist/org.jruby.internal.runtime.methods.DynamicMethod.call(DynamicMethod.java:220)
    at org.jruby.dist/org.jruby.runtime.callsite.CachingCallSite.cacheAndCall(CachingCallSite.java:466)
    at org.jruby.dist/org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:244)
    at org.jruby.dist/org.jruby.ir.interpreter.InterpreterEngine.processCall(InterpreterEngine.java:318)
    at org.jruby.dist/org.jruby.ir.interpreter.StartupInterpreterEngine.interpret(StartupInterpreterEngine.java:66)
    at org.jruby.dist/org.jruby.internal.runtime.methods.MixedModeIRMethod.INTERPRET_METHOD(MixedModeIRMethod.java:128)
    at org.jruby.dist/org.jruby.internal.runtime.methods.MixedModeIRMethod.call(MixedModeIRMethod.java:115)
    at org.jruby.dist/org.jruby.runtime.callsite.CachingCallSite.cacheAndCall(CachingCallSite.java:446)
    at org.jruby.dist/org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:92)
    at org.jruby.dist/org.jruby.ir.instructions.CallBase.interpret(CallBase.java:561)
    at org.jruby.dist/org.jruby.ir.interpreter.InterpreterEngine.processCall(InterpreterEngine.java:367)
    at org.jruby.dist/org.jruby.ir.interpreter.StartupInterpreterEngine.interpret(StartupInterpreterEngine.java:66)
    at org.jruby.dist/org.jruby.internal.runtime.methods.MixedModeIRMethod.INTERPRET_METHOD(MixedModeIRMethod.java:128)
    at org.jruby.dist/org.jruby.internal.runtime.methods.MixedModeIRMethod.call(MixedModeIRMethod.java:115)
    at org.jruby.dist/org.jruby.runtime.callsite.CachingCallSite.cacheAndCall(CachingCallSite.java:446)
    at org.jruby.dist/org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:92)
    at org.jruby.dist/org.jruby.ir.instructions.CallBase.interpret(CallBase.java:561)
    at org.jruby.dist/org.jruby.ir.interpreter.InterpreterEngine.processCall(InterpreterEngine.java:367)
    at org.jruby.dist/org.jruby.ir.interpreter.StartupInterpreterEngine.interpret(StartupInterpreterEngine.java:66)
    at org.jruby.dist/org.jruby.ir.interpreter.Interpreter.INTERPRET_BLOCK(Interpreter.java:116)
    at org.jruby.dist/org.jruby.runtime.MixedModeIRBlockBody.commonYieldPath(MixedModeIRBlockBody.java:136)
    at org.jruby.dist/org.jruby.runtime.IRBlockBody.doYield(IRBlockBody.java:170)
    at org.jruby.dist/org.jruby.runtime.BlockBody.yield(BlockBody.java:108)
    at org.jruby.dist/org.jruby.runtime.Block.yield(Block.java:189)
    at org.jruby.dist/org.jruby.exceptions.CatchThrow.enter(CatchThrow.java:32)
    at org.jruby.dist/org.jruby.RubyKernel.rbCatch(RubyKernel.java:1308)
    at org.jruby.dist/org.jruby.RubyKernel$INVOKER$s$rbCatch.call(RubyKernel$INVOKER$s$rbCatch.gen)
    at org.jruby.dist/org.jruby.runtime.callsite.CachingCallSite.cacheAndCall(CachingCallSite.java:471)
    at org.jruby.dist/org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:259)
    at org.jruby.dist/org.jruby.runtime.callsite.CachingCallSite.callIter(CachingCallSite.java:270)
    at org.jruby.dist/org.jruby.ir.interpreter.InterpreterEngine.processCall(InterpreterEngine.java:341)
    at org.jruby.dist/org.jruby.ir.interpreter.StartupInterpreterEngine.interpret(StartupInterpreterEngine.java:66)
    at org.jruby.dist/org.jruby.ir.interpreter.InterpreterEngine.interpret(InterpreterEngine.java:82)
    at org.jruby.dist/org.jruby.internal.runtime.methods.MixedModeIRMethod.INTERPRET_METHOD(MixedModeIRMethod.java:201)
    at org.jruby.dist/org.jruby.internal.runtime.methods.MixedModeIRMethod.call(MixedModeIRMethod.java:188)
    at org.jruby.dist/org.jruby.runtime.callsite.CachingCallSite.cacheAndCall(CachingCallSite.java:471)
    at org.jruby.dist/org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:259)
    at org.jruby.dist/org.jruby.ir.interpreter.InterpreterEngine.processCall(InterpreterEngine.java:342)
    at org.jruby.dist/org.jruby.ir.interpreter.StartupInterpreterEngine.interpret(StartupInterpreterEngine.java:66)
    at org.jruby.dist/org.jruby.ir.interpreter.InterpreterEngine.interpret(InterpreterEngine.java:82)
    at org.jruby.dist/org.jruby.internal.runtime.methods.MixedModeIRMethod.INTERPRET_METHOD(MixedModeIRMethod.java:201)
    at org.jruby.dist/org.jruby.internal.runtime.methods.MixedModeIRMethod.call(MixedModeIRMethod.java:188)
    at org.jruby.dist/org.jruby.internal.runtime.methods.DynamicMethod.call(DynamicMethod.java:220)
    at org.jruby.dist/org.jruby.runtime.callsite.CachingCallSite.cacheAndCall(CachingCallSite.java:466)
    at org.jruby.dist/org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:244)
    at org.jruby.dist/org.jruby.ir.interpreter.InterpreterEngine.processCall(InterpreterEngine.java:318)
    at org.jruby.dist/org.jruby.ir.interpreter.StartupInterpreterEngine.interpret(StartupInterpreterEngine.java:66)
    at org.jruby.dist/org.jruby.ir.interpreter.InterpreterEngine.interpret(InterpreterEngine.java:82)
    at org.jruby.dist/org.jruby.internal.runtime.methods.MixedModeIRMethod.INTERPRET_METHOD(MixedModeIRMethod.java:201)
    at org.jruby.dist/org.jruby.internal.runtime.methods.MixedModeIRMethod.call(MixedModeIRMethod.java:188)
    at org.jruby.dist/org.jruby.internal.runtime.methods.DynamicMethod.call(DynamicMethod.java:220)
    at org.jruby.dist/org.jruby.runtime.callsite.CachingCallSite.cacheAndCall(CachingCallSite.java:466)
    at org.jruby.dist/org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:244)
    at org.jruby.dist/org.jruby.ir.interpreter.InterpreterEngine.processCall(InterpreterEngine.java:318)
    at org.jruby.dist/org.jruby.ir.interpreter.StartupInterpreterEngine.interpret(StartupInterpreterEngine.java:66)
    at org.jruby.dist/org.jruby.internal.runtime.methods.MixedModeIRMethod.INTERPRET_METHOD(MixedModeIRMethod.java:128)
    at org.jruby.dist/org.jruby.internal.runtime.methods.MixedModeIRMethod.call(MixedModeIRMethod.java:115)
    at org.jruby.dist/org.jruby.runtime.callsite.CachingCallSite.cacheAndCall(CachingCallSite.java:446)
    at org.jruby.dist/org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:92)
    at org.jruby.dist/org.jruby.runtime.callsite.CachingCallSite.callIter(CachingCallSite.java:103)
    at org.jruby.dist/org.jruby.ir.instructions.CallBase.interpret(CallBase.java:558)
    at org.jruby.dist/org.jruby.ir.interpreter.InterpreterEngine.processCall(InterpreterEngine.java:367)
    at org.jruby.dist/org.jruby.ir.interpreter.StartupInterpreterEngine.interpret(StartupInterpreterEngine.java:66)
    at org.jruby.dist/org.jruby.internal.runtime.methods.MixedModeIRMethod.INTERPRET_METHOD(MixedModeIRMethod.java:128)
    at org.jruby.dist/org.jruby.internal.runtime.methods.MixedModeIRMethod.call(MixedModeIRMethod.java:115)
    at org.jruby.dist/org.jruby.runtime.callsite.CachingCallSite.cacheAndCall(CachingCallSite.java:446)
    at org.jruby.dist/org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:92)
    at org.jruby.dist/org.jruby.runtime.callsite.CachingCallSite.callIter(CachingCallSite.java:103)
    at org.jruby.dist/org.jruby.ir.instructions.CallBase.interpret(CallBase.java:558)
    at org.jruby.dist/org.jruby.ir.interpreter.InterpreterEngine.processCall(InterpreterEngine.java:367)
    at org.jruby.dist/org.jruby.ir.interpreter.StartupInterpreterEngine.interpret(StartupInterpreterEngine.java:66)
    at org.jruby.dist/org.jruby.internal.runtime.methods.MixedModeIRMethod.INTERPRET_METHOD(MixedModeIRMethod.java:128)
    at org.jruby.dist/org.jruby.internal.runtime.methods.MixedModeIRMethod.call(MixedModeIRMethod.java:115)
    at org.jruby.dist/org.jruby.runtime.callsite.CachingCallSite.cacheAndCall(CachingCallSite.java:446)
    at org.jruby.dist/org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:92)
    at org.jruby.dist/org.jruby.ir.instructions.CallBase.interpret(CallBase.java:561)
    at org.jruby.dist/org.jruby.ir.interpreter.InterpreterEngine.processCall(InterpreterEngine.java:367)
    at org.jruby.dist/org.jruby.ir.interpreter.StartupInterpreterEngine.interpret(StartupInterpreterEngine.java:66)
    at org.jruby.dist/org.jruby.internal.runtime.methods.MixedModeIRMethod.INTERPRET_METHOD(MixedModeIRMethod.java:128)
    at org.jruby.dist/org.jruby.internal.runtime.methods.MixedModeIRMethod.call(MixedModeIRMethod.java:115)
    at org.jruby.dist/org.jruby.runtime.callsite.CachingCallSite.cacheAndCall(CachingCallSite.java:446)
    at org.jruby.dist/org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:92)
    at org.jruby.dist/org.jruby.runtime.callsite.CachingCallSite.callIter(CachingCallSite.java:103)
    at org.jruby.dist/org.jruby.ir.instructions.CallBase.interpret(CallBase.java:558)
    at org.jruby.dist/org.jruby.ir.interpreter.InterpreterEngine.processCall(InterpreterEngine.java:367)
    at org.jruby.dist/org.jruby.ir.interpreter.StartupInterpreterEngine.interpret(StartupInterpreterEngine.java:66)
    at org.jruby.dist/org.jruby.ir.interpreter.InterpreterEngine.interpret(InterpreterEngine.java:88)
    at org.jruby.dist/org.jruby.internal.runtime.methods.MixedModeIRMethod.INTERPRET_METHOD(MixedModeIRMethod.java:238)
    at org.jruby.dist/org.jruby.internal.runtime.methods.MixedModeIRMethod.call(MixedModeIRMethod.java:225)
    at org.jruby.dist/org.jruby.internal.runtime.methods.DynamicMethod.call(DynamicMethod.java:228)
    at org.jruby.dist/org.jruby.runtime.callsite.CachingCallSite.cacheAndCall(CachingCallSite.java:476)
    at org.jruby.dist/org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:293)
    at org.jruby.dist/org.jruby.ir.interpreter.InterpreterEngine.processCall(InterpreterEngine.java:328)
    at org.jruby.dist/org.jruby.ir.interpreter.StartupInterpreterEngine.interpret(StartupInterpreterEngine.java:66)
    at org.jruby.dist/org.jruby.ir.interpreter.InterpreterEngine.interpret(InterpreterEngine.java:82)
    at org.jruby.dist/org.jruby.internal.runtime.methods.MixedModeIRMethod.INTERPRET_METHOD(MixedModeIRMethod.java:201)
    at org.jruby.dist/org.jruby.internal.runtime.methods.MixedModeIRMethod.call(MixedModeIRMethod.java:188)
    at org.jruby.dist/org.jruby.internal.runtime.methods.DynamicMethod.call(DynamicMethod.java:220)
    at org.jruby.dist/org.jruby.runtime.callsite.CachingCallSite.cacheAndCall(CachingCallSite.java:466)
    at org.jruby.dist/org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:244)
    at org.jruby.dist/org.jruby.ir.interpreter.InterpreterEngine.processCall(InterpreterEngine.java:318)
    at org.jruby.dist/org.jruby.ir.interpreter.StartupInterpreterEngine.interpret(StartupInterpreterEngine.java:66)
    at org.jruby.dist/org.jruby.ir.interpreter.InterpreterEngine.interpret(InterpreterEngine.java:76)
    at org.jruby.dist/org.jruby.internal.runtime.methods.MixedModeIRMethod.INTERPRET_METHOD(MixedModeIRMethod.java:164)
    at org.jruby.dist/org.jruby.internal.runtime.methods.MixedModeIRMethod.call(MixedModeIRMethod.java:151)
    at org.jruby.dist/org.jruby.internal.runtime.methods.DynamicMethod.call(DynamicMethod.java:212)
    at org.jruby.dist/org.jruby.runtime.callsite.CachingCallSite.cacheAndCall(CachingCallSite.java:456)
    at org.jruby.dist/org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:195)
    at org.jruby.dist/org.jruby.ir.interpreter.InterpreterEngine.processCall(InterpreterEngine.java:350)
    at org.jruby.dist/org.jruby.ir.interpreter.StartupInterpreterEngine.interpret(StartupInterpreterEngine.java:66)
    at org.jruby.dist/org.jruby.ir.interpreter.InterpreterEngine.interpret(InterpreterEngine.java:88)
    at org.jruby.dist/org.jruby.internal.runtime.methods.MixedModeIRMethod.INTERPRET_METHOD(MixedModeIRMethod.java:238)
    at org.jruby.dist/org.jruby.internal.runtime.methods.MixedModeIRMethod.call(MixedModeIRMethod.java:225)
    at org.jruby.dist/org.jruby.internal.runtime.methods.DynamicMethod.call(DynamicMethod.java:228)
    at org.jruby.dist/org.jruby.runtime.callsite.CachingCallSite.cacheAndCall(CachingCallSite.java:476)
    at org.jruby.dist/org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:293)
    at org.jruby.dist/org.jruby.ir.interpreter.InterpreterEngine.processCall(InterpreterEngine.java:328)
    at org.jruby.dist/org.jruby.ir.interpreter.StartupInterpreterEngine.interpret(StartupInterpreterEngine.java:66)
    at org.jruby.dist/org.jruby.ir.interpreter.InterpreterEngine.interpret(InterpreterEngine.java:88)
    at org.jruby.dist/org.jruby.internal.runtime.methods.MixedModeIRMethod.INTERPRET_METHOD(MixedModeIRMethod.java:238)
    at org.jruby.dist/org.jruby.internal.runtime.methods.MixedModeIRMethod.call(MixedModeIRMethod.java:225)
    at org.jruby.dist/org.jruby.internal.runtime.methods.DynamicMethod.call(DynamicMethod.java:228)
    at org.jruby.dist/org.jruby.runtime.callsite.CachingCallSite.cacheAndCall(CachingCallSite.java:476)
    at org.jruby.dist/org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:293)
    at org.jruby.dist/org.jruby.ir.interpreter.InterpreterEngine.processCall(InterpreterEngine.java:328)
    at org.jruby.dist/org.jruby.ir.interpreter.StartupInterpreterEngine.interpret(StartupInterpreterEngine.java:66)
    at org.jruby.dist/org.jruby.ir.interpreter.InterpreterEngine.interpret(InterpreterEngine.java:88)
    at org.jruby.dist/org.jruby.internal.runtime.methods.MixedModeIRMethod.INTERPRET_METHOD(MixedModeIRMethod.java:238)
    at org.jruby.dist/org.jruby.internal.runtime.methods.MixedModeIRMethod.call(MixedModeIRMethod.java:225)
    at org.jruby.dist/org.jruby.internal.runtime.methods.DynamicMethod.call(DynamicMethod.java:228)
    at org.jruby.dist/org.jruby.runtime.callsite.CachingCallSite.cacheAndCall(CachingCallSite.java:476)
    at org.jruby.dist/org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:293)
    at org.jruby.dist/org.jruby.ir.interpreter.InterpreterEngine.processCall(InterpreterEngine.java:328)
    at org.jruby.dist/org.jruby.ir.interpreter.StartupInterpreterEngine.interpret(StartupInterpreterEngine.java:66)
    at org.jruby.dist/org.jruby.ir.interpreter.InterpreterEngine.interpret(InterpreterEngine.java:88)
    at org.jruby.dist/org.jruby.internal.runtime.methods.MixedModeIRMethod.INTERPRET_METHOD(MixedModeIRMethod.java:238)
    at org.jruby.dist/org.jruby.internal.runtime.methods.MixedModeIRMethod.call(MixedModeIRMethod.java:225)
    at org.jruby.dist/org.jruby.internal.runtime.methods.DynamicMethod.call(DynamicMethod.java:228)
    at org.jruby.dist/org.jruby.runtime.callsite.CachingCallSite.cacheAndCall(CachingCallSite.java:476)
    at org.jruby.dist/org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:293)
    at org.jruby.dist/org.jruby.ir.interpreter.InterpreterEngine.processCall(InterpreterEngine.java:328)
    at org.jruby.dist/org.jruby.ir.interpreter.StartupInterpreterEngine.interpret(StartupInterpreterEngine.java:66)
    at org.jruby.dist/org.jruby.ir.interpreter.InterpreterEngine.interpret(InterpreterEngine.java:82)
    at org.jruby.dist/org.jruby.internal.runtime.methods.MixedModeIRMethod.INTERPRET_METHOD(MixedModeIRMethod.java:201)
    at org.jruby.dist/org.jruby.internal.runtime.methods.MixedModeIRMethod.call(MixedModeIRMethod.java:188)
    at org.jruby.dist/org.jruby.internal.runtime.methods.DynamicMethod.call(DynamicMethod.java:220)
    at org.jruby.dist/org.jruby.runtime.callsite.CachingCallSite.cacheAndCall(CachingCallSite.java:466)
    at org.jruby.dist/org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:244)
    at Users.user.$_dot_rbenv_dot_m1.versions.jruby_minus_9_dot_4_dot_3_dot_0.bin.gem.invokeOther3:run(/Users/user/.rbenv.m1/versions/jruby-9.4.3.0/bin/gem:12)
    at Users.user.$_dot_rbenv_dot_m1.versions.jruby_minus_9_dot_4_dot_3_dot_0.bin.gem.RUBY$script(/Users/user/.rbenv.m1/versions/jruby-9.4.3.0/bin/gem:12)
    at Users.user.$_dot_rbenv_dot_m1.versions.jruby_minus_9_dot_4_dot_3_dot_0.bin.gem.run(/Users/user/.rbenv.m1/versions/jruby-9.4.3.0/bin/gem)
    at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)
    at org.jruby.dist/org.jruby.ir.Compiler$1.load(Compiler.java:114)
    at org.jruby.dist/org.jruby.Ruby.runScript(Ruby.java:1276)
    at org.jruby.dist/org.jruby.Ruby.runNormally(Ruby.java:1193)
    at org.jruby.dist/org.jruby.Ruby.runNormally(Ruby.java:1175)
    at org.jruby.dist/org.jruby.Ruby.runNormally(Ruby.java:1211)
    at org.jruby.dist/org.jruby.Ruby.runFromMain(Ruby.java:989)
    at org.jruby.dist/org.jruby.Main.doRunFromMain(Main.java:398)
    at org.jruby.dist/org.jruby.Main.internalRun(Main.java:282)
    at org.jruby.dist/org.jruby.Main.run(Main.java:227)
    at org.jruby.dist/org.jruby.Main.main(Main.java:199)
javax.net.ssl|ALL|10|main|2023-09-25 24:38:26.044 JST|SSLEngineImpl.java:825|Closing outbound of SSLEngine
javax.net.ssl|WARNING|10|main|2023-09-25 24:38:26.047 JST|SSLEngineOutputRecord.java:182|outbound has closed, ignore outbound application data
SSLSocket.close doShutdown failed java.io.IOException: Broken pipe
ERROR:  While executing gem ... (IOError)
    Broken pipe
    /Users/user/.rbenv.m1/versions/jruby-9.4.3.0/lib/ruby/stdlib/net/http.rb:1602:in `block in transport_request'
    org/jruby/RubyKernel.java:1308:in `catch'
    /Users/user/.rbenv.m1/versions/jruby-9.4.3.0/lib/ruby/stdlib/net/http.rb:1600:in `transport_request'
    /Users/user/.rbenv.m1/versions/jruby-9.4.3.0/lib/ruby/stdlib/net/http.rb:1573:in `request'
    /Users/user/.rbenv.m1/versions/jruby-9.4.3.0/lib/ruby/stdlib/rubygems/request.rb:223:in `perform_request'
    /Users/user/.rbenv.m1/versions/jruby-9.4.3.0/lib/ruby/stdlib/rubygems/request.rb:155:in `fetch'
    /Users/user/.rbenv.m1/versions/jruby-9.4.3.0/lib/ruby/stdlib/rubygems/remote_fetcher.rb:310:in `request'
    /Users/user/.rbenv.m1/versions/jruby-9.4.3.0/lib/ruby/stdlib/rubygems/gemcutter_utilities.rb:250:in `request_with_otp'
    /Users/user/.rbenv.m1/versions/jruby-9.4.3.0/lib/ruby/stdlib/rubygems/gemcutter_utilities.rb:107:in `rubygems_api_request'
    /Users/user/.rbenv.m1/versions/jruby-9.4.3.0/lib/ruby/stdlib/rubygems/commands/push_command.rb:90:in `send_push_request'
    /Users/user/.rbenv.m1/versions/jruby-9.4.3.0/lib/ruby/stdlib/rubygems/commands/push_command.rb:82:in `send_gem'
    /Users/user/.rbenv.m1/versions/jruby-9.4.3.0/lib/ruby/stdlib/rubygems/commands/push_command.rb:67:in `execute'
    /Users/user/.rbenv.m1/versions/jruby-9.4.3.0/lib/ruby/stdlib/rubygems/command.rb:328:in `invoke_with_build_args'
    /Users/user/.rbenv.m1/versions/jruby-9.4.3.0/lib/ruby/stdlib/rubygems/command_manager.rb:253:in `invoke_command'
    /Users/user/.rbenv.m1/versions/jruby-9.4.3.0/lib/ruby/stdlib/rubygems/command_manager.rb:193:in `process_args'
    /Users/user/.rbenv.m1/versions/jruby-9.4.3.0/lib/ruby/stdlib/rubygems/command_manager.rb:151:in `run'
    /Users/user/.rbenv.m1/versions/jruby-9.4.3.0/lib/ruby/stdlib/rubygems/gem_runner.rb:52:in `run'
    /Users/user/.rbenv.m1/versions/jruby-9.4.3.0/bin/gem:12:in `<main>'
headius commented 4 months ago

I started getting this myself on MacOS 14.4.1 on M1 and found one partial fix for this in jruby/jruby-openssl#301: raise the correct error for EPIPE.

With this the IOError no longer appears, but the new issue seems to be that RubyGems still doesn't properly apply the authentication tokens, and eventually gives up after too many connection resets: https://github.com/jruby/jruby-openssl/issues/242#issuecomment-2096581772

The IOError will be fixed in the next release of jruby-openssl. I'm not sure if the connection resetting is a new bug or something still related to this one.

headius commented 4 months ago

Oh also some notes here: