Nuxeo mailing list archives
[CPS-users-fr] CPSDefault logged_in conflict error
M.-A. DARCHE
madarche at nuxeo.com
Lun 17 Déc 10:26:19 CET 2007
Winterflood, Jonathan a écrit :
>
> Sur un site en production basé sur CPSDefault, nous rencontrons cette
> erreur:
>
> Type:
>
> ConflictError
>
> Error
>
> Value:
>
> database conflict error (oid 0x1f56, class
> Products.CPSDirectory.ZODBDirectory.ZODBDirectoryEntry, serial this txn
> started with 0x03720e71d0e53577 2007
>
> Traceback:
>
> Traceback (innermost last):
>
> _ Module Zope2.App.startup, line 173, in zpublisher_exception_hook
>
> _ Module ZPublisher.Publish, line 121, in publish
>
> _ Module Zope2.App.startup, line 240, in commit
>
> _ Module transaction._manager, line 96, in commit
>
> _ Module Products.CPSCompat.PatchZODBTransaction, line 175, in commit
>
> _ Module transaction._transaction, line 436, in _commitResources
>
> _ Module ZODB.Connection, line 665, in tpc_vote
>
> _ Module ZEO.ClientStorage, line 893, in tpc_vote
>
> _ Module ZEO.ClientStorage, line 877, in _check_serials
>
> ConflictError: database conflict error (oid 0x1f56, class
> Products.CPSDirectory.ZODBDirectory.ZODBDirectoryEntry, serial this txn
> started with 0x03720e71d0e53577 2007
>
> Celle-ci apparait à la connexion d’un utilisateur, lors de l’accès au
> script /logged_in/, mais n’empêche pas la connexion (ni le bon
> fonctionnement du reste du site)
>
> Un certain nombre de personnes partagent le même /user/ CPS, si cela
> peut être un indicateur…
>
> Je n’arrive pas à reproduire le problème en développement.
>
> Le script logged_in est celui de CPSDefault, sauf que l’URL de
> redirection est toujours portal_absolute_url.
>
> Je n’ai jamais rencontré de conflits auparavant… quelqu’un aurait-il une
> piste pour diriger mes recherches ? [Je me doute bien qu’il n’y a pas
> assez d’informations ici pour trouver le problème…]
>
Dans logged_in.py il y a une écriture qui est faite pour garder
la trace de la date de connexion de l'utilisateur :
member.setProperties(login_time=now, last_login_time=login_time)
Si plusieurs utilisateurs avec le même compte se connectent au portail
en même temps cela peut générer des conflits.
Solutions :
1. donner plusieurs comptes aux utilisateurs
2. désactiver l'enregistrement du last_login_time
3. mettre un try/except autour du bloc de code gérant l'enregistrement
du last_login_time
Bien cordialement,
--
Marc-Aurèle DARCHE
Open Source Enterprise Content Management (ECM) http://www.nuxeo.org/
NUXEO (Paris, France) http://nuxeo.com/
Plus d'informations sur la liste de diffusion cps-users-fr
This list archive provided by Nuxeo, the
leaders of open source ECM.
Check out the Nuxeo 5 open source,
standards-based ECM project.