C-toxcore: Impossible d'envoyer des messages dans le chat de groupe persistant

Créé le 30 juin 2018  ·  9Commentaires  ·  Source: TokTok/c-toxcore

Avec les groupes persistants, il arrive parfois que je ne puisse pas envoyer de messages dans le chat de groupe auquel je suis connecté. Malheureusement je ne sais pas comment reproduire ce bug et cela arrive de manière aléatoire. J'apparais comme en ligne et je peux envoyer des messages à des personnes, mais je ne peux pas envoyer de messages à un ou plusieurs groupes. Normalement, si je perdais la connexion à un groupe, je devrais juste être reconnecté, mais ici, cela n'arrive jamais. La seule façon pour moi de pouvoir envoyer à nouveau des messages est de quitter manuellement le groupe et de le rejoindre à nouveau ou de redémarrer le client.

Commentaire le plus utile

A était dans l'appel, s'est écrasé,

Merci. C'était l'indice dont j'avais besoin. Je crois que je vois le problème maintenant:
les messages d'un pair particulier sont accompagnés d'un "numéro de message",
incrémenté avec chaque message de ce pair, et les messages avec trop vieux
un numéro de message sont ignorés par les autres pairs. Le numéro du message actuel
est enregistré dans les données enregistrées, mais s'il y a un plantage et que le pair redémarre
à partir d'un ancien fichier de sauvegarde, ils commenceront à partir d'un ancien numéro de message et ainsi
les autres pairs les ignoreront. En particulier, ils ignorent le message kill
que le pair envoie s'il quitte le groupe, ce qui explique pourquoi partir
et rejoindre n'aide pas - les autres pairs ne réalisent même pas le pair
la gauche.

Tout cela vaut aussi pour l'audio (il y a un numéro de message séparé pour les pertes
paquets).

Cela peut prendre une certaine réflexion pour corriger correctement.

Tous les 9 commentaires

J'ai pu reproduire ce bug et j'ai remarqué que je peux toujours recevoir des messages de certaines personnes du groupe.

Fermeture car nous nous sommes débarrassés de l'ancien PGC PR.

Je viens de rencontrer ce problème en exécutant qTox avec toxcore v0.2.9. J'ai chargé un groupe persistant que j'ai chargé plusieurs fois auparavant et je n'ai pas pu envoyer de messages ou définir un titre. Je reçois toujours des messages de pairs. Le redémarrage de qTox ne résout pas le problème. D'autres groupes fonctionnent toujours très bien. Il n'y a pas d'envoi de message de connexion ou de jeu de titres.

Étant donné que le groupe semble être bloqué de cette façon, je serais heureux de creuser ce qui se passe avec gdb si un développeur principal peut me donner des conseils.

Nous avons rencontré le même problème avec un nouveau membre du groupe, exécutant Toxcore 0.2.9 :

Nous avons la même discussion de groupe avec 3 membres, A, B et C. Tous les trois étaient en ligne, mais les messages de A n'ont pas été remis à B ou C, et ils n'ont pas non plus reçu leurs propres messages. Cela a persisté à travers plusieurs redémarrages client de A.

Pendant le chat, A a vu B ou C se déconnecter et se reconnecter dans le groupe, et B et C se sont vus se déconnecter et se reconnecter dans leur chat 1-1. Après ce point, les messages de A ont ensuite été livrés à A et B, mais toujours pas à C.

Après un certain temps, C a fermé et rouvert son client, puis tous A, B et C ont pu voir les messages de tout le monde. @zugz c'est l'un des cas sur lesquels vous m'avez posé des questions sur IRC IIRC. Je vais rouvrir ce problème car il est reproductible sur la pointe et semble être en cours d'examen.

Merci d'avoir signalé cela. Je suis actuellement complètement mystifié, et je n'ai pas
réussi à reproduire le bug.

Quelques questions pour déterminer d'où pourrait provenir le problème :

L'un des membres a-t-il rejoint ou quitté d'autres groupes ?

Quelles paires de A, B, C étaient des amis toxicomanes ?

Ai-je raison de comprendre que pendant la période où les messages de A
n'étaient pas envoyés à tout le monde, A a néanmoins vu B et C dans le
liste de pairs pour le groupe (sauf lors de brèves déconnexions) ?

J'ai frappé à nouveau, maintenant sur la v0.2.10. Désolé, je vais répondre à vos questions maintenant pour le dernier cas de reproduction. Dans ce cas, le groupe comptait 4 membres. A était dans l'appel, s'est écrasé, puis a redémarré et a rejoint l'appel. Quand ils ont rejoint, tous les pairs ne pouvaient pas les entendre, mais A pouvait entendre tous les pairs, et tous les pairs n'ont pas reçu les messages texte de A, mais A a vu les leurs.

Quelles paires de A, B, C étaient des amis toxicomanes ?

A était ami avec B et C
B était ami avec A, C et D
C était ami avec A et B
D était ami avec B

L'un des membres a-t-il rejoint ou quitté d'autres groupes ?

Non. Tous les 4 étaient dans un appel audio de groupe en train de jouer à des jeux - aucun ne faisait quoi que ce soit de toxicomane.

Ai-je raison de comprendre que pendant la période où les messages de A
n'étaient pas envoyés à tout le monde, A a néanmoins vu B et C dans le
liste de pairs pour le groupe (sauf lors de brèves déconnexions) ?

Oui. B, C, D dans ce cas, tous figuraient dans la liste des pairs, et A recevait l'audio pour chacun d'eux.

A partir et être réinvité dans le groupe n'a pas résolu le problème, et A redémarrer leur client n'a pas résolu le problème. Les 4 membres devaient passer dans un nouveau groupe, où les choses fonctionnaient ensuite.

A utilisait qTox qui enregistre assez rarement le profil tox - uniquement sur l'ajout/suppression d'un ami, donc je ne vois pas comment le plantage de qTox pendant l'appel pourrait en quelque sorte corrompre l'état du profil tox - mais le plantage est peut-être une partie importante du repro.

A était dans l'appel, s'est écrasé,

Merci. C'était l'indice dont j'avais besoin. Je crois que je vois le problème maintenant:
les messages d'un pair particulier sont accompagnés d'un "numéro de message",
incrémenté avec chaque message de ce pair, et les messages avec trop vieux
un numéro de message sont ignorés par les autres pairs. Le numéro du message actuel
est enregistré dans les données enregistrées, mais s'il y a un plantage et que le pair redémarre
à partir d'un ancien fichier de sauvegarde, ils commenceront à partir d'un ancien numéro de message et ainsi
les autres pairs les ignoreront. En particulier, ils ignorent le message kill
que le pair envoie s'il quitte le groupe, ce qui explique pourquoi partir
et rejoindre n'aide pas - les autres pairs ne réalisent même pas le pair
la gauche.

Tout cela vaut aussi pour l'audio (il y a un numéro de message séparé pour les pertes
paquets).

Cela peut prendre une certaine réflexion pour corriger correctement.

Je pense que ce ticket a été fermé accidentellement. La cause première découverte par zugz était quelques mois après l'ouverture de https://github.com/TokTok/c-toxcore/pull/1321 , et sur la base des discussions, ce problème n'est toujours pas résolu. Réouverture.

Ah, oups. Oui, le message de validation dans #1321 avait "peut-être corrige x" et "répare x" est une sorte de chose magique GitHub qui ferme automatiquement le problème mentionné lors de la fusion.

Cette page vous a été utile?
0 / 5 - 0 notes

Questions connexes

SkyzohKey picture SkyzohKey  ·  8Commentaires

zetok picture zetok  ·  3Commentaires

szh7379 picture szh7379  ·  10Commentaires

zoff99 picture zoff99  ·  4Commentaires

DataMaster-2501 picture DataMaster-2501  ·  6Commentaires