Uploaded image for project: 'Red Hat OpenShift Dev Spaces (formerly CodeReady Workspaces) '
  1. Red Hat OpenShift Dev Spaces (formerly CodeReady Workspaces)
  2. CRW-85

"PKIX path building failed" error of retrieving OpenId configuration in time of installing CRW with TLS support

XMLWordPrintable

    • Hide

      Command to install CRW:

        sed -i 's@CHE_UPDATE_CHE_ADMIN_PASSWORD: ""@CHE_UPDATE_CHE_ADMIN_PASSWORD: "false"@g' ${WORKSPACE}/codeready-workspaces-operator-installer/config.yaml
        sed -i 's@CHE_TLS_SUPPORT: ""@CHE_TLS_SUPPORT: "true"@g' ${WORKSPACE}/codeready-workspaces-operator-installer/config.yaml
      
      cat > /tmp/ca.crt <<EOF
      -----BEGIN CERTIFICATE-----
      MIIDUzCCAjugAwIBAgIBCTANBgkqhkiG9w0BAQsFADAmMSQwIgYDVQQDDBtvcGVu
      c2hpZnQtc2lnbmVyQDE1NDU4NTM0NDUwHhcNMTgxMjI2MTk1MzA3WhcNMjAxMjI1
      MTk1MzA4WjAsMSowKAYDVQQDDCEqLmFwcHMubmRwLXRlc3QtMzExLmR5bmFtaWMu
      eHBhYXMwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDGeRsEhL3yb3kr
      O4d3YJ2QO7uJeyEhDd5i26ZBEcOBEmY3bqarVc89RhDXQUYaSK274rOCVRShZ8am
      eMXNHaND2CH5hq0LdDYIw5I3VroCsSJUJMkorKNuisXORMxpr4tjq7R0XzWUa4Qh
      zy6xUg9pBaQo78oX58WE0+nqNha47BpieGVo/eACyS7yEsOG/H2F0xDXb3roFLh3
      HrmbL7K77SEiUh1dHdM3RzLWPH9TB4ck1uZ0tVPus3uchntyHZck4gRYCGgioOp6
      i0Ia+09yKAhr3N30eWeYGNFctirBGCZvf58ndrpeP2CHvaBpGVC8I8vDTOV3a0xe
      SRcKUh/xAgMBAAGjgYUwgYIwDgYDVR0PAQH/BAQDAgWgMBMGA1UdJQQMMAoGCCsG
      AQUFBwMBMAwGA1UdEwEB/wQCMAAwTQYDVR0RBEYwRIIhKi5hcHBzLm5kcC10ZXN0
      LTMxMS5keW5hbWljLnhwYWFzgh9hcHBzLm5kcC10ZXN0LTMxMS5keW5hbWljLnhw
      YWFzMA0GCSqGSIb3DQEBCwUAA4IBAQAqWezuO4RxjSEnKbnoZA2e6MnWL4KQyVoQ
      IKISkv44WAW7+Wsx3KH/KDrSfyYo4ca8sHPpt5QuhfDwkUNf/j84jFgtEV+hl5cD
      CUxiZVVcMW/e8O83pXrP2mmEn6weJTYYerDIlV03DVXAVcKbTBmrIjnAGGcgL7S9
      AVBObFxbk2qV0OgP9noqd2ElvQEt3ZCYk897ipoSTVuT9ofCRe9+MbX+eeCVywYQ
      T50o+XuhdLxkt9FfzrGI89kmh6h6MsICbclUyeDTRtEtCdq8S7PghEMSlWGC6LfV
      Pqb9ysA6KBygPJV+UGvQ25FqUNvvQQFz43Pb1JDuoAZXcKPtSBzi
      -----END CERTIFICATE-----
      EOF
      
        ${WORKSPACE}/codeready-workspaces-operator-installer/deploy.sh -d \
        --server-image=registry.access.stage.redhat.com/codeready-workspaces/server \
        --operator-image=registry.access.stage.redhat.com/codeready-workspaces/server-operator \
        -p=${CHE_OPENSHIFT_PROJECT} \
        --cert=/tmp/ca.crt \
        --force-cleanup
      
      Show
      Command to install CRW: sed -i 's@CHE_UPDATE_CHE_ADMIN_PASSWORD: ""@CHE_UPDATE_CHE_ADMIN_PASSWORD: "false"@g' ${WORKSPACE}/codeready-workspaces-operator-installer/config.yaml sed -i 's@CHE_TLS_SUPPORT: ""@CHE_TLS_SUPPORT: "true"@g' ${WORKSPACE}/codeready-workspaces-operator-installer/config.yaml cat > /tmp/ca.crt <<EOF -----BEGIN CERTIFICATE----- MIIDUzCCAjugAwIBAgIBCTANBgkqhkiG9w0BAQsFADAmMSQwIgYDVQQDDBtvcGVu c2hpZnQtc2lnbmVyQDE1NDU4NTM0NDUwHhcNMTgxMjI2MTk1MzA3WhcNMjAxMjI1 MTk1MzA4WjAsMSowKAYDVQQDDCEqLmFwcHMubmRwLXRlc3QtMzExLmR5bmFtaWMu eHBhYXMwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDGeRsEhL3yb3kr O4d3YJ2QO7uJeyEhDd5i26ZBEcOBEmY3bqarVc89RhDXQUYaSK274rOCVRShZ8am eMXNHaND2CH5hq0LdDYIw5I3VroCsSJUJMkorKNuisXORMxpr4tjq7R0XzWUa4Qh zy6xUg9pBaQo78oX58WE0+nqNha47BpieGVo/eACyS7yEsOG/H2F0xDXb3roFLh3 HrmbL7K77SEiUh1dHdM3RzLWPH9TB4ck1uZ0tVPus3uchntyHZck4gRYCGgioOp6 i0Ia+09yKAhr3N30eWeYGNFctirBGCZvf58ndrpeP2CHvaBpGVC8I8vDTOV3a0xe SRcKUh/xAgMBAAGjgYUwgYIwDgYDVR0PAQH/BAQDAgWgMBMGA1UdJQQMMAoGCCsG AQUFBwMBMAwGA1UdEwEB/wQCMAAwTQYDVR0RBEYwRIIhKi5hcHBzLm5kcC10ZXN0 LTMxMS5keW5hbWljLnhwYWFzgh9hcHBzLm5kcC10ZXN0LTMxMS5keW5hbWljLnhw YWFzMA0GCSqGSIb3DQEBCwUAA4IBAQAqWezuO4RxjSEnKbnoZA2e6MnWL4KQyVoQ IKISkv44WAW7+Wsx3KH/KDrSfyYo4ca8sHPpt5QuhfDwkUNf/j84jFgtEV+hl5cD CUxiZVVcMW/e8O83pXrP2mmEn6weJTYYerDIlV03DVXAVcKbTBmrIjnAGGcgL7S9 AVBObFxbk2qV0OgP9noqd2ElvQEt3ZCYk897ipoSTVuT9ofCRe9+MbX+eeCVywYQ T50o+XuhdLxkt9FfzrGI89kmh6h6MsICbclUyeDTRtEtCdq8S7PghEMSlWGC6LfV Pqb9ysA6KBygPJV+UGvQ25FqUNvvQQFz43Pb1JDuoAZXcKPtSBzi -----END CERTIFICATE----- EOF ${WORKSPACE}/codeready-workspaces-operator-installer/deploy.sh -d \ --server-image=registry.access.stage.redhat.com/codeready-workspaces/server \ --operator-image=registry.access.stage.redhat.com/codeready-workspaces/server-operator \ -p=${CHE_OPENSHIFT_PROJECT} \ --cert=/tmp/ca.crt \ --force-cleanup

      There was error in time of installing CRW with TLS support having self-sign certificate of OCP 3.11:

      02:43:35 Caused by: java.lang.RuntimeException: Exception while retrieving OpenId configuration from endpoint: https://keycloak-codeready-e2e-che.apps.ndp-test-311.dynamic.xpaas/auth/realms/codeready/.well-known/openid-configuration
      02:43:35 at org.eclipse.che.multiuser.keycloak.server.KeycloakSettings.<init>(KeycloakSettings.java:104)
      02:43:35 at org.eclipse.che.multiuser.keycloak.server.KeycloakSettings$$FastClassByGuice$$e0d0786b.newInstance(<generated>)
      02:43:35 at com.google.inject.internal.DefaultConstructionProxyFactory$FastClassProxy.newInstance(DefaultConstructionProxyFactory.java:89)
      02:43:35 at com.google.inject.internal.ConstructorInjector.provision(ConstructorInjector.java:114)
      02:43:35 at com.google.inject.internal.ConstructorInjector.construct(ConstructorInjector.java:91)
      02:43:35 at com.google.inject.internal.ConstructorBindingImpl$Factory.get(ConstructorBindingImpl.java:306)
      02:43:35 at com.google.inject.internal.ProviderToInternalFactoryAdapter.get(ProviderToInternalFactoryAdapter.java:40)
      02:43:35 at com.google.inject.internal.SingletonScope$1.get(SingletonScope.java:168)
      02:43:35 at com.google.inject.internal.InternalFactoryToProviderAdapter.get(InternalFactoryToProviderAdapter.java:39)
      02:43:35 at com.google.inject.internal.SingleParameterInjector.inject(SingleParameterInjector.java:42)
      02:43:35 at com.google.inject.internal.SingleParameterInjector.getAll(SingleParameterInjector.java:65)
      02:43:35 at com.google.inject.internal.ConstructorInjector.provision(ConstructorInjector.java:113)
      02:43:35 at com.google.inject.internal.ConstructorInjector.construct(ConstructorInjector.java:91)
      02:43:35 at com.google.inject.internal.ConstructorBindingImpl$Factory.get(ConstructorBindingImpl.java:306)
      02:43:35 at com.google.inject.internal.ProviderToInternalFactoryAdapter.get(ProviderToInternalFactoryAdapter.java:40)
      02:43:35 at com.google.inject.internal.SingletonScope$1.get(SingletonScope.java:168)
      02:43:35 at com.google.inject.internal.InternalFactoryToProviderAdapter.get(InternalFactoryToProviderAdapter.java:39)
      02:43:35 at com.google.inject.internal.SingleParameterInjector.inject(SingleParameterInjector.java:42)
      02:43:35 at com.google.inject.internal.SingleParameterInjector.getAll(SingleParameterInjector.java:65)
      02:43:35 at com.google.inject.internal.ConstructorInjector.provision(ConstructorInjector.java:113)
      02:43:35 at com.google.inject.internal.ConstructorInjector.construct(ConstructorInjector.java:91)
      02:43:35 at com.google.inject.internal.ConstructorBindingImpl$Factory.get(ConstructorBindingImpl.java:306)
      02:43:35 at com.google.inject.internal.ProviderToInternalFactoryAdapter.get(ProviderToInternalFactoryAdapter.java:40)
      02:43:35 at com.google.inject.internal.SingletonScope$1.get(SingletonScope.java:168)
      02:43:35 at com.google.inject.internal.InternalFactoryToProviderAdapter.get(InternalFactoryToProviderAdapter.java:39)
      02:43:35 at com.google.inject.internal.FactoryProxy.get(FactoryProxy.java:62)
      02:43:35 at com.google.inject.internal.SingleParameterInjector.inject(SingleParameterInjector.java:42)
      02:43:35 at com.google.inject.internal.SingleParameterInjector.getAll(SingleParameterInjector.java:65)
      02:43:35 at com.google.inject.internal.ConstructorInjector.provision(ConstructorInjector.java:113)
      02:43:35 at com.google.inject.internal.ConstructorInjector.construct(ConstructorInjector.java:91)
      02:43:35 at com.google.inject.internal.ConstructorBindingImpl$Factory.get(ConstructorBindingImpl.java:306)
      02:43:35 at com.google.inject.internal.ProviderToInternalFactoryAdapter.get(ProviderToInternalFactoryAdapter.java:40)
      02:43:35 at com.google.inject.internal.SingletonScope$1.get(SingletonScope.java:168)
      02:43:35 at com.google.inject.internal.InternalFactoryToProviderAdapter.get(InternalFactoryToProviderAdapter.java:39)
      02:43:35 at com.google.inject.internal.SingleParameterInjector.inject(SingleParameterInjector.java:42)
      02:43:35 at com.google.inject.internal.SingleParameterInjector.getAll(SingleParameterInjector.java:65)
      02:43:35 at com.google.inject.internal.ConstructorInjector.provision(ConstructorInjector.java:113)
      02:43:35 at com.google.inject.internal.ConstructorInjector.construct(ConstructorInjector.java:91)
      02:43:35 at com.google.inject.internal.ConstructorBindingImpl$Factory.get(ConstructorBindingImpl.java:306)
      02:43:35 at com.google.inject.internal.FactoryProxy.get(FactoryProxy.java:62)
      02:43:35 at com.google.inject.internal.SingleParameterInjector.inject(SingleParameterInjector.java:42)
      02:43:35 at com.google.inject.internal.RealMapBinder$RealMapProvider.doProvision(RealMapBinder.java:796)
      02:43:35 at com.google.inject.internal.RealMapBinder$RealMapProvider.doProvision(RealMapBinder.java:733)
      02:43:35 at com.google.inject.internal.InternalProviderInstanceBindingImpl$Factory.get(InternalProviderInstanceBindingImpl.java:113)
      02:43:35 at com.google.inject.internal.SingleParameterInjector.inject(SingleParameterInjector.java:42)
      02:43:35 at com.google.inject.internal.SingleParameterInjector.getAll(SingleParameterInjector.java:65)
      02:43:35 at com.google.inject.internal.ConstructorInjector.provision(ConstructorInjector.java:113)
      02:43:35 at com.google.inject.internal.ConstructorInjector.construct(ConstructorInjector.java:91)
      02:43:35 at com.google.inject.internal.ConstructorBindingImpl$Factory.get(ConstructorBindingImpl.java:306)
      02:43:35 at com.google.inject.internal.ProviderToInternalFactoryAdapter.get(ProviderToInternalFactoryAdapter.java:40)
      02:43:35 at com.google.inject.internal.SingletonScope$1.get(SingletonScope.java:168)
      02:43:35 at com.google.inject.internal.InternalFactoryToProviderAdapter.get(InternalFactoryToProviderAdapter.java:39)
      02:43:35 at com.google.inject.internal.SingleParameterInjector.inject(SingleParameterInjector.java:42)
      02:43:35 at com.google.inject.internal.SingleParameterInjector.getAll(SingleParameterInjector.java:65)
      02:43:35 at com.google.inject.internal.ConstructorInjector.provision(ConstructorInjector.java:113)
      02:43:35 at com.google.inject.internal.ConstructorInjector.construct(ConstructorInjector.java:91)
      02:43:35 at com.google.inject.internal.ConstructorBindingImpl$Factory.get(ConstructorBindingImpl.java:306)
      02:43:35 at com.google.inject.internal.ProviderToInternalFactoryAdapter.get(ProviderToInternalFactoryAdapter.java:40)
      02:43:35 at com.google.inject.internal.SingletonScope$1.get(SingletonScope.java:168)
      02:43:35 at com.google.inject.internal.InternalFactoryToProviderAdapter.get(InternalFactoryToProviderAdapter.java:39)
      02:43:35 at com.google.inject.internal.FactoryProxy.get(FactoryProxy.java:62)
      02:43:35 at com.google.inject.internal.SingleParameterInjector.inject(SingleParameterInjector.java:42)
      02:43:35 at com.google.inject.internal.SingleParameterInjector.getAll(SingleParameterInjector.java:65)
      02:43:35 at com.google.inject.internal.ConstructorInjector.provision(ConstructorInjector.java:113)
      02:43:35 at com.google.inject.internal.ConstructorInjector.construct(ConstructorInjector.java:91)
      02:43:35 at com.google.inject.internal.ConstructorBindingImpl$Factory.get(ConstructorBindingImpl.java:306)
      02:43:35 at com.google.inject.internal.ProviderToInternalFactoryAdapter.get(ProviderToInternalFactoryAdapter.java:40)
      02:43:35 at com.google.inject.internal.SingletonScope$1.get(SingletonScope.java:168)
      02:43:35 at com.google.inject.internal.InternalFactoryToProviderAdapter.get(InternalFactoryToProviderAdapter.java:39)
      02:43:35 at com.google.inject.internal.SingleParameterInjector.inject(SingleParameterInjector.java:42)
      02:43:35 at com.google.inject.internal.SingleParameterInjector.getAll(SingleParameterInjector.java:65)
      02:43:35 at com.google.inject.internal.ConstructorInjector.provision(ConstructorInjector.java:113)
      02:43:35 at com.google.inject.internal.ConstructorInjector.construct(ConstructorInjector.java:91)
      02:43:35 at com.google.inject.internal.ConstructorBindingImpl$Factory.get(ConstructorBindingImpl.java:306)
      02:43:35 at com.google.inject.internal.ProviderToInternalFactoryAdapter.get(ProviderToInternalFactoryAdapter.java:40)
      02:43:35 at com.google.inject.internal.SingletonScope$1.get(SingletonScope.java:168)
      02:43:35 at com.google.inject.internal.InternalFactoryToProviderAdapter.get(InternalFactoryToProviderAdapter.java:39)
      02:43:35 at com.google.inject.internal.SingleParameterInjector.inject(SingleParameterInjector.java:42)
      02:43:35 at com.google.inject.internal.SingleParameterInjector.getAll(SingleParameterInjector.java:65)
      02:43:35 at com.google.inject.internal.ConstructorInjector.provision(ConstructorInjector.java:113)
      02:43:35 at com.google.inject.internal.ConstructorInjector.construct(ConstructorInjector.java:91)
      02:43:35 at com.google.inject.internal.ConstructorBindingImpl$Factory.get(ConstructorBindingImpl.java:306)
      02:43:35 at com.google.inject.internal.ProviderToInternalFactoryAdapter.get(ProviderToInternalFactoryAdapter.java:40)
      02:43:35 at com.google.inject.internal.SingletonScope$1.get(SingletonScope.java:168)
      02:43:35 at com.google.inject.internal.InternalFactoryToProviderAdapter.get(InternalFactoryToProviderAdapter.java:39)
      02:43:35 at com.google.inject.internal.FactoryProxy.get(FactoryProxy.java:62)
      02:43:35 at com.google.inject.internal.InternalInjectorCreator.loadEagerSingletons(InternalInjectorCreator.java:211)
      02:43:35 at com.google.inject.internal.InternalInjectorCreator.injectDynamically(InternalInjectorCreator.java:182)
      02:43:35 at com.google.inject.internal.InternalInjectorCreator.build(InternalInjectorCreator.java:109)
      02:43:35 at com.google.inject.Guice.createInjector(Guice.java:87)
      02:43:35 at org.everrest.guice.servlet.EverrestGuiceContextListener.getInjector(EverrestGuiceContextListener.java:140)
      02:43:35 at com.google.inject.servlet.GuiceServletContextListener.contextInitialized(GuiceServletContextListener.java:45)
      02:43:35 at org.everrest.guice.servlet.EverrestGuiceContextListener.contextInitialized(EverrestGuiceContextListener.java:85)
      02:43:35 at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4792)
      02:43:35 at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5256)
      02:43:35 at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
      02:43:35 at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:754)
      02:43:35 at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:730)
      02:43:35 at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:734)
      02:43:35 at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:985)
      02:43:35 at org.apache.catalina.startup.HostConfig$DeployWar.run(HostConfig.java:1857)
      02:43:35 at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
      02:43:35 at java.util.concurrent.FutureTask.run(FutureTask.java:266)
      02:43:35 at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
      02:43:35 at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
      02:43:35 at java.lang.Thread.run(Thread.java:748)
      02:43:35 Caused by: javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
      02:43:35 at sun.security.ssl.Alerts.getSSLException(Alerts.java:192)
      02:43:35 at sun.security.ssl.SSLSocketImpl.fatal(SSLSocketImpl.java:1946)
      02:43:35 at sun.security.ssl.Handshaker.fatalSE(Handshaker.java:316)
      02:43:35 at sun.security.ssl.Handshaker.fatalSE(Handshaker.java:310)
      02:43:35 at sun.security.ssl.ClientHandshaker.serverCertificate(ClientHandshaker.java:1639)
      02:43:35 at sun.security.ssl.ClientHandshaker.processMessage(ClientHandshaker.java:223)
      02:43:35 at sun.security.ssl.Handshaker.processLoop(Handshaker.java:1037)
      02:43:35 at sun.security.ssl.Handshaker.process_record(Handshaker.java:965)
      02:43:35 at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:1064)
      02:43:35 at sun.security.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1367)
      02:43:35 at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1395)
      02:43:35 at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1379)
      02:43:35 at sun.net.www.protocol.https.HttpsClient.afterConnect(HttpsClient.java:559)
      02:43:35 at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.java:185)
      02:43:35 at sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1564)
      02:43:35 at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1492)
      02:43:35 at sun.net.www.protocol.https.HttpsURLConnectionImpl.getInputStream(HttpsURLConnectionImpl.java:263)
      02:43:35 at java.net.URL.openStream(URL.java:1045)
      02:43:35 at org.eclipse.che.multiuser.keycloak.server.KeycloakSettings.<init>(KeycloakSettings.java:97)
      02:43:35 ... 105 more
      02:43:35 Caused by: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
      02:43:35 at sun.security.validator.PKIXValidator.doBuild(PKIXValidator.java:397)
      02:43:35 at sun.security.validator.PKIXValidator.engineValidate(PKIXValidator.java:302)
      02:43:35 at sun.security.validator.Validator.validate(Validator.java:262)
      02:43:35 at sun.security.ssl.X509TrustManagerImpl.validate(X509TrustManagerImpl.java:324)
      02:43:35 at sun.security.ssl.X509TrustManagerImpl.checkTrusted(X509TrustManagerImpl.java:229)
      02:43:35 at sun.security.ssl.X509TrustManagerImpl.checkServerTrusted(X509TrustManagerImpl.java:124)
      02:43:35 at sun.security.ssl.ClientHandshaker.serverCertificate(ClientHandshaker.java:1621)
      02:43:35 ... 119 more
      02:43:35 Caused by: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
      02:43:35 at sun.security.provider.certpath.SunCertPathBuilder.build(SunCertPathBuilder.java:141)
      02:43:35 at sun.security.provider.certpath.SunCertPathBuilder.engineBuild(SunCertPathBuilder.java:126)
      02:43:35 at java.security.cert.CertPathBuilder.build(CertPathBuilder.java:280)
      02:43:35 at sun.security.validator.PKIXValidator.doBuild(PKIXValidator.java:392)
      02:43:35 ... 125 more

      Installation log: https://codeready-workspaces-jenkins.rhev-ci-vms.eng.rdu2.redhat.com/view/CRW-1.0.0-GA-tests/job/6.17.x-daily-e2e-upstream-Che-tests-against-OCP/16/console

              yivantso Eugene Ivantsov (Inactive)
              dnochevn Dmytro Nochevnov
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

                Created:
                Updated:
                Resolved: