NVP vProxy : Échec du montage de la restauration de la machine virtuelle SQL « HTTP 409 (conflit) »
Summary: La solution NetWorker VMware Protection (NVP) est configurée pour sauvegarder les machines virtuelles (VM) Microsoft SQL à l’aide de MSVMAPPAGENT. Lors d’une opération de restauration, l’opération de montage SQL échoue avec HTTP 409 (conflit) ...
Symptoms
La restauration de la machine virtuelle SQL est effectuée à partir du Data Protection Restore Client (DPRC).
Le processus de montage échoue, signalant HTTP 409 (conflit) :
L’flr-server.log du serveur NetWorker signale la même erreur HTTP :
Linx : /nsr/authc/logs/flr-server.log
Windows (par défaut) : C:\Program Files\EMC NetWorker\nsr\authc-server\tomcat\logs\flr-server.log
YYYY-MM-DD HH:mm:SS [https-jsse-nio-9090-exec-5] INFO c.e.n.c.v.i.VProxyRestClient.getVProxyUrl 104 - Call vProxy: POST https://NETWORKER-SERVER-ADDRESS:9090/api/v1/FlrBrowseSessions YYYY-MM-DD HH:mm:SS [https-jsse-nio-9090-exec-5] INFO c.e.n.c.v.i.VProxyRestClient.createVProxyHttpRequest 126 - Using already cached NW routable IP: NETWORKER-SERVER-ADDRESS/NETWORKER-SERVER-IP YYYY-MM-DD HH:mm:SS [https-jsse-nio-9090-exec-5] INFO c.e.n.c.v.i.VProxyRestClient._vProxyPOST 265 - Payload = {"Config":{"AcceptedLanguage":"en","acceptedLanguage":"en","SessionId":null,"LogTag":"FLR_Browse_FLR-SESSION-ID","IdleTimeout":0,"LogLevel":"DEBUG","FlrMountSessionId":"FLR-SESSION-ID","CacheRetentionSeconds":60,"CurrentWorkingDirectory":"","BrowseDestination":false,"ParentPath":null,"ApplicationData":null,"AppName":null,"Vcenter":null,"VmGuestLogin":null}} YYYY-MM-DD HH:mm:SS [https-jsse-nio-9090-exec-5] INFO c.e.n.c.v.i.VProxyRestClient._vProxyPOST 270 - Requesting vProxyPOST for https://NETWORKER-SERVER-ADDRESS:9090/api/v1/FlrBrowseSessions, FlrBrowseSessions... YYYY-MM-DD HH:mm:SS [https-jsse-nio-9090-exec-5] INFO c.e.n.c.v.i.VProxyRestClient._vProxyPOST 272 - Got vProxyPOST response. YYYY-MM-DD HH:mm:SS [https-jsse-nio-9090-exec-5] INFO c.e.n.c.v.i.VProxyRestClient.checkResponse 390 - Response Status Code = 409 YYYY-MM-DD HH:mm:SS [https-jsse-nio-9090-exec-5] INFO c.e.n.c.v.i.VProxyRestClient.checkResponse 391 - Response Reason Phrase = Conflict YYYY-MM-DD HH:mm:SS [https-jsse-nio-9090-exec-5] ERROR c.e.n.c.v.i.VProxyRestClient.checkResponse 396 - Could not connect to vproxy. Http Response status code: 409 Conflict YYYY-MM-DD HH:mm:SS [https-jsse-nio-9090-exec-5] ERROR c.e.n.c.v.i.VProxyMount.postBrowseSession 378 - Error browsing com.emc.nw.common.exception.BrowseException: Could not connect to vproxy. Http Response status code: 409 Conflict at com.emc.nw.common.vproxyapi.impl.VProxyRestClient.checkResponse(VProxyRestClient.java:399) at com.emc.nw.common.vproxyapi.impl.VProxyRestClient._vProxyPOST(VProxyRestClient.java:275) at com.emc.nw.common.vproxyapi.impl.VProxyRestClient.vProxyPOST(VProxyRestClient.java:238) at com.emc.nw.common.vproxyapi.impl.VProxyMount.postBrowseSession(VProxyMount.java:363) at com.emc.flr.services.impl.FsObjectServiceImpl.createVProxyBrowse(FsObjectServiceImpl.java:808) at com.emc.flr.services.impl.FsObjectServiceImpl.mountBackupOnTarget(FsObjectServiceImpl.java:1068) at com.emc.flr.services.impl.FsObjectServiceImpl.getFSObjects(FsObjectServiceImpl.java:135) at com.emc.flr.rest.FsObjectsRest.getFSObjects(FsObjectsRest.java:60) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at com.sun.jersey.spi.container.JavaMethodInvokerFactory$1.invoke(JavaMethodInvokerFactory.java:60) at com.sun.jersey.server.impl.model.method.dispatch.AbstractResourceMethodDispatchProvider$TypeOutInvoker._dispatch(AbstractResourceMethodDispatchProvider.java:185) at com.sun.jersey.server.impl.model.method.dispatch.ResourceJavaMethodDispatcher.dispatch(ResourceJavaMethodDispatcher.java:75) at com.sun.jersey.server.impl.uri.rules.HttpMethodRule.accept(HttpMethodRule.java:302) at com.sun.jersey.server.impl.uri.rules.ResourceClassRule.accept(ResourceClassRule.java:108) at com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:147) at com.sun.jersey.server.impl.uri.rules.RootResourceClassesRule.accept(RootResourceClassesRule.java:84) at com.sun.jersey.server.impl.application.WebApplicationImpl._handleRequest(WebApplicationImpl.java:1542) at com.sun.jersey.server.impl.application.WebApplicationImpl._handleRequest(WebApplicationImpl.java:1473) at com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:1419) at com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:1409) at com.sun.jersey.spi.container.servlet.WebComponent.service(WebComponent.java:409) at com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:558) at com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:733) at javax.servlet.http.HttpServlet.service(HttpServlet.java:623) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153) at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153) at org.apache.catalina.filters.HttpHeaderSecurityFilter.doFilter(HttpHeaderSecurityFilter.java:129) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153) at com.emc.flr.filters.AuthenticationFilter.doFilter(AuthenticationFilter.java:86) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:596) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93) at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:670) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342) at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390) at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63) at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928) at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794) at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52) at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191) at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659) at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) at java.lang.Thread.run(Thread.java:750) YYYY-MM-DD HH:mm:SS [https-jsse-nio-9090-exec-5] ERROR c.e.f.s.i.FsObjectServiceImpl.createVProxyBrowse 812 - Browse backup sessions were not created correctly - possibly a bad mount for sessionid: FLR-SESSION-ID YYYY-MM-DD HH:mm:SS [https-jsse-nio-9090-exec-5] ERROR c.e.f.s.i.FsObjectServiceImpl.createVProxyBrowse 813 - mount session error message reads: Mount job failure message: Create vProxy browse requests failed.
Cause
Le CRPD n’attend pas assez longtemps pour que l’opération de montage se termine. Le CRDI envoie un appel API (Application Programming Interface) pour fermer la session de montage alors que vProxy est toujours en train de monter des disques, ce qui provoque un conflit HTTP 409.
Ce problème a été signalé aux ingénieurs NetWorker.
Resolution
Un correctif de code est attendu dans NetWorker 19.13.0.1 (27 août 2025 provisoire)
Additional Information
Ce problème a été observé dans un environnement où une machine virtuelle SQL contenait 10 disques (VMDK) et de nombreuses bases de données. Toutes les opérations de montage MSVMAPPAGENT ont échoué avec ce symptôme, alors que d’autres serveurs SQL plus petits se montaient sans problème.