Installing MSI on locked files behind junction across drives

This article is going to save you hours of debugging and confusion with your customers

In a nut shell when installing MSI that have some files that are currently locked and you are using junction on the target directory that is configured on a different drive than you are in trouble because Windows installer (not mater what version):

  1. doesn't replace locked files on the fly while installing (when installing and junction is on the same drive / no junction the files are replaced on the fly)
  2. Because of the above windows installer scheduled the file move operation but it doesn't use the force flag and the files are not being replace after restart (because source and target already exist) – you can see in this article description of the PendingFileRenameOperations and in this article how to troubleshoot MoveFileEx operation

The critical issue here is that if by any chance your MSI replaced files that need to be registered (e.g. com) that the file is not replaced and scheduled after restart but the register operation is done at the time of installation using old file

The good thing is that this is approved as a bug by Microsoft , the bad news is that because it is a approved as a bug it will take ages to be fixed (sadly there is not other option)

So until this is resolved suggested not to use junction that span drives

Also this was tested and reproduced on windows 2003

[Update 3/Dec/2009] FINALLY we passed several triages at Microsoft and they agreed to have the issue of schedule of replace files to be fixed. we got private build that we are checking, i will update on details soon. (Applicable only for Windows Installer 4.5)

[Update 2/Feb/2010 fixed was tested and approved by us, KB was published but customer cannot download before opening ticket (should be free) ]

Installing MSI on locked files behind junction across drives Installing MSI on locked files behind junction across drives Reviewed by Ran Davidovitz on 9:52 PM Rating: 5


Adam said...

Do you know how we can track this bug with Microsoft? Is there a bug id number? I would like to know when there is a fix for it.

Ran Davidovitz said...

I can check with my TAM what is the bug number.
About time line i got update today that we should get private build in two days and we need to approve this is working until 18/sep and only than it will enter public fix schedule.

Adam said...

Thanks -- I am eager to hear whether the fix they provide you works.

Adam said...

Did Microsoft provide a fix to you for the locked files bug?

Ran Davidovitz said...

Sadly i am still waiting for the private devbug fix... should have been here Friday

Adam said...

Any more news on this issue? Have you received a private bug fix from Microsoft yet?

Ran Davidovitz said...

Still no progress, i never got such low quality of support!

Ran Davidovitz said...

We got private build on top of Windows Installer 4.5, we are going to validate

Powered by Blogger.