JmDNSDiscoveryContainer and startup problem [message #597296] |
Fri, 10 February 2006 14:24  |
Eclipse User |
|
|
|
I am seeing occasionally that JmDNS startup will hang. I am using
1.5.0_03-b07 and ECF 0.6.0.
From the stack traces (see below) I am guessing this is a timing problem in
JmDNSDiscoveryContainer based on the order in which the API is called. My
plugin connects, adds itself as a service listener, then registers as a
service.
JmDNSDiscoveryContainer.registerServiceWithJmDNS() runs synchronized on a
lock. Before the service registration call returns, JmDNS reports in
another thread the discovery of a service (perhaps the same one it is
currently registering). This call hangs because of the lock. My guess is
that not returning from that event prevents registerService() from
completing.
Here are the stack traces I could identify that are associated with JmDNS
usage:
Thread [P2P Restart] (Suspended)
Object.wait(long) line: not available [native method]
ServiceInfo(Object).wait() line: 474
JmDNS.registerService(ServiceInfo) line: 610
JMDNSDiscoveryContainer.registerServiceWithJmDNS(IServiceInf o) line: 369
JMDNSDiscoveryContainer.registerService(IServiceInfo) line: 344
(snip)
Thread [JmDNS.SocketListener] (Suspended)
JMDNSDiscoveryContainer.serviceTypeAdded(ServiceEvent) line: 449
JmDNS.registerServiceType(String) line: 724
JmDNS.handleResponse(DNSIncoming) line: 989
JmDNS.access$6(JmDNS, DNSIncoming) line: 940
JmDNS$SocketListener.run() line: 1150
Thread.run() line: 595
Thread [Timer-0] (Suspended)
JmDNS$Responder.run() line: 1741
TimerThread.mainLoop() line: 512
TimerThread.run() line: 462
|
|
|
|
|
|
Re: JmDNSDiscoveryContainer and startup problem [message #600816 is a reply to message #600809] |
Wed, 22 February 2006 02:14  |
Eclipse User |
|
|
|
Hi Bill,
Good to hear...thanks for the report(s).
Scott
Bill Joy wrote:
> I have been using ECF 0.7.1 most of the day and have not seen this problem
> appear. Thanks, Scott for getting the fix in.
>
>
> "Bill Joy" <bjoy@borland.com> wrote in message
> news:dsip3u$iuk$1@utils.eclipse.org...
>
>>I am seeing occasionally that JmDNS startup will hang. I am using
>>1.5.0_03-b07 and ECF 0.6.0.
>>
>>From the stack traces (see below) I am guessing this is a timing problem
>>in JmDNSDiscoveryContainer based on the order in which the API is called.
>>My plugin connects, adds itself as a service listener, then registers as a
>>service.
>>
>>JmDNSDiscoveryContainer.registerServiceWithJmDNS() runs synchronized on a
>>lock. Before the service registration call returns, JmDNS reports in
>>another thread the discovery of a service (perhaps the same one it is
>>currently registering). This call hangs because of the lock. My guess is
>>that not returning from that event prevents registerService() from
>>completing.
>>
>>Here are the stack traces I could identify that are associated with JmDNS
>>usage:
>>
>>Thread [P2P Restart] (Suspended)
>>Object.wait(long) line: not available [native method]
>>ServiceInfo(Object).wait() line: 474
>>JmDNS.registerService(ServiceInfo) line: 610
>> JMDNSDiscoveryContainer.registerServiceWithJmDNS(IServiceInf o) line: 369
>>JMDNSDiscoveryContainer.registerService(IServiceInfo) line: 344
>>(snip)
>>
>>Thread [JmDNS.SocketListener] (Suspended)
>>JMDNSDiscoveryContainer.serviceTypeAdded(ServiceEvent) line: 449
>>JmDNS.registerServiceType(String) line: 724
>>JmDNS.handleResponse(DNSIncoming) line: 989
>>JmDNS.access$6(JmDNS, DNSIncoming) line: 940
>>JmDNS$SocketListener.run() line: 1150
>>Thread.run() line: 595
>>
>>Thread [Timer-0] (Suspended)
>>JmDNS$Responder.run() line: 1741
>>TimerThread.mainLoop() line: 512
>>TimerThread.run() line: 462
>>
>>
>>
>>
>
>
>
|
|
|
Powered by
FUDForum. Page generated in 0.27511 seconds