MC no longer working with cygwin 3.1.x
Thomas Wolff
towo@towo.net
Thu Dec 19 05:37:00 GMT 2019
Am 18.12.2019 um 22:14 schrieb Ken Brown:
> On 12/18/2019 2:32 PM, Corinna Vinschen wrote:
>> On Dec 18 17:23, Marco Atzeri wrote:
>>> Am 18.12.2019 um 15:42 schrieb Laurent R:
>>>> Dear all,
>>>>
>>>> After the update to cygwin-3.1.1, mc (aka Midnight Commander) no longer starts. It goes into an infinite loop, if I go back to cygwin-3.0.7, mc works perfectly.
>>>>
>>>> I tested with cygwin-3.1.0, same problem.
>>>>
>>>> The MC version is 4.8.23 and the operating system is Windows 10 Pro x64 1903.
>>>>
>>>> Regards.
>>>>
>>> confirmed
>>>
>>> there must be a race somewhere as running /usr/bin/mc.exe from strace
>>> works fine.
>> But that's not the only problem running mc AFAICS. I'm seeing an
>> error message in the background:
>>
>> Cannot open named pipe /tmp/mc-corinna/mc.pipe.384
>> /cygdrive/d/cyg_pub/devel/mc/mc-4.8.23-1.x86_64/src/mc-4.8.23/src/subshell/common.c: open: Permission denied
>>
>> It looks like there's another problem, this time with the new FIFO
>> code.
>>
>> Ken, care to take a look?
> I've just looked at the mc source code, and it seems that (under tcsh only), mc
> creates a fifo and tries to open it twice as O_RDWR. This is not supported on
> Cygwin, so the second attempt fails.
>
> Here's the relevant code from src/subshell/common.c:
>
> if (mc_global.shell->type == SHELL_TCSH)
> {
> g_snprintf (tcsh_fifo, sizeof (tcsh_fifo), "%s/mc.pipe.%d",
> mc_tmpdir (), (int) getpid ());
> if (mkfifo (tcsh_fifo, 0600) == -1)
> [...]
> /* Opening the FIFO as O_RDONLY or O_WRONLY causes deadlock */
>
> if ((subshell_pipe[READ] = open (tcsh_fifo, O_RDWR)) == -1
> || (subshell_pipe[WRITE] = open (tcsh_fifo, O_RDWR)) == -1)
> {
> fprintf (stderr, _("Cannot open named pipe %s\n"), tcsh_fifo);
> perror (__FILE__ ": open");
> mc_global.tty.use_subshell = FALSE;
> [...]
>
> Under bash, zsh, and some other shells, mc uses ordinary pipes rather than
> FIFOs. I have no idea why tcsh is treated differently.
>
> Until someone[*] gets around to making it possible to open a FIFO twice for
> reading, I don't think there's anything we can do about it. I also don't know
> how important this is for mc. I don't use tcsh or mc, so I can't judge.
I've reproduced mc to fail, from bash, in cygwin 3.1.0 and 3.1.1,
Windows 1809 and 1903.
--
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