This information is basically all we needed to resolve. The additional call
to obtain more fileinfo cannot resolve a root dir. It could, if we
transform the
path \\?\c:\ to \\.\c: (the device c). Looking at this further tomorrow
after some
family hangout time tonight.

Thanks for this level of detail!

Bill


On Thu, Apr 23, 2020 at 7:00 PM Johan Corveleyn <jcor...@gmail.com> wrote:

> On Wed, Apr 15, 2020 at 4:48 PM Johan Corveleyn <jcor...@gmail.com> wrote:
> >
> > On Wed, Apr 15, 2020 at 3:51 PM William A Rowe Jr <wr...@rowe-clan.net>
> wrote:
> > >
> > > Interesting.
> > >
> > > Not being familiar with the subversion code, it would be helpful to
> see what args
> > > are being passed to the offending (offended) apr_stat call, so we can
> investigate
> > > the behavior of APR 1.7.0 (or trunk) further.
> >
> > Understood. I'll try to dig into this a bit in the coming days.
>
> Okay, I finally got around to this.
>
> Subversion indeed performs an apr_stat call with the following flags [1]:
>
>     apr_int32_t wanted = APR_FINFO_TYPE | APR_FINFO_LINK
>                        | APR_FINFO_SIZE | APR_FINFO_MTIME;
>
> The call to apr_stat happens on line 4464 in libsvn_subr/io.c [2]:
>
>     status = apr_stat(finfo, fname_apr, wanted, pool);
>
> Apparently this call succeeds with apr 1.6.5 (on Windows), with
> fname_apr="C:/" and wanted as above (I added a screenshot from the VS
> Debugger to illustrate). The returned filetype is APR_DIR, etc ...
>
> But the call fails with apr 1.7.0, returning status == 720002 (see
> second screenshot, FWIW). Is Subversion doing something wrong here?
> Passing incorrect flags or something like that?
>
> [1]
> https://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_subr/io.c?revision=1875971&view=markup#l3149
> [2]
> https://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_subr/io.c?revision=1875971&view=markup#l4464
>
> --
> Johan
>

Reply via email to