Hi Corrinna,
On 2015-05-27 14:50, Corinna Vinschen wrote:
On May 1 16:25, Johannes Schindelin wrote:
Hi Yano & Corinna,
I would like to ask you for help with fixing a regression I am
experiencing
on XP (and XP only, the problem does not occur with Windows 7 or 8).
It may
be a 32-bit issue, but I cannot currently test on 64-bit XP.
Background: I am the maintainer of Git for Windows and we are hoping
to
release a new major release Real Soon Now, based on MSys2 (which in
turn is
based on Cygwin). To make the user experience a bit better, we want to
allow
users to double-click a "Git Bash" icon that simply launches a small,
non-console MinGW executable which in turn basically sets up the PATH
and
MSYSTEM environment variables (as required for the MSys2 runtime) and
then
launches a mintty with a bash inside. Please note that this small
executable
is *not* a console program but a GUI one (-mwindows instead of
-mconsole) so
that no console window flashes before the mintty window is shown.
Now, this strategy worked well so far, except that I recently found
that Git
Bash does not start in XP anymore, instead the mintty process just
sits and
waits for a while and after five to ten minutes, the mintty window
appears
with the message:
Failed to fork child process: Resource temporarily unavailable.
DLL rebasing may be required. See 'rebaseall --help'.
(Needless to say, a 'rebaseall' does not fix it.)
This problem does *not* occur if I call mintty from a `.bat` file or
from
`cmd` -- but as I said, I want to avoid flashing console windows --
and it
also does not happen if I run a mintty from a freshly installed Cygwin
(with
cygwin package version 2.0.1-1) where the shortcut points directly to
`mintty` which is a console application.
This symptom makes me believe that the culprit might be that
msys-2.0.dll
somehow expected an attached Win32 Console, and spins in circles when
there
is none.
Now, please note that I do *not* run a regular cygwin1.dll but rather
an
msys-2.0.dll that I had to patch even more to support users of the
previous
Git for Windows version (which was based on MSys1 and did things like
allowing users to override their home directory using the HOME
environment
variable).
Starting with the diff on top of cygwin1.dll's sources, I bisected the
problem down to the commit "Fix OPOST for non-Cygwin pty slaves":
https://cygwin.com/git/gitweb.cgi?p=newlib-cygwin.git;a=commit;h=063e7da36fda3f42619d7df606d9f3d4920605aa
With this commit reverted, on top of the MSys2 and the Git for Windows
patches, the mintty window appears correctly again when launched on
32-bit
XP via said GUI executable. You can see my current state here:
https://github.com/git-for-windows/msys2-runtime/tree/aae52e6d23e92cf71e6f7777ff9bb49588be8fdc
I would like to ask you for advice how to debug this regression
further
because I really would like to revert the revert and have a proper
fix. Or
maybe you have an idea how I can fix it directly?
Hmm, this seems to be another fallout from introducing different OPOST
processing (via spearate pipes) for native and Cygwin processes.
Does the patch from https://cygwin.com/ml/cygwin/2015-05/msg00282.html
help, by any chance?
Sadly, my test program still hangs when running with an msys2-runtime
with that patch applied. I cannot say where exactly it hangs, just that
the mintty I call from a GUI program spawns a thread that seems to wait
until something times out.
I won't be able to investigate this during the next week, but I could
put more effort into shedding more light into the problem in the second
or third week of June.
Ciao,
Dscho
--
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