WARNING - OLD ARCHIVES

This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
   
 
 
Xen 
 
Home Products Support Community News
 
   
 

xen-bugs

[Xen-bugs] [Bug 21] New: Service detection through mDNS does not work

To: xen-bugs@xxxxxxxxxxxxxxxxxxx
Subject: [Xen-bugs] [Bug 21] New: Service detection through mDNS does not work
From: bugzilla-daemon@xxxxxxxxxxxxxxxxxxx
Date: Wed, 04 May 2005 20:50:10 +0000
Delivery-date: Wed, 04 May 2005 20:50:15 +0000
Envelope-to: www-data@xxxxxxxxxxxxxxxxxxx
List-help: <mailto:xen-bugs-request@lists.xensource.com?subject=help>
List-id: Xen Bugzilla <xen-bugs.lists.xensource.com>
List-post: <mailto:xen-bugs@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-bugs>, <mailto:xen-bugs-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-bugs>, <mailto:xen-bugs-request@lists.xensource.com?subject=unsubscribe>
Sender: xen-bugs-bounces@xxxxxxxxxxxxxxxxxxx
http://bugzilla.xensource.com/cgi-bin/bugzilla/show_bug.cgi?id=21

           Summary: Service detection through mDNS does not work
           Product: Xen
           Version: 2.0
          Platform: x86
        OS/Version: Linux
            Status: NEW
          Severity: critical
          Priority: P1
         Component: Hypervisor
        AssignedTo: xen-bugs@xxxxxxxxxxxxxxxxxxx
        ReportedBy: niraj@xxxxxxxxxxxxx
                CC: niraj@xxxxxxxxxxxxx


Problem Statement:
----------------
"hashi", a server running DOM-0 has a mDNSResponder daemon to advertise the
services available on the server. From a client m/c, either through xenman
GUI Java Code or by using jmdns.jar (mDNS Service Browser in Java),
the detection of services advertised on hashi are not detected reiliably.
When mDNSResponder is started on hashi, the detection of services works
initially. After about 4-5 mintues, mDNSResponder stops responding to clients.
A local mDNS client running on hashi detects the services in a reliable fashion,
the problem arises only for the clients  running on a different m/c on
the network.

Analysis:
--------
Experimented with mDNSResponder (comes bundled with RedHat) and also with
mDNSResponderPosix (downloaded from Apple site). Found some differences
related to the nature of responses between the two. But the stated problem
exists on both.

1) Analysis with mDNSResponderPosix (downloaded from Apple site):
  --------------------------------------------------------------
(Instructions to download and build the source code are given towards the end.)
Used verbose flag to get information about a stream of actions taken by the
daemon. When the daemon is started it behaves alright. Within 2-3 minutes,
the timeout value for "select" call w.r.t. read file descriptors starts
increasing exponentially.
FIRST MAJOR PROBLEM -  The interesing thing is that even
if there are input events (see 'HOW DO WE KNOW THERE ARE EVENTS' section below),
the "select" call does not get awakened before the timout is over. The timeout
is taking precedence over the presence of read events.

SECOND MAJOR PROBLEM - When a new mDNS-Client is started initially it gets
responses from mDNSResponderPosix, but after some time (5-6 minutes)
mDNSResponderPosix does not receive any events from this client. If you kill
the client and restart it, mDNSResponderPosix will receive the events from the
newly created client for a limited duration but it will process them only after
the timeout in the "select" call expires. This timeout will be a large number
by the time you go through this cycle. That is why the newly created client
will not see the services immediately. You need to wait for some time to see the
detected services.

Repeated the same experiment by running mDNSResponderPosix and client on
standard Linux machines. The whole system worked alright. The "select" call
worked fine. mDNSResponderPosix was getting the events from the client reliably
and it processed them in a timely manner.

2) Analysis with mDNSResponder (bundled with RedHat):
-----------------------------------------------------
In this case also the observations were same. Only difference is that if you
restart the client, it does not detect the service. In the case above, 
restarting
a client detects the services.


CONCLUSION:
----------

This analysis leads us to believe that the undesirable characterstics of
mDNSResponderPosix are due to the fact that it is running under DOM-0.
HOW DO WE KNOW THERE ARE EVENTS PENDING FOR mDNSResponderPosix:
---------------------------------------------------------------
Kill a client and restart it on a remote Linux machine. Wait for some time,
you will see the advertised services. It proves that events were generated
but we do not know if they were delivered to mDNSResponderPosix immediately
or they were left unprocessed in some buffer.

How to download, compile, and use mDNSResponderPosix (downloaded from Apple 
Site):
----------------------------------------------------------------------------------

Downloaded source code from Apple site using the instructions described on the
following URL:

 http://the.taoofmac.com/space/HOWTO/Enable%20Rendezvous%20on%20Fedora%20Linux

Go to the mDNSPosix Directory and compile using 'make os=linux'. The binaries
will be in the 'build' directory. Copy build/mDNSResponderPosix and
build/mDNSClientPosix to hashi:/tmp.

Under hashi:/tmp create a service description file "Services.txt" with the
following contents:

Tweedlebug
_afpovertcp._tcp.
name=val1
548

Tweedlebug2
_afpovertcp._tcp. local.
name=val2name2=anotherattribute
548

tatami
_xenmon._tcp.
name=xenmon
1666

>From hashi:/tmp directory, run the following command to start the mDNS daemon:

./mDNSResponderPosix -v 2 -f Services.txt

"-v 2" makes it run in a verbose mode giving information about the actions taken
by the
daemon.

>From client linux machine on the network, use the following command to start
mDNS Browser

java -jar jmdns.jar -i 10.100.1.103      where ip address is of client linux m/c



------- You are receiving this mail because: -------
You are the assignee for the bug, or are watching the assignee.

_______________________________________________
Xen-bugs mailing list
Xen-bugs@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-bugs

<Prev in Thread] Current Thread [Next in Thread>
  • [Xen-bugs] [Bug 21] New: Service detection through mDNS does not work, bugzilla-daemon <=