sandynz opened a new issue, #37821:
URL: https://github.com/apache/shardingsphere/issues/37821

   ## Bug Report
   
   ### Which version of ShardingSphere did you use?
   master branch
   commit: 3d9fd0d3e825de0305cad2bc140c79dd459b95c3
   
   ### Which project did you use? ShardingSphere-JDBC or ShardingSphere-Proxy?
   proxy
   
   ### Expected behavior
   1. `pg_catalog.gs_job_argument` metadata is complete (Critical)
   2. When metadata is not complete, restarting proxy could start successfully 
(Optional)
   
   ### Actual behavior
   I'm testing on local proxy, and kill proxy sometimes, the latest kill and 
start proxy got error.
   
   1. Stack trace
   
   ```
   [main-EventThread] o.a.c.f.state.ConnectionStateManager - State change: 
CONNECTED
   Exception in thread "main" java.lang.NumberFormatException: Cannot parse 
null string
        at java.base/java.lang.Integer.parseInt(Integer.java:630)
        at java.base/java.lang.Integer.parseInt(Integer.java:786)
        at 
org.apache.shardingsphere.mode.metadata.persist.metadata.service.TableMetaDataPersistEnabledService.load(TableMetaDataPersistEnabledService.java:56)
        at 
org.apache.shardingsphere.mode.metadata.persist.metadata.service.TableMetaDataPersistEnabledService.lambda$load$0(TableMetaDataPersistEnabledService.java:50)
        at 
java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197)
        at 
java.base/java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1625)
        at 
java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509)
        at 
java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499)
        at 
java.base/java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:921)
        at 
java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
        at 
java.base/java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:682)
        at 
org.apache.shardingsphere.mode.metadata.persist.metadata.service.TableMetaDataPersistEnabledService.load(TableMetaDataPersistEnabledService.java:50)
        at 
org.apache.shardingsphere.mode.metadata.persist.metadata.service.SchemaMetaDataPersistService.lambda$load$1(SchemaMetaDataPersistService.java:91)
        at 
java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197)
        at 
java.base/java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1625)
        at 
java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509)
        at 
java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499)
        at 
java.base/java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:921)
        at 
java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
        at 
java.base/java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:682)
        at 
org.apache.shardingsphere.mode.metadata.persist.metadata.service.SchemaMetaDataPersistService.load(SchemaMetaDataPersistService.java:93)
        at 
org.apache.shardingsphere.mode.metadata.factory.init.type.RegisterCenterMetaDataContextsInitFactory.loadSchemas(RegisterCenterMetaDataContextsInitFactory.java:138)
        at 
org.apache.shardingsphere.mode.metadata.factory.init.type.RegisterCenterMetaDataContextsInitFactory.create(RegisterCenterMetaDataContextsInitFactory.java:88)
        at 
org.apache.shardingsphere.mode.metadata.factory.MetaDataContextsFactory.create(MetaDataContextsFactory.java:80)
        at 
org.apache.shardingsphere.mode.manager.cluster.ClusterContextManagerBuilder.build(ClusterContextManagerBuilder.java:63)
        at 
org.apache.shardingsphere.proxy.initializer.BootstrapInitializer.createContextManager(BootstrapInitializer.java:61)
        at 
org.apache.shardingsphere.proxy.initializer.BootstrapInitializer.init(BootstrapInitializer.java:52)
        at org.apache.shardingsphere.proxy.Bootstrap.main(Bootstrap.java:66)
   ```
   
   2. break point `null == 
repository.query(versionNodePath.getActiveVersionPath())` added in 
`TableMetaDataPersistEnabledService.load`:
   
   <img width="2676" height="920" alt="Image" 
src="https://github.com/user-attachments/assets/366a5e6e-db49-4778-9998-89fafa36bfb7";
 />
   
   3. The related node in ZK:
   
   <img width="914" height="402" alt="Image" 
src="https://github.com/user-attachments/assets/4be88427-6888-43b8-8ae8-eb7a5da7ff77";
 />
   
   
   4. Query `pg_catalog.gs_job_argument` on local openGauss:
   
   <img width="1728" height="370" alt="Image" 
src="https://github.com/user-attachments/assets/4a499c5d-288c-4e62-aac7-be68d4ea745b";
 />
   
    
   ### Reason analyze (If you can)
   
   Possible reason: Proxy is persisting metadata nodes, and proxy is killed at 
the moment, it left uncomplete node in ZK.
   
   ### Steps to reproduce the behavior, such as: SQL to execute, sharding rule 
configuration, when exception occur etc.
   
   ### Example codes for reproduce this issue (such as a github link).
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: 
[email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to