Subject: bug#13701: 24.2.93; Segmentation fault

From: Thierry Volpiatto <[email-masked]>
Date: Wed, 13 Feb 2013 10:04:15 +0100

Hi Sébastien,

"Sebastien Vauban" <[email-masked]> writes:

> Hi Thierry, Glenn and all,
>
> Thierry Volpiatto wrote:
>> Glenn Morris <[email-masked]> writes:
>>> "Sebastien Vauban" wrote:
>>>
>>>> warning: sys_read called when read is in progress
>>>
>>> Searching for this message, I found that the only hit is crashes
>>> previously reported by you in Emacs 24.1 and 24.2:
>>>
>>> http://lists.gnu.org/archive/html/help-gnu-emacs/2012-10/msg00021.html
>>>
>>> So maybe the issue(s) is not new and is caused by some unusual
>>> circumstance on your machine.
>>
>> The initial problem was the user is setting `shell-file-name' to
>> "/path/to/bash" on a windows machine where the value is normally
>> "/path/to/cmdproxy.exe".
>> The result is that all externals programs made to be used with
>> "cmdproxy.exe" are crashing Emacs.
>> In the case of `helm', the user is crashing Emacs with the helm-locate
>> command which use the executable "es.exe" which is part of "everything"
>> program.
>> So I think these crash are not the fault of Emacs nor helm, but a bad
>> setting of user.
>>
>> So the question is:
>> Sebastien, are you still using shell-file-name==bash in your config ?
>
> The answer is yes:
>
>   ╭────
>   │ shell-file-name is a variable defined in `C source code'.
>   │ Its value is "c:/cygwin/bin/bash.exe"
>   ╰────
>
> IIRC, I was asked by Eli (or, at the very least, allowed) to set back Bash as
> my inferior shell.
>
> FYI, I'm using that setting since 1999, when I began really working with
> Emacs, and it did not cause any problems either with Helm (in that time,
> Anything) for the last years in which I used it (at least, from 2010).
At the beginning of anything, locate was not implemented for windows
with "everything", probably helm is working without crash if you use the
locate executable of your cygwin stuff instead of "everything".
So I repeat that helm itself is NOT crashing Emacs, but the backend used
by helm in an unsupported shell IS crashing Emacs.

> Problems began appearing with Emacs 24, IIRC.
This is not related to Emacs-24 IMO, same problem would happen in
Emacs-23 in same context.

> That does not mean I absolutely have to keep that setting, but this is _by far_
> my preferred one, as I'm using Cygwin Bash (or Zsh) all around the place, and
> I want to be able to do the exact same thing from withing Emacs: for example,
> calling one of my script on a selected region, or things like that.
Probably you should let-bind `shell-file-name' to "bash" or whatever
when calling your scripts from Emacs and leave the global value to its
default setting.

That say, probably Emacs should detect when calling a process if the
executable is compatible with value of `shell-file-name' and throw a big
old error if so before crashing Emacs, don't know if that is possible
though.
(probably it is what Eli want to fix)

-- 
Thierry
Get my Gnupg key:
gpg --keyserver pgp.mit.edu --recv-keys 59F29997