Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

THRIFT-2471 #113

Closed
wants to merge 3 commits into from
Closed

THRIFT-2471 #113

wants to merge 3 commits into from

Conversation

djwatson
Copy link

three changes as discussed in THRIFT-2471:

  • Update parser to use & instead of cpp.ref
  • Recursion depth limit, a la protobufs
  • shared_ptr instead of raw pointer w/deletes in the destructor.

@asfgit asfgit closed this in 885c679 May 2, 2014
allengeorge pushed a commit to allengeorge/thrift that referenced this pull request Jan 1, 2017
Client: compiler general
Patch: Dave Watson

This closes apache#113

commit 52b99af
 Author: Dave Watson <davejwatson@fb.com>
 Date: 2014-04-23T20:05:56Z

change cpp.ref to &

commit 3f9d31c
 Author: Dave Watson <davejwatson@fb.com>
 Date: 2014-04-23T21:50:29Z

Recursion depth limit

commit 61468e4
 Author: Dave Watson <davejwatson@fb.com>
 Date: 2014-04-25T19:59:18Z

shared_ptr for reference type
@jeking3
Copy link
Contributor

jeking3 commented Feb 18, 2017

Sorry, #1195 has nothing to do with this one. I was off by one.

Jens-G pushed a commit to Jens-G/thrift that referenced this pull request Apr 14, 2019
Fixed race condition in PhysicalConnection creation
Jens-G pushed a commit to Jens-G/thrift that referenced this pull request Apr 14, 2019
This was an expedition, but here's the history:
- There are 2 forks in the connection logic
 - One for Mono (the DnsEndpoint split, see apache#20 and apache#155)
 - One for .BeginConnect() and one for ConnectAsync (because netstandard1.x was "async all the things!")
- There's a behind-the-scenes fork on completion type, but for actual library consumers (and not tests), it was always .Any, which was effectively .Sync.

There was also a critical bug fix in apache#113 that unfortuantely added a lot of complexity here. The maintenance problem is this complexity wasn't even used, as far as I can tell. It was only ever exposed to even be possibly used in the test project. So we had complicated connection logic, only for the sake of testing it. Unless I'm an idiot, which is entirely possible.

This commit removes that logic and simplifies things, as a first step that's a unit in itself. It does not fix Mono. There are other issues there, but thanks to WSL I can readily run the test suite under Mono on Linux now. Mono has a littany of other issues which I'll comment on in apache#314.

The most important thing here is that we don't regress what was fixed in apache#113, as this doesn't readily show in tests.
Jens-G pushed a commit to Jens-G/thrift that referenced this pull request Apr 14, 2019
This was an expedition, but here's the history:
- There are 2 forks in the connection logic
 - One for Mono (the DnsEndpoint split, see apache#20 and apache#155)
 - One for .BeginConnect() and one for ConnectAsync (because netstandard1.x was "async all the things!")
- There's a behind-the-scenes fork on completion type, but for actual library consumers (and not tests), it was always .Any, which was effectively .Sync.

There was also a critical bug fix in apache#113 that unfortuantely added a lot of complexity here. The maintenance problem is this complexity wasn't even used, as far as I can tell. It was only ever exposed to even be possibly used in the test project. So we had complicated connection logic, only for the sake of testing it. Unless I'm an idiot, which is entirely possible.

This commit removes that logic and simplifies things, as a first step that's a unit in itself. It does not fix Mono. There are other issues there, but thanks to WSL I can readily run the test suite under Mono on Linux now. Mono has a littany of other issues which I'll comment on in apache#314.

The most important thing here is that we don't regress what was fixed in apache#113, as this doesn't readily show in tests.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
2 participants