Zammad: les rapports génèrent une exception lors de la génération d'une liste de tickets lors de la suppression de tickets via l'API

Créé le 16 avr. 2019  ·  3Commentaires  ·  Source: zammad/zammad

Bonjour, merci d'avoir signalé un problème. Veuillez vous assurer des éléments suivants avant de créer un problème - merci ! 🤓 Depuis le 15 novembre nous traitons toutes les demandes, sauf les vrais bugs, sur notre community board. Explication complète : https://community.zammad.org/t/major-change-regarding-github-issues-community-board/21 Merci de poster : - Demandes de fonctionnalités - Questions de développement - Questions techniques sur le forum -> https:/ /community.zammad.org ! Si vous pensez avoir rencontré un bogue, veuillez continuer : - Recherchez les problèmes existants et le CHANGELOG.md pour votre problème - il y a peut-être déjà une solution - Assurez-vous d'utiliser la dernière version de Zammad si possible - Ajoutez le `log/production. log` de votre système. Attention : Assurez-vous qu'aucune donnée confidentielle ne s'y trouve ! - Veuillez écrire le problème en anglais - Ne supprimez pas le modèle - sinon nous fermerons le problème sans autre commentaire - Posez des questions sur la configuration et l'utilisation de Zammad sur notre liste de diffusion. Voir : https://zammad.org/participate Remarque : Nous faisons toujours de notre mieux. Malheureusement, il y a parfois trop de demandes et nous ne pouvons pas tout traiter en même temps. Si vous souhaitez hiérarchiser/faire remonter votre problème, vous pouvez le faire au moyen d'un contrat de support (voir https://zammad.com/pricing#selfhosted). * Le bloc de texte supérieur sera supprimé automatiquement lorsque vous soumettez votre problème *

Ce message a été édité par @MrGeneration pour répondre à notre format nécessaire et aussi, pour le remplir avec plus d'informations

Infos :

  • Version Zammad utilisée : 3.0
  • Méthode d'installation (source, package, ..) : n'importe laquelle
  • Système d'exploitation : n'importe lequel
  • Base de données + version : n'importe laquelle
  • Version d'Elasticsearch : 5.6 (probablement n'importe laquelle)
  • Navigateur + version : n'importe lequel
  • Ticket-ID: #1047094 , #1048216

Comportement prévisible:

Lorsque vous utilisez le planificateur pour supprimer des tickets (ou que vous le faites manuellement via l'API ou la console), cela n'affectera pas le module de rapport. Cela signifie que vos rapports fonctionneront comme il se doit et renverront toutes les données valides disponibles.

Comportement réel :

Lorsque vous utilisez le planificateur, la console ou l'API pour supprimer un ticket, cela générera des erreurs si elasticsearch renvoie des tickets qui n'existent plus dans notre base de données.

La console lancera ce qui suit :
image

Le graphique sera créé sans problème, mais la liste des tickets ci-dessous ne sera ni mise à jour ni créée.

Il s'agit en partie d'une régression de #2246 (juste en partie parce qu'elle supprime une erreur qui prend une erreur dans le genou sur une autre partie du rapport).

Étapes pour reproduire le comportement :

  • créer des billets
  • ouvrez la console de votre navigateur
  • ouvrez les rapports et vérifiez les statistiques, tout devrait fonctionner (la console du navigateur est "propre")
  • supprimer un ou deux tickets
  • rechargez et ouvrez à nouveau les rapports (la console du navigateur renverra l'erreur ci-dessus)

Reson pour ce comportement:

Ce problème est causé par un index elasticsearch obsolète (cela sera couvert par un autre problème, bientôt) et une erreur pas trop robuste qui s'échappe.

Oui, je suis sûr que c'est un bogue et aucune demande de fonctionnalité ou une question générale.

Message d'origine

Infos :

  • Version Zammad utilisée : docker dernière version 2.9.x
  • Méthode d'installation (source, package, ..): docker

Comportement prévisible:

  • liste des billets spectacles comme celui-ci
    image

Comportement réel :

  • aucune table de tickets n'est affichée, la console js affiche une erreur :
application-a35ba2c058c01543bd0e17e5377c39817d3a79131917e530a74dfaea7a7fe689.js:22 > Uncaught TypeError: Cannot read property 'customer_id' of null
    at Function.n._fillUp (application-a35ba2c058c01543bd0e17e5377c39817d3a79131917e530a74dfaea7a7fe689.js:22)
    at Function.n.fullLocal (application-a35ba2c058c01543bd0e17e5377c39817d3a79131917e530a74dfaea7a7fe689.js:21)
    at Object.success (application-a35ba2c058c01543bd0e17e5377c39817d3a79131917e530a74dfaea7a7fe689.js:42)
    at c (application-a35ba2c058c01543bd0e17e5377c39817d3a79131917e530a74dfaea7a7fe689.js:2)
    at Object.fireWith [as resolveWith] (application->a35ba2c058c01543bd0e17e5377c39817d3a79131917e530a74dfaea7a7fe689.js:2)
    at i (application-a35ba2c058c01543bd0e17e5377c39817d3a79131917e530a74dfaea7a7fe689.js:3)
    at XMLHttpRequest.<anonymous> (application-a35ba2c058c01543bd0e17e5377c39817d3a79131917e530a74dfaea7a7fe689.js:3)

Étapes pour reproduire le comportement :

  • supprimez certains tickets via l'API comme ceci :
export TOKEN=`cat TOKEN`
TICKETS=``curl -H "Authorization: Token token=$TOKEN" https://YOURDOMAINHERE/api/v1/tickets/search?query=group:_delete_these_tickets_|jq ".tickets[]"`
for i in $TICKETS ; do
        echo $I
        curl -H "Authorization: Token token=$TOKEN" -s https://YOURDOMAINHERE/api/v1/tickets/$i -X > DELETE
done

Désormais, les tickets apparaissent toujours dans l'appel AJAX ' https://YOURDOMAINHERE/api/v1/reports/sets '

duplicate

Commentaire le plus utile

fonctionne comme vous l'avez dit @thorsteneckel
merci d'avoir réparé

Tous les 3 commentaires

Hey @SummerStorm - J'étais en train de déboguer cela avec @MrGeneration sur une machine cliente et nous avons trouvé la cause première et une solution viable. Le correctif est en route. Je prends le relais d'ici 👍

Nous avons découvert que ce problème est un symptôme de #2611 qui a déjà été corrigé avec Zammad 3.1. Pourriez-vous s'il vous plaît mettre à jour votre installation de Zammad vers la dernière version stable, reconstruire votre index de recherche (en exécutant zammad run rake searchindex:rebuild ) puis réessayer. Cela devrait le résoudre. Si ce n'est pas le cas, veuillez me le faire savoir. Je vais fermer ça pour l'instant.

fonctionne comme vous l'avez dit @thorsteneckel
merci d'avoir réparé

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