1. Unable to register SRM with vCenter post upgrade
2. Unable to register vSphere Replication post upgrade
Trying to register the appliance with vCenter 7.X/8.X throws the error below randomly
ERROROperation Failed
A general system error occurred: Failed to register H5 UI.
Operation ID: e22b4746-c7c6-458b-a5a9-c4cc4ff4ef64
This problem is seen to be affecting these versions below -
vSphere Replication 8.8 | 21 SEP 2023 | Build 22436165
vSphere Replication 8.8.0.1 | 17 OCT 2023 | Build 22602641
Site Recovery Manager 8.8 | 21 SEP 2023 | Build 22434509
Site Recovery Manager 8.8.0.1 | 17 OCT 2023 | Build 22602689
Expect to see the log traces below in SRM & vCenter when you encounter this error.
/var/log/vmware/dr/drconfig.log :
--> 2023-10-16 09:27:15,068 [srm-reactive-thread-9] INFO com.vmware.srm.client.topology.impl.vmomi.vlsi.VersionsXmlServiceImpl - Using version 'interface com.vmware.vim.binding.vim.version.internal.v8_0_2_0' for 'vCenter Server at https://vcenter.vmware.local:443/sdk'
--> 2023-10-16 09:27:15,096 [srm-reactive-thread-7] ERROR com.vmware.dr.client.shared.utils.ExtManagerHelper - Failed to mirror plugin registration to VC ExtensionManager.
--> invalidProperty = Extension server certificate is invalid.
--> }
--> at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
--> at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
--> at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
--> at java.base/java.lang.reflect.Constructor.newInstance(Unknown Source)
--> at java.base/java.lang.Class.newInstance(Unknown Source)
--> at com.vmware.vim.vmomi.core.types.impl.ComplexTypeImpl.newInstance(ComplexTypeImpl.java:174)
--> at com.vmware.vim.vmomi.core.types.impl.DefaultDataObjectFactory.newDataObject(DefaultDataObjectFactory.java:25)
--> at com.vmware.vim.vmomi.core.soap.impl.unmarshaller.ComplexStackContext.<init>(ComplexStackContext.java:30)
--> at com.vmware.vim.vmomi.core.soap.impl.unmarshaller.UnmarshallerImpl$UnmarshallSoapFaultContext.parse(UnmarshallerImpl.java:167)
--> at com.vmware.vim.vmomi.core.soap.impl.unmarshaller.UnmarshallerImpl$UnmarshallSoapFaultContext.unmarshall(UnmarshallerImpl.java:105)
--> at com.vmware.vim.vmomi.core.soap.impl.unmarshaller.UnmarshallerImpl.unmarshalSoapFault(UnmarshallerImpl.java:92)
--> at com.vmware.vim.vmomi.core.soap.impl.unmarshaller.UnmarshallerImpl.unmarshalSoapFault(UnmarshallerImpl.java:86)
--> at com.vmware.vim.vmomi.client.common.impl.SoapFaultStackContext.setValue(SoapFaultStackContext.java:41)
--> at com.vmware.vim.vmomi.client.common.impl.ResponseUnmarshaller.processNextElement(ResponseUnmarshaller.java:127)
--> at com.vmware.vim.vmomi.client.common.impl.ResponseUnmarshaller.unmarshal(ResponseUnmarshaller.java:70)
--> at com.vmware.vim.vmomi.client.common.impl.ResponseImpl.unmarshalResponse(ResponseImpl.java:288)
--> at com.vmware.vim.vmomi.client.common.impl.ResponseImpl.setResponse(ResponseImpl.java:243)
--> at com.vmware.vim.vmomi.client.http.impl.HttpExchangeBase.parseResponse(HttpExchangeBase.java:267)
--> at com.vmware.vim.vmomi.client.http.impl.HttpAsyncExchange$1$2.invokeWithinScope(HttpAsyncExchange.java:166)
--> at com.vmware.vim.vmomi.core.tracing.NoopTracer$NoopSpan.runWithinSpanContext(NoopTracer.java:120)
--> at com.vmware.vim.vmomi.client.http.impl.TracingScopedRunnable.run(TracingScopedRunnable.java:17)
--> at com.vmware.dr.ui.tools.utilities.ThreadContext.lambda$wrap$1(ThreadContext.java:55)
--> at com.vmware.dr.ui.tools.utilities.ThreadContext.execute(ThreadContext.java:209)
--> at com.vmware.dr.ui.tools.utilities.ThreadContext.execute(ThreadContext.java:185)
--> at com.vmware.dr.ui.tools.utilities.ThreadContext.setupContext(ThreadContext.java:76)
--> at com.vmware.dr.ui.tools.utilities.ThreadContext.setupContext(ThreadContext.java:105)
--> at com.vmware.dr.ui.tools.utilities.ExecutorUtils.lambda$wrap$1(ExecutorUtils.java:36)
--> at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
--> at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
--> at java.base/java.lang.Thread.run(Unknown Source)
-->--> stderr:
--> WARNING: An illegal reflective access operation has occurred
--> WARNING: Illegal reflective access by net.sf.cglib.core.ReflectUtils$2 (file:/opt/vmware/dr-client/webapps/dr/WEB-INF/lib/cglib-nodep-2.1_3.jar) to method java.lang.ClassLoader.defineCla
ss(java.lang.String,byte[],int,int,java.security.ProtectionDomain)
--> WARNING: Please consider reporting this to the maintainers of net.sf.cglib.core.ReflectUtils$2
--> WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
--> WARNING: All illegal access operations will be denied in a future release
--> A specified parameter was not correct: Extension server certificate is invalid.
-->
2023-10-16T09:27:15.469-04:00 info drconfig[00990] [SRM@6876 sub=ClearOp opID=c370244a-6fcc-4634-a899-2dbca6e5b6e4-configure:48a5] Exiting ConfigureUI
2023-10-16T09:27:15.469-04:00 info drconfig[00990] [SRM@6876 sub=ClearOp opID=c370244a-6fcc-4634-a899-2dbca6e5b6e4-configure:48a5] Entering FixOwnership
2023-10-16T09:27:15.472-04:00 info drconfig[00990] [SRM@6876 sub=ClearOp opID=c370244a-6fcc-4634-a899-2dbca6e5b6e4-configure:48a5] Exiting FixOwnership
2023-10-16T09:27:15.472-04:00 error drconfig[00990] [SRM@6876 sub=ClearOp opID=c370244a-6fcc-4634-a899-2dbca6e5b6e4-configure:48a5] Operation failed
--> (vmodl.fault.SystemError) {
--> faultCause = (vmodl.MethodFault) null,
--> faultMessage = <unset>,
--> reason = "Failed to register H5 UI."
--> msg = ""
--> }
--> [context]zKq7AVECAAQAADlKVgEMZHJjb25maWcAAMzrG2xpYnZtYWNvcmUuc28AAWPLCWRyLWNvbmZpZ3VyYXRvcgABJEAEAUrPDAEA+AwB4RgMAW9MCQDeSDUA4mE1ALCLSgKujgBsaWJwdGhyZWFkLnNvLjAAAy/eD2xpYmMuc28uNgA=[/context]
2023-10-16T09:27:15.472-04:00 info drconfig[00990] [SRM@6876 sub=ClearOp opID=c370244a-6fcc-4634-a899-2dbca6e5b6e4-configure:48a5] Exiting Start2023-10-16T09:27:15.472-04:00 verbose drconfig[09888] [SRM@6876 sub=DrConfigConfigurationManager ctxID=cd31dc50 opID=c370244a-6fcc-4634-a899-2dbca6e5b6e4-configure:48a5] OnError: Configuration task failed
--> (vmodl.fault.SystemError) {
--> faultCause = (vmodl.MethodFault) null,
--> faultMessage = <unset>,
--> reason = "Failed to register H5 UI."
--> msg = ""
--> }
vpxd.log :
2023-10-20T07:08:33.011-04:00 warning vpxd[05599] [Originator@6876 sub=Vmomi opID=fixed-op-id-20] VMOMI activation LRO failed; <<52c5c44b-e2a3-0781-ae54-516bd5c64604, <TCP '
#.#.#.#
: 8085', <TCP '#.#.#.# : 33148'>>, ExtensionManager, vim.ExtensionManager.registerExtension, <vim.version.v8_0_2_0, internal, 8.0.2.0>, {stm: {<io_obj p:0x00007fd1780181d0, h:87, <TCP '
#.#.#.#
: 8085'>, <TCP '
#.#.#.#
: 33148'>>, id: 140533, state(in/out): 3/1}, session: <52c5c44b-e2a3-0781-ae54-516bd5c64604, <TCP '#.#.#.#
: 8085'>, <TCP '#.#.#.#
: 33148'>>, req: {POST, /sdk}}>, N5Vmomi5Fault15InvalidArgument9ExceptionE(Fault cause: vmodl.fault.InvalidArgument
--> )
--> [context]zKq7AVECAQAAAEuUVQEUdnB4ZAAAxbVTbGlidm1hY29yZS5zbwAAUglDAIwxRACaSEuBZVUIAXZweGQAgekKDAGBxt4NAYG+/Q0BgdlyYwIC1cMbbGlidm1vbWkuc28AgUCdQwKBnQNiAoHvE2ICgRkrYQKBtP1hAgDmyzcA+SQ4AJPAUQOujgBsaWJwdGhyZWFkLnNvLjAABC/eD2xpYmMuc28uNgA=[/context]
2023-10-20T07:08:33.013-04:00 info vpxd[05599] [Originator@6876 sub=vpxLro opID=fixed-op-id-20] [VpxLRO] -- FINISH lro-491467
2023-10-20T07:08:33.013-04:00 error vpxd[05599] [Originator@6876 sub=Default opID=fixed-op-id-20] [VpxLRO] -- ERROR lro-491467 -- 52c5c44b-e2a3-0781-ae54-516bd5c64604(525a2b6b-9a66-63ec-990d-d95a86172bc9) -- ExtensionManager -- vim.ExtensionManager.registerExtension: :vmodl.fault.InvalidArgument
--> Result:
--> (vmodl.fault.InvalidArgument) {
--> faultCause = (vmodl.MethodFault) null,
--> faultMessage = <unset>,
--> invalidProperty = "Extension server certificate is invalid."
--> msg = ""
--> }
--> Args:
-->
--> Arg extension:
--> (vim.Extension) {
--> description = (vim.Description) {
--> label = "VMware Site Recovery",
--> summary = "Site Recovery Web Client Plugin"
--> },
--> key = "com.vmware.drui.plugin",
--> company = "VMware, Inc.",
--> type = <unset>,
--> version = "8.8.0",
--> subjectName = <unset>,
--> server = (vim.Extension.ServerInfo) [
--> (vim.Extension.ServerInfo) {
--> url = https://srm.vmware.local/drplugin/plugin.json.zip,
--> description = (vim.Description) {
--> label = "VMware Site Recovery",
--> summary = "Site Recovery Web Client Plugin"
--> },
--> company = "VMware, Inc.",
--> type = "MANIFEST_SERVER",
--> adminEmail = (string) [
--> email
--> ],
--> serverThumbprint = "4B:##:##:
##:##
:##:##:
:##:##
##:##:
:##:##
:##:##:
##:##
##:##:
",##:##
:##:##:
##:
##:##:
##:##
:##:##:
##:##
--> serverCertificate = "-----BEGIN CERTIFICATE-------> 2vaJNA6EdP7fFR8N8Y4TJs1J9xTk6A2JRy7t3BWUY/HGJC45sTzjMyjYjB+2ZGs/QJSY14+exZNU82TISW6ogNpV9TJu94+cRlv0JDg8/Uwoi9n+tlt0wPGVoHGFtHuiCeA==
-->
-----END CERTIFICATE-----
A new field called "serverCertificate" was introduced in VC 8.0U2 / SRM 8.8 and later. An empty line inserted by the code towards the end of the certificate causes this problem.
1. After the appliance is upgraded, change the certificate and try registering it.
2. Change the certificate with the information shown in Organization, Locality, State & Country fields and try registering it with vCenter, it must work (We have tested this on a few appliances now)
When registration of an appliance fails, you will no longer be able to use SRM and/or manage replications.