{"action":"opened","issue":{"url":"https://api.github.com/repos/olavloite/spanner-jdbc/issues/131","repository_url":"https://api.github.com/repos/olavloite/spanner-jdbc","labels_url":"https://api.github.com/repos/olavloite/spanner-jdbc/issues/131/labels{/name}","comments_url":"https://api.github.com/repos/olavloite/spanner-jdbc/issues/131/comments","events_url":"https://api.github.com/repos/olavloite/spanner-jdbc/issues/131/events","html_url":"https://github.com/olavloite/spanner-jdbc/issues/131","id":391437205,"node_id":"MDU6SXNzdWUzOTE0MzcyMDU=","number":131,"title":"ALPN error when using spanner with pubsub","user":{"login":"minhdqvn","id":18599783,"node_id":"MDQ6VXNlcjE4NTk5Nzgz","avatar_url":"https://avatars1.githubusercontent.com/u/18599783?v=4","gravatar_id":"","url":"https://api.github.com/users/minhdqvn","html_url":"https://github.com/minhdqvn","followers_url":"https://api.github.com/users/minhdqvn/followers","following_url":"https://api.github.com/users/minhdqvn/following{/other_user}","gists_url":"https://api.github.com/users/minhdqvn/gists{/gist_id}","starred_url":"https://api.github.com/users/minhdqvn/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/minhdqvn/subscriptions","organizations_url":"https://api.github.com/users/minhdqvn/orgs","repos_url":"https://api.github.com/users/minhdqvn/repos","events_url":"https://api.github.com/users/minhdqvn/events{/privacy}","received_events_url":"https://api.github.com/users/minhdqvn/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":0,"created_at":"2018-12-16T05:32:10Z","updated_at":"2018-12-16T05:32:10Z","closed_at":null,"author_association":"NONE","body":"Hi Knut,\r\n   I got a issue which happening when my application pulls message from pubsub (Spring boot start with Spanner-JDBC and cloud Pubsub). I assume that both Spanner and Pubsub are using gax-grpc to connect to.\r\n`2018-12-16 12:24:39.075  INFO 7990 --- [           main] i.g.n.s.io.grpc.netty.GrpcSslContexts    : netty-tcnative unavailable (this may be normal)\r\n\r\njava.lang.UnsatisfiedLinkError: io.grpc.netty.shaded.io.netty.internal.tcnative.Library.aprMajorVersion()I\r\n\tat io.grpc.netty.shaded.io.netty.internal.tcnative.Library.aprMajorVersion(Native Method) ~[grpc-netty-shaded-1.16.1.jar:1.16.1]\r\n\tat io.grpc.netty.shaded.io.netty.internal.tcnative.Library.initialize(Library.java:149) ~[grpc-netty-shaded-1.16.1.jar:1.16.1]\r\n\tat io.grpc.netty.shaded.io.netty.handler.ssl.OpenSsl.initializeTcNative(OpenSsl.java:445) ~[grpc-netty-shaded-1.16.1.jar:1.16.1]\r\n\tat io.grpc.netty.shaded.io.netty.handler.ssl.OpenSsl.<clinit>(OpenSsl.java:114) ~[grpc-netty-shaded-1.16.1.jar:1.16.1]\r\n\tat io.grpc.netty.shaded.io.grpc.netty.GrpcSslContexts.defaultSslProvider(GrpcSslContexts.java:244) [grpc-netty-shaded-1.16.1.jar:1.16.1]\r\n\tat io.grpc.netty.shaded.io.grpc.netty.GrpcSslContexts.configure(GrpcSslContexts.java:171) [grpc-netty-shaded-1.16.1.jar:1.16.1]\r\n\tat io.grpc.netty.shaded.io.grpc.netty.GrpcSslContexts.forClient(GrpcSslContexts.java:120) [grpc-netty-shaded-1.16.1.jar:1.16.1]\r\n\tat io.grpc.netty.shaded.io.grpc.netty.NettyChannelBuilder.buildTransportFactory(NettyChannelBuilder.java:377) [grpc-netty-shaded-1.16.1.jar:1.16.1]\r\n\tat io.grpc.internal.AbstractManagedChannelImplBuilder.build(AbstractManagedChannelImplBuilder.java:406) [grpc-core-1.16.1.jar:1.16.1]\r\n\tat com.google.api.gax.grpc.InstantiatingGrpcChannelProvider.createSingleChannel(InstantiatingGrpcChannelProvider.java:246) [gax-grpc-1.35.0.jar:1.35.0]\r\n\tat com.google.api.gax.grpc.InstantiatingGrpcChannelProvider.createChannel(InstantiatingGrpcChannelProvider.java:160) [gax-grpc-1.35.0.jar:1.35.0]\r\n\tat com.google.api.gax.grpc.InstantiatingGrpcChannelProvider.getTransportChannel(InstantiatingGrpcChannelProvider.java:152) [gax-grpc-1.35.0.jar:1.35.0]\r\n\tat com.google.api.gax.rpc.ClientContext.create(ClientContext.java:149) [gax-1.35.0.jar:1.35.0]\r\n\tat com.google.cloud.pubsub.v1.stub.GrpcSubscriberStub.create(GrpcSubscriberStub.java:260) [google-cloud-pubsub-1.55.0.jar:1.55.0]\r\n\tat com.google.cloud.pubsub.v1.Subscriber.doStart(Subscriber.java:286) [google-cloud-pubsub-1.55.0.jar:1.55.0]\r\n\tat com.google.api.core.AbstractApiService$InnerService.doStart(AbstractApiService.java:148) [api-common-1.7.0.jar:na]\r\n\tat com.google.common.util.concurrent.AbstractService.startAsync(AbstractService.java:225) [guava-24.1.1-jre.jar:na]\r\n\tat com.google.api.core.AbstractApiService.startAsync(AbstractApiService.java:120) [api-common-1.7.0.jar:na]\r\n\tat com.google.cloud.pubsub.v1.Subscriber.startAsync(Subscriber.java:278) [google-cloud-pubsub-1.55.0.jar:1.55.0]\r\n\tat com.dhp.device.integration.PubsubIntegration.obtainPubsubMessage(PubsubIntegration.java:85) [classes/:na]\r\n\tat sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_152]\r\n\tat sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:1.8.0_152]\r\n\tat sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_152]\r\n\tat java.lang.reflect.Method.invoke(Method.java:498) ~[na:1.8.0_152]\r\n\tat org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:154) [spring-beans-5.1.3.RELEASE.jar:5.1.3.RELEASE]\r\n\tat org.springframework.beans.factory.support.ConstructorResolver.instantiate(ConstructorResolver.java:622) [spring-beans-5.1.3.RELEASE.jar:5.1.3.RELEASE]\r\n\tat org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:456) [spring-beans-5.1.3.RELEASE.jar:5.1.3.RELEASE]\r\n\tat org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateUsingFactoryMethod(AbstractAutowireCapableBeanFactory.java:1288) [spring-beans-5.1.3.RELEASE.jar:5.1.3.RELEASE]\r\n\tat org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1127) [spring-beans-5.1.3.RELEASE.jar:5.1.3.RELEASE]\r\n\tat org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:538) [spring-beans-5.1.3.RELEASE.jar:5.1.3.RELEASE]\r\n\tat org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:498) [spring-beans-5.1.3.RELEASE.jar:5.1.3.RELEASE]\r\n\tat org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:320) [spring-beans-5.1.3.RELEASE.jar:5.1.3.RELEASE]\r\n\tat org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222) ~[spring-beans-5.1.3.RELEASE.jar:5.1.3.RELEASE]\r\n\tat org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:318) [spring-beans-5.1.3.RELEASE.jar:5.1.3.RELEASE]\r\n\tat org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:199) [spring-beans-5.1.3.RELEASE.jar:5.1.3.RELEASE]\r\n\tat org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:846) ~[spring-beans-5.1.3.RELEASE.jar:5.1.3.RELEASE]\r\n\tat org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:863) ~[spring-context-5.1.3.RELEASE.jar:5.1.3.RELEASE]\r\n\tat org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:546) ~[spring-context-5.1.3.RELEASE.jar:5.1.3.RELEASE]\r\n\tat org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:142) ~[spring-boot-2.1.1.RELEASE.jar:2.1.1.RELEASE]\r\n\tat org.springframework.boot.SpringApplication.refresh(SpringApplication.java:775) ~[spring-boot-2.1.1.RELEASE.jar:2.1.1.RELEASE]\r\n\tat org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:397) ~[spring-boot-2.1.1.RELEASE.jar:2.1.1.RELEASE]\r\n\tat org.springframework.boot.SpringApplication.run(SpringApplication.java:316) ~[spring-boot-2.1.1.RELEASE.jar:2.1.1.RELEASE]\r\n\tat org.springframework.boot.SpringApplication.run(SpringApplication.java:1260) ~[spring-boot-2.1.1.RELEASE.jar:2.1.1.RELEASE]\r\n\tat org.springframework.boot.SpringApplication.run(SpringApplication.java:1248) ~[spring-boot-2.1.1.RELEASE.jar:2.1.1.RELEASE]\r\n\tat com.dhp.device.DeviceApplication.main(DeviceApplication.java:37) ~[classes/:na]\r\n\r\n2018-12-16 12:24:39.076  INFO 7990 --- [           main] i.g.n.s.io.grpc.netty.GrpcSslContexts    : Conscrypt not found (this may be normal)\r\n2018-12-16 12:24:39.076  INFO 7990 --- [           main] i.g.n.s.io.grpc.netty.GrpcSslContexts    : Jetty ALPN unavailable (this may be normal)\r\n\r\njava.lang.ClassNotFoundException: org/eclipse/jetty/alpn/ALPN\r\n\tat java.lang.Class.forName0(Native Method) ~[na:1.8.0_152]\r\n\tat java.lang.Class.forName(Class.java:348) ~[na:1.8.0_152]\r\n\tat io.grpc.netty.shaded.io.grpc.netty.JettyTlsUtil.isJettyAlpnConfigured(JettyTlsUtil.java:64) ~[grpc-netty-shaded-1.16.1.jar:1.16.1]\r\n\tat io.grpc.netty.shaded.io.grpc.netty.GrpcSslContexts.findJdkProvider(GrpcSslContexts.java:266) [grpc-netty-shaded-1.16.1.jar:1.16.1]\r\n\tat io.grpc.netty.shaded.io.grpc.netty.GrpcSslContexts.defaultSslProvider(GrpcSslContexts.java:248) [grpc-netty-shaded-1.16.1.jar:1.16.1]\r\n\tat io.grpc.netty.shaded.io.grpc.netty.GrpcSslContexts.configure(GrpcSslContexts.java:171) [grpc-netty-shaded-1.16.1.jar:1.16.1]\r\n\tat io.grpc.netty.shaded.io.grpc.netty.GrpcSslContexts.forClient(GrpcSslContexts.java:120) [grpc-netty-shaded-1.16.1.jar:1.16.1]\r\n\tat io.grpc.netty.shaded.io.grpc.netty.NettyChannelBuilder.buildTransportFactory(NettyChannelBuilder.java:377) [grpc-netty-shaded-1.16.1.jar:1.16.1]\r\n\tat io.grpc.internal.AbstractManagedChannelImplBuilder.build(AbstractManagedChannelImplBuilder.java:406) [grpc-core-1.16.1.jar:1.16.1]\r\n\tat com.google.api.gax.grpc.InstantiatingGrpcChannelProvider.createSingleChannel(InstantiatingGrpcChannelProvider.java:246) [gax-grpc-1.35.0.jar:1.35.0]\r\n\tat com.google.api.gax.grpc.InstantiatingGrpcChannelProvider.createChannel(InstantiatingGrpcChannelProvider.java:160) [gax-grpc-1.35.0.jar:1.35.0]\r\n\tat com.google.api.gax.grpc.InstantiatingGrpcChannelProvider.getTransportChannel(InstantiatingGrpcChannelProvider.java:152) [gax-grpc-1.35.0.jar:1.35.0]\r\n\tat com.google.api.gax.rpc.ClientContext.create(ClientContext.java:149) [gax-1.35.0.jar:1.35.0]\r\n\tat com.google.cloud.pubsub.v1.stub.GrpcSubscriberStub.create(GrpcSubscriberStub.java:260) [google-cloud-pubsub-1.55.0.jar:1.55.0]\r\n\tat com.google.cloud.pubsub.v1.Subscriber.doStart(Subscriber.java:286) [google-cloud-pubsub-1.55.0.jar:1.55.0]\r\n\tat com.google.api.core.AbstractApiService$InnerService.doStart(AbstractApiService.java:148) [api-common-1.7.0.jar:na]\r\n\tat com.google.common.util.concurrent.AbstractService.startAsync(AbstractService.java:225) [guava-24.1.1-jre.jar:na]\r\n\tat com.google.api.core.AbstractApiService.startAsync(AbstractApiService.java:120) [api-common-1.7.0.jar:na]\r\n\tat com.google.cloud.pubsub.v1.Subscriber.startAsync(Subscriber.java:278) [google-cloud-pubsub-1.55.0.jar:1.55.0]\r\n\tat com.dhp.device.integration.PubsubIntegration.obtainPubsubMessage(PubsubIntegration.java:85) [classes/:na]\r\n\tat sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_152]\r\n\tat sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:1.8.0_152]\r\n\tat sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_152]\r\n\tat java.lang.reflect.Method.invoke(Method.java:498) ~[na:1.8.0_152]\r\n\tat org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:154) [spring-beans-5.1.3.RELEASE.jar:5.1.3.RELEASE]\r\n\tat org.springframework.beans.factory.support.ConstructorResolver.instantiate(ConstructorResolver.java:622) [spring-beans-5.1.3.RELEASE.jar:5.1.3.RELEASE]\r\n\tat org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:456) [spring-beans-5.1.3.RELEASE.jar:5.1.3.RELEASE]\r\n\tat org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateUsingFactoryMethod(AbstractAutowireCapableBeanFactory.java:1288) [spring-beans-5.1.3.RELEASE.jar:5.1.3.RELEASE]\r\n\tat org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1127) [spring-beans-5.1.3.RELEASE.jar:5.1.3.RELEASE]\r\n\tat org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:538) [spring-beans-5.1.3.RELEASE.jar:5.1.3.RELEASE]\r\n\tat org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:498) [spring-beans-5.1.3.RELEASE.jar:5.1.3.RELEASE]\r\n\tat org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:320) [spring-beans-5.1.3.RELEASE.jar:5.1.3.RELEASE]\r\n\tat org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222) ~[spring-beans-5.1.3.RELEASE.jar:5.1.3.RELEASE]\r\n\tat org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:318) [spring-beans-5.1.3.RELEASE.jar:5.1.3.RELEASE]\r\n\tat org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:199) [spring-beans-5.1.3.RELEASE.jar:5.1.3.RELEASE]\r\n\tat org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:846) ~[spring-beans-5.1.3.RELEASE.jar:5.1.3.RELEASE]\r\n\tat org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:863) ~[spring-context-5.1.3.RELEASE.jar:5.1.3.RELEASE]\r\n\tat org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:546) ~[spring-context-5.1.3.RELEASE.jar:5.1.3.RELEASE]\r\n\tat org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:142) ~[spring-boot-2.1.1.RELEASE.jar:2.1.1.RELEASE]\r\n\tat org.springframework.boot.SpringApplication.refresh(SpringApplication.java:775) ~[spring-boot-2.1.1.RELEASE.jar:2.1.1.RELEASE]\r\n\tat org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:397) ~[spring-boot-2.1.1.RELEASE.jar:2.1.1.RELEASE]\r\n\tat org.springframework.boot.SpringApplication.run(SpringApplication.java:316) ~[spring-boot-2.1.1.RELEASE.jar:2.1.1.RELEASE]\r\n\tat org.springframework.boot.SpringApplication.run(SpringApplication.java:1260) ~[spring-boot-2.1.1.RELEASE.jar:2.1.1.RELEASE]\r\n\tat org.springframework.boot.SpringApplication.run(SpringApplication.java:1248) ~[spring-boot-2.1.1.RELEASE.jar:2.1.1.RELEASE]\r\n\tat com.dhp.device.DeviceApplication.main(DeviceApplication.java:37) ~[classes/:na]`"}}
{"actor":{"display_login":"minhdqvn"}}