> 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

Reply via email to