Hi Bryan,
On 10/5/2010 10:13 AM, Bryan Hunt wrote:
Hi Scott,
I tracked down the cause of the problem. Inside
RemoteServiceEndpointDescriptionImpl.equals() it compares the
service id location and remote service id for equality. In my
case since I'm running the two hosts on the same machine, the
locations are equal as the values are the IP address of the
machine, and the service ids are both 0. This causes the
DiscoveredServiceTrackerImpl.isValidDescription() to return
false and the endpoint is not dispatched in the
DiscoveredServiceTrackerImpl.serviceChanged(). It's not clear
if the root cause is that the location values are only the IP
address or if the equals() should compare the endpointId as the
endpoint ids are unique.
I see. Thanks for tracking this down.
I believe this is an omission bug in
RemoteServiceEndpointDescriptionImpl...i.e. the
RemoteServiceEndpointDescriptionImpl.equals should also take into
account equality (or not) of the endpoint ids. I've created this
bug for it: https://bugs.eclipse.org/bugs/show_bug.cgi?id=327034
The fix is easy enough, and I've already implemented it and attached
to the bug. If others don't see any problem with it, then I'll
release it to head.
Thanks,
Scott
Bryan
On Oct 5, 2010, at 11:21 AM, Scott Lewis wrote:
Hi Bryan,
I need to let you/all know...I am very occupied right now
and so can't work on this immediately as much as I would
like.
One thing that might help diagnose this Bryan...could you
describe a few things?...e.g. what remote services are on
exposed via hosts, what is desired/expected to happen,
what is the timing of the remote service registrations
(i.e. what order do things happen in), and anything else
about this use case you think is relevant.
Also...do you think you could use the
Logging*DiscoveryListener, and the
Logging*DistributionListeners and have things produce the
output these listeners?
Thanks,
Scott
On 10/5/2010 8:29 AM, Bryan Hunt wrote:
Hi Scott,
I added in the listeners as suggested - results
below. It looks like the client discovers the second
proxy, but never retrieves the second proxy. Do you
have a recommended breakpoint from this datapoint?
Bryan
Output from client:
ZooDiscovery> Service Discovered: Oct 5, 2010
10:18:37 AM.
ServiceInfo[uri=9.41.188.106;id=ServiceID[type=ServiceTypeID[ typeName=_osgiservices._tcp.default._iana];location=9.41.188.106;full=_osgiservices._tcp.default._iana@9.41.188.106];priority=0;weight=0;props=ServiceProperties[{com.ibm.hdwb.jobs.common.monitor.port=9020,
ecf.sp.ect=ecf.generic.server,
com.ibm.hdwb.jobs.common.monitor.command=/afs/awd/projects/cte/tools/hdwb/prod/llmonitor/monitor.ksh,
component.id=22,
com.ibm.hdwb.jobs.common.monitor.host=tritium.austin.ibm.com,
component.name=com.ibm.hdwb.ll.server.job_queue_service,
ll_submit_command=,
ecf.rsvc.id=org.eclipse.ecf.discovery.ServiceProperties$ByteArrayWrapper@313a313a,
ecf.sp.cid=org.eclipse.ecf.discovery.ServiceProperties$ByteArrayWrapper@2e9f2e9f,
com.ibm.hdwb.jobs.common.pool.uuid=4ab60c63-c188-48e2-9db5-64d21063b01f,
com.ibm.hdwb.jobs.common.monitor.submitter=bhunt,
service.factoryPid=com.ibm.hdwb.ll.server.job_queue_service,
service.pid=com.ibm.hdwb.ll.server.job_queue_service-1286291916914-0,
com.ibm.hdwb.jobs.common.monitor.restlet.port=8080,
osgi.remote.service.interfaces=com.ibm.hdwb.jobs.common.IJobQueueService,
ecf.rsvc.ns=ecf.namespace.generic.remoteservice,
ecf.sp.cns=org.eclipse.ecf.core.identity.StringID,
com.ibm.hdwb.jobs.common.monitor.restlet.host=tritium.austin.ibm.com}]]
Proxy discovery discovered: null
Proxy distribution retrieving: 0
Proxy distribution registering:
org.eclipse.ecf.remoteservice.RemoteServiceID[containerID=StringID[ecftcp://tritium.austin.ibm.com:30001/server];containerRelativeID=0]
Proxy distribution registered:
org.eclipse.ecf.remoteservice.RemoteServiceID[containerID=StringID[ecftcp://tritium.austin.ibm.com:30001/server];containerRelativeID=0]
ZooDiscovery> Service Discovered: Oct 5, 2010
10:20:16 AM.
ServiceInfo[uri=9.41.188.106;id=ServiceID[type=ServiceTypeID[ typeName=_osgiservices._tcp.default._iana];location=9.41.188.106;full=_osgiservices._tcp.default._iana@9.41.188.106];priority=0;weight=0;props=ServiceProperties[{com.ibm.hdwb.jobs.common.monitor.port=9020,
ecf.sp.ect=ecf.generic.server,
com.ibm.hdwb.jobs.common.monitor.command=/afs/awd/projects/cte/tools/hdwb/prod/llmonitor/monitor.ksh,
component.id=22,
com.ibm.hdwb.jobs.common.monitor.host=tritium.austin.ibm.com,
component.name=com.ibm.hdwb.ll.server.job_queue_service,
ll_submit_command=,
ecf.rsvc.id=org.eclipse.ecf.discovery.ServiceProperties$ByteArrayWrapper@2fc12fc1,
ecf.sp.cid=org.eclipse.ecf.discovery.ServiceProperties$ByteArrayWrapper@2e662e66,
com.ibm.hdwb.jobs.common.pool.uuid=4ab60c63-c188-48e2-9db5-64d21063b01f,
com.ibm.hdwb.jobs.common.monitor.submitter=bhunt,
service.factoryPid=com.ibm.hdwb.ll.server.job_queue_service,
service.pid=com.ibm.hdwb.ll.server.job_queue_service-1286292015780-0,
com.ibm.hdwb.jobs.common.monitor.restlet.port=8080,
osgi.remote.service.interfaces=com.ibm.hdwb.jobs.common.IJobQueueService,
ecf.rsvc.ns=ecf.namespace.generic.remoteservice,
ecf.sp.cns=org.eclipse.ecf.core.identity.StringID,
com.ibm.hdwb.jobs.common.monitor.restlet.host=tritium.austin.ibm.com}]]
Proxy discovery discovered: null
Output from server 1:
Host discovery publish:
svc_X3RtmpkBZ991jRm1KJBed4xNURA=
ZooDiscovery> Service Published: Oct 5, 2010
10:18:37 AM.
ServiceInfo[uri=osgiservices://9.41.188.106:30001/svc_X3RtmpkBZ991jRm1KJBed4xNURA=;id=ServiceID[type=ServiceTypeID[ typeName=_osgiservices._tcp.default._iana];location=osgiservices://9.41.188.106:30001/svc_X3RtmpkBZ991jRm1KJBed4xNURA=;full=_osgiservices._tcp.default._iana@osgiservices://9.41.188.106:30001/svc_X3RtmpkBZ991jRm1KJBed4xNURA=];priority=0;weight=0;props=ServiceProperties[{com.ibm.hdwb.jobs.common.monitor.port=9020,
ecf.sp.ect=ecf.generic.server,
com.ibm.hdwb.jobs.common.monitor.command=/afs/awd/projects/cte/tools/hdwb/prod/llmonitor/monitor.ksh,
component.id=22,
com.ibm.hdwb.jobs.common.monitor.host=tritium.austin.ibm.com,
component.name=com.ibm.hdwb.ll.server.job_queue_service,
ecf.rsvc.id=org.eclipse.ecf.discovery.ServiceProperties$ByteArrayWrapper@5ad05ad0,
ll_submit_command=,
ecf.sp.cid=org.eclipse.ecf.discovery.ServiceProperties$ByteArrayWrapper@27412741,
com.ibm.hdwb.jobs.common.pool.uuid=4ab60c63-c188-48e2-9db5-64d21063b01f,
com.ibm.hdwb.jobs.common.monitor.submitter=bhunt,
service.factoryPid=com.ibm.hdwb.ll.server.job_queue_service,
service.pid=com.ibm.hdwb.ll.server.job_queue_service-1286291916914-0,
com.ibm.hdwb.jobs.common.monitor.restlet.port=8080,
osgi.remote.service.interfaces=com.ibm.hdwb.jobs.common.IJobQueueService,
ecf.rsvc.ns=ecf.namespace.generic.remoteservice,
ecf.sp.cns=org.eclipse.ecf.core.identity.StringID,
com.ibm.hdwb.jobs.common.monitor.restlet.host=tritium.austin.ibm.com}]]
Proxy discovery discovered:
svc_X3RtmpkBZ991jRm1KJBed4xNURA=
Host distribution registered:
org.eclipse.ecf.remoteservice.RemoteServiceID[containerID=StringID[ecftcp://tritium.austin.ibm.com:30001/server];containerRelativeID=0]
Proxy distribution retrieving: 0
Proxy distribution registering:
org.eclipse.ecf.remoteservice.RemoteServiceID[containerID=StringID[ecftcp://tritium.austin.ibm.com:30001/server];containerRelativeID=0]
Proxy distribution registered:
org.eclipse.ecf.remoteservice.RemoteServiceID[containerID=StringID[ecftcp://tritium.austin.ibm.com:30001/server];containerRelativeID=0]
Output from server 2:
Host discovery publish:
svc_VFGjr0XPp/FyTwDrcYMaYDdETwY=
ZooDiscovery> Service Published: Oct 5, 2010
10:20:16 AM.
ServiceInfo[uri=osgiservices://9.41.188.106:30002/svc_VFGjr0XPp/FyTwDrcYMaYDdETwY=;id=ServiceID[type=ServiceTypeID[ typeName=_osgiservices._tcp.default._iana];location=osgiservices://9.41.188.106:30002/svc_VFGjr0XPp/FyTwDrcYMaYDdETwY=;full=_osgiservices._tcp.default._iana@osgiservices://9.41.188.106:30002/svc_VFGjr0XPp/FyTwDrcYMaYDdETwY=];priority=0;weight=0;props=ServiceProperties[{com.ibm.hdwb.jobs.common.monitor.port=9020,
ecf.sp.ect=ecf.generic.server,
com.ibm.hdwb.jobs.common.monitor.command=/afs/awd/projects/cte/tools/hdwb/prod/llmonitor/monitor.ksh,
component.id=22,
com.ibm.hdwb.jobs.common.monitor.host=tritium.austin.ibm.com,
component.name=com.ibm.hdwb.ll.server.job_queue_service,
ecf.rsvc.id=org.eclipse.ecf.discovery.ServiceProperties$ByteArrayWrapper@1c701c70,
ll_submit_command=,
ecf.sp.cid=org.eclipse.ecf.discovery.ServiceProperties$ByteArrayWrapper@e090e09,
com.ibm.hdwb.jobs.common.pool.uuid=4ab60c63-c188-48e2-9db5-64d21063b01f,
com.ibm.hdwb.jobs.common.monitor.submitter=bhunt,
service.factoryPid=com.ibm.hdwb.ll.server.job_queue_service,
service.pid=com.ibm.hdwb.ll.server.job_queue_service-1286292015780-0,
com.ibm.hdwb.jobs.common.monitor.restlet.port=8080,
osgi.remote.service.interfaces=com.ibm.hdwb.jobs.common.IJobQueueService,
ecf.rsvc.ns=ecf.namespace.generic.remoteservice,
ecf.sp.cns=org.eclipse.ecf.core.identity.StringID,
com.ibm.hdwb.jobs.common.monitor.restlet.host=tritium.austin.ibm.com}]]
Proxy discovery discovered:
svc_VFGjr0XPp/FyTwDrcYMaYDdETwY=
Host distribution registered:
org.eclipse.ecf.remoteservice.RemoteServiceID[containerID=StringID[ecftcp://tritium.austin.ibm.com:30002/server];containerRelativeID=0]
Proxy distribution retrieving: 0
Proxy distribution registering:
org.eclipse.ecf.remoteservice.RemoteServiceID[containerID=StringID[ecftcp://tritium.austin.ibm.com:30002/server];containerRelativeID=0]
Proxy distribution registered:
org.eclipse.ecf.remoteservice.RemoteServiceID[containerID=StringID[ecftcp://tritium.austin.ibm.com:30002/server];containerRelativeID=0]
On Oct 4, 2010, at 1:00 PM, Scott Lewis wrote:
Hi Bryan,
In addition to breakpoints, it might be useful
to use these listeners:
(on host side)
org.eclipse.ecf.osgi.services.discovery.IHostDiscoveryListener
org.eclipse.ecf.osgi.services.distribution.IHostDistributionListener
(on consumer side)
org.eclipse.ecf.osgi.services.discovery.IProxyDiscoveryListener
org.eclipse.ecf.osgi.services.distribution.IProxyDistributionListener
Each of these use the OSGi whiteboard
pattern...i.e. create an implementer of these
interfaces and register them as OSGi services.
Then when things happen in the discovery and/or
distribution implementations, the appropriate
methods are called back.
Examples of usage exist in the hello examples
projects (i.e. in org.eclipse.ecf.examples.remoteservices.hello.host
and org.eclipse.ecf.examples.remoteservices.hello.consumer)...i.e.
in the HelloHostApplication and
HelloConsumerApplication.
Scott
On 10/4/2010 10:07 AM, Bryan Hunt wrote:
Wim,
I need to start debugging the problem where a remote service is discovered by zookeeper, but no proxy is created when I run multiple servers on the same machine exporting the same service. Where should I be setting breakpoints to track down this problem?
Bryan
_______________________________________________
ecf-dev mailing list
ecf-dev@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/ecf-dev
_______________________________________________
ecf-dev mailing list
ecf-dev@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/ecf-dev
_______________________________________________
ecf-dev mailing list
ecf-dev@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/ecf-dev
_______________________________________________
ecf-dev mailing list
ecf-dev@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/ecf-dev
_______________________________________________
ecf-dev mailing list
ecf-dev@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/ecf-dev
|