Skip to content

Upgrader: do not include Micrsoft.Diagnostic.Tracing.EventSource#1144

Merged
jamill merged 1 commit into
microsoft:releases/shippedfrom
jamill:upgrader_fix_port_shipped
May 10, 2019
Merged

Upgrader: do not include Micrsoft.Diagnostic.Tracing.EventSource#1144
jamill merged 1 commit into
microsoft:releases/shippedfrom
jamill:upgrader_fix_port_shipped

Conversation

@jamill
Copy link
Copy Markdown
Member

@jamill jamill commented May 10, 2019

The upgrade verb attempts to copy
Microsoft.Diagnostic.Tracing.EventSource when copying the
ProductUpgrader to the temporary directory to run. If this file is not
present, then the upgrade verb will fail. This following commit removes
this file:

cbe5787 ("Remove in-proc ETW trace event listener", 2019-02-18)

Clean installs of VFS4G that include this commit will no longer have
this file in the installation directory, and will not be able to
upgrade.

This dll is no longer needed or installed during installation, so we
remove it from the list of files copied over for upgrade.

This is a quick fix - we will also see how to make this less fragile.
One option might be to install "upgrader app" into its own directory
under the VFS For Git installation directory, and then just copy the
directory to the temp location, instead of providing a list of files
that need to be kept in sync.

(cherry picked from commit f107731)

The upgrade verb attempts to copy
Microsoft.Diagnostic.Tracing.EventSource when copying the
ProductUpgrader to the temporary directory to run. If this file is not
present, then the upgrade verb will fail. This following commit removes
this file:

  cbe5787 ("Remove in-proc ETW trace event listener", 2019-02-18)

Clean installs of VFS4G that include this commit will no longer have
this file in the installation directory, and will not be able to
upgrade.

This dll is no longer needed or installed during installation, so we
remove it from the list of files copied over for upgrade.

This is a quick fix - we will also see how to make this less fragile.
One option might be to install "upgrader app" into its own directory
under the VFS For Git installation directory, and then just copy the
directory to the temp location, instead of providing a list of files
that need to be kept in sync.

(cherry picked from commit f107731)
@jamill jamill requested review from derrickstolee and wilbaker May 10, 2019 17:00
@jamill jamill merged commit d2adf54 into microsoft:releases/shipped May 10, 2019
@jrbriggs jrbriggs modified the milestones: M150, M151 May 24, 2019
jamill added a commit to jamill/VFSForGit that referenced this pull request Jun 1, 2019
When upgrading VFS for Git via the built-in upgrade logic, the upgrade verb
will copy the upgrader application to a temporary directory, and run the
upgrade app from the temporary directory. The main reason for this is so that
the upgrade application can update the original application without open file
handles getting in the way (and preventing the deletion of the application that
is being updated).

The upgrade verb currently has a hard coded list of dependencies (files)
required for the upgrader application to run. This can be fragile as we need to
keep this list in sync with the actual dependencies, across multiple platforms.
This can easily break if the dependencies change, and we update the list of
files included with the installer, but not with the upgrader application. A
specific occurrence of this happened in microsoft#1144.

Instead, just copy over the whole VFS for Git application directory when
creating a temporary copy of the upgrader application to run. We might copy
over a few additional files, but this should not cause any noticeable
downsides.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants