Subject: Re: [Boost-bugs] [Boost C++ Libraries] #9016: filesystem::is_directory() returns false for junction
From: Boost C++ Libraries (noreply_at_[hidden])
Date: 2015-12-26 05:01:00
#9016: filesystem::is_directory() returns false for junction
---------------------------+------------------------
Reporter: harris.pc@⦠| Owner: bemandawes
Type: Bugs | Status: closed
Milestone: Boost 1.57.0 | Component: filesystem
Version: Boost 1.53.0 | Severity: Problem
Resolution: fixed | Keywords:
---------------------------+------------------------
Comment (by stsoe <stsoe@â¦>):
I just upgraded to boost_1_60_0 and was hit by a regression I think is
related to 9016. My windows tests are failing sporadically with the
error:
{{{
boost::filesystem::read_symlink: The process cannot access the file
because it is being used by another process: "r:/data"
}}}
Debugging this comparing 1_60_0 to the earlier 1_56_0 I finally narrowed
the difference to {{{operations.cpp: bool is_reparse_point_a_symlink}}},
which returns true in 1_60_0 but false in 1_56_0. The return value
triggers {{{canonical}}} to call detail::read_symlink, which in turn ends
up calling ::CreateFileW with dwShareMode set to 0 so that the
file/directory is locked and cannot be opened by another process.
I am running my tests on LSF and many many processes end up accessing the
same file / directory at the same time, thus leading the the above error
message.
This problem unfortunately is a huge problem for the code I am working on,
so I am wondering if I can get the 1_56_0 behavior by reverting the
changes to {{{is_reparse_point_a symlink}}}?
-- Ticket URL: <https://svn.boost.org/trac/boost/ticket/9016#comment:3> Boost C++ Libraries <http://www.boost.org/> Boost provides free peer-reviewed portable C++ source libraries.
This archive was generated by hypermail 2.1.7 : 2017-02-16 18:50:19 UTC