Mail Archives: cygwin/2019/02/11/06:56:56
X-Recipient: | archive-cygwin AT delorie DOT com
|
DomainKey-Signature: | a=rsa-sha1; c=nofws; d=sourceware.org; h=list-id
|
| :list-unsubscribe:list-subscribe:list-archive:list-post
|
| :list-help:sender:subject:to:references:from:message-id:date
|
| :mime-version:in-reply-to:content-type; q=dns; s=default; b=svVP
|
| IYfOHT24RtVGt+4qJUSR4KBsQE+d+dtWfTu5ll8Tl3/d2PyagKUekBdCZSQOplLV
|
| 2US4KX2ow5KljFDyHj5ri8bGuy/lS9TAFy0Tksj8dN/4/DNkp+sVoYm2RfPq1T09
|
| 2/t68a0XpBDHjSP/B+TCVjTVRi0VILVOpxci9As=
|
DKIM-Signature: | v=1; a=rsa-sha1; c=relaxed; d=sourceware.org; h=list-id
|
| :list-unsubscribe:list-subscribe:list-archive:list-post
|
| :list-help:sender:subject:to:references:from:message-id:date
|
| :mime-version:in-reply-to:content-type; s=default; bh=llPTQzeP+U
|
| 2TsM5kJUknu7HLkk0=; b=Yyy10+PvV1IEXULWBIrUndqaTSPRtqssygaZ2d9F3s
|
| eCfg9f0l3JWW7rR5bLZrcUt9L/VAZeMNogggiUljUqPWYR97ema1LruWS9DOpOpN
|
| 644v6BPQnXhOZGfl/gGHiNkvPk+ftu83nS0qk2EKHSmyPp/QUAcdmsrUM0OxvAhg
|
| 0=
|
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
|
Authentication-Results: | sourceware.org; auth=none
|
X-Spam-SWARE-Status: | No, score=-26.4 required=5.0 tests=BAYES_00,GIT_PATCH_0,GIT_PATCH_1,GIT_PATCH_2,GIT_PATCH_3,KAM_NUMSUBJECT,RCVD_IN_DNSWL_NONE,SPF_PASS autolearn=ham version=3.3.2 spammy=HX-Envelope-From:sk:michael, reside, age, para
|
X-HELO: | atfriesa01.ssi-schaefer.com
|
Subject: | Re: [ANNOUNCEMENT] TEST: Cygwin 3.0.0-0.7
|
To: | cygwin AT cygwin DOT com
|
References: | <8a2f041f-f8f7-6e17-5d97-5a168440009b AT ssi-schaefer DOT com> <20190208113158 DOT GH13951 AT calimero DOT vinschen DOT de> <17e339bb-2115-bf22-7291-04215aab3150 AT ssi-schaefer DOT com> <20190208122126 DOT GM13951 AT calimero DOT vinschen DOT de> <20190208122338 DOT GN13951 AT calimero DOT vinschen DOT de> <b07e6ba2-0ce0-4662-7a02-bda6ce3b0108 AT ssi-schaefer DOT com> <20190208130635 DOT GO13951 AT calimero DOT vinschen DOT de> <20190208132807 DOT GP13951 AT calimero DOT vinschen DOT de> <d9e14a36-d927-6cd9-d2e8-cf1aee1ec8c9 AT ssi-schaefer DOT com> <20190208165817 DOT GT13951 AT calimero DOT vinschen DOT de> <20190208170032 DOT GV13951 AT calimero DOT vinschen DOT de>
|
From: | Michael Haubenwallner <michael DOT haubenwallner AT ssi-schaefer DOT com>
|
Openpgp: | preference=signencrypt
|
Message-ID: | <54a5ff3e-4d6a-de39-cc02-f2533072552e@ssi-schaefer.com>
|
Date: | Mon, 11 Feb 2019 12:50:00 +0100
|
User-Agent: | Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.5.0
|
MIME-Version: | 1.0
|
In-Reply-To: | <20190208170032.GV13951@calimero.vinschen.de>
|
--WyFcSECn4MYHVmvaT8H6eeFP6CYeqSz1i
Content-Type: multipart/mixed; boundary="0eibR8j8oD3Knag7Gnf7k2EkgBEh8Do3Y";
protected-headers="v1"
From: Michael Haubenwallner <michael DOT haubenwallner AT ssi-schaefer DOT com>
To: cygwin AT cygwin DOT com
Message-ID: <54a5ff3e-4d6a-de39-cc02-f2533072552e AT ssi-schaefer DOT com>
Subject: Re: [ANNOUNCEMENT] TEST: Cygwin 3.0.0-0.7
References: <8a2f041f-f8f7-6e17-5d97-5a168440009b AT ssi-schaefer DOT com>
<20190208113158 DOT GH13951 AT calimero DOT vinschen DOT de>
<17e339bb-2115-bf22-7291-04215aab3150 AT ssi-schaefer DOT com>
<20190208122126 DOT GM13951 AT calimero DOT vinschen DOT de>
<20190208122338 DOT GN13951 AT calimero DOT vinschen DOT de>
<b07e6ba2-0ce0-4662-7a02-bda6ce3b0108 AT ssi-schaefer DOT com>
<20190208130635 DOT GO13951 AT calimero DOT vinschen DOT de>
<20190208132807 DOT GP13951 AT calimero DOT vinschen DOT de>
<d9e14a36-d927-6cd9-d2e8-cf1aee1ec8c9 AT ssi-schaefer DOT com>
<20190208165817 DOT GT13951 AT calimero DOT vinschen DOT de>
<20190208170032 DOT GV13951 AT calimero DOT vinschen DOT de>
In-Reply-To: <20190208170032 DOT GV13951 AT calimero DOT vinschen DOT de>
--0eibR8j8oD3Knag7Gnf7k2EkgBEh8Do3Y
Content-Type: multipart/mixed;
boundary="------------4D1D045F880817F5C2C9C074"
Content-Language: en-US
This is a multi-part message in MIME format.
--------------4D1D045F880817F5C2C9C074
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable
On 2/8/19 6:00 PM, Corinna Vinschen wrote:
> On Feb 8 17:58, Corinna Vinschen wrote:
>> On Feb 8 17:35, Michael Haubenwallner wrote:
>>>
>>> On 2/8/19 2:28 PM, Corinna Vinschen wrote:
>>>>
>>>> I pushed your forkable branch to master, btw. Would you mind to do the
>>>> honors in the ;rease notes at cygwin/release/3.0 and doc/new-features.=
xml?
>>>
>>> Do you mean like this?
>>
>> It's not bad but for release notes it's rather long. Any chance to get
>> a more compact text? Also, please add a "Cygwin: " prefix to the log
>> message summary. I'd like to distinguish CYgwin-only changes from
>> newlib changes.
>=20
> OTOH, if you want to extend the documentation, feel free...
Another try, with polish to already available doc around the forkables.
/haubi/
--------------4D1D045F880817F5C2C9C074
Content-Type: text/x-patch;
name="0001-Cygwin-forkables-update-doc-add-release-notes.patch"
Content-Transfer-Encoding: quoted-printable
Content-Disposition: attachment;
filename="0001-Cygwin-forkables-update-doc-add-release-notes.patch"
=46rom fc9911a188ba2ab8cb0e78c2820c56a5be1d16b8 Mon Sep 17 00:00:00 2001
From: Michael Haubenwallner <michael DOT haubenwallner AT ssi-schaefer DOT com>
Date: Fri, 8 Feb 2019 15:38:56 +0100
Subject: [PATCH] Cygwin: forkables: update doc, add release notes
---
winsup/cygwin/release/3.0 | 6 ++++++
winsup/doc/highlights.xml | 28 +++++++++++++++++-----------
winsup/doc/new-features.xml | 7 +++++++
3 files changed, 30 insertions(+), 11 deletions(-)
diff --git a/winsup/cygwin/release/3.0 b/winsup/cygwin/release/3.0
index da0fe0961..da357558d 100644
--- a/winsup/cygwin/release/3.0
+++ b/winsup/cygwin/release/3.0
@@ -31,6 +31,12 @@ What's new:
- New APIs: signalfd, timerfd_create, timerfd_gettime, timerfd_settime,
timer_getoverrun.
=20
+- fork(2) now is able to recover from when an in-use executable/dll is
+ removed or replaced during process runtime. This feature is disabled by
+ default and limited to exes/dlls on the same NTFS partition as the Cygwin
+ installation. For more information and how to enable, please refer to
+ https://www.cygwin.com/cygwin-ug-net/highlights.html#ov-hi-process
+
=20
What changed:
-------------
diff --git a/winsup/doc/highlights.xml b/winsup/doc/highlights.xml
index 25b227382..67e326cb4 100644
--- a/winsup/doc/highlights.xml
+++ b/winsup/doc/highlights.xml
@@ -202,21 +202,27 @@ While Windows does not allow to remove binaries in us=
e from the file
system, they still can be renamed or moved into the recycle bin, as
outlined for unlink(2) in <xref linkend=3D"ov-new1.7-file"></xref>.
To allow an existing process to fork, the original binary files need to be
-available via their original file names, but they may reside in
-different directories when using the <ulink
+available via their original file names, but they may reside in a
+different directory when using the <ulink
url=3D"https://social.msdn.microsoft.com/search/en-US?query=3Ddotlocal%20d=
ll%20redirection"
>DotLocal (.local) Dll Redirection</ulink> feature.
Since NTFS does support hardlinks, when the fork fails we try again, but
create a private directory containing hardlinks to the original files as
-well as the .local file now. The private directory for the hardlinks is
-/var/run/cygfork/, which you have to create manually for now if you need to
-protect fork against exe- and dll- updates on your Cygwin instance. As
-hardlinks cannot be used across multiple NTFS file systems, please make su=
re
-your exe- and dll- replacing operations operate on the same single NTFS fi=
le
-system as your Cygwin instance and the /var/run/cygfork/ directory.</para>
-
-<para>We create one directory per user, application and application age,
-and remove it when no more processes use that directory. To indicate
+well as the <literal>.local</literal> file now. The base directory for the
+private hardlink directory is <literal>/var/run/cygfork/</literal>, which
+you have to create manually for now if you need to protect fork against
+updates to executables and dlls on your Cygwin instance. As hardlinks
+cannot be used across multiple NTFS file systems, please make sure your
+executable and dll replacing operations operate on the same single NTFS fi=
le
+system as your Cygwin instance and the <literal>/var/run/cygfork/</literal>
+directory. Note that this private hardlink directory also does help for
+when a wrong dll is found in the parent process' current working directory.
+To enable creating the hardlinks, you need to stop all currently running
+Cygwin processes after creating this directory, once per Cygwin installati=
on:
+<literallayout>$ mkdir --mode=3Da=3Drwxt /var/run/cygfork</literallayout><=
/para>
+
+<para>We create one hardlink directory per user, application and applicati=
on
+age, and remove it when no more processes use that directory. To indicate
whether a directory still is in use, we define a mutex name similar to
the directory name. As mutexes are destroyed when no process holds a
handle open any more, we can clean up even after power loss or similar:
diff --git a/winsup/doc/new-features.xml b/winsup/doc/new-features.xml
index 6801e3eeb..8fc0ac6fe 100644
--- a/winsup/doc/new-features.xml
+++ b/winsup/doc/new-features.xml
@@ -107,6 +107,13 @@ Native Windows processes not started by Cygwin process=
es are mapped
into the range beyond 65535.
</para></listitem>
=20
+<listitem><para>
+fork(2) now is able to recover from when an in-use executable/dll is
+removed or replaced during process runtime. This feature is disabled by
+default and limited to exes/dlls on the same NTFS partition as the Cygwin
+installation. For more information and how to enable, please refer to
+<xref linkend=3D"ov-hi-process"></xref>.
+</para></listitem>
</itemizedlist>
=20
</sect2>
--=20
2.17.0
--------------4D1D045F880817F5C2C9C074--
--0eibR8j8oD3Knag7Gnf7k2EkgBEh8Do3Y--
--WyFcSECn4MYHVmvaT8H6eeFP6CYeqSz1i
Content-Type: application/pgp-signature; name="signature.asc"
Content-Description: OpenPGP digital signature
Content-Disposition: attachment; filename="signature.asc"
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2
iQKTBAEBCgB9FiEEY4PJ0Y//u+XgtVrKscWEirl385IFAlxhYW5fFIAAAAAALgAo
aXNzdWVyLWZwckBub3RhdGlvbnMub3BlbnBncC5maWZ0aGhvcnNlbWFuLm5ldDYz
ODNDOUQxOEZGRkJCRTVFMEI1NUFDQUIxQzU4NDhBQjk3N0YzOTIACgkQscWEirl3
85K+VBAApFLythoX46vBFarY4559/qdMHNiaoOr/mxR5rX0ZJDov6QoOK6YF0LuI
L8q4Nqzx8gfqDRI5ojbh1mrph/P1MRAm6yVJs4OiHgD3JUv3TjDj3tC8YdqvlzOt
0U37HfwEFNN82786R6SPO+I1erwTmuZUR7GhsaYpQqd6PCUI9nyhJTQzN0gt9MHb
SlqAS57NCYyEIZEnYeZfqGIiwmyezR4wor2RnCc/DcNw2cs4IJ4rlmbqkkqru3AS
X2q9kgIwG3UOKbnrm16CqKFIWKxhrC4ubp6JPDO1pgAswTEaA59CjhllThvHFQ0O
8FXwaRGrkr3ECNP5DwziOeoKrVpAZJr1kCrtFalO+1n0e/ATQMzfE0NeS4t2yfvw
Qf9znUO+30BlRmRRPKmuhACaJm20bE/AdCVLyxWlEjNlbFB4rCNdJbsF7poK84Fm
JkXwjZLzdxaHldO7RXEgVinRPYEZ2nKiZnMtHetDrGI/wSg2nXN9haoPwyK/MuFU
WMaCaAzubOCXRdXeioT/EcbvgFea99InjLKBgpKYLCz4bEkoYvvEJbrPuNZudHZz
UwC9X9GcyDkkj1FYj/iADI8cUOdehCRV2Uxvk53lEn0Hp8aaYGe5SieQQqh/QsN2
dBBhh9V7qyAfHtpw7U3pHRpWJ8f2wdBMEZ8ndnzmmvHaftoIflA=
=znxs
-----END PGP SIGNATURE-----
--WyFcSECn4MYHVmvaT8H6eeFP6CYeqSz1i--
- Raw text -