Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[ptp-dev] Hang in RemoteServicesProxy.getConnectionManager


I updated to the current PTP head this morning and I am now running into a hang on a call to RemoteServicesProxy.getConnectionManager().
I started an Eclipse runtime instance using the debugger and suspended the main thread. I consistently get the traceback in the attached screen capture. It looks like RSE is waiting for an operation to complete.

The remote service I see displayed in the preceding println call is 'Remote service is org.eclipse.ptp.remote.internal.core.RemoteServicesProxy@d0c3d5'

The method in my code where the hang happens is the following, where I have set up currentServiceConfiguration when my code gets an IServiceConfiguration event notification. It also seems that service configurations, resource managers and services within a service configuration are not always being saved in persistent storage, since if I shut down and restart the runtime Eclipse instance these objects aren't always restored. Finally, it seems that if I use the service configuration preferences dialog to edit a service configuration, and there is a launch service defined, then when I add a performance analysis service, the launch service seems to disappear. Could this be related to the hang?

Any other ideas?

         * (non-Javadoc)
         *
         * @see
         * org.eclipse.ptp.services.core.IServiceModelEventListener#handleEvent(
         * org.eclipse.ptp.services.core.IServiceModelEvent)
         */
        public void handleEvent(IServiceModelEvent event) {
                currentServiceConfiguration = (IServiceConfiguration) event.getSource();
                if (currentServiceConfiguration == null) {
                        MessageDialog
                                        .openError(null, Messages.PTPRemoteOperations_0,
                                                        "No service configuration is selected as active service configuration");
                        return;
                }
                setServiceAttributes();
        }

        private void setServiceAttributes() {
                IResourceManager resourceManagers[];
                IResourceManager resourceManager;
                String remoteServiceID;
                IPUniverse universe;
                IServiceProvider launchServiceProvider;

                paServiceProvider = currentServiceConfiguration
                                .getServiceProvider(hpctService);
                if (paServiceProvider == null) {
                        MessageDialog
                                        .openError(null, Messages.PTPRemoteOperations_0,
                                                        "Performance analysis service not defined in active service configuration");
                        return;
                }
                launchServiceProvider = currentServiceConfiguration
                                .getServiceProvider(launchService);
                if (launchServiceProvider == null) {
                        MessageDialog
                                        .openError(null, Messages.PTPRemoteOperations_0,
                                                        "Launch service provider not defined in active service configuration");
                        return;
                }
                if (!(launchServiceProvider instanceof IResourceManagerConfiguration)) {
                        MessageDialog.openError(null, Messages.PTPRemoteOperations_0,
                                        "Launch service provider is not a resource manager");
                        return;
                }
                remoteServiceID = ((IResourceManagerConfiguration) launchServiceProvider)
                                .getRemoteServicesId();
                if (remoteServiceID == null) {
                        MessageDialog.openError(null, Messages.PTPRemoteOperations_0,
                                        "No remote services for launch service");
                        return;
                }
                remoteService = PTPRemoteCorePlugin.getDefault().getRemoteServices(
                                remoteServiceID);
                System.out.println("Remote service is " + remoteService);
Hung here==>          remoteConnection = remoteService.getConnectionManager().getConnection(
                                ((IResourceManagerConfiguration) launchServiceProvider)
                                                .getConnectionName());
                System.out.println("Host is " + remoteConnection.getName());
        }


Dave

Back to the top