[SERVER-26393] Bin folder files do not get replaced when upgrading using .msi file (Windows) Created: 29/Sep/16  Updated: 17/Oct/16  Resolved: 17/Oct/16

Status: Closed
Project: Core Server
Component/s: Packaging
Affects Version/s: 3.2.9
Fix Version/s: None

Type: Bug Priority: Major - P3
Reporter: Chris Mielcarek Assignee: Brian Samek
Resolution: Done Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Attachments: File 2016-10-05_15-46-28.mp4     File 2016-10-06_9-16-33.mp4     PNG File 2016-10-11_8-50-07.png     Text File logfile.txt    
Issue Links:
Related
related to SERVER-3993 Windows executables should include a ... Closed
Operating System: ALL
Steps To Reproduce:

Execute .msi file (mongodb-win32-x86_64-2008plus-ssl-3.2.9-signed.msi). Select the installation path to be the same as the previous version (3.0.11). Start a mongod and log into a mongo shell. DB version displayed is 3.0.11. Running the db.version() command returns 3.0.11 also.

Replacing the binaries fixes the issue; however, I must execute the .msi file in order to get the necessary .dll files to run with SSL. The mongodb-win32-x86_64-2008plus-ssl-3.2.9.zip does not contain these .dll files as stated in SERVER-17368.

Sprint: Build 2016-10-10, Build 2016-10-31
Participants:

 Description   

When trying to upgrade mongod from 3.0.11 to 3.2.9 using the .msi file, the files in the bin folder do not get replaced. Only new ones get added.

Also, documentation only states how to upgrade a linux environment: https://docs.mongodb.com/manual/release-notes/3.2-upgrade/#upgrade-standalone-mongod-instance-to-mongodb-3-2

I cannot simply replace binaries since I need to get the necessary .dll files to start using SSL which are only available through execuring the .msi file.



 Comments   
Comment by Brian Samek [ 17/Oct/16 ]

Thank you for the update. Since you have been able to install 3.2.9 and 3.2.10, I am going to resolve this ticket. I will add your suggestion to SERVER-3993. You can vote for this ticket to help get it more visibility.

Comment by Chris Mielcarek [ 17/Oct/16 ]

Hi Brian,

Yes, I have been able to install 3.2.9 and 3.2.10. The workaround is to delete the bin folder before running the .msi. This will ensure that new files are placed in the bin folder.

I would also suggest that the installer verifies if another version is installed on the OS, asks the user whether to replace or create a new one (reflect changes in "Programs & Features" if it is replaced). When the user selects the installation location, it should notify that an instance is installed in that location (or sub-location), if that's the case.

Chris

Comment by Brian Samek [ 13/Oct/16 ]

Hi chrismielca,

It looks like we have an open ticket SERVER-3993 to add versioning to the files installed by the MSI. This would help prevent what you've run into.

Regarding the specific state of your machine, have you been able to install 3.2.9 on it?

Comment by Mark Benvenuto [ 12/Oct/16 ]

brian.samek There is an existing ticket SERVER-3993 that you can link to.

Comment by Brian Samek [ 11/Oct/16 ]

By that token, it would be impossible for the created and modified dates to be identical in anyone's environment.

They are identical when first installed by the MSI. I think perhaps moving the files caused the created and modified times to differ, and therefore caused the upgrade issue you are seeing.

It seems that the MS link you sent is relevant when a version is not included in file properties. I would recommend making this an enhancement.

I think you're right that this is an enhancement that would be helpful to have. I will investigate this further.

Comment by Chris Mielcarek [ 11/Oct/16 ]

Hi Brian,

I confirm that the created and modified dates do not match.

I downloaded the binaries from version 3.0.11 again from http://downloads.mongodb.org/win32/mongodb-win32-x86_64-3.0.11.zip?_ga=1.216636438.1899110859.1465925342
When extracting the binaries, the created date is the current date. The modified date is 3/31/2016 10:36 PM (date when your release package was created?). By that token, it would be impossible for the created and modified dates to be identical in anyone's environment.

It seems that the MS link you sent is relevant when a version is not included in file properties. I would recommend making this an enhancement.

Comment by Brian Samek [ 10/Oct/16 ]

Thank you for the log chrismielca. It looks like the files are not being replaced with the message

Won't Overwrite;	Won't patch;	Existing file is unversioned but modified

I believe this means that the files' modified dates do not match their created dates, so the installer will not overwrite them: https://msdn.microsoft.com/library/aa370531.aspx. Can you check to see if this is the case?

Comment by Chris Mielcarek [ 06/Oct/16 ]

By the way, I just tried it with 3.2.10 and I get the same results.

I my 2016-10-06_9-16-33.mp4 video, I forgot to stop the service. I stopped it in the 3.2.10 installation and it did not impact the results.

Chris

Comment by Chris Mielcarek [ 06/Oct/16 ]

Attached is a video (2016-10-05_15-46-28.mp4) of how i installed it. You can see that the files were not updated. You can see that the .dll files were added, so it did something.

The only differences I see between what you did and what I did are:

  • You are running Windows 2008R2 whereas I am running Windows 2012R2;
  • You are upgrading to 3.2.10 whereas I am upgrading to 3.2.9;
  • You are installing using the command prompt, whereas I am simply double-clicking the file (not sure if this makes a difference in any way).

I reverted my VM to the same state as before my installation above. I am attaching a video (2016-10-06_9-16-33.mp4) of the installation with your proposed verbose log. The logfile (logfile.txt) for this installation is also attached.

Chris

Comment by Jonathan Reams [ 03/Oct/16 ]

chrismielca, I'm having trouble reproducing this. I've launched a windows 2008R2 machine and installed 3.0 on it (I tried both in c:\Program Files\Mongo\Server and c:\Program Files\Mongo\Server\3.0) and then ran the 3.2 installer (both in the c:\Program Files\Mongo\Server custom directory and c:\Program Files\Mongo\Server\3.2 default directory), and in both cases the 3.0 binaries were replaced with 3.2 binaries. Can you repro this with a verbose log from the installer? I ran msiexec /i mongodb-win32-x86_64-2008plus-ssl-3.2.10-signed.msi /l*v logfile.txt to get a verbose log from the installer.

Comment by Ramon Fernandez Marina [ 03/Oct/16 ]

Thanks for your report chrismielca, we're looking into this issue. Please continue to watch the ticket for updates.

Generated at Thu Feb 08 04:11:58 UTC 2024 using Jira 9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66.