Dustmite + Visual D
Michelle Long
HappyDance321 at gmail.com
Sun Nov 4 23:08:42 UTC 2018
On Sunday, 4 November 2018 at 22:12:16 UTC, Vladimir Panteleev
wrote:
> On Sunday, 4 November 2018 at 21:11:27 UTC, Michelle Long wrote:
>> No, have you not learned in your life time that just because
>> something or someeone says something doesn't make it true?
>
> In all my years of using Windows, I have never seen or heard
> for this error message to lie (i.e. occur due to a reason
> different than what it states). I've also used junctions and
> symbolic links a lot.
>
> It's possible the junction is confusing some software into not
> closing a file, though.
>
>> Nope, none of this because I run none. Please trust people a
>> bit more when they say what they say. Not everyone is an
>> imbecile.
>
> Sometimes, the reason can be really unobvious. We've ran into a
> similar problem a while ago on CI machines, which turned out to
> be the security software included with the then-new version of
> Windows. It doesn't hurt to check.
>
>> This has nothing to do with dustmite as far as I know. That is
>> the full output.
>
> Probably trying to invoke Dustmite manually would be progress
> then, with the Visual D bug report aside.
>
>> If this is dustmite and not visual D then it most likely is
>> due to the junction.
>
> 1. DustMite will not touch anything outside the parent
> directory of the path you give it (though the test command
> might).
> 2. DustMite doesn't care about junctions and treats them as
> directories. When creating test copies of the source, it will
> recreate the directory structure with junctions replaced with
> directories.
>
>> 1. There is little else it could be except visual studio
>> itself locking the file, which it doesn't seem to be and has
>> worked before.
>
> FWIW, you can use Process Explorer (by Microsoft) or Process
> Hacker (FOSS) to find which processes hold handles to a file.
> That might provide a clue.
>
>> 2. Junctions are known to cause problems with some copy
>> routines because one can't simply copy a junction as normal.
>> The reason being is the junction suppose to be duplicated or
>> all the data?
>
> Yes, well known gotcha. std.file.dirEntries has a followSymlink
> parameter. DustMite uses the default (true).
I am pretty sure it is a bug in Visual D not handling the
junction right. It was a fresh boot with no other programs ran
before and given other experiences it seems almost surely(95%+)
that it is a junction problem with visual D. Since it is such a
high liklihood it should be the first thing tried.
While I could run dustmite from the command line, the point of
using visual D is because it handles it all automatically, which
is nice, when it works.
Now, I can't be sure if it's Visual D or Dustmite because that is
the only error I get, but visual D says it needs to copy the
project to a temp folder and then the error appears immediately.
I bet if I replaced the junction with a normal directory it would
work but then that defeats the purpose of using a junction.
It would take Rainer just a few minutes max to determine this by
simply created a project or opening a pre-existing one and adding
a junction the dragging it to the project and adding a d file in
it then trying the dustmite command.
Again, I do not think this is a dustmite problem, it occurs when
trying to run dustmite using the Visual D dustmite command(which,
again, has worked in the past without issue and all it does is
copy the project then run dustmite... and the error is about
accessing a file).
Because I'm sure this is related to Visual D and
junctions(whatever copying method it uses) I'm willing not to try
random stuff to try and fix it... expecting that Rainer can
reproduce this problem fairly quickly when he gets time. If he
adds a junction and it doesn't have an error then I will look in
to it more on my side. No reason for me to spend hours trying to
figure out possible edge cases until I know it is not the most
probable cause. It will take him a few minutes to investigate and
chances are it will be easily solved.
If it turns out something is locking the file, then that is still
a problem because nothing I have done locks the file it complains
on(so it's still a bug). I did not ever touch that file in any
way. I simply loaded the project and ran the command(the file is
not even loaded in the editor or being accessed by anything
external(unless windows is doing funky shit, which I doubt since
I disabled most of all the crap it does)).
More information about the Digitalmars-d-ide
mailing list