ctrl-c doesn't reliably kill applications

Björn Stabel stabelweb@gmx.de
Thu Mar 17 20:04:00 GMT 2016


I couldn't replicate it either, but the question I started this thread
with is unrelated to either of the ping tools.
Here it is again:

The ctrl-c shortcut doesn't reliably kill applications (anymore?).
It has been that way for at least a year now.

------------------------------------------------------------------------

One example is the ruby "rerun" tool (at least when used with a sinatra
app).
The problem can be reproduced using these steps:

 1. Default cygwin install
 2. Install rubygems package
 3. gem install rerun sinatra
 4. Make sure the rerun tool is in PATH (or specify the path to it
    explicitly). I think rubygems installs executables from gems to
    ~/bin by default
 5. rerun "ruby -e 'require(\"sinatra\")'"
 6. ctrl-c
 7. tasklist /fi "IMAGENAME eq ruby.exe"
      * Expected: No process
      * Actual: process is still running

You might have to repeat steps 5 to 7 a few times for the issue to occur.
Another problem is that Q sometimes doesn't exit rerun but only the app
running inside, but that might be a problem with rerun itself or with
the shutdown detection they use.

------------------------------------------------------------------------

Another example is Vagrant.
Although that is not a cygwin application, I usually recommend coworkers
to use it with cygwin, because it benefits from mintty's better console.
The problem there occurs when you invoke a long-running vagrant command
(vagrant provision, for instance) and then cancel it with ctrl-c.
If you do that, you're back at the bash prompt, but the provisioning run
still goes on and spams the console, making it unusable.

------------------------------------------------------------------------

Under Kubuntu Linux 14.04/kde/konsole/bash, neither of these problems exist.
What the two examples seem to have in common is that they're both one
application invoking another:

  * rerun invokes sh -c "$1" (I think)
  * vagrant provision invokes (its bundled?) ssh

I think this is a bug and should be fixed. Is the bug with Cygwin or
should I report it elsewhere?

- Björn Stabel aka. TomyLobo



Am 16.03.2016 um 14:24 schrieb Marco Atzeri:
>
>
> On 15/03/2016 01:45, Frank Farance wrote:
>> I have been having this problem with "ping".  If I "ping" a location
>> that doesn't exist, then "ping" just hangs and cannot be killed via
>> "kill -KILL [pid]".
>>
>>
>> Back to the problem, so when I type
>>
>> $ ping some.unknown.host
>>
>
> I do not succeed to replicate.
> CTRL-C works fine for me
>
> $ type ping
> ping is hashed (/usr/bin/ping)
>
> $ ping 172.21.1.254
> PING 172.21.1.254 (172.21.1.254): 56 data bytes
>
> ----172.21.1.254 PING Statistics----
> 4 packets transmitted, 0 packets received, 100.0% packet loss
>
> or I have not a biased DNS answer.
>
>> according to "ping", the hostname resolves to 90.242.140.21 (as per the
>> explanation above), but I cannot kill "ping".  I tried "ping" with a
>> limited packet size and count so, in theory, "ping" would die on its own
>> after 10 packets, such as:
>>
>> $ ping some.unknown.host 50 10
>>
>> but it still hangs rather than timing out.  If I ping to some actual IP
>> address that is unresponsive (route-able to the last subnet, but dies on
>> the floor at the end), then I can kill via ctrl-c.  My only solution to
>> the hanging "ping" is to kill the terminal window.
>>
>> Any suggestions on:
>>
>> - Why "ping" behaves this way?
>> - How to avoid this problem?
>>
>> Thanks, in advance.
>
> cygwin ping is based on very old source from a time where people was not
> cheating on protocol answer.
>
> http://ftp.arl.mil/mike/ping.html
> (the author passed away 16 years ago..)
>
> can you send me a strace to see where the program is stacking ?
> No promise to find a solution but I will look on it.
>
> Regards
> Marco
>
>
>
>
>
> -- 
> 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
>
>


--
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



More information about the Cygwin mailing list