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.
---