Mail Archives: cygwin/2012/02/21/11:31:23
On Feb 21 14:53, Adam Thompson wrote:
> Dear all,
>
> About 3.5 years ago, I was looking into why a lot of Citrix
> Presentation Servers were seeing their SSH services fall over.
>
> I did actually discover the issue in the end, but neglected to post back here.
>
> I found that the issue was the Citrix API hooking, which messes with
> the fork() call. I am not a developer, but my understanding is that
> when a process calls fork(), it is expecting to have a child process
> created with an exact copy of all its pages. I'm guessing that the
Right.
> injected DLLs prevent this from being an exact copy, and therefore the
> fork() call fails. I'm not sure why it fails with err 11 (EAGAIN:
> Resource temporarily unavailable). I would have thought that err 4
> (EINTR: Interrupted system call) would be a better fit in this
> instance. But then, I suppose this depends on how Cygwin interprets
> what is returned to it in its own NT/Win32 API calls.
No, EAGAIN is the right errno per POSIX. EINTR is not a valid errno
for fork.
> Anyhow.... there's a Citrix KB article on how to disable hooking on a
> per-executable basis at:
>
> http://support.citrix.com/article/CTX107825
>
> I found that adding sshd.exe and cygrunsrv.exe to the
> ExcludedImageNames key was enough to fix the problem on the servers I
> saw the problem on.
>
> As this applies to all versions of Citrix Metaframe Presentation
> Server / XenApp, it might be worth adding these to BLODA.
>
> The hooking is done via AppInit_DLLs [1], so for at least
> Win2000/2003/XP, this key would be a good place to start looking for
> unexplained fork() failures, and perhaps also merits a mention on the
> BLODA page.
I added that to the FAQ.
Thanks,
Corinna
--
Corinna Vinschen Please, send mails regarding Cygwin to
Cygwin Project Co-Leader cygwin AT cygwin DOT com
Red Hat
--
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
- Raw text -