Exchange 2016 CU21 upgrade issues

Copper Contributor

I have a Windows 2012 R2 Standard server with Exchange 2016 CU19 installed. Its one server with all roles installed. 

I've tried installing both CU20 and CU21 but both upgrades fails with the same error.  See the error below. Anyone know what the issue can be? I've tried so many things, i.e checked the PATH for Powershell location. Restarted the server so many times. 

Also i have an issue with that the update takes so long time, more than 6 hours. 

Error:
The following error was generated when "$error.Clear(); 
            if ($RoleProductPlatform -eq "amd64")
            {
                try
                {
                    # Need to configure the ETL traces before the fast service is installed. This will ensure that when the service comes up
                    # it will have the necessary trace session setting available to read from the registry
                    $fastPerfEtlTraceFolderPath = Join-Path -Path $RoleBinPath -ChildPath "\Search\Ceres\Diagnostics\ETLTraces"
                    $fastDiagnosticTracingRegKeyPath = 'HKLM:\SOFTWARE\Microsoft\Office Server\16.0\Search\Diagnostics\Tracing'
                    if(-not(Test-Path -Path $fastPerfEtlTraceFolderPath))
                    {
                        $null = New-Item $fastPerfEtlTraceFolderPath -Type 'Directory' -Force 
                    }
                    
                    if (-not(Test-Path -Path $fastDiagnosticTracingRegKeyPath))
                    {
                        $null = New-Item -Path $fastDiagnosticTracingRegKeyPath -Force
                    }
                    
                    $null = New-ItemProperty -Path $fastDiagnosticTracingRegKeyPath -Name 'TracingPath' -PropertyType 'string' -Value $fastPerfEtlTraceFolderPath -Force
                    $null = New-ItemProperty -Path $fastDiagnosticTracingRegKeyPath -Name 'TracingFileName' -PropertyType 'string' -Value 'DocumentProcessingTrace' -Force
                    $null = New-ItemProperty -Path $fastDiagnosticTracingRegKeyPath -Name 'DocumentParserSuccessLogMessage' -PropertyType 'Dword' -Value 1 -Force
                    $null = New-ItemProperty -Path $fastDiagnosticTracingRegKeyPath -Name 'DocumentParserLoggingNoInitialisation' -PropertyType 'Dword' -Value 1 -Force
                    
                    # Max trace folder size 50 * 100 = 5GB
                    $null = New-ItemProperty -Path $fastDiagnosticTracingRegKeyPath -Name 'MaxTraceFileSize' -PropertyType 'Dword' -Value 50 -Force
                    $null = New-ItemProperty -Path $fastDiagnosticTracingRegKeyPath -Name 'MaxTraceFileCount' -PropertyType 'Dword' -Value 100 -Force
                    
                    $null = New-ItemProperty -Path $fastDiagnosticTracingRegKeyPath -Name 'UseGeneralSwitch' -PropertyType 'Dword' -Value 1 -Force
                    $null = New-ItemProperty -Path $fastDiagnosticTracingRegKeyPath -Name 'GeneralSwitch' -PropertyType 'Dword' -Value 0 -Force
                }
                catch
                {
                    # ETl tracing is not critical. Info only log
                    Write-ExchangeSetupLog -Info ("An exception ocurred while trying to Configure the FAST ETL traces. Exception: " + $_.Exception.Message);
                }

                try
                {
                    $fastFusionRegKeyPath = 'HKLM:\SOFTWARE\Microsoft\Office Server\16.0\Search\FlightControl' 

                    if (Test-Path -Path $fastFusionRegKeyPath)
                    {
                        Remove-ItemProperty -Path $fastFusionRegKeyPath -Name 'fusion_new_enabled' -Force -ErrorAction SilentlyContinue
                        Remove-ItemProperty -Path $fastFusionRegKeyPath -Name 'fusion_old_enabled' -Force -ErrorAction SilentlyContinue
                        Remove-ItemProperty -Path $fastFusionRegKeyPath -Name 'fusion_compare_outputs' -Force -ErrorAction SilentlyContinue
                    }
                }
                catch
                {
                    # Removing new fusion keys is not critical. Info only log
                    Write-ExchangeSetupLog -Info ("An exception ocurred while trying to remove the fast new fusion reg keys. Exception: " + $_.Exception.Message);
                }
                
                $fastInstallConfigPath = Join-Path -Path $RoleBinPath -ChildPath "Search\Ceres\Installer";
                $command = Join-Path -Path $fastInstallConfigPath -ChildPath "InstallConfig.ps1";
                $dataFolderPath = Join-Path -Path $RoleBinPath -ChildPath "Search\Ceres\HostController\Data";

                # Remove previous SearchFoundation configuration
                &$command -action u -silent;
                try
                {
                    if ([System.IO.Directory]::Exists($dataFolderPath))
                    {
                        [System.IO.Directory]::Delete($dataFolderPath, $true);
                    }
                }
                catch
                {
                    $deleteErrorMsg = "Failure cleaning up SearchFoundation Data folder. - " + $dataFolderPath + " - " + $_.Exception.Message;
                    Write-ExchangeSetupLog -Error $deleteErrorMsg;
                }

                # Re-add the SearchFoundation configuration
                try
                {
                    # the BasePort value MUST be kept in sync with dev\Search\src\OperatorSchema\SearchConfig.cs
                    &$command -action i -baseport 3800 -dataFolder $dataFolderPath -silent;
                }
                catch
                {
                    $errorMsg = "Failure configuring SearchFoundation through installconfig.ps1 - " + $_.Exception.Message;
                    Write-ExchangeSetupLog -Error $errorMsg;
                    
                    # Clean up the failed configuration attempt.
                    &$command -action u -silent;
                    try
                    {
                        if ([System.IO.Directory]::Exists($dataFolderPath))
                        {
                            [System.IO.Directory]::Delete($dataFolderPath, $true);
                        }
                    }
                    catch
                    {
                        $deleteErrorMsg = "Failure cleaning up SearchFoundation Data folder. - " + $dataFolderPath + " - " + $_.Exception.Message;
                        Write-ExchangeSetupLog -Error $deleteErrorMsg;
                    }
                }
                
                # Set the PowerShell Snap-in's public key tokens
                try
                {
                    $PowerShellSnapinsPath = "HKLM:\SOFTWARE\Microsoft\PowerShell\1\PowerShellSnapIns\";
                    $FastSnapinNames = @("EnginePSSnapin", "HostControllerPSSnapIn", "InteractionEnginePSSnapIn", "JunoPSSnapin", "SearchCorePSSnapIn");
                    $officePublicKey = "71E9BCE111E9429C";
                    $exchangePublicKey = "31bf3856ad364e35";
                    foreach ($fastSnapinName in $FastSnapinNames)
                    {
                        $fastSnapinPath = $PowerShellSnapinsPath + $fastSnapinName;
                        $assemblyNameProperty = Get-ItemProperty -Path $fastSnapinPath -Name "AssemblyName" -ErrorAction SilentlyContinue;
                        if ($assemblyNameProperty -ne $null -and (-not [string]::IsNullOrEmpty($assemblyNameProperty.AssemblyName)))
                        {
                            $newAssemblyName = $assemblyNameProperty.AssemblyName -ireplace ($officePublicKey, $exchangePublicKey);
                            Set-ItemProperty -Path $fastSnapinPath -Name "AssemblyName" -Value $newAssemblyName;
                        }
                    }
                }
                catch
                {
                    # Info only log
                    Write-ExchangeSetupLog -Info ("An exception ocurred while configuring Search Foundation PowerShell Snapin. Exception: " + $_.Exception.Message);
                }
            }
        " was run: "System.Exception: Failure configuring SearchFoundation through installconfig.ps1 - Error occurred while configuring Search Foundation for Exchange.System.TimeoutException: This request operation sent to net.tcp://ex01.hosted.lan:3803/Management/AdminService did not receive a reply within the configured timeout (00:01:00).  The time allotted to this operation may have been a portion of a longer timeout.  This may be because the service is still processing the operation or because the service was unable to send a reply message.  Please consider increasing the operation timeout (by casting the channel/proxy to IContextChannel and setting the OperationTimeout property) and ensure that the service is able to connect to the client.

Server stack trace: 
   at System.ServiceModel.Dispatcher.DuplexChannelBinder.Request(Message message, TimeSpan timeout)
   at System.ServiceModel.Channels.ServiceChannel.Call(String action, Boolean oneway, ProxyOperationRuntime operation, Object[] ins, Object[] outs, TimeSpan timeout)
   at System.ServiceModel.Channels.ServiceChannelProxy.InvokeService(IMethodCallMessage methodCall, ProxyOperationRuntime operation)
   at System.ServiceModel.Channels.ServiceChannelProxy.Invoke(IMessage message)

Exception rethrown at [0]: 
   at System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg, IMessage retMsg)
   at System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData, Int32 type)
   at Microsoft.Ceres.CoreServices.Admin.IAdminServiceManagementAgent.UpdateConfiguration()
   at Microsoft.Ceres.Exchange.PostSetup.NodeManager.AddNodeAndUpdateConfiguration(String node)
   at Microsoft.Ceres.Exchange.PostSetup.NodeManager.DeployContentEngineNode()
   at Microsoft.Ceres.Exchange.PostSetup.DeploymentManager.Install(String installDirectory, String dataDirectoryPath, Int32 basePort, String logFile, Boolean singleNode, String systemName, Boolean attachedMode)
   at CallSite.Target(Closure , CallSite , RuntimeType , Object , Object , Object , Object , Object , Object , Boolean )
   at Microsoft.Exchange.Configuration.Tasks.Task.ThrowError(Exception exception, ErrorCategory errorCategory, Object target, String helpUrl)
   at Microsoft.Exchange.Management.Deployment.WriteExchangeSetupLog.InternalProcessRecord()
   at Microsoft.Exchange.Configuration.Tasks.Task.<ProcessRecord>b__91_1()
   at Microsoft.Exchange.Configuration.Tasks.Task.InvokeRetryableFunc(String funcName, Action func, Boolean terminatePipelineIfFailed)".

 

0 Replies