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