项目角色分配

  • Choerodon平台版本:0.13.0

  • 运行环境:自主搭建

  • 问题描述:

    新建项目-> 创建应用都成功了,然后项目角色分配的时候,分配成功,但是事务实例中有失败

以下是详情截图和日志

java.lang.NullPointerException
_ at io.choerodon.devops.app.service.impl.GitlabGroupMemberServiceImpl.operation(GitlabGroupMemberServiceImpl.java:181)_
_ at io.choerodon.devops.app.service.impl.GitlabGroupMemberServiceImpl.lambda$createGitlabGroupMemberRole$1(GitlabGroupMemberServiceImpl.java:74)_
_ at java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:184)_
_ at java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:175)_
_ at java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1382)_
_ at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:481)_
_ at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:471)_
_ at java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:151)_
_ at java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:174)_
_ at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)_
_ at java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:418)_
_ at io.choerodon.devops.app.service.impl.GitlabGroupMemberServiceImpl.createGitlabGroupMemberRole(GitlabGroupMemberServiceImpl.java:67)_
_ at io.choerodon.devops.api.eventhandler.SagaHandler.handleGitlabGroupMemberEvent(SagaHandler.java:164)_
_ 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 io.choerodon.asgard.saga.consumer.SagaConsumer.invoke(SagaConsumer.java:87)_
_ at io.choerodon.asgard.saga.consumer.SagaConsumer.lambda$null$0(SagaConsumer.java:59)_
_ at java.util.concurrent.CompletableFuture$AsyncSupply.run(CompletableFuture.java:1590)_
_ at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)_
_ at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)_
_ at java.lang.Thread.run(Thread.java:748)_

用项目分配的角色用户登录进来后,会出现“当前平台用户同步gitlab用户失败e”的报错信息!

用项目分配的角色登录gitlab,看不到项目应用代码

你创建用户的事务应该失败了吧? iam-create-user

果然创建用户的事务失败了,

看下创建用户为什么失败了 里面应该有报错信息


错误日志如下,应该是gitlab-service服务down掉的原因

java.lang.RuntimeException: com.netflix.client.ClientException: Load balancer does not have available server for client: gitlab-service
_ at org.springframework.cloud.netflix.feign.ribbon.LoadBalancerFeignClient.execute(LoadBalancerFeignClient.java:71)_
_ at feign.SynchronousMethodHandler.executeAndDecode(SynchronousMethodHandler.java:97)_
_ at feign.SynchronousMethodHandler.invoke(SynchronousMethodHandler.java:76)_
_ at feign.ReflectiveFeign$FeignInvocationHandler.invoke(ReflectiveFeign.java:103)_
_ at com.sun.proxy.$Proxy199.queryUserByUserName(Unknown Source)_
_ at io.choerodon.devops.infra.persistence.impl.GitlabUserRepositoryImpl.getUserByUserName(GitlabUserRepositoryImpl.java:42)_
_ at io.choerodon.devops.app.service.impl.GitlabUserServiceImpl.createGitlabUser(GitlabUserServiceImpl.java:37)_
_ at io.choerodon.devops.api.eventhandler.SagaHandler.lambda$handleCreateUserEvent$0(SagaHandler.java:204)_
_ at java.util.ArrayList.forEach(ArrayList.java:1257)_
_ at io.choerodon.devops.api.eventhandler.SagaHandler.handleCreateUserEvent(SagaHandler.java:193)_
_ 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 io.choerodon.asgard.saga.consumer.SagaConsumer.invoke(SagaConsumer.java:87)_
_ at io.choerodon.asgard.saga.consumer.SagaConsumer.lambda$null$0(SagaConsumer.java:59)_
_ at java.util.concurrent.CompletableFuture$AsyncSupply.run(CompletableFuture.java:1590)_
_ at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)_
_ at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)_
_ at java.lang.Thread.run(Thread.java:748)_
Caused by: com.netflix.client.ClientException: Load balancer does not have available server for client: gitlab-service
_ at com.netflix.loadbalancer.LoadBalancerContext.getServerFromLoadBalancer(LoadBalancerContext.java:483)_
_ at com.netflix.loadbalancer.reactive.LoadBalancerCommand$1.call(LoadBalancerCommand.java:184)_
_ at com.netflix.loadbalancer.reactive.LoadBalancerCommand$1.call(LoadBalancerCommand.java:180)_
_ at rx.Observable.unsafeSubscribe(Observable.java:10211)_
_ at rx.internal.operators.OnSubscribeConcatMap.call(OnSubscribeConcatMap.java:94)_
_ at rx.internal.operators.OnSubscribeConcatMap.call(OnSubscribeConcatMap.java:42)_
_ at rx.Observable.unsafeSubscribe(Observable.java:10211)_
_ at rx.internal.operators.OperatorRetryWithPredicate$SourceSubscriber$1.call(OperatorRetryWithPredicate.java:127)_
_ at rx.internal.schedulers.TrampolineScheduler$InnerCurrentThreadScheduler.enqueue(TrampolineScheduler.java:73)_
_ at rx.internal.schedulers.TrampolineScheduler$InnerCurrentThreadScheduler.schedule(TrampolineScheduler.java:52)_
_ at rx.internal.operators.OperatorRetryWithPredicate$SourceSubscriber.onNext(OperatorRetryWithPredicate.java:79)_
_ at rx.internal.operators.OperatorRetryWithPredicate$SourceSubscriber.onNext(OperatorRetryWithPredicate.java:45)_
_ at rx.internal.util.ScalarSynchronousObservable$WeakSingleProducer.request(ScalarSynchronousObservable.java:276)_
_ at rx.Subscriber.setProducer(Subscriber.java:209)_
_ at rx.internal.util.ScalarSynchronousObservable$JustOnSubscribe.call(ScalarSynchronousObservable.java:138)_
_ at rx.internal.util.ScalarSynchronousObservable$JustOnSubscribe.call(ScalarSynchronousObservable.java:129)_
_ at rx.internal.operators.OnSubscribeLift.call(OnSubscribeLift.java:48)_
_ at rx.internal.operators.OnSubscribeLift.call(OnSubscribeLift.java:30)_
_ at rx.internal.operators.OnSubscribeLift.call(OnSubscribeLift.java:48)_
_ at rx.internal.operators.OnSubscribeLift.call(OnSubscribeLift.java:30)_
_ at rx.internal.operators.OnSubscribeLift.call(OnSubscribeLift.java:48)_
_ at rx.internal.operators.OnSubscribeLift.call(OnSubscribeLift.java:30)_
_ at rx.Observable.subscribe(Observable.java:10307)_
_ at rx.Observable.subscribe(Observable.java:10274)_
_ at rx.observables.BlockingObservable.blockForSingle(BlockingObservable.java:445)_
_ at rx.observables.BlockingObservable.single(BlockingObservable.java:342)_
_ at com.netflix.client.AbstractLoadBalancerAwareClient.executeWithLoadBalancer(AbstractLoadBalancerAwareClient.java:117)_
_ at org.springframework.cloud.netflix.feign.ribbon.LoadBalancerFeignClient.execute(LoadBalancerFeignClient.java:63)_
_ … 19 more_

嗯 应该是你之前gitlab没起来的原因 你重试下这个事务

OK,重试之后成功了,非常感谢!