Ticket #3771 (closed defect: fixed)

Opened 6 months ago

Last modified 5 months ago

all meta contacts lost

Reported by: Jim++ Owned by: asterix
Priority: highest Milestone: 0.12
Component: roster Version: svn
Severity: critical Keywords:
Cc: OS: All

Description

We had report, that since one or two weeks maybe, metacontacts are being deleted, for the whole roster. I investigate, here are infos.

Seems it happens when you deconnect and reconnect, but not when you quit gajim and launch it again.

Creating metacontact XML :

<iq from="jim2@jabber.nicfit.net/Gajim" type="set" id="493">
<query xmlns="jabber:iq:roster">
<item jid="firstjid@for.meta" />
</query>
</iq>

<iq from="jim2@jabber.nicfit.net/Gajim" type="set" id="494">
<query xmlns="jabber:iq:private">
<storage xmlns="storage:metacontacts">
<meta jid="secondjid@for.meta" tag="secondjid@for.meta" />
<meta jid="firstjid@for.meta" tag="secondjid@for.meta" />
</storage>
</query>
</iq>

<iq type='set'>
<query xmlns='jabber:iq:roster'>
<item jid='firstjid@for.meta' subscription='both'/>
</query>
</iq>

<iq from='jim2@jabber.nicfit.net/Gajim' id='493' to='jim2@jabber.nicfit.net/Gajim' type='result' xml:lang='fr'/>

<iq from='jim2@jabber.nicfit.net/Gajim' id='494' to='jim2@jabber.nicfit.net/Gajim' type='result' xml:lang='fr'/>

Reconnecting XML (selected parts) :

<iq from="jim2@jabber.nicfit.net/Gajim" type="get" id="500">
<query xmlns="jabber:iq:private">
<storage xmlns="storage:metacontacts" />
</query>
</iq>


<iq from='jim2@jabber.nicfit.net/Gajim' id='500' type='result' xml:lang='fr'>
<query xmlns='jabber:iq:private'>
<storage xmlns='storage:metacontacts'>
<meta jid='secondjid@for.meta' tag='secondjid@for.meta'/>
<meta jid='firstjid@for.meta' tag='secondjid@for.meta'/>
</storage>
</query>
</iq>

<iq from="jim2@jabber.nicfit.net/Gajim" type="get" id="501">
<query xmlns="jabber:iq:roster" />
</iq>

<iq from='jim2@jabber.nicfit.net/Gajim' id='501' type='result' xml:lang='fr'>
<query xmlns='jabber:iq:roster'>
<item jid='firstjid@for.meta' subscription='both'/>
<item ask='subscribe' jid='secondjid@for.meta' subscription='none'/>
</query>
</iq>


<iq from="jim2@jabber.nicfit.net/Gajim" type="set" id="506">
<query xmlns="jabber:iq:private">
<storage xmlns="storage:metacontacts">
<meta jid="secondjid@for.meta" tag="secondjid@for.meta" order="0" />
</storage>
</query>
</iq>

<iq from="jim2@jabber.nicfit.net/Gajim" type="set" id="507">
<query xmlns="jabber:iq:private">
<storage xmlns="storage:metacontacts" />
</query>
</iq>

Here, we already see contacts separated, even since the xml seems to tell we have a meta. (As far as I understand it).

When we deconnect and reconnect again, server tells we have no meta.

Attachments

Change History

Changed 5 months ago by vArDo

I confirm this one. Except that I noticed that meta-contact are not destroyed when these two conditions are met:

  1. 'show off-line contacts' is on
  2. all contacts in meta-contact are offline

Then I go offline, then on-line and the meta-contact is not destroyed.

If at least one of contacts in meta-contact is on-line when going on-line, the meta-contact is destroyed.

If off-line contacts are hidden, the meta-contact is destroyed.

If I have off-line contacts shown and exit Gajim, when I execute it again meta-contact is destroyed (even if all contacts in it are off-line).

Changed 5 months ago by vArDo

I don't know whether it's related, but on my test profile (4 contacts in roster) I have problems with creating meta-contacts - drag'n'drop sometimes creates meta-contact, sometimes not. But I can't figure out 100% way to reproduct this.

The strange thing also is that on my normal profile creating metacontacts works fine. This is the same revision from svn as the test profile.

Changed 5 months ago by asterix

  • status changed from new to closed
  • resolution set to fixed

(In [9429]) don't remove metacontact when we reconnect. fixes #3771

Add/Change #3771 (all meta contacts lost)

Author



Change Properties
<Author field>
Action
as closed
Next status will be 'reopened'
 
Note: See TracTickets for help on using tickets.