You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@thrift.apache.org by "Andrew Denner (Jira)" <ji...@apache.org> on 2020/06/12 19:47:00 UTC
[jira] [Created] (THRIFT-5232) .net Thrift nuget package
TSocket(host,port) fails for all non local host connections
Andrew Denner created THRIFT-5232:
-------------------------------------
Summary: .net Thrift nuget package TSocket(host,port) fails for all non local host connections
Key: THRIFT-5232
URL: https://issues.apache.org/jira/browse/THRIFT-5232
Project: Thrift
Issue Type: Bug
Components: netstd - Library
Affects Versions: 0.13.0
Environment: Windows 10, .net 4.5.1 project on visual studio 2019 version 6.3.5
.net framework 4.8.03761
Reporter: Andrew Denner
Using the .net nuget package ApacheThrift version 0.13.0.1 to connect to a hbase thrift2 thrift server running on a seperate machine TSocket(host,port) will fail with the error:
{noformat}
testhost.x86.exe Error: 0 : =============== Custom exception handling in HbasePortClient openAndGetScannerRowsCollection =============== testhost.x86.exe Error: 0 : Exception: System.Net.Sockets.SocketException.
testhost.x86.exe Error: 0 : FailCount: 1.
testhost.x86.exe Error: 0 : Message: A request to send or receive data was disallowed because the socket is not connected and (when sending on a datagram socket using a sendto call) no address was supplied
testhost.x86.exe Error: 0 : StackTrace: at System.Net.Sockets.TcpClient.Connect(String hostname, Int32 port)
at Thrift.Transport.TSocket.Open()
at Thrift.Transport.TBufferedTransport.Open()
{noformat}
For the following code:
{code:java}
socket = new TSocket(host, port);
transport = new TFramedTransport(socket);
transport.open();
TCompactProtocol proto = new TCompactProtocol(transport);
m_LazyClient = new THBaseService.Client(proto);
{code}
We tried with and without the open() command on the socket, transport etc.
This however does work if you are connecting to localhost (via putty ssh port forwarding)
As a workaround, the following code does work:
{code:java}
TcpClient cli = new TcpClient(host, port);
socket = new TSocket(cli);
transport = new TFramedTransport(socket);
TCompactProtocol proto = new TCompactProtocol(transport);
m_LazyClient = new THBaseService.Client(proto);
{code}
--
This message was sent by Atlassian Jira
(v8.3.4#803005)