This Bugzilla instance is a read-only archive of historic NetBeans bug reports. To report a bug in NetBeans please follow the project's instructions for reporting issues.
Summary: | IO.popen block hangs NetBeans script execution when using JRuby | ||
---|---|---|---|
Product: | ruby | Reporter: | jskovzoftcorpdk <jskovzoftcorpdk> |
Component: | Platform | Assignee: | issues@ruby <issues> |
Status: | NEW --- | ||
Severity: | blocker | ||
Priority: | P3 | ||
Version: | 6.x | ||
Hardware: | Macintosh | ||
OS: | Mac OS X | ||
Issue Type: | DEFECT | Exception Reporter: |
Description
jskovzoftcorpdk
2008-09-26 12:16:02 UTC
Hi. I've just tried this with latest build (could you try it instead of 6.5 beta, which is little obsolete): http://wiki.netbeans.org/RubyInstallation#section-RubyInstallation-HowDoIGetTheContinuousBuilds with: - Bundle-in JRuby 1.1.4 - JRuby trunk - MRI from NetBeans and from CLI and it works for me in all cases (Linux, but should not matter here, I guess). Is not the case that the line: puts "If only this would execute..." is not just printed - this is known issue, see issue 114476. Might be confirmed by looking at the state of ReRun and Stop button in the Output Window. What is their state after the program 'finish'. Is the Stop or ReRun button disabled? I tried with http://deadlock.netbeans.org/hudson/job/trunk/lastStableBuild/artifact/nbbuild/dist/zip/netbeans-hudson-trunk-3870-ruby.zip It had the same behavior - hangs with the inbuilt JRuby 1.1.4, runs to completion with native 1.8.6. The script hangs - the Stop button is enabled. Hmmm, strange. The difference is that we run JRuby through 'java'. If you turned on logging as described here: http://wiki.netbeans.org/FaqRubyNBLogging and run NetBeans you will see in the log line like: FINE [org.netbeans.modules.ruby.platform.execution.ExecutionService]: Running: (basedir: /home/emdot/ruby/tester/lib) "/space/java/jdk1.5.0_15/jre/bin/java -Xverify:none ... Could you run that line from command line? Does it work for you? Thanks. The full output related to the execution was: FINE [org.netbeans.modules.ruby.platform.execution.ExecutionService]: Running: (basedir: /opt/rb) "/System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Home/bin/java -Xverify:none -da -Xmx512m -Xss1024k -classpath /opt/x/netbeans/ruby2/jruby-1.1.4/lib/bsf.jar:/opt/x/netbeans/ruby2/jruby-1.1.4/lib/jruby.jar:/opt/x/netbeans/ruby2/jruby-1.1.4/lib/profile.jar: -Djruby.base=/opt/x/netbeans/ruby2/jruby-1.1.4 -Djruby.home=/opt/x/netbeans/ruby2/jruby-1.1.4 -Djruby.lib=/opt/x/netbeans/ruby2/jruby-1.1.4/lib -Djruby.shell=/bin/sh -Djruby.script=jruby org.jruby.Main -I/opt/rb -I/opt/rb/view -I/opt/rb/core /opt/rb/utils/utils.rb" FINE [org.netbeans.modules.ruby.platform.execution.ExecutionService]: Environment: {LANG=da_DK.UTF-8, DISPLAY=/tmp/launch-AUEh4A/:0, TERM_PROGRAM_VERSION=240, PWD=/Users/jskov/.netbeans/dev/var/log, _=/System/Library/Frameworks/JavaVM.framework/Versions/1.5/Home/bin/java, GEM_HOME=/opt/x/netbeans/ruby2/jruby-1.1.4/lib/ruby/gems/1.8, JRUBY_BASE=/opt/x/netbeans/ruby2/jruby-1.1.4, JRUBY_HOME=/opt/x/netbeans/ruby2/jruby-1.1.4, USER=jskov, SECURITYSESSIONID=80ebc0, Apple_PubSub_Socket_Render=/tmp/launch-nf9rwG/Render, GEM_PATH=/opt/x/netbeans/ruby2/jruby-1.1.4/lib/ruby/gems/1.8, HOME=/Users/jskov, TERM_PROGRAM=Apple_Terminal, JAVA_MAIN_CLASS_423=org.netbeans.Main, SHELL=/bin/bash, LOGNAME=jskov, SSH_AUTH_SOCK=/tmp/launch-GifFl9/Listeners, SHLVL=2, J2D_PIXMAPS=shared, TMPDIR=/var/folders/v+/v+KWw8tFFmKoMkckQfUcJU+++TI/-Tmp-/, __CF_USER_TEXT_ENCODING=0x1F5:0:0, APP_ICON_423=/opt/x/netbeans/bin/../nb6.5/netbeans.icns, MANPATH=/usr/share/man:/usr/local/share/man:/usr/X11/man, APP_NAME_423=NetBeans, COMMAND_MODE=unix2003, JAVA_HOME=/System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Home, TERM=xterm-color, PATH=/opt/x/netbeans/ruby2/jruby-1.1.4/bin:/opt/pvr/jruby/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin:/opt/local/bin:/opt/pvr/bin:/usr/local/mysql/bin} When I execute the line directly, the script runs as expected - and returns. I just noticed something weird. If I select the console window and press return, the second line is printed, and the script returns (and the Rerun icon activates). Thanks for investigation. I guess I'll have to try it on Mac somewhere in the office, might be related to Mac JDK.
> If I select the console window and press return, the second line is printed
Seems like $stdin gets it into the game.
I'm leaving to vacation so I'll take a look at it when I get back.
FWIW I also tried using the new JDK6 with the same result. Easily reproducible on Mac. Note that the script is not hung, it waits for <Enter>. When you activate the "hung" output window and press enter, the script continues. Will have to evaluate the reason. |