[ https://issues.apache.org/jira/browse/THRIFT-5793?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Team_RPCtester updated THRIFT-5793: ----------------------------------- Description: Hi, We have discovered an inconsistent behavior under the following conditions: 1. The thrift file: {code:java} struct StructClass_0 { 1: required list<bool> f_1 } service DataService { StructClass_0 Method_1(1: StructClass_0 agr_method_1) } {code} 2. When using Go as the client side(writer) and Node.js as the server side(reader) with the protocol set to “{*}compact{*}” and the transport set to “{*}framed{*}“ or “{*}buffered{*}”. We sent the value [true, false] to the server, but the server receives [false, false], which is unexpected. Here is the relevant code:We use agr_method_1_0 as the parameter sent to the client side(writer). {code:java} agr_method_1_0 := commonResource.NewStructClass_0() listItem := []bool{true, false} agr_method_1_0.F_1 = listItem {code} Node.js Server: The server(reader) returns what it receives.. {code:java} Method_1: async function(agr_method_1, result) { console.log("Method_1 receives ", agr_method_1); // Method_1 receives {“f_1”:[false, false]} result(null, agr_method_1); } {code} Can you help check the issue? Thank you. was: Hi, We have discovered an inconsistent behavior under the following conditions: # The thrift file: struct StructClass_0 { 1: required list<bool> f_1 } service DataService { StructClass_0 Method_1(1: StructClass_0 agr_method_1) } # When using Go as the client side(writer) and Node.js as the server side(reader) with the protocol set to “{*}compact{*}” and the transport set to “{*}framed{*}“ or “{*}buffered{*}”. We sent the value [true, false] to the server, but the server receives [false, false], which is unexpected. Here is the relevant code:We use agr_method_1_0 as the parameter sent to the client side(writer). agr_method_1_0 := commonResource.NewStructClass_0() listItem := []{*}bool{*} {true, false} agr_method_1_0.F_1 = listItem Node.js Server: The server(reader) returns what it receives.. Method_1: *async* {*}function{*}(agr_method_1, result) {console.log("Method_1 receives ", agr_method_1);// Method_1 receives {“f_1”:[false, false]} result({*}null{*}, agr_method_1); } Can you help check the issue? Thank you. > Inconsistent behavior: Nodejs may modify the values it receives > --------------------------------------------------------------- > > Key: THRIFT-5793 > URL: https://issues.apache.org/jira/browse/THRIFT-5793 > Project: Thrift > Issue Type: Bug > Components: Node.js - Compiler, Node.js - Library > Affects Versions: 0.19.0, 0.20.0 > Reporter: Team_RPCtester > Priority: Major > > Hi, > We have discovered an inconsistent behavior under the following conditions: > > 1. The thrift file: > > {code:java} > struct StructClass_0 { > 1: required list<bool> f_1 > } > service DataService { > StructClass_0 Method_1(1: StructClass_0 agr_method_1) > } > {code} > > 2. When using Go as the client side(writer) and Node.js as the server > side(reader) with the protocol set to “{*}compact{*}” and the transport set > to “{*}framed{*}“ or “{*}buffered{*}”. We sent the value [true, false] to the > server, but the server receives [false, false], which is unexpected. Here is > the relevant code:We use agr_method_1_0 as the parameter sent to the client > side(writer). > > {code:java} > agr_method_1_0 := commonResource.NewStructClass_0() > listItem := []bool{true, false} > agr_method_1_0.F_1 = listItem > {code} > > Node.js Server: The server(reader) returns what it receives.. > > {code:java} > Method_1: async function(agr_method_1, result) { > console.log("Method_1 receives ", agr_method_1); > // Method_1 receives {“f_1”:[false, false]} > result(null, agr_method_1); > } > {code} > > Can you help check the issue? > Thank you. -- This message was sent by Atlassian Jira (v8.20.10#820010)