You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@rocketmq.apache.org by GitBox <gi...@apache.org> on 2020/10/29 04:35:13 UTC

[GitHub] [rocketmq] sunjiebin opened a new issue #2384: dLegerPeers Parameter values cannot use the host name or domain name containing "-"

sunjiebin opened a new issue #2384:
URL: https://github.com/apache/rocketmq/issues/2384


   **BUG REPORT**
   
   1. Please describe the issue you observed:
   When i deploy  Dledger cluster deployment , i set the dLegerPeers like this
   **dLegerPeers=n0-nt-node1:40911;n1-nt-node1:40912;n2-nt-node1:40913**
     the _nt-node1_ is my local hostname, I can ping successfully. **but the cluster start failed.**
   ### broker-n:*
   [root@nt-node1 dledger]# cat broker-n0.conf 
   ```
   brokerClusterName = RaftCluster
   brokerName=RaftNode00
   listenPort=30911
   namesrvAddr=127.0.0.1:9876
   storePathRootDir=/tmp/rmqstore/node00
   storePathCommitLog=/tmp/rmqstore/node00/commitlog
   enableDLegerCommitLog=true
   dLegerGroup=RaftNode00
   dLegerPeers=n0-nt-node1:40911;n1-nt-node1:40912;n2-nt-node1:40913
   ## must be unique
   dLegerSelfId=n0
   sendMessageThreadPoolNums=16
   ```
   [root@nt-node1 rocketmq]# cat /etc/hosts
   ```
   127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
   ::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
   192.168.20.75    nt-node1 nt_node1
   ```
   [root@nt-node1 rocketmq]# ifconfig |grep 192.168.20.75
   `        inet 192.168.20.75  netmask 255.255.255.0  broadcast 192.168.20.255`
   
   ### error logs:
   ```
   java.lang.ArrayIndexOutOfBoundsException: 1
           at io.openmessaging.storage.dledger.DLedgerRpcNettyService.<init>(DLedgerRpcNettyService.java:93)
           at io.openmessaging.storage.dledger.DLedgerServer.<init>(DLedgerServer.java:64)
           at org.apache.rocketmq.store.dledger.DLedgerCommitLog.<init>(DLedgerCommitLog.java:88)
           at org.apache.rocketmq.store.DefaultMessageStore.<init>(DefaultMessageStore.java:129)
           at org.apache.rocketmq.broker.BrokerController.initialize(BrokerController.java:243)
           at org.apache.rocketmq.broker.BrokerStartup.createBrokerController(BrokerStartup.java:222)
           at org.apache.rocketmq.broker.BrokerStartup.main(BrokerStartup.java:58)
   ```
   so I tried to changing the hostname from _nt-node1_ to _nt_node1_, or some other host name that does not contain "-"
   for example:
   **dLegerPeers=n0-nt_node1:40911;n1-nt_node1:40912;n2-nt_node1:40913**
   **dLegerPeers=n0-localhost:40911;n1-localhost:40912;n2-localhost:40913**
   **_the cluster start ok~!_**
   
   In the end, I found that if I didn't have a "-" in the hostname, It would boot up successfully
   
   2. Please tell us about your environment:
   Rocketmq version is 4.7.1 
   
   **FEATURE REQUEST**
   
   1. Please describe the feature you are requesting.
   I expect the host name including "-" to be supported by the dLegerPeers parameter
   
   2. Indicate the importance of this issue to you (blocker, must-have, should-have, nice-to-have). Are you currently using any workarounds to address this issue?
   Because I want deploy the  Dledger cluster with k8s statefulset , The pod name generated by k8s must have - ,and the IP address is dynamic and I can't fix it , So I must use hostname with "-"
   I can fix IP by using hostNetwork of K8S, and then fill in the IP in dLegerPeers parameter to avoid this bug. However, in this way, Pod is bound to the host, thus losing flexibility.
   
   


----------------------------------------------------------------
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.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org