delorie.com/archives/browse.cgi   search  
Mail Archives: cygwin/2006/12/26/12:22:30

X-Spam-Check-By: sourceware.org
Message-ID: <459133CB.3080102@ukf.net>
Date: Tue, 26 Dec 2006 14:38:03 +0000
From: Max Bowsher <maxb1 AT ukf DOT net>
Reply-To: cygwin AT cygwin DOT com
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7.12) Gecko/20050923 Thunderbird/1.0.7
MIME-Version: 1.0
To: cygwin AT cygwin DOT com
Subject: Re: Updated cygwin dlls cause unnecessary reboot on NT
References: <458EE598 DOT 3010404 AT aim DOT com> <458F31B1 DOT 6050804 AT byu DOT net> <458F81CC DOT 3090500 AT tlinx DOT org> <458FDC4E DOT 9040505 AT cygwin DOT com> <458FEC2E DOT 70705 AT tlinx DOT org> <Pine DOT GSO DOT 4 DOT 63 DOT 0612251346240 DOT 27982 AT access1 DOT cims DOT nyu DOT edu> <45902BC4 DOT 50803 AT tlinx DOT org> <4590BD4E DOT 5020905 AT cygwin DOT com> <45910426 DOT 9030603 AT tlinx DOT org>
In-Reply-To: <45910426.9030603@tlinx.org>
OpenPGP: id=C0F2C580
X-IsSubscribed: yes
Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm
List-Id: <cygwin.cygwin.com>
List-Subscribe: <mailto:cygwin-subscribe AT cygwin DOT com>
List-Archive: <http://sourceware.org/ml/cygwin/>
List-Post: <mailto:cygwin AT cygwin DOT com>
List-Help: <mailto:cygwin-help AT cygwin DOT com>, <http://sourceware.org/ml/#faqs>
Sender: cygwin-owner AT cygwin DOT com
Mail-Followup-To: cygwin AT cygwin DOT com
Delivered-To: mailing list cygwin AT cygwin DOT com

--------------enig709F3012DBA7802EA724A330
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

Linda Walsh wrote:
>    The fix I proposed has nothing to do with the cygwin1.dll.  As has
> been covered previously, since cygwin1.dll and a few other libs are
> part of the cygwin "kernel", special handling may be needed to upgrade
> those dll's.  What can be fixed is the installation of .exe and .dll
> files for
> applications.  The behavior of those should be the same as replacing
> in-use .so's and executables on *nix.

I believe there is a critical element you have missed.

In order to perform the rather miraculous emulation of fork(), Cygwin
needs to reload all the same DLLs that are operating in one process into
another newly created process. Updating the DLL files on disk whilst
processes are using them prevents this from happening.

For a simple demonstration of this:

* Start a bash shell
* Rename any of the DLLs used by bash to something else
* Try to execute any non-builtin command
* See the fork failure message


Could this be worked around? Perhaps.
Is it likely to happen? No, the benefit-to-work ratio is too low.

Max.


--------------enig709F3012DBA7802EA724A330
Content-Type: application/pgp-signature; name="signature.asc"
Content-Description: OpenPGP digital signature
Content-Disposition: attachment; filename="signature.asc"

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.5 (Cygwin)

iD8DBQFFkTPUfFNSmcDyxYARAgLhAJ0V4U60zSjgIpAREjSqXBqMTdJWWgCg13Co
Q9zfya3OZTRceZU/RfsEso8=
=HnEc
-----END PGP SIGNATURE-----

--------------enig709F3012DBA7802EA724A330--

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019