> On 11 Aug 2017, at 16:30, Sanne Grinovero <sa...@infinispan.org> wrote: > > On 11 August 2017 at 14:14, Galder Zamarreño <gal...@redhat.com> wrote: >> Hi, >> >> Re: https://issues.jboss.org/browse/ISPN-8186 >> >> I've been looking at TRACE logs and what seems to happen is that is that >> sometimes, when the client needs to create a new Socket, it sends using the >> same localport as the Hot Rod server port. As a result, when the client >> sends something to the server, it also receives it, hence it ends finding a >> request instead of a response. Analysis of the logs linked in the JIRA can >> be found in [1]. >> >> What I'm not sure about is how to fix this... There are ways to potentially >> pass a specific localport to a Socket [2] but this could be a bit messy: >> It'd require us to generate a random local port and see if that works, >> making sure that's not the server port... >> >> However, I think the real problem we're having here is the fact that both >> the server and client are bound to same IP address, 127.0.0.1. A simpler >> solution could be a way to get the server to be in a different IP address to >> the client, but what would that be that IP address and how to make sure it >> always works? Bind the server to eth0? >> >> Any other ideas? > > You could create multiple aliases for the same loopback device, and > assign a different IP address to each of them. > > But I fail to understand why you don't have specific ports for each > purpose? That's the point for using ports in the first place, no?
^ Hmmm? The servers in the test use a random port that's available. The clients connect to these ports. The local ports used by the clients are random. You need to use APIs such as [2] to fix them. So, what exactly are you talking about? Are you saying we should fix the local client ports? As I said in the first post, we could try to find a random port that's not the server one... I must admit this scenario sounds very weird... how does Java allow you for a local port to be bound to a port that's already in use by the server? It doesn't make sense. I'll be trying to replicate this in a small unit test next few days... Cheers, > > Thanks, > Sanne > > >> >> Cheers, >> >> [1] https://gist.github.com/galderz/b8549259ff65cb74505c9268eeec96a7 >> [2] >> http://docs.oracle.com/javase/6/docs/api/java/net/Socket.html#Socket(java.net.InetAddress,%20int,%20java.net.InetAddress,%20int) >> -- >> Galder Zamarreño >> Infinispan, Red Hat >> >> >> _______________________________________________ >> infinispan-dev mailing list >> infinispan-dev@lists.jboss.org >> https://lists.jboss.org/mailman/listinfo/infinispan-dev > > _______________________________________________ > infinispan-dev mailing list > infinispan-dev@lists.jboss.org > https://lists.jboss.org/mailman/listinfo/infinispan-dev -- Galder Zamarreño Infinispan, Red Hat _______________________________________________ infinispan-dev mailing list infinispan-dev@lists.jboss.org https://lists.jboss.org/mailman/listinfo/infinispan-dev