From dev-return-55299-archive-asf-public=cust-asf.ponee.io@thrift.apache.org Mon Jan 28 22:44:05 2019 Return-Path: X-Original-To: archive-asf-public@cust-asf.ponee.io Delivered-To: archive-asf-public@cust-asf.ponee.io Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by mx-eu-01.ponee.io (Postfix) with SMTP id 6738418060E for ; Mon, 28 Jan 2019 22:44:05 +0100 (CET) Received: (qmail 89307 invoked by uid 500); 28 Jan 2019 21:44:04 -0000 Mailing-List: contact dev-help@thrift.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@thrift.apache.org Delivered-To: mailing list dev@thrift.apache.org Received: (qmail 89296 invoked by uid 99); 28 Jan 2019 21:44:04 -0000 Received: from pnap-us-west-generic-nat.apache.org (HELO spamd3-us-west.apache.org) (209.188.14.142) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 28 Jan 2019 21:44:04 +0000 Received: from localhost (localhost [127.0.0.1]) by spamd3-us-west.apache.org (ASF Mail Server at spamd3-us-west.apache.org) with ESMTP id E5D1E180947 for ; Mon, 28 Jan 2019 21:44:03 +0000 (UTC) X-Virus-Scanned: Debian amavisd-new at spamd3-us-west.apache.org X-Spam-Flag: NO X-Spam-Score: -110.301 X-Spam-Level: X-Spam-Status: No, score=-110.301 tagged_above=-999 required=6.31 tests=[ENV_AND_HDR_SPF_MATCH=-0.5, RCVD_IN_DNSWL_MED=-2.3, SPF_PASS=-0.001, USER_IN_DEF_SPF_WL=-7.5, USER_IN_WHITELIST=-100] autolearn=disabled Received: from mx1-lw-eu.apache.org ([10.40.0.8]) by localhost (spamd3-us-west.apache.org [10.40.0.10]) (amavisd-new, port 10024) with ESMTP id 4H-0jVdvtace for ; Mon, 28 Jan 2019 21:44:02 +0000 (UTC) Received: from mailrelay1-us-west.apache.org (mailrelay1-us-west.apache.org [209.188.14.139]) by mx1-lw-eu.apache.org (ASF Mail Server at mx1-lw-eu.apache.org) with ESMTP id A85A6623BB for ; Mon, 28 Jan 2019 21:44:01 +0000 (UTC) Received: from jira-lw-us.apache.org (unknown [207.244.88.139]) by mailrelay1-us-west.apache.org (ASF Mail Server at mailrelay1-us-west.apache.org) with ESMTP id DE7B2E26A4 for ; Mon, 28 Jan 2019 21:44:00 +0000 (UTC) Received: from jira-lw-us.apache.org (localhost [127.0.0.1]) by jira-lw-us.apache.org (ASF Mail Server at jira-lw-us.apache.org) with ESMTP id 4DEF3243A9 for ; Mon, 28 Jan 2019 21:44:00 +0000 (UTC) Date: Mon, 28 Jan 2019 21:44:00 +0000 (UTC) From: "Jens Geyer (JIRA)" To: dev@thrift.apache.org Message-ID: In-Reply-To: References: Subject: [jira] [Commented] (THRIFT-4405) Proper use of sequence IDs in all clients and servers MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-JIRA-FingerPrint: 30527f35849b9dde25b450d4833f0394 [ https://issues.apache.org/jira/browse/THRIFT-4405?page=3Dcom.atlassia= n.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=3D167= 54394#comment-16754394 ]=20 Jens Geyer commented on THRIFT-4405: ------------------------------------ The=C2=A0[{color:#0066cc}Whitepaper{color}|https://thrift.apache.org/static= /files/thrift-20070401.pdf] explicitly lists the seqID at request, response= AND processing stages. But other than mentioning them in pseudo code, the = whitepaper makes no assumptions and applies no further requirements on them= . Sounds like a good idea to fix some lose ends. =C2=A0 > Proper use of sequence IDs in all clients and servers > ----------------------------------------------------- > > Key: THRIFT-4405 > URL: https://issues.apache.org/jira/browse/THRIFT-4405 > Project: Thrift > Issue Type: Improvement > Components: Test Suite > Affects Versions: 0.10.0 > Environment: docker ubuntu-xenial > Reporter: James E. King III > Assignee: James E. King III > Priority: Major > > Create a feature test that verifies sequence numbers are used properly. = Write a server that verifies clients are generating unique sequence IDs. W= rite a client that makes sure servers return the same sequence ID that was = given. > To do this, I enhanced the C++ TProcessorEventHandler class to include a = preReadSeq, which is like preRead but carries the sequence ID. > In the C++ TestServer, I check to see if the sequence numbers are unique = and do not repeat; if any of them do, the cpp test fails. > The following languages properly send sequence IDs (for the binary protoc= ol): > * dart > * go > * nodejs > * java > * rs > The rest of the languages do not. Now, one could argue that unless a lan= guage has a concurrent-safe client and server, sequence IDs are unnecessary= . While that is true, all languages should respect that the protocol has a= sequence ID and there could be future implementations that will require al= l clients are well-behaved, which is why I am putting this test in. > Languages fixed up so unique sequence IDs are sent by the client, and ver= ified by the tests: > * cpp (was only sending unique sequence IDs for Concurrent clients, now i= t does for the regular one too) > * csharp (seqid_ was not bring incremented with each use) > * lua (seqid_ was not bring incremented with each use) > * perl (seqid_ was not bring incremented with each use) > * ruby (seqid_ was not bring incremented with each use and a unit test wa= s updated to no longer be pending) > Languages left to do: > * c_glib > * erlang > * haskell > * php > * python > * python3 > * any non-cross tested languages -- This message was sent by Atlassian JIRA (v7.6.3#76005)