Bug 316677 - Group chats do weird stuff
Summary: Group chats do weird stuff
Status: RESOLVED FIXED
Alias: None
Product: telepathy
Classification: Unmaintained
Component: text-ui (show other bugs)
Version: git-latest
Platform: Other Linux
: NOR major
Target Milestone: Future
Assignee: Telepathy Bugs
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2013-03-13 17:07 UTC by Aleix Pol
Modified: 2013-03-23 23:56 UTC (History)
1 user (show)

See Also:
Latest Commit:
Version Fixed In:
Sentry Crash Report:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Aleix Pol 2013-03-13 17:07:45 UTC
I wanted to send some text and a link to Alex and Martin (inside the office).

I opened a chat with one of both then invited the other and I typed. All of us ended up having the same I said like 3 or 4 times.
They always arrive with the same timestamp.

We tried a similar thing, and the same happened.

Reproducible: Always

Steps to Reproduce:
1. make 2 friends
2. open a chat with one of them
3. invite the other
4. say something
5. see what you said many times
6. wait for others to get it many times as well
Comment 1 David Edmundson 2013-03-20 23:29:44 UTC
I want a ktp-debbuger log of MC from every contact involved.

Then I want it again with a group chat that works (one person using gmail web interface seems to do it)

We can do this tomorrow if you're free.
Comment 2 David Edmundson 2013-03-21 01:32:39 UTC
Re-reading the documentation I have a mistake in the group channel request:

   if (m_channel->canInviteContacts()) {
        m_channel->inviteContacts(QList<Tp::ContactPtr>() << contact);
    }
    else {
        QList<Tp::ContactPtr> contacts;
        contacts << contact;
        contacts << m_channel->groupContacts(false).toList();
        m_account->createConferenceTextChat(QList<Tp::ChannelPtr>() << m_channel, contacts);
    }

the 
        contacts << m_channel->groupContacts(false).toList();

is wrong,
the second parameter is only additional contacts who should be invited so this line is not needed.
Will need help testing.
Comment 3 Aleix Pol 2013-03-21 01:54:36 UTC
How can I help, my friend?
Comment 4 David Edmundson 2013-03-22 15:01:07 UTC
Unsurprisingly my comment #2 did not magically fix everything.


This is the ktp-debugger MC log from the new channel requst.

Fri Mar 22 2013 -----------------------------
22/03/13 14:59:32.173233 - [mcd] dispatcher_channel_request_acl_start: start /org/freedesktop/Telepathy/Account/gabble/jabber/david_40davidedmundson_2eco_2euk0.org.freedesktop.Telepathy.Connection.Interface.Requests.CreateChannel acl (0x1dc8f40)
22/03/13 14:59:32.173302 - [mcd] dispatcher_channel_request_acl_success: complete acl (0x1dc8f40)
22/03/13 14:59:32.173391 - [mcd] _mcd_request_init: 0x2059220
22/03/13 14:59:32.174484 - [mcd] _mcd_request_new: 0x2059220 (for 0x1d55780)
22/03/13 14:59:32.174567 - [mcd] _mcd_channel_set_status: 0x1dbcf60, 1
22/03/13 14:59:32.174699 - [mcd] _mcd_request_predict_handler: No known handler for request /org/freedesktop/Telepathy/ChannelDispatcher/Request31
22/03/13 14:59:32.174753 - [mcd] dispatcher_channel_request_acl_cleanup: cleanup acl (0x1dc8f40)
22/03/13 14:59:32.184629 - [mcd] ready_to_request_cb: Starting online request
22/03/13 14:59:32.184700 - [mcd] _mcd_account_online_request: connection status for gabble/jabber/david_40davidedmundson_2eco_2euk0 is 0
22/03/13 14:59:32.184741 - [mcd] _mcd_account_online_request: gabble/jabber/david_40davidedmundson_2eco_2euk0 is already connected
22/03/13 14:59:32.184781 - [mcd] online_request_cb: called
22/03/13 14:59:32.184829 - [mcd] _mcd_mission_set_parent: child = 0x1dbcf60, parent = 0x20476c0
22/03/13 14:59:32.184966 - [mcd] _mcd_channel_set_status: 0x1dbcf60, 2
22/03/13 14:59:32.456676 - [mcd] common_request_channel_cb: got error: room is full
22/03/13 14:59:32.456733 - [mcd] _mcd_channel_set_status: 0x1dbcf60, 6
22/03/13 14:59:32.456782 - [mcd] _mcd_request_set_failure: Request failed: tp_errors 8: room is full
22/03/13 14:59:32.456909 - [mcd] mcd_channel_abort: 0x1dbcf60
22/03/13 14:59:32.456954 - [mcd] _mcd_channel_set_status: 0x1dbcf60, 7
22/03/13 14:59:32.457003 - [mcd] _mcd_mission_set_parent: child = 0x1dbcf60, parent = (nil)
22/03/13 14:59:32.457050 - [mcd] _mcd_operation_remove_mission: removing mission: 0x1dbcf60
22/03/13 14:59:32.457092 - [mcd] _mcd_channel_dispose: 0x1dbcf60 (is disposed = 0)
22/03/13 14:59:32.457146 - [mcd] _mcd_mission_dispose: mission disposed 0x1dbcf60
22/03/13 14:59:32.457192 - [mcd] _mcd_request_dispose: 0x2059220
22/03/13 14:59:32.457237 - [mcd] _mcd_request_finalize: 0x2059220
22/03/13 14:59:32.457283 - [mcd] _mcd_mission_finalize: mission finalized 0x1dbcf60
22/03/13 14:59:32.456888 - [mcd] Channel request /org/freedesktop/Telepathy/ChannelDispatcher/Request31 failed, error: room is full
Comment 5 David Edmundson 2013-03-22 15:23:54 UTC
I know what's wrong!

My createChannel request:

@o "/org/freedesktop/Telepathy/Account/gabble/jabber/david_40davidedmundson_2eco_2euk0"
@a{sv} {"org.freedesktop.Telepathy.Channel.ChannelType": <@s "org.freedesktop.Telepathy.Channel.Type.Text">, "org.freedesktop.Telepathy.Channel.Interface.Conference.InitialChannels": <@ao ["/org/freedesktop/Telepathy/Connection/gabble/jabber/david_40davidedmundson_2eco_2euk_2fkde_2dtelepathy/ImChannel11"]>, "org.freedesktop.Telepathy.Channel.Interface.Conference.InitialInviteeHandles": <@au [18]>}
@x 1363965518
@s ""

Gabble then sends in HandleOwnersChangedDetailed
@a{uu} {409: 1}
@au []
@a{us} {1: "david@davidedmundson.co.uk", 409: "private-chat-54fe6ab2-279e-4873-afa7-51a1300bb11c@conference.jabber.org/David Edmundson"}



summary: 
I'm creating a chat room on conference.jabber.org
We know gmail accounts don't work in conference.jabber.org and return with room is full.

This is why it works when a GMail web interface user creates the group chat.

TODO:
Get a bustle-dbus-monitor log from Empathy starting a group chat.
Comment 6 David Edmundson 2013-03-22 15:24:54 UTC
Or we simply override the "fallback conference server" in GTalk profiles
Comment 7 David Edmundson 2013-03-22 15:25:02 UTC
Or we simply override the "fallback conference server" in GTalk profiles
Comment 8 David Edmundson 2013-03-23 23:56:59 UTC
Git commit a3a8da73ecdcf2e4e45cef00132bb9b637c8cc46 by David Edmundson.
Committed on 24/03/2013 at 00:55.
Pushed by davidedmundson into branch 'master'.

Fix address of conference server for Google group chats

M  +1    -1    data/profiles/google-talk.profile

http://commits.kde.org/telepathy-accounts-kcm/a3a8da73ecdcf2e4e45cef00132bb9b637c8cc46