Skip to content
This repository has been archived by the owner on Feb 12, 2023. It is now read-only.

Identicon does not display in contact list for friends running older client #4724

Closed
anthonybilinski opened this issue Oct 11, 2017 · 8 comments
Labels
C-bug The issue contains a bug report M-ui Affected Module: User Interface

Comments

@anthonybilinski
Copy link
Member

anthonybilinski commented Oct 11, 2017

Brief Description

OS: Ubuntu 16.04
Commit hash: 42c4a74

Reproducible: Always

Steps to reproduce
  1. Run client past identicon addition
  2. Have contact come online running client before identicon addition
Observed Behavior

Before friend comes online, their avatar is shown as their identicon. Once they come online, in group list, they have the old default avatar. Selecting and de-selecting does not change it. Clicking "show details" on the friend shows the identicon, not the default avatar.

Expected Behavior

Identicon is showed in all places for the friend.

@sudden6 sudden6 added C-bug The issue contains a bug report M-ui Affected Module: User Interface labels Oct 12, 2017
anthonybilinski added a commit to anthonybilinski/qTox that referenced this issue Oct 27, 2017
@tox-user
Copy link
Contributor

tox-user commented Nov 23, 2017

@anthonybilinski is this issue still relevant in newer versions? I can't reproduce it.

@anthonybilinski
Copy link
Member Author

Yes, I just reproduced it locally. Something that may interfere with reproducing is if the profile that you're opening on the pre-identicon version has ever been opened post-identicon, it will have generated an identicon and saved it locally, causing it to send that instead of an empty avatar when it connects to its friend. Since the issue it rooted in us deleting the avatar when we receive an empty avatar, this won't trigger it.

Creating a new profile on a qTox version pre-identicon and adding a post-identicon profile as a friend will cause this any time the old version comes online.

@anthonybilinski
Copy link
Member Author

My (bad and abandoned) PR above points to the location in code where we delete the generated avatar for our friend when they come online and send us an empty avatar.

@tox-user
Copy link
Contributor

Does a different client count as pre-identicon? My friend is running another client and I'm on qTox post identicon. I don't have this problem at all. If this issues is caused by an empty avatar it shouldn't matter which client sends it?

@anthonybilinski
Copy link
Member Author

I just tried with uTox and couldn't reproduce. I don't see any log when the friend comes online, unlike what I see when a friend comes online in qTox or Antox:
[18:10:25.202 UTC] core/corefile.cpp:285 : Debug: "Received empty avatar request 43:65536", so I think uTox just doesn't send an empty avatar if it has no avatar.

I can reproduce with Antox and qTox.

@tox-user
Copy link
Contributor

tox-user commented Nov 24, 2017

My friend was using Antox and I couldn't reproduce... I don't get any log message when they come online. Why does it even happen? This function is supposed to generate identicons for each empty avatar https://github.com/qTox/qTox/blob/master/src/persistence/profile.cpp#L395. Or is it not related?

@tox-user
Copy link
Contributor

I might be using a different version of qTox.

@anthonybilinski
Copy link
Member Author

To go over repro case more clearly:

  1. Come online on new qTox client (after identicon addition), I'm using c274cec . This is friend 'A'.
    state from A's point of view: friend 'B' is offline, their avatar looks like an identicon, because like you pointed out, it's generated on load
  2. Come online on old qTox client (before identicon addition), I'm using 68e0b46. This is friend 'B'
    state from B's point of view: B sees its own avatar as blank, it sees A's avatar as an identicon (because they're sharing config directories, and there's an avatar for A there)
    state from A's point of view: A sees old client as offline with an identicon avatar.
  3. As soon as the two friends see each other come online, they send each other their avatars:
    3.1 A sends B an identicon as avatar, old client rejects it, since it's in cache. Nothing changes from B's point of view.
    3.2 B sends A an empty avatar (since no avatar is set), A sees that, logs [23:16:44.101 UTC] core/corefile.cpp:285 : Debug: "Received empty avatar request 43:65536", emits a signal that it received a request to delete an avatar, and un-sets the identicon that was loaded. A now sees B's avatar as a blank portrait (old style) instead of as the generated identicon.

I've you're not seeing the log that you received an empty avatar request, you definitely won't repro this issue. The empty avatar request is key as it is what causes the generated identicon to be deleted.

anthonybilinski added a commit to anthonybilinski/qTox that referenced this issue Aug 28, 2018
anthonybilinski added a commit to anthonybilinski/qTox that referenced this issue Aug 28, 2018
anthonybilinski added a commit to anthonybilinski/qTox that referenced this issue Aug 28, 2018
*All friend avatar changes and removals go through Profile, so that Profile can manage identicons
*Split the concept of "changed" and "removed" into "changed", "set", and "removed"

Fixes qTox#4724
anthonybilinski added a commit to anthonybilinski/qTox that referenced this issue Aug 28, 2018
*All friend avatar changes and removals go through Profile, so that Profile can manage identicons
*Split the concept of "changed" and "removed" into "changed", "set", and "removed"

Fixes qTox#4724
anthonybilinski added a commit to anthonybilinski/qTox that referenced this issue Aug 28, 2018
*All friend avatar changes and removals go through Profile, so that Profile can manage identicons
*Split the concept of "changed" and "removed" into "changed", "set", and "removed"

Fixes qTox#4724
anthonybilinski added a commit to anthonybilinski/qTox that referenced this issue Sep 6, 2018
*All friend avatar changes and removals go through Profile, so that Profile can manage identicons
*Split the concept of "changed" and "removed" into "changed", "set", and "removed"

Fixes qTox#4724
anthonybilinski added a commit to anthonybilinski/qTox that referenced this issue Sep 6, 2018
*All friend avatar changes and removals go through Profile, so that Profile can manage identicons
*Split the concept of "changed" and "removed" into "changed", "set", and "removed"

Fixes qTox#4724
anthonybilinski added a commit to anthonybilinski/qTox that referenced this issue Sep 6, 2018
*All friend avatar changes and removals go through Profile, so that Profile can manage identicons
*Split the concept of "changed" and "removed" into "changed", "set", and "removed"

Fixes qTox#4724
anthonybilinski added a commit to anthonybilinski/qTox that referenced this issue Sep 6, 2018
*All friend avatar changes and removals go through Profile, so that Profile can manage identicons
*Split the concept of "changed" and "removed" into "changed", "set", and "removed"

Fixes qTox#4724
anthonybilinski added a commit to anthonybilinski/qTox that referenced this issue Sep 13, 2018
*All friend avatar changes and removals go through Profile, so that Profile can manage identicons
*Split the concept of "changed" and "removed" into "changed", "set", and "removed"

Fixes qTox#4724
anthonybilinski added a commit to anthonybilinski/qTox that referenced this issue Sep 17, 2018
*All friend avatar changes and removals go through Profile, so that Profile can manage identicons
*Split the concept of "changed" and "removed" into "changed", "set", and "removed"

Fixes qTox#4724
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
C-bug The issue contains a bug report M-ui Affected Module: User Interface
Projects
None yet
Development

No branches or pull requests

3 participants