rocketmq-clients icon indicating copy to clipboard operation
rocketmq-clients copied to clipboard

[Rocketmq-client-nodejs] Error: 1 CANCELLED: Call cancelled

Open easyfrog opened this issue 1 year ago • 4 comments

Before Creating the Bug Report

  • [X] I found a bug, not just asking a question, which should be created in GitHub Discussions.

  • [X] I have searched the GitHub Issues and GitHub Discussions of this repository and believe that this is not a duplicate.

  • [X] I have confirmed that this bug belongs to the current repository, not other repositories of RocketMQ.

Programming Language of the Client

Node.js

Runtime Platform Environment

macOD: 13.6.6 (22G630)

RocketMQ Version of the Client/Server

https://github.com/Xuchengen/rocketmq-docker-build

5.1.3

Run or Compiler Version

No response

Describe the Bug

Use rocketmq-client-nodejs, clean nodejs project , emit Error: 1 CANCELLED: Call cancelled

Rocketmq is in docker: version is 5.1.3 docker image: https://github.com/Xuchengen/rocketmq-docker-build

start rocketmq docker script:

#!/bin/bash
# 参数:console端口
vport=8180
# 参数:java程序连接端口
mainPort=9876
# 参数:java程序连接IP
mainIp=192.168.1.8

cId=$(
    docker run -e NAMESRV_XMS=128m -e NAMESRV_XMX=128m -e NAMESRV_XMN=128m \
    -e BROKER_XMS=128m -e BROKER_XMX=128m -e BROKER_XMN=128m -e BROKER_MDM=128m \
    -e NAMESRV_ADDR=$mainIp:$mainPort \
    -itd --hostname rocketmq --restart=always \
    -p $vport:8080 -p $mainPort:$mainPort -p 10909:10909 -p 10911:10911 -p 10912:10912 \
    --name rocketmq xuchengen/rocketmq:latest
)
docker exec -it $cId /bin/bash -c "sed -i 's/localhost:9876/$mainIp:$mainPort \-c \$ROCKETMQ_HOME\/conf\/broker.conf /g' .run.sh"
docker exec -it $cId /bin/bash -c "echo \"namesrvAddr=$mainIp:$mainPort\" >> \$ROCKETMQ_HOME/conf/broker.conf"
docker exec -it $cId /bin/bash -c "echo \"brokerIP1=$mainIp\" >> /home/app/rocketmq/conf/broker.conf"
docker restart $cId

started success!

here is rokcet-console screenshot:

image

now I init a nodejs project and npm install rocketmq-client-ndoejs like this:

iShot_2024-03-29_13 04 14

the code is offical exmaple code in this page : https://www.npmjs.com/package/rocketmq-client-nodejs I only modify the endpoints part to my cluster url

and then run this index.js file, I got this error:

> node index                  
node:internal/process/esm_loader:40
      internalBinding('errors').triggerUncaughtException(
                                ^

Error: Startup the rocketmq client failed, clientId=ztcmbp.local@11079@0@luc6ohqz, error=Error: 1 CANCELLED: Call cancelled
    at SimpleConsumer.startup (/Users/easyfrog/work/rocketmq-test/node_modules/rocketmq-client-nodejs/dist/client/BaseClient.js:83:25)
    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
    at async file:///Users/easyfrog/work/rocketmq-test/index.js:9:1 {
  cause: Error: 1 CANCELLED: Call cancelled
      at callErrorFromStatus (/Users/easyfrog/work/rocketmq-test/node_modules/@grpc/grpc-js/build/src/call.js:31:19)
      at Object.onReceiveStatus (/Users/easyfrog/work/rocketmq-test/node_modules/@grpc/grpc-js/build/src/client.js:192:76)
      at Object.onReceiveStatus (/Users/easyfrog/work/rocketmq-test/node_modules/@grpc/grpc-js/build/src/client-interceptors.js:360:141)
      at Object.onReceiveStatus (/Users/easyfrog/work/rocketmq-test/node_modules/@grpc/grpc-js/build/src/client-interceptors.js:323:181)
      at /Users/easyfrog/work/rocketmq-test/node_modules/@grpc/grpc-js/build/src/resolving-call.js:99:78
      at process.processTicksAndRejections (node:internal/process/task_queues:77:11)
  for call at
      at ServiceClientImpl.makeUnaryRequest (/Users/easyfrog/work/rocketmq-test/node_modules/@grpc/grpc-js/build/src/client.js:160:32)
      at ServiceClientImpl.queryRoute (/Users/easyfrog/work/rocketmq-test/node_modules/@grpc/grpc-js/build/src/make-client.js:105:19)
      at /Users/easyfrog/work/rocketmq-test/node_modules/rocketmq-client-nodejs/dist/client/RpcClient.js:54:20
      at new Promise (<anonymous>)
      at RpcClient.queryRoute (/Users/easyfrog/work/rocketmq-test/node_modules/rocketmq-client-nodejs/dist/client/RpcClient.js:53:16)
      at RpcClientManager.queryRoute (/Users/easyfrog/work/rocketmq-test/node_modules/rocketmq-client-nodejs/dist/client/RpcClientManager.js:66:32)
      at #fetchTopicRoute (/Users/easyfrog/work/rocketmq-test/node_modules/rocketmq-client-nodejs/dist/client/BaseClient.js:178:54)
      at SimpleConsumer.updateRoutes (/Users/easyfrog/work/rocketmq-test/node_modules/rocketmq-client-nodejs/dist/client/BaseClient.js:163:40)
      at #startup (/Users/easyfrog/work/rocketmq-test/node_modules/rocketmq-client-nodejs/dist/client/BaseClient.js:92:20)
      at SimpleConsumer.startup (/Users/easyfrog/work/rocketmq-test/node_modules/rocketmq-client-nodejs/dist/client/BaseClient.js:80:32) {
    code: 1,
    details: 'Call cancelled',
    metadata: Metadata { internalRepr: Map(0) {}, options: {} }
  }
}

Node.js v20.8.0

** error=Error: 1 CANCELLED: Call cancelled**

so how to fix it. It is realy a base clean project. and it can not run properly.

Steps to Reproduce

like above

What Did You Expect to See?

run success

What Did You See Instead?

an error occurred

Additional Context

No response

easyfrog avatar Mar 29 '24 05:03 easyfrog

here is broker.conf in docker

"broker.conf" 24L, 1000C
  1 # Licensed to the Apache Software Foundation (ASF) under one or more
  2 # contributor license agreements.  See the NOTICE file distributed with
  3 # this work for additional information regarding copyright ownership.
  4 # The ASF licenses this file to You under the Apache License, Version 2.0
  5 # (the "License"); you may not use this file except in compliance with
  6 # the License.  You may obtain a copy of the License at
  7 #
  8 #     http://www.apache.org/licenses/LICENSE-2.0
  9 #
 10 #  Unless required by applicable law or agreed to in writing, software
 11 #  distributed under the License is distributed on an "AS IS" BASIS,
 12 #  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 13 #  See the License for the specific language governing permissions and
 14 #  limitations under the License.
 15
 16 brokerClusterName = DefaultCluster
 17 brokerName = broker-a
 18 brokerId = 0
 19 deleteWhen = 04
 20 fileReservedTime = 48
 21 brokerRole = ASYNC_MASTER
 22 flushDiskType = ASYNC_FLUSH
 23 namesrvAddr=192.168.1.8:9876
 24 brokerIP1=192.168.1.8

here is the start mq* in docker:

 1 #!/bin/bash
  2 
  3 # start mqnamesrv service
  4 nohup $ROCKETMQ_HOME/bin/mqnamesrv > /dev/null 2>&1 &
  5 echo "[34m~Pm~J[m~Zmqnamesrv"
  6 
  7 # start mqbroker service
  8 nohup $ROCKETMQ_HOME/bin/mqbroker -n 192.168.1.8:9876 -c $ROCKETMQ_HOME/conn
    f/broker.conf  > /dev/null 2>&1 &
  9 echo "[34m~Pm~J[m~Zmqbroker"
 10 
 11 # start console service
 12 cd $CONSOLE_HOME
 13 nohup  java -jar rocketmq-console.jar > /dev/null 2>&1 &

easyfrog avatar Mar 29 '24 05:03 easyfrog

use this docker-compose.yml

version: "3"
services:
  #Service for nameserver
  rmqnamesrv:
    image: apache/rocketmq:5.1.3
    container_name: rmqnamesrv
    ports:
      - 9876:9876
    environment:
      JAVA_OPT_EXT: "-server -Xms512M -Xmx512M -Xmn128m"
    volumes:
      - ./data/namesrv/logs:/home/rocketmq/logs
    command: sh mqnamesrv
    restart: unless-stopped

  rmqbroker:
    image: apache/rocketmq:5.1.3
    container_name: rmqbroker
    depends_on:
      - rmqnamesrv
    ports:
      - 10909:10909
      - 10911:10911
      - 10912:10912
    environment:
      NAMESRV_ADDR: "rmqnamesrv:9876"
      JAVA_OPTS: " -Duser.home=/opt"
      JAVA_OPT_EXT: "-server -Xms512M -Xmx512M -Xmn128m"
    volumes:
      - ./data/broker/logs:/home/rocketmq/logs
      - ./data/broker/store:/home/rocketmq/store
      - ./conf/broker.conf:/opt/conf/broker.conf
    command: sh mqbroker autoCreateTopicEnable=true -c /opt/conf/broker.conf 

  rmqproxy:
    image: apache/rocketmq:5.1.3
    container_name: rmqproxy
    depends_on:
      - rmqnamesrv
    ports:
      - 8081:8081
    environment:
      NAMESRV_ADDR: "rmqnamesrv:9876"
      JAVA_OPTS: " -Duser.home=/opt"
      JAVA_OPT_EXT: "-server -Xms512M -Xmx512M -Xmn128m"
    volumes:
      - ./data/proxy/logs:/home/rocketmq/logs
      - ./data/proxy/store:/home/rocketmq/store
      - ./conf/proxy.conf:/opt/conf/proxy.conf
    command: sh mqbroker autoCreateTopicEnable=true -c /opt/conf/proxy.conf --enable-proxy
  
  dashbord:
    image: apacherocketmq/rocketmq-dashboard:1.0.0
    ports:
      - 18080:8080
    environment:
        JAVA_OPTS: "-Drocketmq.namesrv.addr=rmqnamesrv:9876 -Dcom.rocketmq.sendMessageWithVIPChannel=false -Duser.timezone='Asia/Shanghai'"
    depends_on:
      - rmqnamesrv

this consumer code:

import { SimpleConsumer } from "rocketmq-client-nodejs";

async function main() {
    const simpleConsumer = new SimpleConsumer({
        consumerGroup: 'lanshan',
        endpoints: '192.168.1.8:8081',
        subscriptions: new Map().set('lanshan', 'gps'),
    });
    await simpleConsumer.startup();

    const messages = await simpleConsumer.receive(20);
    console.log('got %d messages', messages.length);
    for (const message of messages) {
        console.log(message);
        console.log('body=%o', message.body.toString());
        await simpleConsumer.ack(message);
    }
}

main().catch(err => console.error(err));

GOT this error!

InternalErrorException: [request-id=undefined, response-code=50001] null. NullPointerException. org.apache.rocketmq.proxy.service.route.LocalTopicRouteService.toTopicRouteData(LocalTopicRouteService.java:102)
    at StatusChecker.check (D:\works\rocketmq-test\node_modules\rocketmq-client-nodejs\dist\exception\StatusChecker.js:83:23)   
    at SimpleConsumer.receiveMessage (D:\works\rocketmq-test\node_modules\rocketmq-client-nodejs\dist\consumer\Consumer.js:64:35)
    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
    at async SimpleConsumer.receive (D:\works\rocketmq-test\node_modules\rocketmq-client-nodejs\dist\consumer\SimpleConsumer.js:95:16)
    at async main (file:///D:/works/rocketmq-test/index.js:11:22) {
  code: 50001
}

easyfrog avatar Apr 01 '24 02:04 easyfrog

同样遇到此问题,导致我无法在nestjs中跑起来,无法发布消息

Luwei199169 avatar Apr 08 '24 02:04 Luwei199169

I also encountered this problem, have you solved it now?

JanYork avatar May 01 '24 07:05 JanYork

This issue is stale because it has been open for 30 days with no activity. It will be closed in 3 days if no further activity occurs.

github-actions[bot] avatar Jun 01 '24 00:06 github-actions[bot]

This issue was closed because it has been inactive for 3 days since being marked as stale.

github-actions[bot] avatar Jun 05 '24 00:06 github-actions[bot]