cafebabel / cafebabel.com

The new Cafebabel!
https://cafebabel.com
MIT License
2 stars 1 forks source link

Ajouter le tag "creative" sur un article "fr" d'un autre editeur génère une 500 #440

Open vinyll opened 6 years ago

vinyll commented 6 years ago

Lorsque j'édite un article dont je ne suis pas l'auteur, comme https://cafebabel.com/fr/article/5ae00c12f723b35a145e838d/edit/, pour lui ajouter le tag "creative", le serveur génère une erreur 500:

StopIteration: 
  File "mongoengine/queryset/base.py", line 272, in get
    result = next(queryset)
  File "mongoengine/queryset/base.py", line 1466, in __next__
    raw_doc = next(self._cursor)
  File "pymongo/cursor.py", line 1177, in next
    raise StopIteration

DoesNotExist: Tag matching query does not exist.
  File "cafebabel/articles/tags/models.py", line 21, in get_or_create
    return self.get(**kwargs)
  File "mongoengine/queryset/base.py", line 276, in get
    raise queryset._document.DoesNotExist(msg)

DuplicateKeyError: E11000 duplicate key error collection: cafebabel_prod.tag index: language_1_slug_1 dup key: { : "fr", : "creative" }
(2 additional frame(s) were not displayed)
...
  File "pymongo/collection.py", line 2941, in insert
    check_keys, manipulate, write_concern)
  File "pymongo/collection.py", line 599, in _insert
    bypass_doc_val, session)
  File "pymongo/collection.py", line 580, in _insert_one
    _check_write_command_response(result)
  File "pymongo/helpers.py", line 207, in _check_write_command_response
    _raise_last_write_error(write_errors)
  File "pymongo/helpers.py", line 188, in _raise_last_write_error
    raise DuplicateKeyError(error.get("errmsg"), 11000, error)

NotUniqueError: Tried to save duplicate unique keys (E11000 duplicate key error collection: cafebabel_prod.tag index: language_1_slug_1 dup key: { : "fr", : "creative" })
(8 additional frame(s) were not displayed)
...
  File "cafebabel/core/helpers.py", line 48, in decorated_view
    return func(*args, **kwargs)
  File "cafebabel/articles/views.py", line 46, in edit
    article.save_from_request(request)
  File "cafebabel/articles/models.py", line 149, in save_from_request
    language=data['language'])
  File "cafebabel/articles/tags/models.py", line 23, in get_or_create
    return self.create(**kwargs)

https://sentry.io/cafebabel/cafababel/issues/536172135/

L'erreur ne semble pas se produire si je suis l'auteur de l'article ni pour les autres langues