Github user gadLinux commented on the issue:
https://github.com/apache/thrift/pull/1361
@jeking3 I don't think binary and multi server can be compatible. In fact I
see it failing everytime and this is why I didn't set your protocol
recommendations.
Let me explain. When a multiX server is set, the processor allows you to
register several processors. Each of this processors can implement different
services. If you are contacting with a binary client (not multi) when you send
the message it's not prefixed by the service name. It means that at the server
end the server will never know what's the destination processor for that
request.
So when you use a binary client, you must use a binary server. And with the
multi happens the same.
Apart from this, the protocol is implemented, my problem is that I was
confused with the protocols in the json file and I don't know what should I
really enable...
Besides this I ran it manually against binary multi client and ran ok.
test_client:test_client:93: libtool wrapper (GNU libtool) 2.4.6
Debian-2.4.6-1
test_client:test_client:114: newargv[0]:
/home/gaguilar/thrift/thrift/test/c_glib/.libs/test_client
test_client:test_client:104: newargv[1]: --protocol=multi
test_client:test_client:104: newargv[2]: --transport=buffered
test_client:test_client:104: newargv[3]: --port=39347
Connecting (buffered/binary:multi) to: ip/localhost:39347
Test #1, connect localhost:39347
testVoid() = void
testString("Test") = "Test"
testSecondServiceMultiplexSecondTestString("2nd") = "2nd"
testByte(true) = true
testByte(false) = false
testByte(1) = 1
testByte(-1) = -1
testI32(-1) = -1
testI64(-34359738368) = -34359738368
testDouble(-5.2098523) = -5.209852
testBinary(empty) = empty
testBinary([-128..127]) =
{-128,-127,-126,-125,-124,-123,-122,-121,-120,-119,-118,-117,-116,-115,-114,-113,-112,-111,-110,-109,-108,-107,-106,-105,-104,-103,-102,-101,-100,-99,-98,-97,-96,-95,-94,-93,-92,-91,-90,-89,-88,-87,-86,-85,-84,-83,-82,-81,-80,-79,-78,-77,-76,-75,-74,-73,-72,-71,-70,-69,-68,-67,-66,-65,-64,-63,-62,-61,-60,-59,-58,-57,-56,-55,-54,-53,-52,-51,-50,-49,-48,-47,-46,-45,-44,-43,-42,-41,-40,-39,-38,-37,-36,-35,-34,-33,-32,-31,-30,-29,-28,-27,-26,-25,-24,-23,-22,-21,-20,-19,-18,-17,-16,-15,-14,-13,-12,-11,-10,-9,-8,-7,-6,-5,-4,-3,-2,-1,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127}
OK size 256 OK
testStruct({"Zero", 1, -3, -5}) = {"Zero", 1, -3, -5}
testNest({1, {"Zero", 1, -3, -5}), 5} = {1, {"Zero", 1, -3, -5}, 5}
testMap({0 => -10, 1 => -9, 3 => -7, 2 => -8, 4 => -6}) = {0 => -10, 1 =>
-9, 3 => -7, 2 => -8, 4 => -6}
testStringMap({"some" => "thing", "a" => "2", "b" => "blah")} = {"some" =>
"thing", "a" => "2", "b" => "blah"}
testSet({0, 2, -1, -2, 1}) = {1, -1, 0, 2, -2}
testList({-2, -1, 0, 1, 2}) = {-2, -1, 0, 1, 2}
testEnum(ONE) = 1
testEnum(TWO) = 2
testEnum(THREE) = 3
testEnum(FIVE) = 5
testEnum(EIGHT) = 8
testTypedef(309858235082523) = 309858235082523
testMapMap(1) = {-4 => {-4 => -4, -3 => -3, -2 => -2, -1 => -1, }, 4 => {1
=> 1, 2 => 2, 3 => 3, 4 => 4, }, }
testInsanity() = {1 => {2 => {{8 => 8, 5 => 5, }, {{"Goodbye4", 4, 4, 4},
{"Hello2", 2, 2, 2}, }}, 3 => {{8 => 8, 5 => 5, }, {{"Goodbye4", 4, 4, 4},
{"Hello2", 2, 2, 2}, }}, }, 2 => {6 => {{}, {}}, }, }
testClient.testException("Xception") => {1001, "Xception"}
testClient.testException("TException") => Caught TException
testClient.testException("success") => void
testClient.testMultiException("Xception", "test 1") => {1001, "This is an
Xception"}
testClient.testMultiException("Xception2", "test 2") => {2002, {"This is
an Xception2"}}
testClient.testMultiException("success", "test 3") => {{"test 3"}}
testClient.testOneway(1) => success - took 0.03 ms
re-test testI32(-1) = -1
Total time: 25934720 us
All tests done.
Number of failures: 1
Min time: 25934720 us
Max time: 25934720 us
Avg time: 25934720 us
So please check what protocol should be enabled and enable them. If it
fails again I will check.
---