This is the mail archive of the cygwin mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Regression on XP with "Fix OPOST for non-Cygwin pty slaves"


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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]