Hi,

I am having trouble with a not returning command prompt after termination of a 
process when this process forked another process. In such case the return of 
the command prompt is bound to life time of the forked process i.e. when the 
forked process terminates the command prompt returns.

The problem seems to have appeared in more recent versions of Cygwin and 
appearing both on Vista and Windows 7. I do have systems with and without this 
problem.
All systems without the problem have either kernel version 1.7.9(0.237/5/3) 
2011-03-29 10:10 or 1.7.10(0.259/5/3) 2012-02-05 12:36
All systems showing the problem have either kernel version 1.7.13(0.260/5/3) 
2012-04-05 12:43 or 1.7.14(0.260/5/3) 2012-04-24 17:22

The attached test application demonstrates the issue. By running "java 
Launcher" java process is started, which itself forks another java process. 
This second process runs for 2 minutes until it terminates. On systems without 
the problem the command prompt returns immediately, whereas on troubled systems 
it takes 2 minutes to return.
Running the same command from a dos prompt causes the command prompt to return 
immediately.

Running "ps" on a troubled system while waiting for the prompt to return still 
shows the java process running the Launcher, while the Windows task-manager and 
resource monitor do longer show this process (but only the Server).

A system originally not showing this issue, started showing the issue when new 
packages (openssh, rsync, libxslt and unzip) were installed. As part of this 
the kernel version was updated from 1.7.10 to 1.7.14. Removal of those packages 
had no effect on the problem; the kernel version remained at 1.7.14.

Test application
% javac *.java
% java Launcher
=======================
Lancher.java
-----------------------
public class Launcher {
  public static void main(String[] args) throws Exception {
    System.out.println("Launching Server");
    Runtime.getRuntime().exec(new String[] { "javaw", "Server" });
    System.out.println("Launched Server");
}}
=======================
Server.java
-----------------------
public class Server {
  public static void main(String[] args) throws Exception { 
    System.out.println("Started: " + Server.class.getName());
    Thread.sleep(120000);
}}
=======================

% uname -srv
CYGWIN_NT-6.0 1.7.14(0.260/5/3) 2012-04-25 09:41

% cygcheck -cd
Cygwin Package Information
Package              Version
_autorebase          000050-1
_update-info-dir     01046-1
alternatives         1.3.30c-10
base-cygwin          3.1-1
base-files           4.1-1
bash                 4.1.10-4
bzip2                1.0.6-2
coreutils            8.15-1
crypt                1.1-1
csih                 0.9.6-1
cygrunsrv            1.40-2
cygutils             1.4.10-2
cygwin               1.7.14-2
cygwin-doc           1.7-1
dash                 0.5.7-1
diffutils            3.2-1
dos2unix             5.3.3-1
editrights           1.01-2
file                 5.11-1
findutils            4.5.9-2
gawk                 4.0.1-1
gettext              0.18.1.1-2
grep                 2.6.3-1
groff                1.21-2
gzip                 1.4-1
ipc-utils            1.0-1
less                 444-1
libasn1_8            1.5.2-2
libattr1             2.4.43-1
libbz2_1             1.0.6-2
libcom_err2          1.41.14-1
libedit0             20090923-1
libgcc1              4.5.3-3
libgcrypt11          1.4.6-1
libgmp3              4.3.2-1
libgpg-error0        1.10-1
libgssapi3           1.5.2-2
libheimbase1         1.5.2-2
libheimntlm0         1.5.2-2
libhx509_5           1.5.2-2
libiconv2            1.14-2
libintl8             0.18.1.1-2
libkafs0             1.5.2-2
libkrb5_26           1.5.2-2
liblzma5             5.0.2_20110517-1
libncurses10         5.7-18
libncursesw10        5.7-18
libopenssl100        1.0.1b-2
libpcre0             8.21-2
libpopt0             1.6.4-4
libreadline7         6.1.2-2
libroken18           1.5.2-2
libsigsegv2          2.10-1
libsqlite3_0         3.7.3-1
libssp0              4.5.3-3
libstdc++6           4.5.3-3
libwind0             1.5.2-2
libwrap0             7.6-21
libxml2              2.7.8-3
libxslt              1.1.26-3
login                1.10-10
man                  1.6g-1
mintty               1.0.3-1
openssh              6.0p1-1
rebase               4.1.0-1
rsync                3.0.9-1
run                  1.1.13-1
sed                  4.2.1-1
tar                  1.25-1
terminfo             5.7_20091114-14
texinfo              4.13-4
tzcode               2012b-1
unzip                6.0-10
which                2.20-2
xz                   5.0.2_20110517-1
zlib0                1.2.5-1


Best regards,
Rob Burgers


--
Problem reports:       http://cygwin.com/problems.html
FAQ:                   http://cygwin.com/faq/
Documentation:         http://cygwin.com/docs.html
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple

Reply via email to