[Sugar-devel] Telepathy Salut on Sugar 0.102 on Fedora 20 almost works
James Cameron
quozl at laptop.org
Wed Sep 17 05:18:00 EDT 2014
On Tue, Sep 16, 2014 at 02:14:56PM -0400, Martin Abente wrote:
> James, Gonzalo,
>
> Regarding the IBSS/Ad-hoc scenario, if I set the address manually,
> collaborations work just fine. So this must be related to network
> discovery.
Thanks, that's interesting. Can you tell me _how_ you set the address
manually? When I tried it there was no real difference:
http://wiki.laptop.org/go/User:Quozl/Fedora_20/Manual_network_configuration
> My test goes like this:
>
> * I use one XO with fc18+S0.100 to create an ad-hoc network network.
> * From another XO, with fc20+S0.102, I connect to that ad-hoc network.
>
> The second XO ip address does not match the first one's network.
Can you tell me how it does not match? It always matches when I try
it; a link-local address 169.254.x.x valid to RFC 3927 is always
assigned, as shown by "ip addr" command.
http://en.wikipedia.org/wiki/Link-local_address
> But when I manually configure it, then buddy icons appears and
> collaboration works...
When I enable Sugar debugging and use sugar-launch as before, a new
interesting message is seen, "No active connection available" which is
because neither Gabble nor Salut is running.
% SUGAR_LOGGER_LEVEL=debug sugar-launch org.laptop.Chat
...
1410934106.660510 DEBUG root: Requesting public share of activity 3b34e9d6ce9f294d12cd79314f7946a2f8845be5.
1410934106.662832 DEBUG root: Share of activity 3b34e9d6ce9f294d12cd79314f7946a2f8845be5 failed: No active connection available.
...
The error is reported by the __share_cb method of the Activity class.
/usr/lib/python2.7/site-packages/sugar3/activity/activity.py:
def __share_cb(self, ps, success, activity, err):
if not success:
logging.debug('Share of activity %s failed: %s.' %
(self._activity_id, err))
return
...
def share(self, private=False):
...
pservice = presenceservice.get_instance()
pservice.connect('activity-shared', self.__share_cb)
pservice.share_activity(self, private=private)
The error comes from the share_activity method of the PresenceService
class.
/usr/lib/python2.7/site-packages/sugar/presence/presenceservice.py
def share_activity(self, activity, properties=None, private=True):
...
connection_manager = get_connection_manager()
account_path, connection = \
connection_manager.get_preferred_connection()
if connection is None:
self.emit('activity-shared', False, None,
'No active connection available')
return
/usr/lib/python2.7/site-packages/sugar/presence/connectionmanager.py
def get_preferred_connection(self):
best_connection = None, None
for account_path, connection in self._connections_per_account.items():
if 'salut' in account_path and connection.connected:
best_connection = account_path, connection.connection
elif 'gabble' in account_path and connection.connected:
best_connection = account_path, connection.connection
break
return best_connection
There is no /usr/libexec/telepathy-salut process. The process does
exist if an access point is used in place of IBSS ad-hoc. The
question becomes: why isn't Salut running?
> On Tue, Sep 16, 2014 at 11:01 AM, Martin Abente <[1]
> martin.abente.lahaye at gmail.com> wrote:
>
> Hello James,
>
> I included the new kernel (and reverted that commit) and now collaboration
> works even between fc20+S0.102 and F18+S0.100.
>
> I tested it using a wifi network (with DHCP enabled) and Chat activity.
>
> Really awesome work James!
>
> On Tue, Sep 16, 2014 at 3:53 AM, James Cameron <[2]quozl at laptop.org> wrote:
>
> Summary: partially solved with new kernel.
>
> The Chat activity was run with debug logging in Terminal:
>
> % SUGAR_LOGGER_LEVEL=debug sugar-launch org.laptop.Chat
>
> At the time the activity was shared, the log showed:
>
> 1410842095.436535 DEBUG sugar3.presence.activity: <_ShareCommand object
> at 0x527dc8 (sugar3+presence+activity+_ShareCommand at 0x4f7c20)>: Join
> finished DBusException(dbus.String(u'Failed to connect to multicast
> group'),)
>
> Telepathy Salut was failing to setup the multicast group, because it
> was calling setsockopt with SO_REUSEPORT, because Fedora 20 header
> files define SO_REUSEPORT, but the OLPC kernel did not.
>
> (It is bad that the failure was not reported to the user or to the
> logs unless debug logging was turned on. If someone cares, they can
> raise a bug.)
>
> Adding SO_REUSEPORT support to the kernel [2] solved for Salut over
> networks where DHCP is available; such as wired or wireless access
> points. The new kernel is in the dropbox [3]. The previous change to
> avahi-daemon configuration is removed [4].
>
> A different problem occurs with Salut over link local addresses; IBSS
> ad-hoc wireless. The buddy icons are missing.
>
> # avahi-browse -t _presence._tcp # shows no output
>
> References:
>
> 1.
> [3]http://code.metager.de/source/xref/freedesktop/telepathy/salut/lib/
> gibber/gibber-multicast-transport.c
>
> 2.
> [4]http://dev.laptop.org/git/olpc-kernel/log/?h=arm-3.5
>
> 3.
> [5]http://rpmdropbox.laptop.org/f20-xo4/
> kernel-3.5.7_xo4-20140916.0607.olpc.5196e01.armv7hl.rpm
>
> 4.
> [6]http://dev.laptop.org/git/projects/olpc-os-builder/commit/?id=
> f34ddb8b83ca6b9cb657e115df117ffa3704eea5
>
> On Thu, Sep 11, 2014 at 06:24:20PM +1000, James Cameron wrote:
> > G'day,
> >
> > Activities shared by Fedora 20 systems do not appear in Network
> > Neighbourhood on Fedora 18 or Fedora 20 systems. Buddies appear.
> > Activities shared by Fedora 18 Sugar 0.98 systems appear.
> >
> > So this is a failure to announce sharing of activities on Sugar 0.102
> > on Fedora 20.
> >
> > tcpdump shows mDNS packets for every operation except when an
> activity
> > is shared on Fedora 20.
> >
> > avahi-browse output is consistent with Network Neighbourhood.
> >
> > avahi-browse -t _presence._tcp # for buddies
> > avahi-browse -t _clique._udp # for activities
> >
> > (avahi-daemon needed tweaking to compensate for lack of SO_REUSEPORT
> > support in 3.5 kernel; change /etc/avahi/avahi-daemon.conf to set
> > disallow-other-stacks=yes)
> >
> > I have tried [7]http://wiki.sugarlabs.org/go/BugSquad/
> Telepathy_Debugging
> > but there is no interesting output corresponding to the event.
> >
> > I have used strace and seen possible D-Bus activity relating to the
> > event. sendmsg(11, {msg_name(0)=NULL, msg_iov(2)=[{"l\1\0\1<\0\0\0/\
> 0\0\0\252\0\0\0\1\1o\0?\0\0\0/org/fre"..., 192}, {"+\0\0\[8]
> 0org.freedesktop.Telepathy.Ch"..., 60}], msg_controllen=0, msg_flags=
> 0}, MSG_NOSIGNAL) = 252
> >
> > I welcome any suggestions for further diagnosing this problem.
> >
> > --
> > James Cameron
> > [9]http://quozl.linux.org.au/
>
> --
> James Cameron
> [10]http://quozl.linux.org.au/
> _______________________________________________
> Devel mailing list
> [11]Devel at lists.laptop.org
> [12]http://lists.laptop.org/listinfo/devel
>
> References:
>
> [1] mailto:martin.abente.lahaye at gmail.com
> [2] mailto:quozl at laptop.org
> [3] http://code.metager.de/source/xref/freedesktop/telepathy/salut/lib/gibber/gibber-multicast-transport.c
> [4] http://dev.laptop.org/git/olpc-kernel/log/?h=arm-3.5
> [5] http://rpmdropbox.laptop.org/f20-xo4/
> [6] http://dev.laptop.org/git/projects/olpc-os-builder/commit/?id=f34ddb8b83ca6b9cb657e115df117ffa3704eea5
> [7] http://wiki.sugarlabs.org/go/BugSquad/Telepathy_Debugging
> [8] http://0org.freedesktop.telepathy.ch/
> [9] http://quozl.linux.org.au/
> [10] http://quozl.linux.org.au/
> [11] mailto:Devel at lists.laptop.org
> [12] http://lists.laptop.org/listinfo/devel
--
James Cameron
http://quozl.linux.org.au/
More information about the Sugar-devel
mailing list