oleksiyk / kafka

Apache Kafka 0.9 client for Node
MIT License
297 stars 85 forks source link

Simple producer throws error - Trying to access buffer beyond range #44

Closed ghost closed 8 years ago

ghost commented 8 years ago

I am trying a simple Producer example with no-kakfa versioned 2.4.1. The entire code is as,

var Kafka = require('no-kafka');
var producer = new Kafka.Producer()

return producer.init().then(function(){
  return producer.send({
      topic: 'kafka-test-topic',
      partition: 0,
      message: {
          value: 'Hello!'
      }
  });
})
.then(function (result) {
  console.log('the kafka s post send result is ', result)
});

And it throws exception as,

Unhandled rejection RangeError: Trying to access beyond buffer length
    at checkOffset (buffer.js:582:11)
    at Buffer.readInt32BE (buffer.js:667:5)
    at _Reader.define.read (/home/sk/ws/express/node-postgres-todo/node_modules/no-kafka/node_modules/bin-protocol/lib/index.js:101:47)
    at _Reader._read (/home/sk/ws/express/node-postgres-todo/node_modules/no-kafka/node_modules/bin-protocol/lib/reader.js:42:12)
    at apply (/home/sk/ws/express/node-postgres-todo/node_modules/no-kafka/node_modules/lodash/lodash.js:427:27)
    at _Reader.wrapper (/home/sk/ws/express/node-postgres-todo/node_modules/no-kafka/node_modules/lodash/lodash.js:4675:16)
    at _Reader.Protocol.define.read (/home/sk/ws/express/node-postgres-todo/node_modules/no-kafka/lib/protocol/produce.js:72:14)
    at _Reader._read (/home/sk/ws/express/node-postgres-todo/node_modules/no-kafka/node_modules/bin-protocol/lib/reader.js:42:12)
    at apply (/home/sk/ws/express/node-postgres-todo/node_modules/no-kafka/node_modules/lodash/lodash.js:426:27)
    at _Reader.wrapper [as ProduceResponse] (/home/sk/ws/express/node-postgres-todo/node_modules/no-kafka/node_modules/lodash/lodash.js:4675:16)
    at /home/sk/ws/express/node-postgres-todo/node_modules/no-kafka/lib/client.js:294:67
    at tryCatcher (/home/sk/ws/express/node-postgres-todo/node_modules/no-kafka/node_modules/bluebird/js/release/util.js:16:23)
    at Promise._settlePromiseFromHandler (/home/sk/ws/express/node-postgres-todo/node_modules/no-kafka/node_modules/bluebird/js/release/promise.js:503:31)
    at Promise._settlePromise (/home/sk/ws/express/node-postgres-todo/node_modules/no-kafka/node_modules/bluebird/js/release/promise.js:560:18)
    at Promise._settlePromise0 (/home/sk/ws/express/node-postgres-todo/node_modules/no-kafka/node_modules/bluebird/js/release/promise.js:605:10)
    at Promise._settlePromises (/home/sk/ws/express/node-postgres-todo/node_modules/no-kafka/node_modules/bluebird/js/release/promise.js:684:18)
    at Async._drainQueue (/home/sk/ws/express/node-postgres-todo/node_modules/no-kafka/node_modules/bluebird/js/release/async.js:126:16)
    at Async._drainQueues (/home/sk/ws/express/node-postgres-todo/node_modules/no-kafka/node_modules/bluebird/js/release/async.js:136:10)
    at Async.drainQueues (/home/sk/ws/express/node-postgres-todo/node_modules/no-kafka/node_modules/bluebird/js/release/async.js:16:14)
    at process._tickCallback (node.js:419:13)

Am i missing something here?

oleksiyk commented 8 years ago

Please share your Kafka server.properties config.

ghost commented 8 years ago

sure, server.properties file looks like,

broker.id=0
port=9092
#host.name=sk-box
advertised.host.name=sk-box
num.network.threads=3
num.io.threads=8
socket.send.buffer.bytes=102400
socket.receive.buffer.bytes=102400
socket.request.max.bytes=104857600
log.dirs=/tmp/kafka-logs
num.partitions=1
num.recovery.threads.per.data.dir=1
log.retention.hours=1
log.segment.bytes=1073741824
log.retention.check.interval.ms=300000
log.cleaner.enable=false
zookeeper.connect=localhost:2181
zookeeper.connection.timeout.ms=6000
delete.topic.enable=true
auto.create.topics.enable=true
auto.offset.reset=true
topic.metadata.refresh.interval.ms=0
message.send.max.retries=10

I think, my kafka is a bit old. And its version is either 0.8.2 (or) 0.8.3. Does this driver support Kafka 0.8?

oleksiyk commented 8 years ago

No, this library is for Kafka >= 0.9