public inbox for cygwin@cygwin.com
 help / color / mirror / Atom feed
* [ANNOUNCEMENT] TEST: Cygwin 3.0.0-0.3
@ 2019-01-30 21:23 Corinna Vinschen
  2019-01-31  8:47 ` Michael Haubenwallner
  0 siblings, 1 reply; 16+ messages in thread
From: Corinna Vinschen @ 2019-01-30 21:23 UTC (permalink / raw)
  To: cygwin

Hi folks,


I uploaded a new Cygwin test release 3.0.0-0.3

This release comes with a couple of new features and some interesting
bug fixes.

It also changes the output of uname(2) for newly built applications.
Applications built so far (that includes uname(1) from coreutils)
will still print the old uname output.  The new format allows for longer
strings.  Compare:

Old uname content:

  sysname:  CYGWIN_NT-10.0     or  CYGWIN_NT-10.0-WOW   on WOW64
  release:  3.0.0(0.335/5/3)   or  3.0.0s(0.335/5/3)    for snapshots
  version:  2019-01-29 19:23   Local build time 

Upcoming new uname content:

  sysname:  CYGWIN_NT-10.0-17763   or  CYGWIN_NT-10.0-17763-WOW64
  release:  3.0.0-335.x86_64       or  3.0.0-335.x86_64.snap
  version:  2019-01-29 19:23 UTC   Build time in UTC


Changes from 3.0.0-0.2:

- Fix exception handling in pthreads.


Please test.

=======================================================================

What's new:
-----------

- Support for CLOCK_REALTIME_COARSE, CLOCK_MONOTONIC_COARSE,
  CLOCK_MONOTONIC_RAW, CLOCK_BOOTTIME, CLOCK_REALTIME_ALARM,
  CLOCK_BOOTTIME_ALARM clocks.

- Support for case sensitive directories.  mkdir(2) automatically
  creates directories within the Cygwin installation dir as case
  sensitive now.

  This feature requires Windows 10 1803 or later and WSL installed!

- New file ioctls's FS_IOC_GETFLAGS and FS_IOC_SETFLAGS.  The actual
  inode flags are Cygwin-specific.  This allows to set or reset
  DOS attributes, file sparseness, FS level encryption and compression,
  as well as directory case sensitivity programatically.

- New tools chattr(1) and lsattr(1) to utilize setting and viewing the
  aforementioned new ioctl's on the command line.

- Support for exFAT.

- Support Linux-specific open(2) flag O_PATH.

- Support Linux-specific linkat(2) flag AT_EMPTY_PATH.

- Support overrun counter for posix timers (via timer_getoverrun() or
  siginfo_t::si_overrun).

- New APIs: signalfd, timerfd_create, timerfd_gettime, timerfd_settime,
  timer_getoverrun.


What changed:
-------------

- clock_nanosleep, pthread_condattr_setclock and timer_create now support
  all clocks, except CLOCK_PROCESS_CPUTIME_ID and CLOCK_THREAD_CPUTIME_ID.

- clock_setres is a no-op now.

- Use the new POSIX unlink semantics on NTFS starting with Windows 10 1709.
  Deleting an in-use file now actually removes the file, rather than moving
  it to the recycler bin.

- Use the new POSIX rename semantics on NTFS starting with Windows 10 1809.
  Renaming a file to another in-use file now actually removes the other file,
  rather than moving it to the recycler bin.

- open(..., O_TMPFILE) now moves the file to the trash bin immediately,
  to free the parent directory.

- Wctype functions updated to Unicode 11.0.

- Remove matherr, and SVID and X/Open math library configurations.
  Default math library configuration is now IEEE.

- Improve uname(2) for newly built applications.

- Kerberos/MSV1_0 S4U authentication replaces two old methods:
  Creating a token from scratch and Cygwin LSA authentication package.


Bug Fixes
---------

- Fix a thread race when initializing CLOCK_MONOTONIC.
  Addresses: https://cygwin.com/ml/cygwin/2018-11/msg00017.html

- Fix early timeout from pthread_cond_timedwait.
  Addresses: https://cygwin.com/ml/cygwin/2018-11/msg00171.html

- Fix a bug in recognizing remote FAT/FAT32/exFAT correctly.

- Allow open(2)/stat(2)/linkat(2) of a file via /proc/PID/fd/DESCRIPTOR
  even if file has been deleted.
  Addresses: https://cygwin.com/ml/cygwin/2018-12/msg00125.html
             https://cygwin.com/ml/cygwin/2018-12/msg00028.html

- Fix a bug in select(2) when polling HANDLE-less descriptors.

- Fix WEOF handling in wctype functions.
  Addresses: https://cygwin.com/ml/cygwin/2018-12/msg00173.html

- Fix thread names in GDB when cygthreads get reused.

- Fix return value of gethostname in a border case.

- Disallow seteuid on disabled or locked out accounts.
  Addresses: https://cygwin.com/ml/cygwin/2019-01/msg00197.html

- Fix raise to work as required by POSIX.
  Addresses: https://cygwin.com/ml/cygwin/2019-01/msg00149.html

- Fix exception handling in pthreads.
  Addresses: https://cygwin.com/ml/cygwin/2019-01/msg00149.html

=======================================================================


Have fun,
Corinna

-- 
Corinna Vinschen
Cygwin Maintainer

--
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

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [ANNOUNCEMENT] TEST: Cygwin 3.0.0-0.3
  2019-01-30 21:23 [ANNOUNCEMENT] TEST: Cygwin 3.0.0-0.3 Corinna Vinschen
@ 2019-01-31  8:47 ` Michael Haubenwallner
  2019-01-31 19:48   ` Corinna Vinschen
  0 siblings, 1 reply; 16+ messages in thread
From: Michael Haubenwallner @ 2019-01-31  8:47 UTC (permalink / raw)
  To: cygwin

Hi Corinna,

I'm missing that topic/forkables branch in the announcement - is that in?
https://cygwin.com/ml/cygwin-patches/2017-q1/msg00053.html

Thanks!
/haubi/

On 1/30/19 10:22 PM, Corinna Vinschen wrote:
> Hi folks,
> 
> 
> I uploaded a new Cygwin test release 3.0.0-0.3
> 
> This release comes with a couple of new features and some interesting
> bug fixes.
> 
> It also changes the output of uname(2) for newly built applications.
> Applications built so far (that includes uname(1) from coreutils)
> will still print the old uname output.  The new format allows for longer
> strings.  Compare:
> 
> Old uname content:
> 
>   sysname:  CYGWIN_NT-10.0     or  CYGWIN_NT-10.0-WOW   on WOW64
>   release:  3.0.0(0.335/5/3)   or  3.0.0s(0.335/5/3)    for snapshots
>   version:  2019-01-29 19:23   Local build time 
> 
> Upcoming new uname content:
> 
>   sysname:  CYGWIN_NT-10.0-17763   or  CYGWIN_NT-10.0-17763-WOW64
>   release:  3.0.0-335.x86_64       or  3.0.0-335.x86_64.snap
>   version:  2019-01-29 19:23 UTC   Build time in UTC
> 
> 
> Changes from 3.0.0-0.2:
> 
> - Fix exception handling in pthreads.
> 
> 
> Please test.
> 
> =======================================================================
> 
> What's new:
> -----------
> 
> - Support for CLOCK_REALTIME_COARSE, CLOCK_MONOTONIC_COARSE,
>   CLOCK_MONOTONIC_RAW, CLOCK_BOOTTIME, CLOCK_REALTIME_ALARM,
>   CLOCK_BOOTTIME_ALARM clocks.
> 
> - Support for case sensitive directories.  mkdir(2) automatically
>   creates directories within the Cygwin installation dir as case
>   sensitive now.
> 
>   This feature requires Windows 10 1803 or later and WSL installed!
> 
> - New file ioctls's FS_IOC_GETFLAGS and FS_IOC_SETFLAGS.  The actual
>   inode flags are Cygwin-specific.  This allows to set or reset
>   DOS attributes, file sparseness, FS level encryption and compression,
>   as well as directory case sensitivity programatically.
> 
> - New tools chattr(1) and lsattr(1) to utilize setting and viewing the
>   aforementioned new ioctl's on the command line.
> 
> - Support for exFAT.
> 
> - Support Linux-specific open(2) flag O_PATH.
> 
> - Support Linux-specific linkat(2) flag AT_EMPTY_PATH.
> 
> - Support overrun counter for posix timers (via timer_getoverrun() or
>   siginfo_t::si_overrun).
> 
> - New APIs: signalfd, timerfd_create, timerfd_gettime, timerfd_settime,
>   timer_getoverrun.
> 
> 
> What changed:
> -------------
> 
> - clock_nanosleep, pthread_condattr_setclock and timer_create now support
>   all clocks, except CLOCK_PROCESS_CPUTIME_ID and CLOCK_THREAD_CPUTIME_ID.
> 
> - clock_setres is a no-op now.
> 
> - Use the new POSIX unlink semantics on NTFS starting with Windows 10 1709.
>   Deleting an in-use file now actually removes the file, rather than moving
>   it to the recycler bin.
> 
> - Use the new POSIX rename semantics on NTFS starting with Windows 10 1809.
>   Renaming a file to another in-use file now actually removes the other file,
>   rather than moving it to the recycler bin.
> 
> - open(..., O_TMPFILE) now moves the file to the trash bin immediately,
>   to free the parent directory.
> 
> - Wctype functions updated to Unicode 11.0.
> 
> - Remove matherr, and SVID and X/Open math library configurations.
>   Default math library configuration is now IEEE.
> 
> - Improve uname(2) for newly built applications.
> 
> - Kerberos/MSV1_0 S4U authentication replaces two old methods:
>   Creating a token from scratch and Cygwin LSA authentication package.
> 
> 
> Bug Fixes
> ---------
> 
> - Fix a thread race when initializing CLOCK_MONOTONIC.
>   Addresses: https://cygwin.com/ml/cygwin/2018-11/msg00017.html
> 
> - Fix early timeout from pthread_cond_timedwait.
>   Addresses: https://cygwin.com/ml/cygwin/2018-11/msg00171.html
> 
> - Fix a bug in recognizing remote FAT/FAT32/exFAT correctly.
> 
> - Allow open(2)/stat(2)/linkat(2) of a file via /proc/PID/fd/DESCRIPTOR
>   even if file has been deleted.
>   Addresses: https://cygwin.com/ml/cygwin/2018-12/msg00125.html
>              https://cygwin.com/ml/cygwin/2018-12/msg00028.html
> 
> - Fix a bug in select(2) when polling HANDLE-less descriptors.
> 
> - Fix WEOF handling in wctype functions.
>   Addresses: https://cygwin.com/ml/cygwin/2018-12/msg00173.html
> 
> - Fix thread names in GDB when cygthreads get reused.
> 
> - Fix return value of gethostname in a border case.
> 
> - Disallow seteuid on disabled or locked out accounts.
>   Addresses: https://cygwin.com/ml/cygwin/2019-01/msg00197.html
> 
> - Fix raise to work as required by POSIX.
>   Addresses: https://cygwin.com/ml/cygwin/2019-01/msg00149.html
> 
> - Fix exception handling in pthreads.
>   Addresses: https://cygwin.com/ml/cygwin/2019-01/msg00149.html
> 
> =======================================================================
> 
> 
> Have fun,
> Corinna
> 


--
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

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [ANNOUNCEMENT] TEST: Cygwin 3.0.0-0.3
  2019-01-31  8:47 ` Michael Haubenwallner
@ 2019-01-31 19:48   ` Corinna Vinschen
  2019-02-03 11:19     ` Corinna Vinschen
  0 siblings, 1 reply; 16+ messages in thread
From: Corinna Vinschen @ 2019-01-31 19:48 UTC (permalink / raw)
  To: cygwin

[-- Attachment #1: Type: text/plain, Size: 6151 bytes --]

On Jan 31 09:47, Michael Haubenwallner wrote:
> Hi Corinna,
> 
> I'm missing that topic/forkables branch in the announcement - is that in?
> https://cygwin.com/ml/cygwin-patches/2017-q1/msg00053.html

No, it's not.  It hasn't been touched for almost two years so I forgot
about it.

Does it still apply to current mainline?  Will it still work correctly
in conjunction with the Windows 10 1709/1803/1809 changes in terms of
deleting and renaming files?

More importantly, I'm not confident to maintain this code alone since it
won't be used most of the time and it adds a heck of complexity to
handle a border case.  Will you be available to maintain this code for
the forseeable future?  If not, the code won't go in, sorry.


Corinna


> 
> Thanks!
> /haubi/
> 
> On 1/30/19 10:22 PM, Corinna Vinschen wrote:
> > Hi folks,
> > 
> > 
> > I uploaded a new Cygwin test release 3.0.0-0.3
> > 
> > This release comes with a couple of new features and some interesting
> > bug fixes.
> > 
> > It also changes the output of uname(2) for newly built applications.
> > Applications built so far (that includes uname(1) from coreutils)
> > will still print the old uname output.  The new format allows for longer
> > strings.  Compare:
> > 
> > Old uname content:
> > 
> >   sysname:  CYGWIN_NT-10.0     or  CYGWIN_NT-10.0-WOW   on WOW64
> >   release:  3.0.0(0.335/5/3)   or  3.0.0s(0.335/5/3)    for snapshots
> >   version:  2019-01-29 19:23   Local build time 
> > 
> > Upcoming new uname content:
> > 
> >   sysname:  CYGWIN_NT-10.0-17763   or  CYGWIN_NT-10.0-17763-WOW64
> >   release:  3.0.0-335.x86_64       or  3.0.0-335.x86_64.snap
> >   version:  2019-01-29 19:23 UTC   Build time in UTC
> > 
> > 
> > Changes from 3.0.0-0.2:
> > 
> > - Fix exception handling in pthreads.
> > 
> > 
> > Please test.
> > 
> > =======================================================================
> > 
> > What's new:
> > -----------
> > 
> > - Support for CLOCK_REALTIME_COARSE, CLOCK_MONOTONIC_COARSE,
> >   CLOCK_MONOTONIC_RAW, CLOCK_BOOTTIME, CLOCK_REALTIME_ALARM,
> >   CLOCK_BOOTTIME_ALARM clocks.
> > 
> > - Support for case sensitive directories.  mkdir(2) automatically
> >   creates directories within the Cygwin installation dir as case
> >   sensitive now.
> > 
> >   This feature requires Windows 10 1803 or later and WSL installed!
> > 
> > - New file ioctls's FS_IOC_GETFLAGS and FS_IOC_SETFLAGS.  The actual
> >   inode flags are Cygwin-specific.  This allows to set or reset
> >   DOS attributes, file sparseness, FS level encryption and compression,
> >   as well as directory case sensitivity programatically.
> > 
> > - New tools chattr(1) and lsattr(1) to utilize setting and viewing the
> >   aforementioned new ioctl's on the command line.
> > 
> > - Support for exFAT.
> > 
> > - Support Linux-specific open(2) flag O_PATH.
> > 
> > - Support Linux-specific linkat(2) flag AT_EMPTY_PATH.
> > 
> > - Support overrun counter for posix timers (via timer_getoverrun() or
> >   siginfo_t::si_overrun).
> > 
> > - New APIs: signalfd, timerfd_create, timerfd_gettime, timerfd_settime,
> >   timer_getoverrun.
> > 
> > 
> > What changed:
> > -------------
> > 
> > - clock_nanosleep, pthread_condattr_setclock and timer_create now support
> >   all clocks, except CLOCK_PROCESS_CPUTIME_ID and CLOCK_THREAD_CPUTIME_ID.
> > 
> > - clock_setres is a no-op now.
> > 
> > - Use the new POSIX unlink semantics on NTFS starting with Windows 10 1709.
> >   Deleting an in-use file now actually removes the file, rather than moving
> >   it to the recycler bin.
> > 
> > - Use the new POSIX rename semantics on NTFS starting with Windows 10 1809.
> >   Renaming a file to another in-use file now actually removes the other file,
> >   rather than moving it to the recycler bin.
> > 
> > - open(..., O_TMPFILE) now moves the file to the trash bin immediately,
> >   to free the parent directory.
> > 
> > - Wctype functions updated to Unicode 11.0.
> > 
> > - Remove matherr, and SVID and X/Open math library configurations.
> >   Default math library configuration is now IEEE.
> > 
> > - Improve uname(2) for newly built applications.
> > 
> > - Kerberos/MSV1_0 S4U authentication replaces two old methods:
> >   Creating a token from scratch and Cygwin LSA authentication package.
> > 
> > 
> > Bug Fixes
> > ---------
> > 
> > - Fix a thread race when initializing CLOCK_MONOTONIC.
> >   Addresses: https://cygwin.com/ml/cygwin/2018-11/msg00017.html
> > 
> > - Fix early timeout from pthread_cond_timedwait.
> >   Addresses: https://cygwin.com/ml/cygwin/2018-11/msg00171.html
> > 
> > - Fix a bug in recognizing remote FAT/FAT32/exFAT correctly.
> > 
> > - Allow open(2)/stat(2)/linkat(2) of a file via /proc/PID/fd/DESCRIPTOR
> >   even if file has been deleted.
> >   Addresses: https://cygwin.com/ml/cygwin/2018-12/msg00125.html
> >              https://cygwin.com/ml/cygwin/2018-12/msg00028.html
> > 
> > - Fix a bug in select(2) when polling HANDLE-less descriptors.
> > 
> > - Fix WEOF handling in wctype functions.
> >   Addresses: https://cygwin.com/ml/cygwin/2018-12/msg00173.html
> > 
> > - Fix thread names in GDB when cygthreads get reused.
> > 
> > - Fix return value of gethostname in a border case.
> > 
> > - Disallow seteuid on disabled or locked out accounts.
> >   Addresses: https://cygwin.com/ml/cygwin/2019-01/msg00197.html
> > 
> > - Fix raise to work as required by POSIX.
> >   Addresses: https://cygwin.com/ml/cygwin/2019-01/msg00149.html
> > 
> > - Fix exception handling in pthreads.
> >   Addresses: https://cygwin.com/ml/cygwin/2019-01/msg00149.html
> > 
> > =======================================================================
> > 
> > 
> > Have fun,
> > Corinna
> > 
> 
> 
> --
> 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

-- 
Corinna Vinschen
Cygwin Maintainer

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [ANNOUNCEMENT] TEST: Cygwin 3.0.0-0.3
  2019-01-31 19:48   ` Corinna Vinschen
@ 2019-02-03 11:19     ` Corinna Vinschen
  2019-02-04 13:20       ` Michael Haubenwallner
  2019-02-06 14:28       ` Michael Haubenwallner
  0 siblings, 2 replies; 16+ messages in thread
From: Corinna Vinschen @ 2019-02-03 11:19 UTC (permalink / raw)
  To: cygwin; +Cc: Michael Haubenwallner

[-- Attachment #1: Type: text/plain, Size: 1042 bytes --]

On Jan 31 20:48, Corinna Vinschen wrote:
> On Jan 31 09:47, Michael Haubenwallner wrote:
> > Hi Corinna,
> > 
> > I'm missing that topic/forkables branch in the announcement - is that in?
> > https://cygwin.com/ml/cygwin-patches/2017-q1/msg00053.html
> 
> No, it's not.  It hasn't been touched for almost two years so I forgot
> about it.
> 
> Does it still apply to current mainline?  Will it still work correctly
> in conjunction with the Windows 10 1709/1803/1809 changes in terms of
> deleting and renaming files?
> 
> More importantly, I'm not confident to maintain this code alone since it
> won't be used most of the time and it adds a heck of complexity to
> handle a border case.  Will you be available to maintain this code for
> the forseeable future?  If not, the code won't go in, sorry.

I rebased the topic/forkable branch on top of master.  There were only
some minor conflicts which I have fixed correctly I hope.  Please give
it a thorough try.


Corinna

-- 
Corinna Vinschen
Cygwin Maintainer

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [ANNOUNCEMENT] TEST: Cygwin 3.0.0-0.3
  2019-02-03 11:19     ` Corinna Vinschen
@ 2019-02-04 13:20       ` Michael Haubenwallner
  2019-02-04 14:25         ` Corinna Vinschen
  2019-02-06 14:28       ` Michael Haubenwallner
  1 sibling, 1 reply; 16+ messages in thread
From: Michael Haubenwallner @ 2019-02-04 13:20 UTC (permalink / raw)
  To: cygwin

On 2/3/19 12:19 PM, Corinna Vinschen wrote:
> On Jan 31 20:48, Corinna Vinschen wrote:
>> On Jan 31 09:47, Michael Haubenwallner wrote:
>>> Hi Corinna,
>>>
>>> I'm missing that topic/forkables branch in the announcement - is that in?
>>> https://cygwin.com/ml/cygwin-patches/2017-q1/msg00053.html
>>
>> No, it's not.  It hasn't been touched for almost two years so I forgot
>> about it.
>>
>> Does it still apply to current mainline?  Will it still work correctly
>> in conjunction with the Windows 10 1709/1803/1809 changes in terms of
>> deleting and renaming files?

Are these changes available in Windows Server 2016 as well?

>>
>> More importantly, I'm not confident to maintain this code alone since it
>> won't be used most of the time and it adds a heck of complexity to
>> handle a border case.  Will you be available to maintain this code for
>> the forseeable future?  If not, the code won't go in, sorry.

Actually I've maintained these patches while waiting for Cygwin 3 already:
https://dev.gentoo.org/~haubi/cygwin-gentoo/x86_64/

Because we (the company) really need these patches, there will be someone
around to fix any breakage, and for 2019 it's confirmed to be myself.

> I rebased the topic/forkable branch on top of master.  There were only
> some minor conflicts which I have fixed correctly I hope.  Please give
> it a thorough try.

For Gentoo Prefix we recently have set up CI builds in Azure for Linux.
Are you aware of Windows+Cygwin build pipelines to be possible in Azure?

Thanks!
/haubi/

--
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

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [ANNOUNCEMENT] TEST: Cygwin 3.0.0-0.3
  2019-02-04 13:20       ` Michael Haubenwallner
@ 2019-02-04 14:25         ` Corinna Vinschen
  2019-02-05  8:42           ` Michael Haubenwallner
  0 siblings, 1 reply; 16+ messages in thread
From: Corinna Vinschen @ 2019-02-04 14:25 UTC (permalink / raw)
  To: cygwin

[-- Attachment #1: Type: text/plain, Size: 1980 bytes --]

On Feb  4 14:19, Michael Haubenwallner wrote:
> On 2/3/19 12:19 PM, Corinna Vinschen wrote:
> > On Jan 31 20:48, Corinna Vinschen wrote:
> >> On Jan 31 09:47, Michael Haubenwallner wrote:
> >>> Hi Corinna,
> >>>
> >>> I'm missing that topic/forkables branch in the announcement - is that in?
> >>> https://cygwin.com/ml/cygwin-patches/2017-q1/msg00053.html
> >>
> >> No, it's not.  It hasn't been touched for almost two years so I forgot
> >> about it.
> >>
> >> Does it still apply to current mainline?  Will it still work correctly
> >> in conjunction with the Windows 10 1709/1803/1809 changes in terms of
> >> deleting and renaming files?
> 
> Are these changes available in Windows Server 2016 as well?

No, 2016 is equivalent to W10 1607.  You need 2019 which is equivalent
to W10 1809.

> >> More importantly, I'm not confident to maintain this code alone since it
> >> won't be used most of the time and it adds a heck of complexity to
> >> handle a border case.  Will you be available to maintain this code for
> >> the forseeable future?  If not, the code won't go in, sorry.
> 
> Actually I've maintained these patches while waiting for Cygwin 3 already:
> https://dev.gentoo.org/~haubi/cygwin-gentoo/x86_64/
> 
> Because we (the company) really need these patches, there will be someone
> around to fix any breakage, and for 2019 it's confirmed to be myself.

Ok.  I might have another potential user for these changes, so there
is apparently some demand.

> > I rebased the topic/forkable branch on top of master.  There were only
> > some minor conflicts which I have fixed correctly I hope.  Please give
> > it a thorough try.
> 
> For Gentoo Prefix we recently have set up CI builds in Azure for Linux.
> Are you aware of Windows+Cygwin build pipelines to be possible in Azure?

Nope, I'm a cloud refusenik ;)

Are you going to test the patched branch?


Thanks,
Corinna

-- 
Corinna Vinschen
Cygwin Maintainer

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [ANNOUNCEMENT] TEST: Cygwin 3.0.0-0.3
  2019-02-04 14:25         ` Corinna Vinschen
@ 2019-02-05  8:42           ` Michael Haubenwallner
  2019-02-05  9:45             ` Corinna Vinschen
  0 siblings, 1 reply; 16+ messages in thread
From: Michael Haubenwallner @ 2019-02-05  8:42 UTC (permalink / raw)
  To: cygwin

On 2/4/19 3:25 PM, Corinna Vinschen wrote:
> On Feb  4 14:19, Michael Haubenwallner wrote:
>> On 2/3/19 12:19 PM, Corinna Vinschen wrote:
>>> On Jan 31 20:48, Corinna Vinschen wrote:
>>>> On Jan 31 09:47, Michael Haubenwallner wrote:
>>>>> Hi Corinna,
>>>>>
>>>>> I'm missing that topic/forkables branch in the announcement - is that in?
>>>>> https://cygwin.com/ml/cygwin-patches/2017-q1/msg00053.html
>>>>
>>>> No, it's not.  It hasn't been touched for almost two years so I forgot
>>>> about it.
>>>>
>>>> Does it still apply to current mainline?  Will it still work correctly
>>>> in conjunction with the Windows 10 1709/1803/1809 changes in terms of
>>>> deleting and renaming files?
>>
>> Are these changes available in Windows Server 2016 as well?
> 
> No, 2016 is equivalent to W10 1607.  You need 2019 which is equivalent
> to W10 1809.
> 
>>>> More importantly, I'm not confident to maintain this code alone since it
>>>> won't be used most of the time and it adds a heck of complexity to
>>>> handle a border case.  Will you be available to maintain this code for
>>>> the forseeable future?  If not, the code won't go in, sorry.
>>
>> Actually I've maintained these patches while waiting for Cygwin 3 already:
>> https://dev.gentoo.org/~haubi/cygwin-gentoo/x86_64/
>>
>> Because we (the company) really need these patches, there will be someone
>> around to fix any breakage, and for 2019 it's confirmed to be myself.
> 
> Ok.  I might have another potential user for these changes, so there
> is apparently some demand.
> 
>>> I rebased the topic/forkable branch on top of master.  There were only
>>> some minor conflicts which I have fixed correctly I hope.  Please give
>>> it a thorough try.
>>
>> For Gentoo Prefix we recently have set up CI builds in Azure for Linux.
>> Are you aware of Windows+Cygwin build pipelines to be possible in Azure?
> 
> Nope, I'm a cloud refusenik ;)
> 
> Are you going to test the patched branch?

Sorry, was indeed unclear: Yes, of course!
Will start testing on Server 2012 while setting up a 2019 VM.

For now, there's already this one patch I've been using with good success,
please add it to topic/forkables - the suspended thing is something different:
https://cygwin.com/ml/cygwin-patches/2018-q2/msg00039.html

Thanks!
/haubi/

--
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

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [ANNOUNCEMENT] TEST: Cygwin 3.0.0-0.3
  2019-02-05  8:42           ` Michael Haubenwallner
@ 2019-02-05  9:45             ` Corinna Vinschen
  2019-02-05 11:31               ` Michael Haubenwallner
  0 siblings, 1 reply; 16+ messages in thread
From: Corinna Vinschen @ 2019-02-05  9:45 UTC (permalink / raw)
  To: Michael Haubenwallner; +Cc: cygwin

[-- Attachment #1: Type: text/plain, Size: 2127 bytes --]

On Feb  5 09:42, Michael Haubenwallner wrote:
> On 2/4/19 3:25 PM, Corinna Vinschen wrote:
> > Are you going to test the patched branch?
> 
> Sorry, was indeed unclear: Yes, of course!
> Will start testing on Server 2012 while setting up a 2019 VM.
> 
> For now, there's already this one patch I've been using with good success,
> please add it to topic/forkables - the suspended thing is something different:
> https://cygwin.com/ml/cygwin-patches/2018-q2/msg00039.html

The collision problem shouldn't be as bad anymore with 3.0, given the
new PID handling.  However, after spending a bit more time in the fork
code, it looks like not releasing the procinfo in the error case is a
generic problem so I'm inclined to apply it to master.

While at it, there are quite a few spots in the code which end up
jumping to the cleanup code but only one of them calls TerminateProcess.
Wouldn't it make sense to move the TerminateProcess call into the
cleanup code to make sure the child process doesn't stay running
in some limbo state, not doing anything useful but not dying either?

Kind of like this:

diff --git a/winsup/cygwin/fork.cc b/winsup/cygwin/fork.cc
index 6f00364334c3..5f775249a990 100644
--- a/winsup/cygwin/fork.cc
+++ b/winsup/cygwin/fork.cc
@@ -400,7 +400,6 @@ frok::parent (volatile char * volatile stack_here)
      we can't actually record the pid in the internal table. */
   if (!child.remember (false))
     {
-      TerminateProcess (hchild, 1);
       this_errno = EAGAIN;
 #ifdef DEBUGGING0
       error ("child remember failed");
@@ -508,8 +507,12 @@ cleanup:
     __malloc_unlock ();
 
   /* Remember to de-allocate the fd table. */
-  if (hchild && !child.hProcess) /* no child.procinfo */
-    ForceCloseHandle1 (hchild, childhProc);
+  if (hchild)
+    {
+      TerminateProcess (hchild, 1);
+      if (!child.hProcess) /* no child.procinfo */
+	ForceCloseHandle1 (hchild, childhProc);
+    }
   if (forker_finished)
     ForceCloseHandle (forker_finished);
   debug_printf ("returning -1");


Corinna

-- 
Corinna Vinschen
Cygwin Maintainer

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [ANNOUNCEMENT] TEST: Cygwin 3.0.0-0.3
  2019-02-05  9:45             ` Corinna Vinschen
@ 2019-02-05 11:31               ` Michael Haubenwallner
  2019-02-05 11:57                 ` Corinna Vinschen
  0 siblings, 1 reply; 16+ messages in thread
From: Michael Haubenwallner @ 2019-02-05 11:31 UTC (permalink / raw)
  To: cygwin


[-- Attachment #1.1: Type: text/plain, Size: 2405 bytes --]


On 2/5/19 10:44 AM, Corinna Vinschen wrote:
> On Feb  5 09:42, Michael Haubenwallner wrote:
>> On 2/4/19 3:25 PM, Corinna Vinschen wrote:
>>> Are you going to test the patched branch?
>>
>> Sorry, was indeed unclear: Yes, of course!
>> Will start testing on Server 2012 while setting up a 2019 VM.
>>
>> For now, there's already this one patch I've been using with good success,
>> please add it to topic/forkables - the suspended thing is something different:
>> https://cygwin.com/ml/cygwin-patches/2018-q2/msg00039.html
> 
> The collision problem shouldn't be as bad anymore with 3.0, given the
> new PID handling.  However, after spending a bit more time in the fork
> code, it looks like not releasing the procinfo in the error case is a
> generic problem so I'm inclined to apply it to master.

Heh, thanks - was my original intent back in 2018.

> While at it, there are quite a few spots in the code which end up
> jumping to the cleanup code but only one of them calls TerminateProcess.
> Wouldn't it make sense to move the TerminateProcess call into the
> cleanup code to make sure the child process doesn't stay running
> in some limbo state, not doing anything useful but not dying either?

Seems to make sense indeed, and the suspended processes I do see sometimes
may well be related to that.

/haubi/

> 
> Kind of like this:
> 
> diff --git a/winsup/cygwin/fork.cc b/winsup/cygwin/fork.cc
> index 6f00364334c3..5f775249a990 100644
> --- a/winsup/cygwin/fork.cc
> +++ b/winsup/cygwin/fork.cc
> @@ -400,7 +400,6 @@ frok::parent (volatile char * volatile stack_here)
>       we can't actually record the pid in the internal table. */
>    if (!child.remember (false))
>      {
> -      TerminateProcess (hchild, 1);
>        this_errno = EAGAIN;
>  #ifdef DEBUGGING0
>        error ("child remember failed");
> @@ -508,8 +507,12 @@ cleanup:
>      __malloc_unlock ();
>  
>    /* Remember to de-allocate the fd table. */
> -  if (hchild && !child.hProcess) /* no child.procinfo */
> -    ForceCloseHandle1 (hchild, childhProc);
> +  if (hchild)
> +    {
> +      TerminateProcess (hchild, 1);
> +      if (!child.hProcess) /* no child.procinfo */
> +	ForceCloseHandle1 (hchild, childhProc);
> +    }
>    if (forker_finished)
>      ForceCloseHandle (forker_finished);
>    debug_printf ("returning -1");
> 
> 
> Corinna
> 


[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 981 bytes --]

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [ANNOUNCEMENT] TEST: Cygwin 3.0.0-0.3
  2019-02-05 11:31               ` Michael Haubenwallner
@ 2019-02-05 11:57                 ` Corinna Vinschen
  0 siblings, 0 replies; 16+ messages in thread
From: Corinna Vinschen @ 2019-02-05 11:57 UTC (permalink / raw)
  To: Michael Haubenwallner; +Cc: cygwin

[-- Attachment #1: Type: text/plain, Size: 1516 bytes --]

On Feb  5 12:28, Michael Haubenwallner wrote:
> 
> On 2/5/19 10:44 AM, Corinna Vinschen wrote:
> > On Feb  5 09:42, Michael Haubenwallner wrote:
> >> On 2/4/19 3:25 PM, Corinna Vinschen wrote:
> >>> Are you going to test the patched branch?
> >>
> >> Sorry, was indeed unclear: Yes, of course!
> >> Will start testing on Server 2012 while setting up a 2019 VM.
> >>
> >> For now, there's already this one patch I've been using with good success,
> >> please add it to topic/forkables - the suspended thing is something different:
> >> https://cygwin.com/ml/cygwin-patches/2018-q2/msg00039.html
> > 
> > The collision problem shouldn't be as bad anymore with 3.0, given the
> > new PID handling.  However, after spending a bit more time in the fork
> > code, it looks like not releasing the procinfo in the error case is a
> > generic problem so I'm inclined to apply it to master.
> 
> Heh, thanks - was my original intent back in 2018.
> 
> > While at it, there are quite a few spots in the code which end up
> > jumping to the cleanup code but only one of them calls TerminateProcess.
> > Wouldn't it make sense to move the TerminateProcess call into the
> > cleanup code to make sure the child process doesn't stay running
> > in some limbo state, not doing anything useful but not dying either?
> 
> Seems to make sense indeed, and the suspended processes I do see sometimes
> may well be related to that.

Pushed.


Thanks,
Corinna

-- 
Corinna Vinschen
Cygwin Maintainer

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [ANNOUNCEMENT] TEST: Cygwin 3.0.0-0.3
  2019-02-03 11:19     ` Corinna Vinschen
  2019-02-04 13:20       ` Michael Haubenwallner
@ 2019-02-06 14:28       ` Michael Haubenwallner
  2019-02-06 16:20         ` Corinna Vinschen
  1 sibling, 1 reply; 16+ messages in thread
From: Michael Haubenwallner @ 2019-02-06 14:28 UTC (permalink / raw)
  To: cygwin

[-- Attachment #1: Type: text/plain, Size: 2268 bytes --]

On 2/3/19 12:19 PM, Corinna Vinschen wrote:
> On Jan 31 20:48, Corinna Vinschen wrote:
>> On Jan 31 09:47, Michael Haubenwallner wrote:
>>> Hi Corinna,
>>>
>>> I'm missing that topic/forkables branch in the announcement - is that in?
>>> https://cygwin.com/ml/cygwin-patches/2017-q1/msg00053.html
>>
>> No, it's not.  It hasn't been touched for almost two years so I forgot
>> about it.
>>
>> Does it still apply to current mainline?  Will it still work correctly
>> in conjunction with the Windows 10 1709/1803/1809 changes in terms of
>> deleting and renaming files?

Independent of topic/forkables: With Cygwin 3.0.0 replacing/removing an
exe or dll in use does fail on Server 2019 while it does succeed on 2012.
The error messages on Server 2019 is 'Permission denied'.

Cygwin 2.11.2 does "remove" (to trash) a dll in use on both 2012 and 2019.

Attached is the mv.strace from the commands below on both 2012 and 2019,
with Server 2019 being a default install from scratch with GUI, but without
anything extra - hence without the WSL anywhere.

Use the commands below to see the difference between 2.11.2 and 3.0.0.

>>
>> More importantly, I'm not confident to maintain this code alone since it
>> won't be used most of the time and it adds a heck of complexity to
>> handle a border case.  Will you be available to maintain this code for
>> the forseeable future?  If not, the code won't go in, sorry.
> 
> I rebased the topic/forkable branch on top of master.  There were only
> some minor conflicts which I have fixed correctly I hope.  Please give
> it a thorough try.

Cygwin 3.0.0 + topic/forkables does work on Server 2012 as expected,
as well as for Server 2019 for when a wrong dll is found in the CWD.
Cannot test against removing a dll-in-use as long removing a dll-in-use
does not work.

Cygwin 2.11.2 + topic/forkables still does work on Server 2019.

These commands can be used for both with and without topic/forkables:
$ mkdir test-cygfork
$ cp /bin/bash /bin/cygiconv-2.dll test-cygfork/
$ cp /another/build/of/cygiconv-2.dll test-cygfork/cygiconv-2.dll.new
$ ./test-cygfork/bash -c '( for x in {1..5}; do find /var/run/cygfork; sleep 1; done )' &
$ strace -o mv.strace mv -f test-cygfork/cygiconv-2.dll.new test-cygfork/cygiconv-2.dll

/haubi/

[-- Attachment #2: mv.strace-2019.xz --]
[-- Type: application/x-xz, Size: 11356 bytes --]

[-- Attachment #3: mv.strace-2012.xz --]
[-- Type: application/x-xz, Size: 7232 bytes --]

[-- Attachment #4: Type: text/plain, Size: 219 bytes --]


--
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

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [ANNOUNCEMENT] TEST: Cygwin 3.0.0-0.3
  2019-02-06 14:28       ` Michael Haubenwallner
@ 2019-02-06 16:20         ` Corinna Vinschen
  2019-02-06 16:34           ` Corinna Vinschen
  2019-02-06 19:20           ` Andrey Repin
  0 siblings, 2 replies; 16+ messages in thread
From: Corinna Vinschen @ 2019-02-06 16:20 UTC (permalink / raw)
  To: Michael Haubenwallner; +Cc: cygwin

[-- Attachment #1: Type: text/plain, Size: 1199 bytes --]

On Feb  6 15:28, Michael Haubenwallner wrote:
> On 2/3/19 12:19 PM, Corinna Vinschen wrote:
> > On Jan 31 20:48, Corinna Vinschen wrote:
> >> On Jan 31 09:47, Michael Haubenwallner wrote:
> >>> Hi Corinna,
> >>>
> >>> I'm missing that topic/forkables branch in the announcement - is that in?
> >>> https://cygwin.com/ml/cygwin-patches/2017-q1/msg00053.html
> >>
> >> No, it's not.  It hasn't been touched for almost two years so I forgot
> >> about it.
> >>
> >> Does it still apply to current mainline?  Will it still work correctly
> >> in conjunction with the Windows 10 1709/1803/1809 changes in terms of
> >> deleting and renaming files?
> 
> Independent of topic/forkables: With Cygwin 3.0.0 replacing/removing an
> exe or dll in use does fail on Server 2019 while it does succeed on 2012.
> The error messages on Server 2019 is 'Permission denied'.

Is that the new FILE_DISPOSITION_POSIX_SEMANTICS change by any chance?

https://sourceware.org/git/?p=newlib-cygwin.git;a=commitdiff;h=a7f392686b5b2

If so, sigh, no new API without drawbacks.

I guess we have to fallback to the old method in certain cases.


Corinna

-- 
Corinna Vinschen
Cygwin Maintainer

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [ANNOUNCEMENT] TEST: Cygwin 3.0.0-0.3
  2019-02-06 16:20         ` Corinna Vinschen
@ 2019-02-06 16:34           ` Corinna Vinschen
  2019-02-07  7:07             ` Michael Haubenwallner
  2019-02-06 19:20           ` Andrey Repin
  1 sibling, 1 reply; 16+ messages in thread
From: Corinna Vinschen @ 2019-02-06 16:34 UTC (permalink / raw)
  To: Michael Haubenwallner; +Cc: cygwin

[-- Attachment #1: Type: text/plain, Size: 2023 bytes --]

On Feb  6 17:20, Corinna Vinschen wrote:
> On Feb  6 15:28, Michael Haubenwallner wrote:
> > On 2/3/19 12:19 PM, Corinna Vinschen wrote:
> > > On Jan 31 20:48, Corinna Vinschen wrote:
> > >> On Jan 31 09:47, Michael Haubenwallner wrote:
> > >>> Hi Corinna,
> > >>>
> > >>> I'm missing that topic/forkables branch in the announcement - is that in?
> > >>> https://cygwin.com/ml/cygwin-patches/2017-q1/msg00053.html
> > >>
> > >> No, it's not.  It hasn't been touched for almost two years so I forgot
> > >> about it.
> > >>
> > >> Does it still apply to current mainline?  Will it still work correctly
> > >> in conjunction with the Windows 10 1709/1803/1809 changes in terms of
> > >> deleting and renaming files?
> > 
> > Independent of topic/forkables: With Cygwin 3.0.0 replacing/removing an
> > exe or dll in use does fail on Server 2019 while it does succeed on 2012.
> > The error messages on Server 2019 is 'Permission denied'.
> 
> Is that the new FILE_DISPOSITION_POSIX_SEMANTICS change by any chance?
> 
> https://sourceware.org/git/?p=newlib-cygwin.git;a=commitdiff;h=a7f392686b5b2
> 
> If so, sigh, no new API without drawbacks.
> 
> I guess we have to fallback to the old method in certain cases.

Can you try this patch, please?

diff --git a/winsup/cygwin/syscalls.cc b/winsup/cygwin/syscalls.cc
index 62b9638447ab..a1fd6cc9c975 100644
--- a/winsup/cygwin/syscalls.cc
+++ b/winsup/cygwin/syscalls.cc
@@ -733,7 +733,11 @@ unlink_nt (path_conv &pc)
       if (pc.file_attributes () & FILE_ATTRIBUTE_READONLY)
 	NtSetAttributesFile (fh, pc.file_attributes ());
       NtClose (fh);
-      goto out;
+      /* Trying to delete in-use executables and DLLs using
+         FILE_DISPOSITION_POSIX_SEMANTICS returns STATUS_CANNOT_DELETE.
+	 Fall back to the old method. */
+      if (status != STATUS_CANNOT_DELETE)
+	goto out;
     }
 
   /* If the R/O attribute is set, we have to open the file with


Thanks,
Corinna

-- 
Corinna Vinschen
Cygwin Maintainer

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [ANNOUNCEMENT] TEST: Cygwin 3.0.0-0.3
  2019-02-06 16:20         ` Corinna Vinschen
  2019-02-06 16:34           ` Corinna Vinschen
@ 2019-02-06 19:20           ` Andrey Repin
  2019-02-07  8:32             ` Michael Haubenwallner
  1 sibling, 1 reply; 16+ messages in thread
From: Andrey Repin @ 2019-02-06 19:20 UTC (permalink / raw)
  To: Corinna Vinschen, cygwin

Greetings, Corinna Vinschen!

> On Feb  6 15:28, Michael Haubenwallner wrote:
>> On 2/3/19 12:19 PM, Corinna Vinschen wrote:
>> > On Jan 31 20:48, Corinna Vinschen wrote:
>> >> On Jan 31 09:47, Michael Haubenwallner wrote:
>> >>> Hi Corinna,
>> >>>
>> >>> I'm missing that topic/forkables branch in the announcement - is that in?
>> >>> https://cygwin.com/ml/cygwin-patches/2017-q1/msg00053.html
>> >>
>> >> No, it's not.  It hasn't been touched for almost two years so I forgot
>> >> about it.
>> >>
>> >> Does it still apply to current mainline?  Will it still work correctly
>> >> in conjunction with the Windows 10 1709/1803/1809 changes in terms of
>> >> deleting and renaming files?
>> 
>> Independent of topic/forkables: With Cygwin 3.0.0 replacing/removing an
>> exe or dll in use does fail on Server 2019 while it does succeed on 2012.
>> The error messages on Server 2019 is 'Permission denied'.

> Is that the new FILE_DISPOSITION_POSIX_SEMANTICS change by any chance?

> https://sourceware.org/git/?p=newlib-cygwin.git;a=commitdiff;h=a7f392686b5b2

> If so, sigh, no new API without drawbacks.

> I guess we have to fallback to the old method in certain cases.

This should be solved at install level, IMO.
Rename -> replace -> restart -> remove.


-- 
With best regards,
Andrey Repin
Wednesday, February 6, 2019 22:10:10

Sorry for my terrible english...


--
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

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [ANNOUNCEMENT] TEST: Cygwin 3.0.0-0.3
  2019-02-06 16:34           ` Corinna Vinschen
@ 2019-02-07  7:07             ` Michael Haubenwallner
  0 siblings, 0 replies; 16+ messages in thread
From: Michael Haubenwallner @ 2019-02-07  7:07 UTC (permalink / raw)
  To: cygwin


[-- Attachment #1.1: Type: text/plain, Size: 2120 bytes --]



On 2/6/19 5:34 PM, Corinna Vinschen wrote:
> On Feb  6 17:20, Corinna Vinschen wrote:
>> On Feb  6 15:28, Michael Haubenwallner wrote:
>>> On 2/3/19 12:19 PM, Corinna Vinschen wrote:
>>>> On Jan 31 20:48, Corinna Vinschen wrote:
>>>>> On Jan 31 09:47, Michael Haubenwallner wrote:
>>>>>> Hi Corinna,
>>>>>>
>>>>>> I'm missing that topic/forkables branch in the announcement - is that in?
>>>>>> https://cygwin.com/ml/cygwin-patches/2017-q1/msg00053.html
>>>>>
>>>>> No, it's not.  It hasn't been touched for almost two years so I forgot
>>>>> about it.
>>>>>
>>>>> Does it still apply to current mainline?  Will it still work correctly
>>>>> in conjunction with the Windows 10 1709/1803/1809 changes in terms of
>>>>> deleting and renaming files?
>>>
>>> Independent of topic/forkables: With Cygwin 3.0.0 replacing/removing an
>>> exe or dll in use does fail on Server 2019 while it does succeed on 2012.
>>> The error messages on Server 2019 is 'Permission denied'.
>>
>> Is that the new FILE_DISPOSITION_POSIX_SEMANTICS change by any chance?
>>
>> https://sourceware.org/git/?p=newlib-cygwin.git;a=commitdiff;h=a7f392686b5b2
>>
>> If so, sigh, no new API without drawbacks.
>>
>> I guess we have to fallback to the old method in certain cases.
> 
> Can you try this patch, please?

Seems to work so far, thanks!

/haubi/

> 
> diff --git a/winsup/cygwin/syscalls.cc b/winsup/cygwin/syscalls.cc
> index 62b9638447ab..a1fd6cc9c975 100644
> --- a/winsup/cygwin/syscalls.cc
> +++ b/winsup/cygwin/syscalls.cc
> @@ -733,7 +733,11 @@ unlink_nt (path_conv &pc)
>        if (pc.file_attributes () & FILE_ATTRIBUTE_READONLY)
>  	NtSetAttributesFile (fh, pc.file_attributes ());
>        NtClose (fh);
> -      goto out;
> +      /* Trying to delete in-use executables and DLLs using
> +         FILE_DISPOSITION_POSIX_SEMANTICS returns STATUS_CANNOT_DELETE.
> +	 Fall back to the old method. */
> +      if (status != STATUS_CANNOT_DELETE)
> +	goto out;
>      }
>  
>    /* If the R/O attribute is set, we have to open the file with
> 
> 
> Thanks,
> Corinna
> 


[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 981 bytes --]

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [ANNOUNCEMENT] TEST: Cygwin 3.0.0-0.3
  2019-02-06 19:20           ` Andrey Repin
@ 2019-02-07  8:32             ` Michael Haubenwallner
  0 siblings, 0 replies; 16+ messages in thread
From: Michael Haubenwallner @ 2019-02-07  8:32 UTC (permalink / raw)
  To: cygwin

On 2/6/19 8:10 PM, Andrey Repin wrote:
> Greetings, Corinna Vinschen!
> 
>> On Feb  6 15:28, Michael Haubenwallner wrote:
>>> On 2/3/19 12:19 PM, Corinna Vinschen wrote:
>>>> On Jan 31 20:48, Corinna Vinschen wrote:
>>>>> On Jan 31 09:47, Michael Haubenwallner wrote:
>>>>>> Hi Corinna,
>>>>>>
>>>>>> I'm missing that topic/forkables branch in the announcement - is that in?
>>>>>> https://cygwin.com/ml/cygwin-patches/2017-q1/msg00053.html
>>>>>
>>>>> No, it's not.  It hasn't been touched for almost two years so I forgot
>>>>> about it.
>>>>>
>>>>> Does it still apply to current mainline?  Will it still work correctly
>>>>> in conjunction with the Windows 10 1709/1803/1809 changes in terms of
>>>>> deleting and renaming files?
>>>
>>> Independent of topic/forkables: With Cygwin 3.0.0 replacing/removing an
>>> exe or dll in use does fail on Server 2019 while it does succeed on 2012.
>>> The error messages on Server 2019 is 'Permission denied'.
> 
>> Is that the new FILE_DISPOSITION_POSIX_SEMANTICS change by any chance?
> 
>> https://sourceware.org/git/?p=newlib-cygwin.git;a=commitdiff;h=a7f392686b5b2
> 
>> If so, sigh, no new API without drawbacks.
> 
>> I guess we have to fallback to the old method in certain cases.
> 
> This should be solved at install level, IMO.
> Rename -> replace -> restart -> remove.

Honestly, this is kind of "Windows style".
The "Unix style" is: replace -> restart, hence the rename (to trashbin)
and the remove (once unused) should be handled transparently by Cygwin.

/haubi/

--
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

^ permalink raw reply	[flat|nested] 16+ messages in thread

end of thread, other threads:[~2019-02-07  8:32 UTC | newest]

Thread overview: 16+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-01-30 21:23 [ANNOUNCEMENT] TEST: Cygwin 3.0.0-0.3 Corinna Vinschen
2019-01-31  8:47 ` Michael Haubenwallner
2019-01-31 19:48   ` Corinna Vinschen
2019-02-03 11:19     ` Corinna Vinschen
2019-02-04 13:20       ` Michael Haubenwallner
2019-02-04 14:25         ` Corinna Vinschen
2019-02-05  8:42           ` Michael Haubenwallner
2019-02-05  9:45             ` Corinna Vinschen
2019-02-05 11:31               ` Michael Haubenwallner
2019-02-05 11:57                 ` Corinna Vinschen
2019-02-06 14:28       ` Michael Haubenwallner
2019-02-06 16:20         ` Corinna Vinschen
2019-02-06 16:34           ` Corinna Vinschen
2019-02-07  7:07             ` Michael Haubenwallner
2019-02-06 19:20           ` Andrey Repin
2019-02-07  8:32             ` Michael Haubenwallner

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).