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)