Eclipse Community Forums
Forum Search:

Search      Help    Register    Login    Home
Home » Eclipse Projects » Eclipse Communications Framework (ECF) » Socket issue and ECF behavior.(java.net.SocketException: Software caused connection abort: recv failed)
Socket issue and ECF behavior. [message #830892] Wed, 28 March 2012 07:26 Go to next message
Guillaume Brocard is currently offline Guillaume BrocardFriend
Messages: 1
Registered: March 2012
Junior Member
Hi,

I'm facing a weird issue here, that has dramatic consequences on my whole application.

First of all, my configuration is made of the following elements :

  • Windows XP SP3
  • Eclipse 3.5.1 modeling
  • org.eclipse.ecf.sdk-3.0.0.v20090616-0832


I've got a centralized component, named the Framework (!), which code, wrt ECF, is basically (excluding listeners) :
    // ECF Mode
    _ecfConnection = new Connection();
    String ecfServerLocation = ServerConfParam.getInstance().getEcfServerLocation();
    serverID = IDFactory.getDefault().createStringID(ecfServerLocation);
    Object[] serverArguments = new Object[] { serverID, ConfigServer.getInstance().getECFTimeOut() };
    _ecfConnection._serverContainer = ContainerFactory.getDefault().createContainer(containerServerName, serverArguments);
    _ecfConnection._container = ContainerFactory.getDefault().createContainer("ecf.generic.client"); //$NON-NLS-1$
    _ecfConnection._container.connect(serverID, null);
    // Get adapter.
    _ecfConnection._adapter = (IRemoteServiceContainerAdapter) _ecfConnection._container.getAdapter(IRemoteServiceContainerAdapter.class);


where :

  • containerServerName = "ecf.generic.server";
  • ecfServerLocation = "ecftcp://localhost:52731/server"; (in this example, the port is chosen dynamically at each startup)
  • timeout = 8640000000; (!! Not sure such a value makes any sense !!)


Then I've got any type of clients (either remote VM or Framework one) that can connect to provide remote applicative listeners or extensions (my words), through the following code :
    // Get client container.
    IContainer container = ContainerFactory.getDefault().createContainer("ecf.generic.client"); //$NON-NLS-1$
    if (null == container) {
      throw new RuntimeException(Messages.ConnectionHandler_Error_UnableToCreateContainer);
    }
    // Get location from server configuration.
    String serverId = ServerConfParam.getInstance().getEcfServerLocation();
    if (null == serverId) {
      throw new RuntimeException(Messages.ConnectionHandler_Error_ServerNotResolved);
    }
    ID serverID = IDFactory.getDefault().createStringID(serverId);
    container.connect(serverID, null);
    // Register remote service to hub.
    IRemoteServiceContainerAdapter containerAdapter = (IRemoteServiceContainerAdapter) container.getAdapter(IRemoteServiceContainerAdapter.class);
    containerAdapter.registerRemoteService(new String[] { proxyInterface_p.getName() }, proxyImplementation_p, null);


This is working fine, except that, from times to times, on specific computers, the Framework is reporting the following issue (through a listener) :
!ENTRY Framework 4 0 2012-03-26 10:08:28.535
!MESSAGE Dealing with container listener event on server container StringID[ecftcp://localhost:52731/server]
-> ContainerEjectedEvent[StringID[ecftcp://localhost:52731/server];StringID[moNtQW2ixRgh1TjhnBdNTuwka2Q=];java.net.SocketException: Software caused connection abort: recv failed]


!ENTRY Framework 4 0 2012-03-26 10:08:28.535
!MESSAGE Dealing with container listener event on server container StringID[ecftcp://localhost:52731/server]
-> ContainerEjectedEvent[StringID[ecftcp://localhost:52731/server];StringID[lJ3W7wJc6ZG3OIHgHN2VTMnBvjs=];java.net.SocketException: Software caused connection abort: recv failed]


!ENTRY Framework 4 0 2012-03-26 10:08:28.535
!MESSAGE Dealing with container listener event on server container StringID[ecftcp://localhost:52731/server]
-> ContainerDisconnectedEvent[StringID[ecftcp://localhost:52731/server];]StringID[abgoYE1Bw3nT2m3G9s82zJGyz5s=];


!ENTRY Framework 2 0 2012-03-26 10:08:28.535
!MESSAGE Dealing with container listener event on client container StringID[H02nqPgg4RntQp6ds3S3FdWSedM=]
-> ContainerEjectedEvent[StringID[H02nqPgg4RntQp6ds3S3FdWSedM=];StringID[ecftcp://localhost:52731/server];java.net.SocketTimeoutException: Read timed out]


!ENTRY Framework 1 0 2012-03-26 10:08:28.535
!MESSAGE Remote connection : context change listener named 'TRCCL.Name' has been unregistered from server

!ENTRY Framework 1 0 2012-03-26 10:08:28.535
!MESSAGE Remote connection : connector for type 'TRC.Type' has been unregistered from server

!ENTRY Framework 4 0 2012-03-26 10:08:28.535
!MESSAGE Dealing with container listener event on server container StringID[ecftcp://localhost:52731/server]
-> ContainerDisconnectedEvent[StringID[ecftcp://localhost:52731/server];]StringID[H02nqPgg4RntQp6ds3S3FdWSedM=];


Where :

  • moNtQW2ixRgh1TjhnBdNTuwka2Q= is a remote listener contributed by an external application.
  • lJ3W7wJc6ZG3OIHgHN2VTMnBvjs= is a remote extension contributed by the same application.
  • abgoYE1Bw3nT2m3G9s82zJGyz5s= is a remote listener contributed by the Framework itself.
  • H02nqPgg4RntQp6ds3S3FdWSedM= is the generic client created by the Framework (first code snippet above).


Obviously there is a first issue (recv failed) while communicating with the external application.
I can't find anything of use on the internet about this one.
Trails are that this might be a network physical issue (I can't make WireShark to use filters, so it's pretty much useless), or a Windows bug because the Framework is using ports >5000.
The annoying part being that it does happen sometimes, on some computers.
But this is not a systematic issue, even on those computers.
Any clue on this one would be greatly appreciated Smile


Then, everything goes wild on ECF side, and I'm loosing all my remotely connected implementations (abgoYE1Bw3nT2m3G9s82zJGyz5s= here), and even worst, the client initiated on Framework side (H02nqPgg4RntQp6ds3S3FdWSedM=).
So I end up with an empty ECF hub, and the Framework that needs to be restarted (not to mention remote applications).
I can understand there was an issue with some of the remote implementations, but why would it disconnect/dispose the entire ECF structure on Framework side ?

Thanks in advance,
Guillaume
Re: Socket issue and ECF behavior. [message #940376 is a reply to message #830892] Thu, 11 October 2012 15:22 Go to previous message
Scott Lewis is currently offline Scott LewisFriend
Messages: 975
Registered: July 2009
Senior Member
Guillaume Brocard wrote on Wed, 28 March 2012 03:26
Hi,

I'm facing a weird issue here, that has dramatic consequences on my whole application.

First of all, my configuration is made of the following elements :

  • Windows XP SP3
  • Eclipse 3.5.1 modeling
  • org.eclipse.ecf.sdk-3.0.0.v20090616-0832




This is a very old version of ECF. You might wish to upgrade to a more recent version and try this further...e.g. the one for the 3.5.6 release is here

http://www.eclipse.org/ecf/downloads.php

A more recent version may very well fix this issue, as there have been fixes in this area since version 3.0.0.

Quote:


<stuff deleted>

Any clue on this one would be greatly appreciated Smile



It is indeed very strange.

If a newer version of ECF doesn't address this issue, then please open a bug at

https://bugs.eclipse.org/bugs/enter_bug.cgi?product=ECF

and attach all the information that you've presented here...and we'll try to reproduce and investigate fully.

Thanks,

Scott
Previous Topic:ECF Generic with SSLSockets
Next Topic:how to cancel remote async call?
Goto Forum:
  


Current Time: Sat Dec 20 18:47:24 GMT 2014

Powered by FUDForum. Page generated in 0.07470 seconds
.:: Contact :: Home ::.

Powered by: FUDforum 3.0.2.
Copyright ©2001-2010 FUDforum Bulletin Board Software