Galen, this was actually my first instinct.  Unfortunately this range is
passed into numerous places such as JGroups and BeanUtils, all of which
implement their own port selecting logic.

On Thu, Oct 11, 2018 at 10:35 AM, Galen O'Sullivan <gosulli...@pivotal.io>
wrote:

> Would it be feasible to reserve chosen ports before selecting ephemeral
> ports? I think this would resolve the collision issue described above.
>
> On Thu, Oct 11, 2018 at 9:58 AM Brian Rowe <br...@pivotal.io> wrote:
>
> > I agree that we should have defaulted everything to using ephemeral ports
> > and forced clients to explicitly assign ports and membership ranges if
> > needed (any of the reasons Anthony mentioned above).  However, I don't
> > think we can change the default assigned ports at this point, unless we
> > want to try to go through the effort of verifying that no customers are
> > relying on the default assignments (is that even something we can do with
> > any confidence?).  The membership port range default, however, is
> something
> > we should be able to change, so long as we restrict it to a proper subset
> > of the current default.  I think the best we can do right now is just to
> > make it so the default membership port range doesn't conflict with the
> > default assigned ports.
> >
> > On Fri, Oct 5, 2018 at 3:42 PM, Jacob Barrett <jbarr...@pivotal.io>
> wrote:
> >
> > > So in the Dockerfile you explicitly set the server to start on port
> > 40404,
> > > problem solved. In whatever environment where you need it on a specific
> > > port you then assign that port. But for all the other cases where we
> > don’t
> > > need to know it, like most of the time, it should just pick something
> > > ephemeral and work.
> > >
> > >
> > > > On Oct 5, 2018, at 1:57 PM, Anthony Baker <aba...@pivotal.io> wrote:
> > > >
> > > > I think there are a lot of dependencies when deploying geode that
> rely
> > > on well-known ports and port ranges (e.g. exporting ports from a
> > container,
> > > firewall rules, etc).  Changing the default server port from 40404 to
> ??
> > > would break stuff.
> > > >
> > > > Here’s the rule from our own Dockerfile:
> > > >
> > > > # Default ports:
> > > > # RMI/JMX 1099
> > > > # REST 8080
> > > > # PULE 7070
> > > > # LOCATOR 10334
> > > > # CACHESERVER 40404
> > > > EXPOSE  8080 10334 40404 1099 7070
> > > >
> > > > Anthony
> > > >
> > > >
> > > >> On Oct 5, 2018, at 1:45 PM, Jacob Barrett <jbarr...@pivotal.io>
> > wrote:
> > > >>
> > > >> But if all ports where ephemeral by default then no collisions
> right?
> > > Why have any port have a default to a single fixed value or overlapping
> > > range of values. Since our opinionated use case is for clients to
> connect
> > > via locators then a known server port isn’t important.
> > > >>
> > > >>> On Oct 5, 2018, at 10:55 AM, Dan Smith <dsm...@pivotal.io> wrote:
> > > >>>
> > > >>> The problem is that the membership port is picked *first*. So it
> may
> > > pick
> > > >>> 40404. Then, when the cache server tries to use port 40404, it
> gets a
> > > >>> collision.
> > > >>>
> > > >>> -Dan
> > > >>>
> > > >>>> On Fri, Oct 5, 2018 at 10:52 AM Jacob Barrett <
> jbarr...@pivotal.io>
> > > wrote:
> > > >>>>
> > > >>>> If we just default to 0 then the OS will pick is a port in
> whatever
> > > range
> > > >>>> is ephemeral and free. We don’t have to do any work. No need to
> > > define a
> > > >>>> range and seek an open port.
> > > >>>>
> > > >>>>>> On Oct 5, 2018, at 10:40 AM, Dan Smith <dsm...@pivotal.io>
> wrote:
> > > >>>>>>
> > > >>>>>> On Fri, Oct 5, 2018 at 10:31 AM Jacob Barrett <
> > jbarr...@pivotal.io>
> > > >>>> wrote:
> > > >>>>>>
> > > >>>>>> Why not change the default behavior to that of port 0, letting
> the
> > > OS
> > > >>>>>> select an open ephemeral port if the user doesn’t specify a
> > specific
> > > >>>> port?
> > > >>>>>>
> > > >>>>>
> > > >>>>> I think what we'd really like to do is change the cache server
> port
> > > to
> > > >>>>> something other than 40404. Maybe 0 (pick a port), or maybe
> > something
> > > >>>> less
> > > >>>>> than 32K.
> > > >>>>>
> > > >>>>> Unfortunately, on most linux distributions the ephemeral port
> range
> > > is
> > > >>>> 32K
> > > >>>>> -> 61K, which includes 40404, which I think is why Brian is
> > > proposing a
> > > >>>>> subset of that range.
> > > >>>>>
> > > >>>>> -Dan
> > > >>>>
> > > >
> > >
> >
>

Reply via email to