thrift-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From gadLinux <...@git.apache.org>
Subject [GitHub] thrift issue #1361: THRIFT-4329: Implement multiplexed processor that matche...
Date Sun, 08 Oct 2017 23:00:02 GMT
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.



---

Mime
View raw message