[Creme 2.5] Probleme de synchro des mails
#1
Bonjour,

Nous rencontrons un souci avec la synchronisation des mails.
Certains mails, bloquent la synchro dans crème. il faut les enlever a la main dans la boite mail pour pourvoir débloquer.
nous sommes sous crème 2.5 en docker

au niveau des logs j'ai
Code :
[2024-07-10 15:29:57] ERROR - creme.creme_core.creme_jobs.base :

Traceback (most recent call last):

  File "/srv/creme/venv/lib/python3.8/site-packages/creme/creme_core/creme_jobs/base.py", line 119, in execute

    self._execute(job)

  File "/srv/creme/venv/lib/python3.8/site-packages/creme/emails/creme_jobs/entity_emails_sync.py", line 265, in _execute

    if self._create_email_to_sync(

  File "/srv/creme/venv/lib/python3.8/site-packages/creme/emails/creme_jobs/entity_emails_sync.py", line 213, in _create_email_to_sync

    person=cache.get_entity(sender, owner),

  File "/srv/creme/venv/lib/python3.8/site-packages/creme/emails/creme_jobs/entity_emails_sync.py", line 83, in get_entity

    entity = EntityCredentials.filter(

  File "/srv/creme/venv/lib/python3.8/site-packages/creme/creme_core/auth/entity_credentials.py", line 155, in filter

    queryset=queryset.filter(cls._build_sandbox_Q(user)),

  File "/srv/creme/venv/lib/python3.8/site-packages/creme/creme_core/auth/entity_credentials.py", line 113, in _build_sandbox_Q

    teams = user.teams

  File "/srv/creme/venv/lib/python3.8/site-packages/creme/creme_core/models/auth.py", line 1081, in teams

    assert not self.is_team

AssertionError
et aussi

Code :
[pid: 51|app: 0|req: 2268/5237] 172.27.0.1 () {64 vars in 1381 bytes} [Wed Jul 10 15:32:07 2024] GET /emails/synchronization/portal => generated 37403 bytes in 88 msecs (HTTP/1.1 200) 9 headers in 398 bytes (1 switches on core 0)

/srv/creme/venv/lib/python3.8/site-packages/formtools/__init__.py:2: DeprecationWarning: pkg_resources is deprecated as an API. See https://setuptools.pypa.io/en/latest/pkg_resources.html

  from pkg_resources import DistributionNotFound, get_distribution
Merci d'avance!
  Répondre
#2
Bonsoir,

je regarderai ça après mes vacances (donc oui il y aura plus de délais que d'habitude). Le 2ème message n'est pas inquiétant, en revanche il semble que vous ayez trouvé un bug (ça a l'air en lien avec les équipes -- j'espère que vous en utilisez sinon je ne comprends pas haha).

Désolé pour le timing un peu nul.

À bientôt !
  Répondre
#3
Bonjour, pas de soucis pour le délai!

Il y a bien 2 équipes crées.

Bonnes vacances!
  Répondre
#4
Voici d'autres erreurs que nous avons :

Code :
[2024-07-17 14:28:21] ERROR - django.request : Internal Server Error: /emails/synchronization/email_to_sync/accept

[pid: 51|app: 0|req: 3102/6770] 172.27.0.1 () {68 vars in 1399 bytes} [Wed Jul 17 14:28:21 2024] POST /emails/synchronization/email_to_sync/accept => generated 64 bytes in 249 msecs (HTTP/1.1 500) 8 headers in 278 bytes (1 switches on core 0)

[2024-07-17 14:28:34] ERROR - creme.creme_core.middleware.exceptions : Error (status=409)

Traceback (most recent call last):

  File "/srv/creme/venv/lib/python3.8/site-packages/django/core/handlers/base.py", line 197, in _get_response

    response = wrapped_callback(request, *callback_args, **callback_kwargs)

  File "/srv/creme/venv/lib/python3.8/site-packages/django/views/generic/base.py", line 104, in view

    return self.dispatch(request, *args, **kwargs)

  File "/srv/creme/venv/lib/python3.8/site-packages/creme/creme_core/views/generic/base.py", line 381, in dispatch

    return super().dispatch(request, *args, **kwargs)

  File "/srv/creme/venv/lib/python3.8/site-packages/django/views/generic/base.py", line 143, in dispatch

    return handler(request, *args, **kwargs)

  File "/srv/creme/venv/lib/python3.8/site-packages/creme/emails/views/synchronization.py", line 321, in post

    raise ConflictError(

creme.creme_core.core.exceptions.ConflictError: Vous ne pouvez pas supprimer les dernier destinataire.

[2024-07-17 14:28:34] WARNING - django.request : Conflict: /emails/synchronization/email_to_sync/90/recipient/delete

[pid: 52|app: 0|req: 1656/6771] 172.27.0.1 () {68 vars in 1425 bytes} [Wed Jul 17 14:28:34 2024] POST /emails/synchronization/email_to_sync/90/recipient/delete => generated 54 bytes in 24 msecs (HTTP/1.1 409) 8 headers in 265 bytes (1 switches on core 0)

[2024-07-17 14:28:55] ERROR - creme.creme_core.middleware.exceptions : Error (status=500)

Traceback (most recent call last):

  File "/srv/creme/venv/lib/python3.8/site-packages/django/core/handlers/base.py", line 197, in _get_response

    response = wrapped_callback(request, *callback_args, **callback_kwargs)

  File "/srv/creme/venv/lib/python3.8/site-packages/django/views/generic/base.py", line 104, in view

    return self.dispatch(request, *args, **kwargs)

  File "/srv/creme/venv/lib/python3.8/site-packages/creme/creme_core/views/generic/base.py", line 381, in dispatch

    return super().dispatch(request, *args, **kwargs)

  File "/srv/creme/venv/lib/python3.8/site-packages/django/views/generic/base.py", line 143, in dispatch

    return handler(request, *args, **kwargs)

  File "/srv/creme/venv/lib/python3.8/site-packages/creme/emails/views/synchronization.py", line 158, in post

    self.perform_operation(e2s)

  File "/srv/creme/venv/lib/python3.8/site-packages/creme/emails/views/synchronization.py", line 232, in perform_operation

    folder = get_folder_model().objects.get_or_create(

  File "/srv/creme/venv/lib/python3.8/site-packages/django/db/models/manager.py", line 87, in manager_method

    return getattr(self.get_queryset(), name)(*args, **kwargs)

  File "/srv/creme/venv/lib/python3.8/site-packages/django/db/models/query.py", line 916, in get_or_create

    return self.get(**kwargs), False

  File "/srv/creme/venv/lib/python3.8/site-packages/django/db/models/query.py", line 640, in get

    raise self.model.MultipleObjectsReturned(

creme.documents.models.folder.Folder.MultipleObjectsReturned: get() returned more than one Folder -- it returned more than 20!

[2024-07-17 14:28:55] ERROR - django.request : Internal Server Error: /emails/synchronization/email_to_sync/accept
  Répondre
#5
Bonjour,

à propos de votre première erreur, avez vous dans votre configuration des synchro de mails assigné en tant que "Propriétaire par défaut" une équipe ?
  Répondre
#6
Bonjour,

Désolé pour ma réponse tardive.

Effectivement dans les configurations de synchro de mail, le propriétaire par défaut est bien l’équipe.

Bonne journée
  Répondre
#7
Bonjour !

À propos du bug des équipes (les erreurs dans le job)

je pense avoir corrigé ce bug (le correctif sera dans les releases de début octobre).

En revanche un détail me perturbe. Lorsque j'ai reproduit le bug (donc en 1) mettant une équipe en propriétaire par défaut des e-mails synchronisés 2) en récupérant un e-mail dont aucune adresse ne correspond à celle d'un utilisateur) , le code plantait un peu avant l'endroit que vos traces ne l'indiquent. En effet, il y a un endroit qui vérifie que le propriétaire a un rôle AVANT la vérification que ce n'est pas une  équipe ( là où ça plante chez vous). Ce qui indiquerait que vous avez une équipe qui a un rôle, ce qui n'est normalement pas possible

 - ça pourrait être un bug qui n'est plus présent dans le code actuel, mais votre base est ancienne (il faudrait alors corriger votre base de données pour éviter les surprises à l'avenir).
 - ça pourrait être une modification que vous avez fait manuellement (via du code, ou directement en base de données) ; c'est sûrement une mauvaise idée et il faudrait l'indiquer quand vous remontez un souci.
 - ça pourrait être un bug encore présent. Si vous arrivez à créer une équipe avec un rôle via l'UI, c'est un bug, indiquez moi comment faire je corrigerai ça.

En attendant, si vous le souhaitez, vous pouvez contourner le bug en mettant en propriétaire par défaut un utilisateur qui n'est pas une équipe.

À propos des autres erreurs

Sauf erreur de ma part, seule la dernière erreur en est une une :

Code :
[...]
creme.documents.models.folder.Folder.MultipleObjectsReturned: get() returned more than one Folder -- it returned more than 20!

J'ai aussi corrigé ce souci (là encore ça sera dans les release d'Octobre).

Il semble que pour un de vos utilisateurs vous ayez au moins 20 Classeurs avec la catégorie "Documents reçus par e-mail". Ce n'est pas forcément un souci, et le code ne devrait pas planter pour autant (c'est l'objet de ma correction). En revanche, ça n'a pas forcément beaucoup de sens, et le code corrigé prendra le premier de ces classeurs pour ranger les fichiers attachés des e-mails synchronisés (donc si vous en avez plein vous ne maîtriserez pas forcément bien où vont les choses).

Là encore, en attendant vous pouvez juste laisser un seul Classeur avec cette catégorie par utilisateur (mais s'il n'y en n'a pas il sera créé, c'est le fait d'en avoir plusieurs le souci) afin d'éviter le plantage dans votre version actuelle.

Bonne fin de journée !
  Répondre


Atteindre :


Utilisateur(s) parcourant ce sujet : 3 visiteur(s)