Hi Kang,

I tried using |TframedTransport| but that also resulted in the same error?

I’m not sure what transport storm uses exactly, but from the error
message what you suggested should make sense.

Also, I am using the |TBinaryProtocol|. Is that correct, or should I use
another protocol?

I have also tried making a connection without giving a transport or
protocol, hoping that the default will work. No luck there also.

Thanks for helping out.

Regards
Rohan



On Tuesday 11 March 2014 09:07:06 PM IST, Kang Xiao wrote:
>
> Hi Rohan
>
> As the error message indicated, you should use thrift TFramedTransport
> instead of TBufferedTransport in the client script since storm drpc
> server use TFramedTransport.
>
> -- 
> Best Regards!
>
> 肖康(Kang Xiao,<kxiao.ti...@gmail.com <mailto:kxiao.ti...@gmail.com>>)
> Distributed Software Engineer
>
> 在 2014年3月11日 星期二,16:54,Rohan Kapadia 写道:
>
>>
>> I have a storm-cluster, with everything running on the same instance
>> though.
>>
>> I am trying to make a call from Node to the drpc server but get a
>> |ECONNRESET| error in the js script.
>>
>> On the server I get the message |o.a.t.s.TNonblockingServer [ERROR]
>> Read an invalid frame size of -2147418111. Are you using
>> TFramedTransport on the client side?|
>>
>> *The complete error message on the client side*
>>
>> |making call
>> connection error
>> read ECONNRESET
>> Error: read ECONNRESET
>> at errnoException (net.js:904:11)
>> at TCP.onread (net.js:558:19)
>> |
>>
>> *Client script*
>>
>> |var thrift = require('thrift');
>> var stormdrpc = require('./gen-nodejs/stormdrpc');
>> var ttypes = require('./gen-nodejs/test_types');
>> var assert = require('assert');
>>
>> transport = thrift.TBufferedTransport();
>> protocol = thrift.TBinaryProtocol();
>>
>> var connection = thrift.createConnection("10.0.1.11", 3772, {
>> transport : transport,
>> protocol : protocol
>> });
>>
>> connection.on('error', function(err) {
>> console.log('connection error');
>> console.log(err.message);
>> console.log(err.stack);
>> });
>>
>> var client = thrift.createClient(stormdrpc, connection);
>>
>> console.log("making call");
>> client.testdrpc('testing', function(err, response) {
>> console.log("callback fired");
>> console.log(err);
>> console.log(response);
>> console.log("callback completed");
>> });
>> |
>>
>> *storm.yaml*
>>
>> |### base
>> storm.local.dir: "/opt/storm"
>> storm.local.mode.zmq: false
>> storm.cluster.mode: "distributed"
>>
>> ### zookeeper.*
>> storm.zookeeper.servers:
>> - "10.0.2.15"
>> storm.zookeeper.port: 2181
>> storm.zookeeper.root: "/storm"
>> storm.zookeeper.session.timeout: 20000
>> storm.zookeeper.retry.times: 5
>> storm.zookeeper.retry.interval: 1000
>>
>> ### supervisor.* configs are for node supervisors
>> supervisor.slots.ports:
>> - 6700
>> - 6701
>> - 6702
>> - 6703
>> supervisor.childopts: "-Xmx1024m"
>> supervisor.worker.start.timeout.secs: 120
>> supervisor.worker.timeout.secs: 30
>> supervisor.monitor.frequency.secs: 3
>> supervisor.heartbeat.frequency.secs: 5
>> supervisor.enable: true
>>
>> ### worker.* configs are for task workers
>> worker.childopts: "-Xmx1280m -XX:+UseConcMarkSweepGC
>> -Dcom.sun.management.jmxremote"
>> worker.heartbeat.frequency.secs: 1
>> task.heartbeat.frequency.secs: 3
>> task.refresh.poll.secs: 10
>> zmq.threads: 1
>> zmq.linger.millis: 5000
>>
>> ### nimbus.* configs are for the master
>> nimbus.host: "10.0.2.15"
>> nimbus.thrift.port: 6627
>> nimbus.childopts: "-Xmx1024m"
>> nimbus.task.timeout.secs: 30
>> nimbus.supervisor.timeout.secs: 60
>> nimbus.monitor.freq.secs: 10
>> nimbus.cleanup.inbox.freq.secs: 600
>> nimbus.inbox.jar.expiration.secs: 3600
>> nimbus.task.launch.secs: 120
>> nimbus.reassign: true
>> nimbus.file.copy.expiration.secs: 600
>>
>> ### ui.* configs are for the master
>> ui.port: 8080
>> ui.childopts: "-Xmx768m"
>>
>> ### drpc.* configs
>> drpc.port: 3772
>> drpc.worker.threads: 64
>> drpc.queue.size: 128
>> drpc.invocations.port: 3773
>> drpc.request.timeout.secs: 600
>> drpc.childopts: "-Xmx768m"
>> drpc.servers:
>> - "10.0.2.15"
>>
>> ### transactional.* configs
>> transactional.zookeeper.servers:
>> - "10.0.2.15"
>> transactional.zookeeper.root: "/storm-transactional"
>> transactional.zookeeper.port: 2181
>>
>> ### topology.* configs are for specific executing storms
>> topology.debug: true
>> topology.optimize: true
>> topology.workers: 1
>> topology.acker.executors: 1
>> topology.acker.tasks: null
>> topology.tasks: null
>> topology.message.timeout.secs: 30
>> topology.skip.missing.kryo.registrations: false
>> topology.max.task.parallelism: null
>> topology.max.spout.pending: null
>> topology.state.synchronization.timeout.secs: 60
>> topology.stats.sample.rate: 0.05
>> topology.fall.back.on.java.serialization: true
>> topology.worker.childopts: null
>> |
>>
>>
>>
>> -- 
>> Rohan Kapadia
>>
>

Reply via email to