Just took a look. +1

On Tue, Jun 9, 2020 at 12:59 AM max ulidtko <ulid...@gmail.com> wrote:

> Hi list,
>
> I'm the PR author — calling out for reviewers!
>
> The diff is under 1 kLoC.
>
> I have it well-groomed already:
>  • CI bots are green;
>  • new code is clang-formatted;
>  • entry in CHANGES.md added;
>  • both buildsystems adjusted for new file;
>  • non-pertinent changes split off;
>  • Jens Geyer's "partial" code review remarks addressed;
>  • Mario Emmenlau's remarks addressed.
>
> Mario has done, or is doing, his own testing of this patch. No issues have
> returned to me so far.
>
> I did my own testing — I describe which exactly in the commit message /
> patch header.
>
> If there is any C++ developer out there who feels like spending a
> share of his/her valuable
> > time to review this PR, that would be a great thing. But be warned,
> there is a reason for
> > this request: The patch is a bit more complicated and has plenty of
> #ifdef-ed code portions,
> > so better come prepared ;-)
> > https://github.com/apache/thrift/pull/2151
> >
> >
> Right, about those #ifdef's. I add only one new #ifdef _WIN32, in
> TSocketUtils.h. It's used to correctly handle the slightly different
> meanings of getaddrinfo() error codes on win32 vs posix.
>
> All other #ifdef's in the diff are moves. As I explain in the commit
> message; several screenfuls of repetitive #ifdef-rich lines in the middle
> of important loop — are big nuisance and get in the way. So I grouped all
> those setsockopt()s and separated them into dedicated private methods.
> Makes it possible to navigate the listen() method again; I refrained from
> any further refactorings.
>
> git config diff.colormoved zebra — may help to see these code moves. GitHub
> diff viewer does not visualize those.
>
> Lastly: about third of the diff consists of just replicating the same
> changes as in TServerSocket onto TNonblockingServerSocket. These two
> classes are obviously "inherited" one from another (via copy-paste). I
> again refrained from refactoring any of that. Instead, I carefully did the
> same changes again to the other class. This is another reason why the diff
> is bigger than it needs to be (and it's not my fault).
>
> Please NOTE: an earlier patch from me ("Thrift libraries crash with
> localhost-only network"), merged post-0.13, does remedy the localhost-only
> situation — but also has a potential to increase the "Address family for
> hostname not supported" errors in _networked_ scenarios. Before that former
> patch, we've seen the error ~once a month or two on our systems; with it
> (vendored in-house build of Thrift), we continued to see the errors,
> somewhat even more frequently — but this time, on _networked_ machines
> (non-localhost-only), as it turned out. Which is why I went big, and
> developed this second patch.
>
> I hope you can see why I'd really really really like to get this patch
> ("Rewrite address resolution") landed in 0.14 — otherwise, the earlier
> patch may make some havoc.
>
> Hope to get some good looks on the patch (with git diff zebra enabled!..),
> helpful comments, and ultimately LGTM.
>
> Best regards
> Max
>
>
> On Fri, May 29, 2020 at 1:29 PM max ulidtko <ulid...@gmail.com> wrote:
>
> > Hi all,
> >>
> >> the PR creator is a bit hesitant about it, so I ask for him:
> >>
> >> If there is any C++ developer out there who feels like spending a share
> of his/her valuable
> >> time to review this PR, that would be a great thing. But be warned,
> there is a reason for
> >> this request: The patch is a bit more complicated and has plenty of
> #ifdef-ed code portions,
> >> so better come prepared ;-)
> >> https://github.com/apache/thrift/pull/2151
> >>
> >> Right, about those #ifdef's — I add only one new #ifdef _WIN32, in
> > TSocketUtils.h. It's used to correctly handle the slightly different
> > meanings of getaddrinfo() error codes on win32 vs posix.
> >
> > All other #ifdef's in the diff are moves. As I explain in the commit
> > message; several screenfuls of repetitive #ifdef-rich lines in the middle
> > of important loop are big nuisance and get in the way. So I grouped all
> > those setsockopt()s and separated them into dedicated private methods.
> > Makes it possible to navigate the listen() method; I refrained from any
> > further refactorings.
> >
> > git config diff.colormoved zebra — may help to see these code moves.
> > GitHub diff viewer doesn't visualize those.
> >
> > Lastly: around third of the diff consists of just replicating the same
> > changes as in TServerSocket onto TNonblockingServerSocket. These two
> > classes are obviously "inherited" from each other (by copy-paste). I
> again
> > refrained from refactoring any of that. Instead, I carefully did the same
> > changes again to the other class. This is another reason why the diff is
> > bigger than it needs to be (and it's not my fault).
> >
> > Max
> >
> >
>


-- 

-- 
Randy Abernethy
Managing Partner
RX-M, llcrandy.aberne...@rx-m.com
o 415-800-2922
c 415-624-6447

Reply via email to