mesos-reviews mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Akash Gupta <akash-gu...@hotmail.com>
Subject Re: Review Request 66424: Windows: Replaced `_wopen()` with `CreateFileW()` in `os::open()`.
Date Thu, 05 Apr 2018 23:07:11 GMT

-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/66424/#review200579
-----------------------------------------------------------


Fix it, then Ship it!





3rdparty/stout/include/stout/os/windows/mktemp.hpp
Line 54 (original), 54 (patched)
<https://reviews.apache.org/r/66424/#comment281318>

    Huh that's a strange function. Seems like it can cause time check/use race conditions.
We probably want to replace this with the native temp directory functions in the future.



3rdparty/stout/include/stout/os/windows/open.hpp
Lines 33 (patched)
<https://reviews.apache.org/r/66424/#comment281320>

    :)



3rdparty/stout/include/stout/os/windows/open.hpp
Lines 37 (patched)
<https://reviews.apache.org/r/66424/#comment281319>

    I *think* FILE_FLAG_WRITE_THROUGH == O_SYNC.



3rdparty/stout/include/stout/os/windows/open.hpp
Lines 45 (patched)
<https://reviews.apache.org/r/66424/#comment281351>

    I believe the default behavior(`SECURITY_ATTRIBUTES == NULL`) is to inherit from the parent
directory / access token. We should ask around on what's the proper settings for security.



3rdparty/stout/include/stout/os/windows/open.hpp
Lines 61 (patched)
<https://reviews.apache.org/r/66424/#comment281344>

    It's up to you, but I find it clearer to have a switch statement on the bitfields like
this:
    ```
    switch(oflag & (O_RDONLY | O_WRONLY | O_RDWR)) {
      case O_RDONLY:
      case O_WRONLY:
      case O_RDWR:
      default:
    }
    ```



3rdparty/stout/include/stout/os/windows/open.hpp
Lines 73 (patched)
<https://reviews.apache.org/r/66424/#comment281348>

    Same thing as above. I think it's more import on this one because there's techically 8
cases for `O_CREAT`, `O_EXCL`, `O_TRUNC`, but POSIX and Windows only have defined behavior
for 5 of them, so you can explicitly mention the undefined behavior cases like this:
    
    ```
    switch(oflag & (O_CREAT | O_EXCL | O_TRUNC)) {
      case O_CREAT | O_EXCL:
      case O_CREAT | O_EXCL | O_TRUNC :
       // Ignore O_TRUNC if we get O_CREAT | O_EXCL
       create = CREATE_NEW; break;
      case ...:
    }


- Akash Gupta


On April 4, 2018, 5:47 a.m., Andrew Schwartzmeyer wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/66424/
> -----------------------------------------------------------
> 
> (Updated April 4, 2018, 5:47 a.m.)
> 
> 
> Review request for mesos, Akash Gupta, Eric Mumau, John Kordich, Joseph Wu, and Michael
Park.
> 
> 
> Bugs: MESOS-8673
>     https://issues.apache.org/jira/browse/MESOS-8673
> 
> 
> Repository: mesos
> 
> 
> Description
> -------
> 
> Instead of using the CRT implementation of `_wopen()` for the
> `os::open()` API, we now use the Windows API `CreateFileW()`, mapping
> each of the Linux `open()` flags to their semantic equivalents. This
> will make implementing overlapped I/O possible, and is a step toward
> removing the use of integer file descriptors on Windows.
> 
> Note that instead of redefining the C flags like `O_RDONLY`, we just
> use them directly in our mapping logic, and set the used but
> unsupported flags to zero.
> 
> This change uncovered several bugs such as incorrect access flags, and
> used-but-not-included headers.
> 
> We currently ignore creation permissions as they will be handled in a
> broader project to map permissions to Windows correctly.
> 
> 
> Diffs
> -----
> 
>   3rdparty/stout/include/stout/net.hpp d2992c05b221ea90dae1c06d27753932f7411925 
>   3rdparty/stout/include/stout/os/windows/fcntl.hpp bf8c38acad60f9b0eb752053dcd53a9fda7b8bfa

>   3rdparty/stout/include/stout/os/windows/mktemp.hpp 5c775c45c415d9ddd6a80ab814fb55475e9f871e

>   3rdparty/stout/include/stout/os/windows/open.hpp PRE-CREATION 
>   3rdparty/stout/include/stout/windows.hpp 1bfcdf4a5c097cc6d2293396ce39c8ad2c9ec993 
> 
> 
> Diff: https://reviews.apache.org/r/66424/diff/1/
> 
> 
> Testing
> -------
> 
> 
> Thanks,
> 
> Andrew Schwartzmeyer
> 
>


Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message