From jorismeys at gmail.com  Tue Jan 16 17:52:04 2018
From: jorismeys at gmail.com (Joris Meys)
Date: Tue, 16 Jan 2018 17:52:04 +0100
Subject: [Rd] Bug 17159 - recursive dir.create() fails on windows shares
 due to permissions
In-Reply-To: <44DC0D86-8E3B-42B8-99DA-71A588AD8616@quintiles.com>
References: <44DC0D86-8E3B-42B8-99DA-71A588AD8616@quintiles.com>
Message-ID: <CAO1zAVasTKupjQF8mJewAzdyqrJk=vvghMdJqc8uVdS_N5mCZw@mail.gmail.com>

Hi all,

I ran into this exact issue yesterday during the exam of statistical
computing. Users can install packages in a user library that R tries to
create automatically on the network drive of the student. But that doesn't
happen as the unc path is not read correctly, leading to R attempting to
create a local directory and being told it has no right to do so.

That is an older version of R though (3.3), but I'm wondering whether I
would ask our IT department to just update R on all these computers to the
latest version, or if we have to look for another solution.

Cheers
Joris

On Mon, Jan 8, 2018 at 1:43 PM, Thompson, Pete <Pete.Thompson at iqvia.com>
wrote:

> Hi, I?d like to ask about bug 17159:
>
> https://bugs.r-project.org/bugzilla/show_bug.cgi?id=17159
>
> I can confirm that I see exactly this bug when using dir.create on paths
> of UNC form (\\server\share\xxx), with the recursive flag set. I?m seeing
> this when attempting to use install.packages with such a path (which I know
> isn?t supported, but would be great if it was!). I can see that a patch has
> been suggested for the problem and from looking at the source code I
> believe it?s a correct fix. Is there a possibility of getting this patch
> included?
>
> The existing logic for Windows recursive dir.create (platform.c lines
> 2209-22203) appears to be:
> - Skip over any \\share at the start of the directory name
> - Loop while there are pieces of directory name left (i.e. we haven?t hit
> the last \ character)
>   = Find the next portion of the directory name (up to the next \
> character)
>   = Attempt to create the directory (unless it is of the form x: - i.e. a
> drive name)
>   = Ignore any ?already exists? errors, otherwise throw an error
>
> This logic appears flawed in that it skips \\share which isn?t a valid
> path format (according to https://msdn.microsoft.com/en-
> us/library/windows/desktop/aa365247(v=vs.85).aspx ). Dredging my memory,
> it?s possible that \\share was a supported format in very old versions of
> Windows, but it?s been a long time since the UNC format came in. It?s also
> possible that \\share is a valid format in some odd environments, but the
> UNC format is far more widely used.
>
> The patch suggested by Evan Cortens is simply to change the skip logic to
> skip over \\server\share instead of \\share. This will certainly fix the
> common use case of using UNC paths, but doesn?t attempt to deal with all
> the more complex options in Microsoft?s documentation. I doubt many users
> would ask for the complex cases, but the basic UNC format would be of wide
> applicability.
>
> Thanks
> Pete Thompson
> Director, Information Technology
> Head of Spotfire Centre of Excellence
> IQVIA
>
>
>
>
> ________________________________________
> IMPORTANT - PLEASE READ: This electronic message, including its
> attachments, is CONFIDENTIAL and may contain PROPRIETARY or LEGALLY
> PRIVILEGED or PROTECTED information and is intended for the authorized
> recipient of the sender. If you are not the intended recipient, you are
> hereby notified that any use, disclosure, copying, or distribution of this
> message or any of the information included in it is unauthorized and
> strictly prohibited. If you have received this message in error, please
> immediately notify the sender by reply e-mail and permanently delete this
> message and its attachments, along with any copies thereof, from all
> locations received (e.g., computer, mobile device, etc.). Thank you.
> ______________________________________________
> R-devel at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-devel




-- 
Joris Meys
Statistical consultant

Department of Data Analysis and Mathematical Modelling
Ghent University
Coupure Links 653, B-9000 Gent (Belgium)
<https://maps.google.com/?q=Coupure+links+653,%C2%A0B-9000+Gent,%C2%A0Belgium&entry=gmail&source=g>

-----------
Biowiskundedagen 2017-2018
http://www.biowiskundedagen.ugent.be/

-------------------------------
Disclaimer : http://helpdesk.ugent.be/e-maildisclaimer.php

	[[alternative HTML version deleted]]



[Rd] Bug 17159 - recursive dir.create() fails on windows shares due to permissions
Joris Meys