Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Seata 2.2.0 Client Start up phase java.lang.NullPointerException: null #6940

Closed
1 task done
ChinaJeckXu opened this issue Oct 22, 2024 · 5 comments · Fixed by #6945 or #6947
Closed
1 task done

Seata 2.2.0 Client Start up phase java.lang.NullPointerException: null #6940

ChinaJeckXu opened this issue Oct 22, 2024 · 5 comments · Fixed by #6945 or #6947

Comments

@ChinaJeckXu
Copy link
Contributor

ChinaJeckXu commented Oct 22, 2024

  • I have searched the issues of this repository and believe that this is not a duplicate.

Ⅰ. Issue Description

Ⅱ. Describe what happened

If there is an exception, please attach the exception trace:

2024-10-22 11:51:27.265  INFO 18969 --- [           main] o.a.s.s.b.a.SeataAutoConfiguration       : Automatically configure Seata
2024-10-22 11:51:27.285  INFO 18969 --- [           main] ServiceLoader$InnerEnhancedServiceLoader : Load compatible class io.seata.spring.annotation.ScannerChecker
2024-10-22 11:51:27.400  INFO 18969 --- [           main] ServiceLoader$InnerEnhancedServiceLoader : Ignore load compatible class io.seata.config.ExtConfigurationProvider, because is not assignable from origin type org.apache.seata.config.ExtConfigurationProvider
2024-10-22 11:51:27.410  INFO 18969 --- [           main] o.a.seata.config.ConfigurationFactory    : load Configuration from :Spring Configuration
2024-10-22 11:51:27.414  INFO 18969 --- [           main] ServiceLoader$InnerEnhancedServiceLoader : Load compatible class io.seata.config.ConfigurationProvider
2024-10-22 11:51:27.425  INFO 18969 --- [           main] o.a.s.config.nacos.NacosConfiguration    : Nacos check auth with userName/password.
2024-10-22 11:51:27.693  INFO 18969 --- [           main] ServiceLoader$InnerEnhancedServiceLoader : Load compatible class io.seata.integration.tx.api.remoting.RemotingParser
2024-10-22 11:51:27.695  INFO 18969 --- [           main] o.a.s.s.a.GlobalTransactionScanner       : Initializing Global Transaction Clients ... 
2024-10-22 11:51:27.977  INFO 18969 --- [           main] ServiceLoader$InnerEnhancedServiceLoader : Load compatible class io.seata.core.auth.AuthSigner
2024-10-22 11:51:28.022  INFO 18969 --- [           main] o.a.s.c.rpc.netty.NettyClientBootstrap   : NettyClientBootstrap has started
2024-10-22 11:51:28.034  INFO 18969 --- [           main] o.a.s.d.registry.RegistryFactory         : use registry center type: nacos
2024-10-22 11:51:28.043  INFO 18969 --- [           main] ServiceLoader$InnerEnhancedServiceLoader : Load compatible class io.seata.discovery.registry.RegistryProvider
2024-10-22 11:51:28.047  INFO 18969 --- [           main] o.a.s.d.r.n.NacosRegistryServiceImpl     : Nacos check auth with userName/password.
2024-10-22 11:51:28.058  INFO 18969 --- [           main] o.a.s.d.r.n.NacosRegistryServiceImpl     : Nacos check auth with userName/password.
2024-10-22 11:51:28.320  INFO 18969 --- [           main] o.a.s.c.r.n.NettyClientChannelManager    : will connect to 192.168.0.229:8094
2024-10-22 11:51:28.325 ERROR 18969 --- [ncesChangeEvent] c.a.nacos.common.notify.NotifyCenter     : Event callback exception: 

java.lang.NullPointerException: null
	at java.base/java.util.concurrent.ConcurrentHashMap.computeIfAbsent(ConcurrentHashMap.java:1690)
	at org.apache.seata.discovery.registry.RegistryService.removeOfflineAddressesIfNecessary(RegistryService.java:159)
	at org.apache.seata.discovery.registry.nacos.NacosRegistryServiceImpl.lambda$lookup$6(NacosRegistryServiceImpl.java:198)
	at com.alibaba.nacos.client.naming.selector.NamingListenerInvoker.invoke(NamingListenerInvoker.java:47)
	at com.alibaba.nacos.client.naming.selector.NamingListenerInvoker.invoke(NamingListenerInvoker.java:33)
	at com.alibaba.nacos.client.selector.AbstractSelectorWrapper.notifyListener(AbstractSelectorWrapper.java:78)
	at com.alibaba.nacos.client.naming.event.InstancesChangeNotifier.onEvent(InstancesChangeNotifier.java:108)
	at com.alibaba.nacos.client.naming.event.InstancesChangeNotifier.onEvent(InstancesChangeNotifier.java:38)
	at com.alibaba.nacos.common.notify.DefaultPublisher.lambda$notifySubscriber$0(DefaultPublisher.java:199)
	at com.alibaba.nacos.common.notify.DefaultPublisher.notifySubscriber(DefaultPublisher.java:206)
	at com.alibaba.nacos.common.notify.DefaultPublisher.receiveEvent(DefaultPublisher.java:190)
	at com.alibaba.nacos.common.notify.DefaultPublisher.openEventHandler(DefaultPublisher.java:112)
	at com.alibaba.nacos.common.notify.DefaultPublisher.run(DefaultPublisher.java:95)

2024-10-22 11:51:28.332  INFO 18969 --- [           main] o.a.s.c.rpc.netty.NettyPoolableFactory   : NettyPool create channel to transactionRole:TMROLE,address:192.168.0.229:8094,msg:< RegisterTMRequest{version='2.2.0', applicationId='card-universal-sass-system-server', transactionServiceGroup='card-universal-sass-system-server-group', extraData='ak=null
digest=card-universal-sass-system-server-group,192.168.2.7,1729569088328
timestamp=1729569088328
authVersion=V4
vgroup=card-universal-sass-system-server-group
ip=192.168.2.7
'} >
[13.440s][info][gc,start      ] GC(9) Pause Young (Normal) (GCLocker Initiated GC)
[13.440s][info][gc,task       ] GC(9) Using 4 workers of 4 for evacuation
[13.469s][info][gc,phases     ] GC(9)   Pre Evacuate Collection Set: 0.0ms
[13.469s][info][gc,phases     ] GC(9)   Evacuate Collection Set: 24.0ms
[13.469s][info][gc,phases     ] GC(9)   Post Evacuate Collection Set: 4.3ms
[13.469s][info][gc,phases     ] GC(9)   Other: 0.3ms
[13.469s][info][gc,heap       ] GC(9) Eden regions: 593->0(578)
[13.469s][info][gc,heap       ] GC(9) Survivor regions: 21->36(77)
[13.469s][info][gc,heap       ] GC(9) Old regions: 18->18
[13.469s][info][gc,heap       ] GC(9) Archive regions: 0->0
[13.469s][info][gc,heap       ] GC(9) Humongous regions: 2->2
[13.469s][info][gc,metaspace  ] GC(9) Metaspace: 76819K(78464K)->76819K(78464K) NonClass: 67552K(68608K)->67552K(68608K) Class: 9267K(9856K)->9267K(9856K)
[13.469s][info][gc            ] GC(9) Pause Young (Normal) (GCLocker Initiated GC) 633M->54M(1024M) 28.571ms
[13.469s][info][gc,cpu        ] GC(9) User=0.09s Sys=0.01s Real=0.03s
[13.469s][info][gc,stringdedup] Concurrent String Deduplication (13.469s)
[13.472s][info][gc,stringdedup] Concurrent String Deduplication 115.1K->19536.0B(98352.0B) avg 47.6% (13.469s, 13.472s) 1.396ms
2024-10-22 11:51:28.596  INFO 18969 --- [ctor_TMROLE_1_1] ServiceLoader$InnerEnhancedServiceLoader : Load compatible class io.seata.core.serializer.Serializer
2024-10-22 11:51:28.645  INFO 18969 --- [           main] o.a.s.c.rpc.netty.TmNettyRemotingClient  : register TM success. client version:2.2.0, server version:2.2.0,channel:[id: 0xc1a623c8, L:/192.168.2.7:56707 - R:/192.168.0.229:8094]
2024-10-22 11:51:28.652  INFO 18969 --- [           main] o.a.s.c.rpc.netty.NettyPoolableFactory   : register success, cost 137 ms, version:2.2.0,role:TMROLE,channel:[id: 0xc1a623c8, L:/192.168.2.7:56707 - R:/192.168.0.229:8094]
2024-10-22 11:51:28.653  INFO 18969 --- [           main] o.a.s.c.r.n.NettyClientChannelManager    : will connect to 192.168.0.229:8096
2024-10-22 11:51:28.653  INFO 18969 --- [           main] o.a.s.c.rpc.netty.NettyPoolableFactory   : NettyPool create channel to transactionRole:TMROLE,address:192.168.0.229:8096,msg:< RegisterTMRequest{version='2.2.0', applicationId='card-universal-sass-system-server', transactionServiceGroup='card-universal-sass-system-server-group', extraData='ak=null
digest=card-universal-sass-system-server-group,192.168.2.7,1729569088653
timestamp=1729569088653
authVersion=V4
vgroup=card-universal-sass-system-server-group
ip=192.168.2.7
'} >
2024-10-22 11:51:28.667  INFO 18969 --- [           main] o.a.s.c.rpc.netty.TmNettyRemotingClient  : register TM success. client version:2.2.0, server version:2.2.0,channel:[id: 0xa18e2c4c, L:/192.168.2.7:56708 - R:/192.168.0.229:8096]
2024-10-22 11:51:28.668  INFO 18969 --- [           main] o.a.s.c.rpc.netty.NettyPoolableFactory   : register success, cost 10 ms, version:2.2.0,role:TMROLE,channel:[id: 0xa18e2c4c, L:/192.168.2.7:56708 - R:/192.168.0.229:8096]
2024-10-22 11:51:28.668  INFO 18969 --- [           main] o.a.s.c.r.n.NettyClientChannelManager    : will connect to 192.168.0.229:8095
2024-10-22 11:51:28.669  INFO 18969 --- [           main] o.a.s.c.rpc.netty.NettyPoolableFactory   : NettyPool create channel to transactionRole:TMROLE,address:192.168.0.229:8095,msg:< RegisterTMRequest{version='2.2.0', applicationId='card-universal-sass-system-server', transactionServiceGroup='card-universal-sass-system-server-group', extraData='ak=null
digest=card-universal-sass-system-server-group,192.168.2.7,1729569088668
timestamp=1729569088668
authVersion=V4
vgroup=card-universal-sass-system-server-group
ip=192.168.2.7
'} >
2024-10-22 11:51:28.687  INFO 18969 --- [           main] o.a.s.c.rpc.netty.TmNettyRemotingClient  : register TM success. client version:2.2.0, server version:2.2.0,channel:[id: 0x7e02c0f4, L:/192.168.2.7:56709 - R:/192.168.0.229:8095]
2024-10-22 11:51:28.688  INFO 18969 --- [           main] o.a.s.c.rpc.netty.NettyPoolableFactory   : register success, cost 14 ms, version:2.2.0,role:TMROLE,channel:[id: 0x7e02c0f4, L:/192.168.2.7:56709 - R:/192.168.0.229:8095]
2024-10-22 11:51:28.689  INFO 18969 --- [           main] o.a.s.s.a.GlobalTransactionScanner       : Transaction Manager Client is initialized. applicationId[card-universal-sass-system-server] txServiceGroup[card-universal-sass-system-server-group]
2024-10-22 11:51:28.749  INFO 18969 --- [           main] ServiceLoader$InnerEnhancedServiceLoader : Load compatible class io.seata.core.model.ResourceManager
2024-10-22 11:51:28.766  INFO 18969 --- [           main] o.a.seata.rm.datasource.AsyncWorker      : Async Commit Buffer Limit: 10000
2024-10-22 11:51:28.767  INFO 18969 --- [           main] o.a.s.r.datasource.xa.ResourceManagerXA  : ResourceManagerXA init ...
2024-10-22 11:51:28.779  INFO 18969 --- [           main] o.a.s.c.rpc.netty.NettyClientBootstrap   : NettyClientBootstrap has started
2024-10-22 11:51:28.780  INFO 18969 --- [           main] o.a.s.s.a.GlobalTransactionScanner       : Resource Manager is initialized. applicationId[card-universal-sass-system-server] txServiceGroup[card-universal-sass-system-server-group]
2024-10-22 11:51:28.780  INFO 18969 --- [           main] o.a.s.s.a.GlobalTransactionScanner       : Global Transaction Clients are initialized. 

Ⅲ. Describe what you expected to happen

Ⅳ. How to reproduce it (as minimally and precisely as possible)

  1. xxx
  2. xxx
  3. xxx

Minimal yet complete reproducer code (or URL to code):

Ⅴ. Anything else we need to know?

Ⅵ. Environment:

  • JDK version(e.g. java -version): 11.0.24
  • Seata client/server version: 2.2.0/2.2.0
  • Database version: Mysql-8.4.2
  • OS(e.g. uname -a): Mac、Linux
  • Others:
@ChinaJeckXu ChinaJeckXu changed the title Start up phase java.lang.NullPointerException: null Seata 2.2.0 Client Start up phase java.lang.NullPointerException: null Oct 22, 2024
@ChinaJeckXu
Copy link
Contributor Author

经过测试,确认当前2.X分支也存在上述问题
2024-10-22 13:35:18.148 INFO 31020 --- [ main] o.a.s.s.b.a.SeataAutoConfiguration : Automatically configure Seata
2024-10-22 13:35:18.170 INFO 31020 --- [ main] ServiceLoader$InnerEnhancedServiceLoader : Load compatible class io.seata.spring.annotation.ScannerChecker
2024-10-22 13:35:18.299 INFO 31020 --- [ main] ServiceLoader$InnerEnhancedServiceLoader : Ignore load compatible class io.seata.config.ExtConfigurationProvider, because is not assignable from origin type org.apache.seata.config.ExtConfigurationProvider
2024-10-22 13:35:18.310 INFO 31020 --- [ main] o.a.seata.config.ConfigurationFactory : load Configuration from :Spring Configuration
2024-10-22 13:35:18.314 INFO 31020 --- [ main] ServiceLoader$InnerEnhancedServiceLoader : Load compatible class io.seata.config.ConfigurationProvider
2024-10-22 13:35:18.326 INFO 31020 --- [ main] o.a.s.config.nacos.NacosConfiguration : Nacos check auth with userName/password.
2024-10-22 13:35:18.596 INFO 31020 --- [ main] ServiceLoader$InnerEnhancedServiceLoader : Load compatible class io.seata.integration.tx.api.remoting.RemotingParser
2024-10-22 13:35:18.599 INFO 31020 --- [ main] o.a.s.s.a.GlobalTransactionScanner : Initializing Global Transaction Clients ...
2024-10-22 13:35:18.921 INFO 31020 --- [ main] ServiceLoader$InnerEnhancedServiceLoader : Load compatible class io.seata.core.auth.AuthSigner
2024-10-22 13:35:18.961 INFO 31020 --- [ main] o.a.s.c.rpc.netty.NettyClientBootstrap : NettyClientBootstrap has started
2024-10-22 13:35:18.973 INFO 31020 --- [ main] o.a.s.d.registry.RegistryFactory : use registry center type: nacos
2024-10-22 13:35:18.984 INFO 31020 --- [ main] ServiceLoader$InnerEnhancedServiceLoader : Load compatible class io.seata.discovery.registry.RegistryProvider
2024-10-22 13:35:18.988 INFO 31020 --- [ main] o.a.s.d.r.n.NacosRegistryServiceImpl : Nacos check auth with userName/password.
2024-10-22 13:35:19.008 INFO 31020 --- [ main] o.a.s.d.r.n.NacosRegistryServiceImpl : Nacos check auth with userName/password.
2024-10-22 13:35:19.307 INFO 31020 --- [ main] o.a.s.c.r.n.NettyClientChannelManager : will connect to 192.168.0.229:8094
2024-10-22 13:35:19.310 ERROR 31020 --- [ncesChangeEvent] c.a.nacos.common.notify.NotifyCenter : Event callback exception:

java.lang.NullPointerException: null
at java.base/java.util.concurrent.ConcurrentHashMap.computeIfAbsent(ConcurrentHashMap.java:1690)
at org.apache.seata.discovery.registry.RegistryService.removeOfflineAddressesIfNecessary(RegistryService.java:159)
at org.apache.seata.discovery.registry.nacos.NacosRegistryServiceImpl.lambda$lookup$6(NacosRegistryServiceImpl.java:198)
at com.alibaba.nacos.client.naming.selector.NamingListenerInvoker.invoke(NamingListenerInvoker.java:47)
at com.alibaba.nacos.client.naming.selector.NamingListenerInvoker.invoke(NamingListenerInvoker.java:33)
at com.alibaba.nacos.client.selector.AbstractSelectorWrapper.notifyListener(AbstractSelectorWrapper.java:78)
at com.alibaba.nacos.client.naming.event.InstancesChangeNotifier.onEvent(InstancesChangeNotifier.java:108)
at com.alibaba.nacos.client.naming.event.InstancesChangeNotifier.onEvent(InstancesChangeNotifier.java:38)
at com.alibaba.nacos.common.notify.DefaultPublisher.lambda$notifySubscriber$0(DefaultPublisher.java:199)
at com.alibaba.nacos.common.notify.DefaultPublisher.notifySubscriber(DefaultPublisher.java:206)
at com.alibaba.nacos.common.notify.DefaultPublisher.receiveEvent(DefaultPublisher.java:190)
at com.alibaba.nacos.common.notify.DefaultPublisher.openEventHandler(DefaultPublisher.java:112)
at com.alibaba.nacos.common.notify.DefaultPublisher.run(DefaultPublisher.java:95)

2024-10-22 13:35:19.315 INFO 31020 --- [ main] o.a.s.c.rpc.netty.NettyPoolableFactory : NettyPool create channel to transactionRole:TMROLE,address:192.168.0.229:8094,msg:< RegisterTMRequest{version='2.3.0-SNAPSHOT', applicationId='card-universal-sass-system-server', transactionServiceGroup='card-universal-sass-system-server-group', extraData='ak=null
digest=card-universal-sass-system-server-group,192.168.2.7,1729575319312
timestamp=1729575319312
authVersion=V4
vgroup=card-universal-sass-system-server-group
ip=192.168.2.7
'} >
2024-10-22 13:35:19.654 INFO 31020 --- [ctor_TMROLE_1_1] ServiceLoader$InnerEnhancedServiceLoader : Load compatible class io.seata.core.serializer.Serializer
2024-10-22 13:35:19.696 INFO 31020 --- [ main] o.a.s.c.rpc.netty.TmNettyRemotingClient : register TM success. client version:2.3.0-SNAPSHOT, server version:2.2.0,channel:[id: 0xba965ffb, L:/192.168.2.7:58573 - R:/192.168.0.229:8094]
2024-10-22 13:35:19.704 INFO 31020 --- [ main] o.a.s.c.rpc.netty.NettyPoolableFactory : register success, cost 161 ms, version:2.2.0,role:TMROLE,channel:[id: 0xba965ffb, L:/192.168.2.7:58573 - R:/192.168.0.229:8094]
2024-10-22 13:35:19.706 INFO 31020 --- [ main] o.a.s.c.r.n.NettyClientChannelManager : will connect to 192.168.0.229:8096
2024-10-22 13:35:19.707 INFO 31020 --- [ main] o.a.s.c.rpc.netty.NettyPoolableFactory : NettyPool create channel to transactionRole:TMROLE,address:192.168.0.229:8096,msg:< RegisterTMRequest{version='2.3.0-SNAPSHOT', applicationId='card-universal-sass-system-server', transactionServiceGroup='card-universal-sass-system-server-group', extraData='ak=null
digest=card-universal-sass-system-server-group,192.168.2.7,1729575319707
timestamp=1729575319707
authVersion=V4
vgroup=card-universal-sass-system-server-group
ip=192.168.2.7
'} >
2024-10-22 13:35:19.722 INFO 31020 --- [ main] o.a.s.c.rpc.netty.TmNettyRemotingClient : register TM success. client version:2.3.0-SNAPSHOT, server version:2.2.0,channel:[id: 0xd49b833f, L:/192.168.2.7:58574 - R:/192.168.0.229:8096]
2024-10-22 13:35:19.722 INFO 31020 --- [ main] o.a.s.c.rpc.netty.NettyPoolableFactory : register success, cost 11 ms, version:2.2.0,role:TMROLE,channel:[id: 0xd49b833f, L:/192.168.2.7:58574 - R:/192.168.0.229:8096]
2024-10-22 13:35:19.722 INFO 31020 --- [ main] o.a.s.c.r.n.NettyClientChannelManager : will connect to 192.168.0.229:8095
2024-10-22 13:35:19.723 INFO 31020 --- [ main] o.a.s.c.rpc.netty.NettyPoolableFactory : NettyPool create channel to transactionRole:TMROLE,address:192.168.0.229:8095,msg:< RegisterTMRequest{version='2.3.0-SNAPSHOT', applicationId='card-universal-sass-system-server', transactionServiceGroup='card-universal-sass-system-server-group', extraData='ak=null
digest=card-universal-sass-system-server-group,192.168.2.7,1729575319722
timestamp=1729575319722
authVersion=V4
vgroup=card-universal-sass-system-server-group
ip=192.168.2.7
'} >
2024-10-22 13:35:19.736 INFO 31020 --- [ main] o.a.s.c.rpc.netty.TmNettyRemotingClient : register TM success. client version:2.3.0-SNAPSHOT, server version:2.2.0,channel:[id: 0xb5b0eaae, L:/192.168.2.7:58575 - R:/192.168.0.229:8095]
2024-10-22 13:35:19.737 INFO 31020 --- [ main] o.a.s.c.rpc.netty.NettyPoolableFactory : register success, cost 11 ms, version:2.2.0,role:TMROLE,channel:[id: 0xb5b0eaae, L:/192.168.2.7:58575 - R:/192.168.0.229:8095]
2024-10-22 13:35:19.738 INFO 31020 --- [ main] o.a.s.s.a.GlobalTransactionScanner : Transaction Manager Client is initialized. applicationId[card-universal-sass-system-server] txServiceGroup[card-universal-sass-system-server-group]
2024-10-22 13:35:19.792 INFO 31020 --- [ main] ServiceLoader$InnerEnhancedServiceLoader : Load compatible class io.seata.core.model.ResourceManager
2024-10-22 13:35:19.806 INFO 31020 --- [ main] o.a.seata.rm.datasource.AsyncWorker : Async Commit Buffer Limit: 10000
2024-10-22 13:35:19.807 INFO 31020 --- [ main] o.a.s.r.datasource.xa.ResourceManagerXA : ResourceManagerXA init ...
2024-10-22 13:35:19.819 INFO 31020 --- [ main] o.a.s.c.rpc.netty.NettyClientBootstrap : NettyClientBootstrap has started
2024-10-22 13:35:19.819 INFO 31020 --- [ main] o.a.s.s.a.GlobalTransactionScanner : Resource Manager is initialized. applicationId[card-universal-sass-system-server] txServiceGroup[card-universal-sass-system-server-group]
2024-10-22 13:35:19.819 INFO 31020 --- [ main] o.a.s.s.a.GlobalTransactionScanner : Global Transaction Clients are initialized.

@ChinaJeckXu
Copy link
Contributor Author

After investigation, it was found that the transactionServiceGroup at line 84 of NacosRegistryServiceImpl is null, which should be corrected for line 195
removeOfflineAddressesIfNecessary(transactionServiceGroup, clusterName, newAddressList);
Change to:
if (StringUtils.isNotEmpty(transactionServiceGroup)) { removeOfflineAddressesIfNecessary(transactionServiceGroup, clusterName, newAddressList); }

@ChinaJeckXu
Copy link
Contributor Author

@laywin

@slievrly
Copy link
Member

@ChinaJeckXu Why is transactionServiceGroup null? Is the configuration missing?
But anyway, here is the need for a non-empty judgment, welcome to fix.

@laywin
Copy link
Contributor

laywin commented Oct 24, 2024

i have looked at the case , there is a low level problem for it, i will fix it.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
3 participants