-
Notifications
You must be signed in to change notification settings - Fork 80
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
gem push fails with Broken Pipe IOError #242
Comments
Could you try to run this with more debugging output, via some combination of I'm trying to figure out if there's a dummy RG server somewhere I could use to test this. If you can get more debugging output we might have enough information to narrow the scope of this issue. |
OK, I just did and here is what I got:
I deleted my
|
On master, I was able to push a gem ok (Java 11, macOS 10.15). I will try with released 9.3 and see if I can repro. |
Oh and thank you for the extra logging output! Seems like this ties the issue back to jruby-openssl. However, I think we shipped the same jruby-openssl in 9.2.19.0 so there's more to the story. I was able to push a gem with the 9.3.0.0 release (installed via rvm) so we need to dig deeper on why this is failing for you.
@kares Any thoughts here? |
Thanks for giving it a try. Sorry, I forgot to provide the full version line, which indicates I am using JDK 16.
I am using MacOS Big Sur 11.6 Perhaps you would get different results with JDK 16? |
I will give that a shot. I also have a macOS 11 system here that I'll try to fire up tomorrow. |
Pushing on Java 16 appears to work fine for me locally, on Catalina.
|
I just tried with Fedora Core 34 using both Java 8 and Java 16 and this also works for me. Just thinking outloud perhaps some SSL settings is different for your env than ours and this is tripping over something? |
Thank you for testing with Java 16. Please keep in mind that gem pushing works for me on the same machine setup with earlier versions of JRuby and with CRuby as well. Also, did you notice the linkage from this issue by michaelklishin? ruby-amqp/march_hare#156 It seems he encountered the same issue. He also had to resort to CRuby to push his gem. |
Right, I believe you, I'm just trying to find a way to reproduce it here so we can fix it. I will try a few more things. |
This is an x86_64 MBP, yes? |
I attempted to push with Java 16 (x86_64) on a macOS 11.5 M1 machine and it also pushed ok there. Need to figure out how to get more information from your system. Have we tried all the relevant flags at this point? |
@michaelklishin If you are able to reproduce we could use another data point. JDK version? OS version? Hardware? |
“This is an x86_64 MBP, yes?” Yes, correct. |
I ran into this with JDK 13.0.2 on MacOS 11.6 (Intel hardware). |
@michaelklishin Thank you! |
@AndyObtiva @michaelklishin If you are able to reproduce this consistently, stop by our Matrix chat and I can work with you directly to figure out what is happening. |
I've upgrade my work machine to 11.6 and will try a few things to reproduce this again. |
Sadly I was still unable to reproduce this issue. @deivid-rodriguez Could there be something different when I am pushing a pre gem? Is there something more we could pass to RubyGems to get additional debugging output on the systems where this fails? |
I don't think a pre release would make any difference? And no, I think you're already using the full debugging output that we have available 😅. I looked for the error message and found a couple of links with the same error that may have useful information:
|
I just tried jruby-9.3.1.0 on a different machine (a MacBook Air x86-64 running Catalina 10.15.7) with JDK 16, and encountered the same exact issue:
Here is output with extra debugging options:
Otherwise, I just joined the Matrix chat: https://matrix.to/#/#jruby:matrix.org |
OK, so the good news is that I tried pushing the gem with JRuby-9.3.1.0 on Windows 10 x64, and that worked! The issue only seems to occur on Mac for me. I had it re-occur on a 3rd machine. MacBook Pro (13-inch, Mid 2012)
|
Gem pushing with JRuby-9.3.1.0 on Linux also works (I just performed successfully in Linux Mint Cinnamon). Given that it works on Windows too, that leaves only the Mac (x64) as a culprit. |
I transferred this to jruby-openssl since that seems to be where the error originates. This may still be a JRuby issue. The best way for us to investigate this would be to reproduce with a local gem server. If it is possible to do this in an example repo, it would greatly speed our ability to fix this. As it stands I have not been able to reproduce in any environment, including my x86_64 MacOS environment. I'm a bit stuck here! |
OK. I setup my own gem server with the gemstash gem following these instructions: I was unable to push a gem to it, but for a reason that seems unrelated to this issue:
I got the same result in CRuby. I would be happy to follow any exact instructions you could provide to push a gem locally. |
I will try to set up a server locally over the holidays to reproduce, and will share my setup once I have that working. |
Good news! With JDK17, I do not encounter the issue that I had with JDK16:
|
Nevermind. I got the error again today with JDK17:
Maybe some piece of software on my system is getting old or out of date and then starts causing trouble with openssl afterwards. I am only guessing that given that when I installed JDK17, I was able to push a gem in JRuby 9.3.1.0, but now I can't anymore. |
OK, I was able to push successfully again with JRuby 9.3.1.0 on JDK17, but in a brand new project with a fresh RVM gemset. The mystery continues I guess!
|
Sounds like a local gems mess. It's still weird but pbly needs to be figured out locally, might relate to smt being loaded. |
I started my
Here are the
Here are gems that are in the first project (
Here are gems that are in the second working project (
|
No dice again! I just created a brand new JRuby project and was not able to push a gem for it with JRuby:
That renders my theory completely false. Even brand new projects might have issues with gem pushing I suppose. That said, the gems that were pushed successfully before (e.g. In any case, here are the gems I am using in
|
I don't get it. It worked again! And, with the app that failed last time (Glimmer Metronome).
This is definitely a transient issue (with JDK17 at least, but with JDK16 I never got it to work though that doesn't matter to me at this point). |
This is frustratingly difficult to get a bead on. I have never been able to reproduce it myself. @AndyObtiva If you still have configurations where you can reproduce easily, try adding this env (to a debug/verbose/backtrace The trace we did get from you above helps, but the additional backtrace style flag will let us see the entire JVM call stack and the exact line where the error happens. |
There you go: % JRUBY_OPTS=-Xbacktrace.style=full gem push --verbose --backtrace --debug pkg/glimmer-dsl-swt-4.22.2.1.gem
NOTE: Debugging mode prints all exceptions even when rescued
Pushing gem to https://rubygems.org...
POST https://rubygems.org/api/v1/gems
Exception `IOError' at java/lang/Thread.java:1610 - Broken pipe
Exception `IOError' at java/lang/Thread.java:1610 - Broken pipe
Exception `IOError' at java/lang/Thread.java:1610 - Broken pipe
ERROR: While executing gem ... (IOError)
Broken pipe
java/lang/Thread.java:1610:in `getStackTrace'
org/jruby/runtime/backtrace/TraceType.java:247:in `getBacktraceData'
org/jruby/runtime/backtrace/TraceType.java:53:in `getBacktrace'
org/jruby/RubyException.java:402:in `captureBacktrace'
org/jruby/exceptions/RaiseException.java:208:in `preRaise'
org/jruby/exceptions/RaiseException.java:65:in `<init>'
org/jruby/exceptions/Exception.java:39:in `<init>'
org/jruby/exceptions/StandardError.java:38:in `<init>'
org/jruby/exceptions/IOError.java:38:in `<init>'
org/jruby/RubyIOError.java:51:in `constructThrowable'
org/jruby/RubyException.java:364:in `toThrowable'
org/jruby/exceptions/RaiseException.java:84:in `from'
org/jruby/Ruby.java:4296:in `newRaiseException'
org/jruby/Ruby.java:4206:in `newIOError'
org/jruby/ext/openssl/SSLSocket.java:915:in `syswriteImpl'
org/jruby/ext/openssl/SSLSocket.java:941:in `syswrite_nonblock'
org/jruby/ext/openssl/SSLSocket$INVOKER$i$syswrite_nonblock.gen:-1:in `call'
org/jruby/runtime/callsite/CachingCallSite.java:204:in `call'
Users/andymaleh/$_dot_rvm/rubies/jruby_minus_9_dot_3_dot_3_dot_0/lib/ruby/gems/shared/gems/jruby_minus_openssl_minus_0_dot_11_dot_0_minus_java/lib/jopenssl23/openssl//Users/andymaleh/.rvm/rubies/jruby-9.3.3.0/lib/ruby/gems/shared/gems/jruby-openssl-0.11.0-java/lib/jopenssl23/openssl/buffering.rb:383:in `invokeOther1:syswrite_nonblock'
/Users/andymaleh/.rvm/rubies/jruby-9.3.3.0/lib/ruby/gems/shared/gems/jruby-openssl-0.11.0-java/lib/jopenssl23/openssl/buffering.rb:383:in `write_nonblock'
org/jruby/internal/runtime/methods/CompiledIRMethod.java:139:in `call'
org/jruby/internal/runtime/methods/CompiledIRMethod.java:175:in `call'
org/jruby/internal/runtime/methods/MixedModeIRMethod.java:222:in `call'
org/jruby/internal/runtime/methods/DynamicMethod.java:214:in `call'
org/jruby/runtime/callsite/CachingCallSite.java:204:in `call'
org/jruby/ir/interpreter/InterpreterEngine.java:325:in `processCall'
org/jruby/ir/interpreter/StartupInterpreterEngine.java:72:in `interpret'
org/jruby/ir/interpreter/Interpreter.java:116:in `INTERPRET_BLOCK'
/Users/andymaleh/.rvm/rubies/jruby-9.3.3.0/lib/ruby/stdlib/net/protocol.rb:296:in `block in write0'
org/jruby/runtime/MixedModeIRBlockBody.java:136:in `commonYieldPath'
org/jruby/runtime/IRBlockBody.java:66:in `call'
org/jruby/runtime/IRBlockBody.java:48:in `call'
org/jruby/runtime/Block.java:169:in `call'
org/jruby/RubyEnumerable.java:1103:in `call'
org/jruby/runtime/CallBlock.java:97:in `doYield'
org/jruby/runtime/BlockBody.java:108:in `yield'
org/jruby/runtime/Block.java:188:in `yield'
org/jruby/RubyArray.java:1865:in `each'
org/jruby/RubyArray$INVOKER$i$0$0$each.gen:-1:in `call'
org/jruby/internal/runtime/methods/JavaMethod.java:560:in `call'
org/jruby/runtime/callsite/CachingCallSite.java:85:in `call'
org/jruby/RubyEnumerable.java:105:in `callEach'
org/jruby/RubyEnumerable.java:1120:in `each_with_indexCommon'
org/jruby/RubyEnumerable.java:1143:in `each_with_index'
org/jruby/RubyEnumerable$INVOKER$s$0$0$each_with_index.gen:-1:in `call'
org/jruby/runtime/callsite/CachingCallSite.java:85:in `call'
org/jruby/runtime/callsite/CachingCallSite.java:94:in `callIter'
org/jruby/ir/instructions/CallBase.java:546:in `interpret'
org/jruby/ir/interpreter/InterpreterEngine.java:361:in `processCall'
org/jruby/ir/interpreter/StartupInterpreterEngine.java:72:in `interpret'
org/jruby/internal/runtime/methods/MixedModeIRMethod.java:128:in `INTERPRET_METHOD'
/Users/andymaleh/.rvm/rubies/jruby-9.3.3.0/lib/ruby/stdlib/net/protocol.rb:275:in `write0'
org/jruby/internal/runtime/methods/MixedModeIRMethod.java:115:in `call'
org/jruby/runtime/callsite/CachingCallSite.java:85:in `call'
org/jruby/ir/instructions/CallBase.java:549:in `interpret'
org/jruby/ir/interpreter/InterpreterEngine.java:361:in `processCall'
org/jruby/ir/interpreter/StartupInterpreterEngine.java:72:in `interpret'
org/jruby/ir/interpreter/Interpreter.java:116:in `INTERPRET_BLOCK'
/Users/andymaleh/.rvm/rubies/jruby-9.3.3.0/lib/ruby/stdlib/net/protocol.rb:248:in `block in write'
org/jruby/runtime/MixedModeIRBlockBody.java:136:in `commonYieldPath'
org/jruby/runtime/IRBlockBody.java:76:in `yieldSpecific'
org/jruby/runtime/Block.java:157:in `yieldSpecific'
org/jruby/ir/runtime/IRRuntimeHelpers.java:498:in `yieldSpecific'
org/jruby/ir/instructions/YieldInstr.java:76:in `interpret'
org/jruby/ir/interpreter/StartupInterpreterEngine.java:176:in `processOtherOp'
org/jruby/ir/interpreter/StartupInterpreterEngine.java:104:in `interpret'
org/jruby/internal/runtime/methods/MixedModeIRMethod.java:128:in `INTERPRET_METHOD'
/Users/andymaleh/.rvm/rubies/jruby-9.3.3.0/lib/ruby/stdlib/net/protocol.rb:265:in `writing'
org/jruby/internal/runtime/methods/MixedModeIRMethod.java:115:in `call'
org/jruby/runtime/callsite/CachingCallSite.java:85:in `call'
org/jruby/runtime/callsite/CachingCallSite.java:94:in `callIter'
org/jruby/ir/instructions/CallBase.java:546:in `interpret'
org/jruby/ir/interpreter/InterpreterEngine.java:361:in `processCall'
org/jruby/ir/interpreter/StartupInterpreterEngine.java:72:in `interpret'
org/jruby/ir/interpreter/InterpreterEngine.java:86:in `interpret'
org/jruby/internal/runtime/methods/MixedModeIRMethod.java:201:in `INTERPRET_METHOD'
/Users/andymaleh/.rvm/rubies/jruby-9.3.3.0/lib/ruby/stdlib/net/protocol.rb:247:in `write'
org/jruby/internal/runtime/methods/MixedModeIRMethod.java:188:in `call'
org/jruby/internal/runtime/methods/DynamicMethod.java:206:in `call'
org/jruby/runtime/callsite/CachingCallSite.java:372:in `cacheAndCall'
org/jruby/runtime/callsite/CachingCallSite.java:175:in `call'
org/jruby/ir/interpreter/InterpreterEngine.java:316:in `processCall'
org/jruby/ir/interpreter/StartupInterpreterEngine.java:72:in `interpret'
org/jruby/internal/runtime/methods/MixedModeIRMethod.java:128:in `INTERPRET_METHOD'
/Users/andymaleh/.rvm/rubies/jruby-9.3.3.0/lib/ruby/stdlib/net/http/generic_request.rb:189:in `send_request_with_body'
org/jruby/internal/runtime/methods/MixedModeIRMethod.java:115:in `call'
org/jruby/runtime/callsite/CachingCallSite.java:329:in `cacheAndCall'
org/jruby/runtime/callsite/CachingCallSite.java:87:in `call'
org/jruby/ir/instructions/CallBase.java:549:in `interpret'
org/jruby/ir/interpreter/InterpreterEngine.java:361:in `processCall'
org/jruby/ir/interpreter/StartupInterpreterEngine.java:72:in `interpret'
org/jruby/internal/runtime/methods/MixedModeIRMethod.java:128:in `INTERPRET_METHOD'
/Users/andymaleh/.rvm/rubies/jruby-9.3.3.0/lib/ruby/stdlib/net/http/generic_request.rb:123:in `exec'
org/jruby/internal/runtime/methods/MixedModeIRMethod.java:115:in `call'
org/jruby/runtime/callsite/CachingCallSite.java:329:in `cacheAndCall'
org/jruby/runtime/callsite/CachingCallSite.java:87:in `call'
org/jruby/ir/instructions/CallBase.java:549:in `interpret'
org/jruby/ir/interpreter/InterpreterEngine.java:361:in `processCall'
org/jruby/ir/interpreter/StartupInterpreterEngine.java:72:in `interpret'
org/jruby/ir/interpreter/Interpreter.java:116:in `INTERPRET_BLOCK'
/Users/andymaleh/.rvm/rubies/jruby-9.3.3.0/lib/ruby/stdlib/net/http.rb:1518:in `block in transport_request'
org/jruby/runtime/MixedModeIRBlockBody.java:136:in `commonYieldPath'
org/jruby/runtime/IRBlockBody.java:170:in `doYield'
org/jruby/runtime/BlockBody.java:108:in `yield'
org/jruby/runtime/Block.java:188:in `yield'
org/jruby/exceptions/CatchThrow.java:32:in `enter'
org/jruby/RubyKernel.java:1237:in `rbCatch'
org/jruby/RubyKernel$INVOKER$s$rbCatch.gen:-1:in `call'
org/jruby/runtime/callsite/CachingCallSite.java:383:in `cacheAndCall'
org/jruby/runtime/callsite/CachingCallSite.java:185:in `call'
org/jruby/runtime/callsite/CachingCallSite.java:192:in `callIter'
org/jruby/ir/interpreter/InterpreterEngine.java:337:in `processCall'
org/jruby/ir/interpreter/StartupInterpreterEngine.java:72:in `interpret'
org/jruby/ir/interpreter/InterpreterEngine.java:86:in `interpret'
org/jruby/internal/runtime/methods/MixedModeIRMethod.java:201:in `INTERPRET_METHOD'
/Users/andymaleh/.rvm/rubies/jruby-9.3.3.0/lib/ruby/stdlib/net/http.rb:1517:in `transport_request'
org/jruby/internal/runtime/methods/MixedModeIRMethod.java:188:in `call'
org/jruby/runtime/callsite/CachingCallSite.java:383:in `cacheAndCall'
org/jruby/runtime/callsite/CachingCallSite.java:185:in `call'
org/jruby/ir/interpreter/InterpreterEngine.java:338:in `processCall'
org/jruby/ir/interpreter/StartupInterpreterEngine.java:72:in `interpret'
org/jruby/ir/interpreter/InterpreterEngine.java:86:in `interpret'
org/jruby/internal/runtime/methods/MixedModeIRMethod.java:201:in `INTERPRET_METHOD'
/Users/andymaleh/.rvm/rubies/jruby-9.3.3.0/lib/ruby/stdlib/net/http.rb:1490:in `request'
org/jruby/internal/runtime/methods/MixedModeIRMethod.java:188:in `call'
org/jruby/internal/runtime/methods/DynamicMethod.java:206:in `call'
org/jruby/runtime/callsite/CachingCallSite.java:372:in `cacheAndCall'
org/jruby/runtime/callsite/CachingCallSite.java:175:in `call'
org/jruby/ir/interpreter/InterpreterEngine.java:316:in `processCall'
org/jruby/ir/interpreter/StartupInterpreterEngine.java:72:in `interpret'
org/jruby/ir/interpreter/InterpreterEngine.java:86:in `interpret'
org/jruby/internal/runtime/methods/MixedModeIRMethod.java:201:in `INTERPRET_METHOD'
/Users/andymaleh/.rvm/rubies/jruby-9.3.3.0/lib/ruby/stdlib/rubygems/request.rb:220:in `perform_request'
org/jruby/internal/runtime/methods/MixedModeIRMethod.java:188:in `call'
org/jruby/internal/runtime/methods/DynamicMethod.java:206:in `call'
org/jruby/runtime/callsite/CachingCallSite.java:372:in `cacheAndCall'
org/jruby/runtime/callsite/CachingCallSite.java:175:in `call'
org/jruby/ir/interpreter/InterpreterEngine.java:316:in `processCall'
org/jruby/ir/interpreter/StartupInterpreterEngine.java:72:in `interpret'
org/jruby/internal/runtime/methods/MixedModeIRMethod.java:128:in `INTERPRET_METHOD'
/Users/andymaleh/.rvm/rubies/jruby-9.3.3.0/lib/ruby/stdlib/rubygems/request.rb:152:in `fetch'
org/jruby/internal/runtime/methods/MixedModeIRMethod.java:115:in `call'
org/jruby/runtime/callsite/CachingCallSite.java:329:in `cacheAndCall'
org/jruby/runtime/callsite/CachingCallSite.java:87:in `call'
org/jruby/runtime/callsite/CachingCallSite.java:94:in `callIter'
org/jruby/ir/instructions/CallBase.java:546:in `interpret'
org/jruby/ir/interpreter/InterpreterEngine.java:361:in `processCall'
org/jruby/ir/interpreter/StartupInterpreterEngine.java:72:in `interpret'
org/jruby/internal/runtime/methods/MixedModeIRMethod.java:128:in `INTERPRET_METHOD'
/Users/andymaleh/.rvm/rubies/jruby-9.3.3.0/lib/ruby/stdlib/rubygems/remote_fetcher.rb:309:in `request'
org/jruby/internal/runtime/methods/MixedModeIRMethod.java:115:in `call'
org/jruby/runtime/callsite/CachingCallSite.java:329:in `cacheAndCall'
org/jruby/runtime/callsite/CachingCallSite.java:87:in `call'
org/jruby/runtime/callsite/CachingCallSite.java:94:in `callIter'
org/jruby/ir/instructions/CallBase.java:546:in `interpret'
org/jruby/ir/interpreter/InterpreterEngine.java:361:in `processCall'
org/jruby/ir/interpreter/StartupInterpreterEngine.java:72:in `interpret'
org/jruby/internal/runtime/methods/MixedModeIRMethod.java:128:in `INTERPRET_METHOD'
/Users/andymaleh/.rvm/rubies/jruby-9.3.3.0/lib/ruby/stdlib/rubygems/gemcutter_utilities.rb:234:in `request_with_otp'
org/jruby/internal/runtime/methods/MixedModeIRMethod.java:115:in `call'
org/jruby/runtime/callsite/CachingCallSite.java:329:in `cacheAndCall'
org/jruby/runtime/callsite/CachingCallSite.java:87:in `call'
org/jruby/ir/instructions/CallBase.java:549:in `interpret'
org/jruby/ir/interpreter/InterpreterEngine.java:361:in `processCall'
org/jruby/ir/interpreter/StartupInterpreterEngine.java:72:in `interpret'
org/jruby/internal/runtime/methods/MixedModeIRMethod.java:128:in `INTERPRET_METHOD'
/Users/andymaleh/.rvm/rubies/jruby-9.3.3.0/lib/ruby/stdlib/rubygems/gemcutter_utilities.rb:105:in `rubygems_api_request'
org/jruby/internal/runtime/methods/MixedModeIRMethod.java:115:in `call'
org/jruby/runtime/callsite/CachingCallSite.java:329:in `cacheAndCall'
org/jruby/runtime/callsite/CachingCallSite.java:87:in `call'
org/jruby/runtime/callsite/CachingCallSite.java:94:in `callIter'
org/jruby/ir/instructions/CallBase.java:546:in `interpret'
org/jruby/ir/interpreter/InterpreterEngine.java:361:in `processCall'
org/jruby/ir/interpreter/StartupInterpreterEngine.java:72:in `interpret'
org/jruby/ir/interpreter/InterpreterEngine.java:92:in `interpret'
org/jruby/internal/runtime/methods/MixedModeIRMethod.java:238:in `INTERPRET_METHOD'
/Users/andymaleh/.rvm/rubies/jruby-9.3.3.0/lib/ruby/stdlib/rubygems/commands/push_command.rb:89:in `send_push_request'
org/jruby/internal/runtime/methods/MixedModeIRMethod.java:225:in `call'
org/jruby/internal/runtime/methods/DynamicMethod.java:214:in `call'
org/jruby/runtime/callsite/CachingCallSite.java:393:in `cacheAndCall'
org/jruby/runtime/callsite/CachingCallSite.java:206:in `call'
org/jruby/ir/interpreter/InterpreterEngine.java:325:in `processCall'
org/jruby/ir/interpreter/StartupInterpreterEngine.java:72:in `interpret'
org/jruby/ir/interpreter/InterpreterEngine.java:86:in `interpret'
org/jruby/internal/runtime/methods/MixedModeIRMethod.java:201:in `INTERPRET_METHOD'
/Users/andymaleh/.rvm/rubies/jruby-9.3.3.0/lib/ruby/stdlib/rubygems/commands/push_command.rb:81:in `send_gem'
org/jruby/internal/runtime/methods/MixedModeIRMethod.java:188:in `call'
org/jruby/internal/runtime/methods/DynamicMethod.java:206:in `call'
org/jruby/runtime/callsite/CachingCallSite.java:372:in `cacheAndCall'
org/jruby/runtime/callsite/CachingCallSite.java:175:in `call'
org/jruby/ir/interpreter/InterpreterEngine.java:316:in `processCall'
org/jruby/ir/interpreter/StartupInterpreterEngine.java:72:in `interpret'
org/jruby/ir/interpreter/InterpreterEngine.java:80:in `interpret'
org/jruby/internal/runtime/methods/MixedModeIRMethod.java:164:in `INTERPRET_METHOD'
/Users/andymaleh/.rvm/rubies/jruby-9.3.3.0/lib/ruby/stdlib/rubygems/commands/push_command.rb:66:in `execute'
org/jruby/internal/runtime/methods/MixedModeIRMethod.java:151:in `call'
org/jruby/internal/runtime/methods/DynamicMethod.java:198:in `call'
org/jruby/runtime/callsite/CachingCallSite.java:351:in `cacheAndCall'
org/jruby/runtime/callsite/CachingCallSite.java:144:in `call'
org/jruby/ir/interpreter/InterpreterEngine.java:345:in `processCall'
org/jruby/ir/interpreter/StartupInterpreterEngine.java:72:in `interpret'
org/jruby/ir/interpreter/InterpreterEngine.java:92:in `interpret'
org/jruby/internal/runtime/methods/MixedModeIRMethod.java:238:in `INTERPRET_METHOD'
/Users/andymaleh/.rvm/rubies/jruby-9.3.3.0/lib/ruby/stdlib/rubygems/command.rb:323:in `invoke_with_build_args'
org/jruby/internal/runtime/methods/MixedModeIRMethod.java:225:in `call'
org/jruby/internal/runtime/methods/DynamicMethod.java:214:in `call'
org/jruby/runtime/callsite/CachingCallSite.java:393:in `cacheAndCall'
org/jruby/runtime/callsite/CachingCallSite.java:206:in `call'
org/jruby/ir/interpreter/InterpreterEngine.java:325:in `processCall'
org/jruby/ir/interpreter/StartupInterpreterEngine.java:72:in `interpret'
org/jruby/ir/interpreter/InterpreterEngine.java:92:in `interpret'
org/jruby/internal/runtime/methods/MixedModeIRMethod.java:238:in `INTERPRET_METHOD'
/Users/andymaleh/.rvm/rubies/jruby-9.3.3.0/lib/ruby/stdlib/rubygems/command_manager.rb:178:in `process_args'
org/jruby/internal/runtime/methods/MixedModeIRMethod.java:225:in `call'
org/jruby/internal/runtime/methods/DynamicMethod.java:214:in `call'
org/jruby/runtime/callsite/CachingCallSite.java:393:in `cacheAndCall'
org/jruby/runtime/callsite/CachingCallSite.java:206:in `call'
org/jruby/ir/interpreter/InterpreterEngine.java:325:in `processCall'
org/jruby/ir/interpreter/StartupInterpreterEngine.java:72:in `interpret'
org/jruby/ir/interpreter/InterpreterEngine.java:92:in `interpret'
org/jruby/internal/runtime/methods/MixedModeIRMethod.java:238:in `INTERPRET_METHOD'
/Users/andymaleh/.rvm/rubies/jruby-9.3.3.0/lib/ruby/stdlib/rubygems/command_manager.rb:147:in `run'
org/jruby/internal/runtime/methods/MixedModeIRMethod.java:225:in `call'
org/jruby/internal/runtime/methods/DynamicMethod.java:214:in `call'
org/jruby/runtime/callsite/CachingCallSite.java:393:in `cacheAndCall'
org/jruby/runtime/callsite/CachingCallSite.java:206:in `call'
org/jruby/ir/interpreter/InterpreterEngine.java:325:in `processCall'
org/jruby/ir/interpreter/StartupInterpreterEngine.java:72:in `interpret'
org/jruby/ir/interpreter/InterpreterEngine.java:86:in `interpret'
org/jruby/internal/runtime/methods/MixedModeIRMethod.java:201:in `INTERPRET_METHOD'
/Users/andymaleh/.rvm/rubies/jruby-9.3.3.0/lib/ruby/stdlib/rubygems/gem_runner.rb:53:in `run'
org/jruby/internal/runtime/methods/MixedModeIRMethod.java:188:in `call'
org/jruby/internal/runtime/methods/DynamicMethod.java:206:in `call'
org/jruby/runtime/callsite/CachingCallSite.java:372:in `cacheAndCall'
org/jruby/runtime/callsite/CachingCallSite.java:175:in `call'
org/jruby/ir/interpreter/InterpreterEngine.java:316:in `processCall'
org/jruby/ir/interpreter/StartupInterpreterEngine.java:72:in `interpret'
org/jruby/ir/interpreter/Interpreter.java:96:in `INTERPRET_ROOT'
/Users/andymaleh/.rvm/rubies/jruby-9.3.3.0/bin/jgem:21:in `<main>'
org/jruby/ir/interpreter/Interpreter.java:81:in `execute'
org/jruby/ir/interpreter/Interpreter.java:30:in `execute'
org/jruby/ir/IRTranslator.java:42:in `execute'
org/jruby/Ruby.java:1270:in `runInterpreter'
org/jruby/Ruby.java:2865:in `loadFile'
org/jruby/runtime/load/LibrarySearcher.java:937:in `load'
org/jruby/runtime/load/LibrarySearcher.java:895:in `load'
org/jruby/runtime/load/LoadService.java:322:in `load'
org/jruby/RubyKernel.java:1082:in `loadCommon'
org/jruby/RubyKernel.java:1052:in `load'
org/jruby/RubyKernel$INVOKER$s$load.gen:-1:in `call'
org/jruby/internal/runtime/methods/JavaMethod.java:422:in `call'
org/jruby/runtime/callsite/CachingCallSite.java:372:in `cacheAndCall'
org/jruby/runtime/callsite/CachingCallSite.java:175:in `call'
Users/andymaleh/$_dot_rvm/rubies/jruby_minus_9_dot_3_dot_3_dot_0/bin//Users/andymaleh/.rvm/rubies/jruby-9.3.3.0/bin/gem:4:in `invokeOther2:load'
/Users/andymaleh/.rvm/rubies/jruby-9.3.3.0/bin/gem:4:in `<main>'
Users/andymaleh/$_dot_rvm/rubies/jruby_minus_9_dot_3_dot_3_dot_0/bin//Users/andymaleh/.rvm/rubies/jruby-9.3.3.0/bin/gem:-1:in `run'
java/lang/invoke/MethodHandle.java:732:in `invokeWithArguments'
org/jruby/ir/Compiler.java:114:in `load'
org/jruby/Ruby.java:1257:in `runScript'
org/jruby/Ruby.java:1176:in `runNormally'
org/jruby/Ruby.java:1158:in `runNormally'
org/jruby/Ruby.java:1194:in `runNormally'
org/jruby/Ruby.java:977:in `runFromMain'
org/jruby/Main.java:406:in `doRunFromMain'
org/jruby/Main.java:290:in `internalRun'
org/jruby/Main.java:235:in `run'
org/jruby/Main.java:207:in `main'
Exception `Gem::SystemExitException' at java/lang/Thread.java:1610 - Exiting RubyGems with exit_code 1 |
this issue is likely environment specific - don't think there's much we can do here except keeping it open. also added some debugging statements acddd54 + made sure the underlying Java exception isn't lost as it might be of value here. one last thing you could try is see the SSL engine debug output |
Please, do not forget that michaelklishin also reported this issue and linked to it in: ruby-amqp/march_hare#156 So, it is not necessarily a non-reproducable issue since someone else encountered it. In any case, interestingly enough, I got a different error with a new Glimmer DSL for SWT desktop project I built recently of the game Wordle, when I tried to gem push.
When I added the option you asked me for, I got a very long log (too big to post here or attach), but strangely enough, The odd thing is my Internet, which is about 60mbps, is very reliable and solid. And, the MacBook Pro 13" (2012) laptop, although old, was recently rebuilt from scratch, so it is very clean software-wise, let alone JRuby 9.3.3.0 was installed recently from RVM. Last but not least, I do not get these errors in CRuby, so something is definitely up with JRuby. |
Again, when I ran
|
Fascinating! I just released Glimmer DSL for SWT 4.23.0.0 I installed JDK18 and uninstalled/reinstalled JRuby 9.3.3.0 on top of JDK18. Afterwards, when I ran However, when I added the latest option you suggested @kares ( That logging definitely seems to be resequencing things in a way where the problem is solved! It is kind of disappointing for troubleshooting though. |
Bit more detail, of all the possible values of
which points at some issue around buffering of data. I can replicate consistently in my mac (both natively w/ aarch64 zulu jdk11 and emulated w/ rosetta and x64 temurin jdk 11). |
there's some progress on the issue, namely 2 things in latest release (0.14.0) :
if anyone could test these out (it's the last few days that I have a laptop usable for work), |
OK, I just saw this. I’ll take a look (test) tomorrow and get back to you. |
No dice (when executing gem push without debugging)!
If I add the debugging
In any case, I hope the output above has helpful information for you. Below is my system info again (same Intel Mac as before).
Cheers! |
Interesting, we had a |
|
Thanks Andy, this is helpful and confirms it's likely a buffering issue. |
I can't believe this! With JRuby 9.3.11.0, the issue was gone the last time I tried to push a gem.
One change I made in my gem that might not be related is I changed the homepage URL to have I haven't tested In the meantime, if you did something to fix this, thank you! |
Hello, @AndyObtiva. Do you disable OTP(MFA) setting for I caused the same error with JRuby 9.3.11.0. It seems relates to OTP setting. UI and API (Recommend) may cause this issue. |
I have finally managed to get this consistently on MacOS on M1 and I'm investigating. The root exception that gets raised follow:
The exception is raised a an |
It does appear to relate to authentication. It appears to attempt to push to a rubygems.org URL that requires authentication, but without being authenticated. That logic should fall back on the OTP authentication logic, but because we raise the wrong error it propagates wrong. If I fix it to raise EPIPE, then it still doesn't work but it shows a bit better how it is trying to use that authenticated URL and failing too many times:
|
Oh, and it also sometimes works with some combination of
|
Many libraries depend on us raising the actual Errno exceptions for what comes out of Java as IOException. The utilities in JRuby exist to convert these IOException objects into the appropriate Errno exception by examining the exception type and message. This patch switches one key place for jruby#242 to use this utility method.
Many libraries depend on us raising the actual Errno exceptions for what comes out of Java as IOException. The utilities in JRuby exist to convert these IOException objects into the appropriate Errno exception by examining the exception type and message. This patch switches one key place for #242 to use this utility method.
Environment Information
Provide at least:
jruby -v
) and command line (flags, JRUBY_OPTS, etc):9.3.0.0
uname -a
):Darwin Andys-MacBook-Pro.local 20.3.0 Darwin Kernel Version 20.3.0: Thu Jan 21 00:07:06 PST 2021; root:xnu-7195.81.3~1/RELEASE_X86_64 x86_64
Other relevant info you may wish to add:
gem --version
returns 3.2.28Expected Behavior
Running
gem push path_to_gem.gem
should result in releasing the gem to RubyGems.org successfully.This works in
jruby-9.2.19.0
Actual Behavior
In
jruby-9.3.0.0
, I get a broken pipe IOError when runninggem push path_to_gem.gem
:It works fine in
ruby-3.0.2
andjruby-9.2.19.0
. My Internet works well and the same in all cases.The text was updated successfully, but these errors were encountered: