[Obm] Plus de synchronisation suite mise à jour en 2.4.1.2

Vince tux45 at hotmail.fr
Thu Nov 22 11:37:57 CET 2012


Un grand MERCI Thomas !!!!!!!!!!! :-)
Les évènements se synchronisent.

Ci-dessous le résultat des commandes qui se sont déroulées en moins 
d'une seconde (notre base est d'environ 150 utilisateurs et quelques 
smartphones)

Pour l'utilisateur qui avait le problème :
obm=# DELETE FROM DeletedEvent WHERE deletedevent_id NOT IN (SELECT 
MAX(deletedevent_id) FROM DeletedEvent WHERE deletedevent_user_id = 94 
GROUP BY deletedevent_event_ext_id,deletedevent_user_id) AND 
deletedevent_user_id = 94;
DELETE 137

Pour tout le monde :
obm=# DELETE FROM DeletedEvent WHERE deletedevent_id NOT IN (SELECT 
MAX(deletedevent_id) FROM DeletedEvent GROUP BY 
deletedevent_event_ext_id,deletedevent_user_id);
DELETE 5430


Par contre, j'ai encore un message d'erreur dans le fichier opush.log et 
toujours pour le même utilisateur :

10:26:53.102 [ERROR] 
{o.o.p.ActiveSyncServlet$$EnhancerByGuice$$d4576bb3} 
[t16/cSync/r378/sbarrey at cire.fr]:null
java.util.NoSuchElementException: null
         at java.util.LinkedList$ListItr.next(LinkedList.java:698) 
~[na:1.6.0_26]
         at 
com.google.common.collect.Iterators.getOnlyElement(Iterators.java:337) 
~[guava-12.0.jar:na]
         at 
com.google.common.collect.Iterables.getOnlyElement(Iterables.java:272) 
~[guava-12.0.jar:na]
         [...]
         at 
org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:218) 
[jetty-6.1.24.jar:6.1.24]
         at 
org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404) 
[jetty-6.1.24.jar:6.1.24]
         at 
org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:410) 
[jetty-6.1.24.jar:6.1.24]
         at 
org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:582) 
[jetty-util-6.1.24.jar:6.1.24]
10:26:53.105 [ERROR] {o.o.a.t.TransactionalInterceptor} [t/c/r/]:null
java.util.NoSuchElementException: null
         at java.util.LinkedList$ListItr.next(LinkedList.java:698) 
~[na:1.6.0_26]
         at 
com.google.common.collect.Iterators.getOnlyElement(Iterators.java:337) 
~[guava-12.0.jar:na]
         at 
com.google.common.collect.Iterables.getOnlyElement(Iterables.java:272) 
~[guava-12.0.jar:na]
         at 
org.obm.push.mail.imap.ImapMailboxService.fetchBodyStructure(ImapMailboxService.java:628) 
~[push-mail-2.4.1.2.jar:na]
         at 
org.obm.push.mail.EmailViewPartsFetcherImpl.getMimeMessage(EmailViewPartsFetcherImpl.java:130) 
~[push-mail-2.4.1.2.jar:na]
         at 
org.obm.push.mail.EmailViewPartsFetcherImpl.fetch(EmailViewPartsFetcherImpl.java:97) 
~[push-mail-2.4.1.2.jar:na]
         at 
org.obm.push.mail.imap.ImapMailboxService.fetch(ImapMailboxService.java:174) 
~[push-mail-2.4.1.2.jar:na]
         at 
org.obm.push.mail.MailBackendImpl.fetchMails(MailBackendImpl.java:320) 
~[push-mail-2.4.1.2.jar:na]
         at 
org.obm.push.mail.MailBackendImpl.getDataDelta(MailBackendImpl.java:309) 
~[push-mail-2.4.1.2.jar:na]
         at 
org.obm.push.mail.MailBackendImpl.getChanged(MailBackendImpl.java:287) 
~[push-mail-2.4.1.2.jar:na]
         at 
org.obm.push.ContentsExporter.getChanged(ContentsExporter.java:69) 
~[push-module-2.4.1.2.jar:na]
         at 
org.obm.push.handler.SyncHandler.doUpdates(SyncHandler.java:250) 
~[push-module-2.4.1.2.jar:na]
         at 
org.obm.push.handler.SyncHandler.handleDataSync(SyncHandler.java:417) 
~[push-module-2.4.1.2.jar:na]
         at 
org.obm.push.handler.SyncHandler.computeSyncState(SyncHandler.java:400) 
~[push-module-2.4.1.2.jar:na]
         at 
org.obm.push.handler.SyncHandler.doTheJob(SyncHandler.java:384) 
~[push-module-2.4.1.2.jar:na]
         at 
org.obm.push.handler.SyncHandler.process(SyncHandler.java:166) 
~[push-module-2.4.1.2.jar:na]
         at 
org.obm.push.handler.WbxmlRequestHandler.process(WbxmlRequestHandler.java:125) 
~[push-module-2.4.1.2.jar:na]
         at 
org.obm.push.ActiveSyncServlet.processActiveSyncMethod(ActiveSyncServlet.java:235) 
~[push-module-2.4.1.2.jar:na]
         at 
org.obm.push.ActiveSyncServlet.service(ActiveSyncServlet.java:153) 
~[push-module-2.4.1.2.jar:na]
         at 
org.obm.annotations.transactional.TransactionalInterceptor.managerTransaction(TransactionalInterceptor.java:88) 
~[annotations-2.4.1.2.jar:na]
         at 
org.obm.annotations.transactional.TransactionalInterceptor.invoke(TransactionalInterceptor.java:74) 
~[annotations-2.4.1.2.jar:na]
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:717) 
[servlet-api-2.5.jar:na]
         at 
com.google.inject.servlet.ServletDefinition.doService(ServletDefinition.java:263) 
[guice-servlet-3.0.jar:na]
         at 
com.google.inject.servlet.ServletDefinition.service(ServletDefinition.java:178) 
[guice-servlet-3.0.jar:na]
         at 
com.google.inject.servlet.ManagedServletPipeline.service(ManagedServletPipeline.java:91) 
[guice-servlet-3.0.jar:na]
         at 
com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:62) 
[guice-servlet-3.0.jar:na]
         at 
org.eclipse.jetty.continuation.ContinuationFilter.doFilter(ContinuationFilter.java:99) 
[jetty-continuation-7.4.2.v20110526.jar:7.4.2.v20110526]
         at 
com.google.inject.servlet.FilterDefinition.doFilter(FilterDefinition.java:163) 
[guice-servlet-3.0.jar:na]
        [...]
         at 
org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:582) 
[jetty-util-6.1.24.jar:6.1.24]
10:26:53.108 [ERROR] {o.o.a.t.TransactionalInterceptor} 
[t/c/r/]:transaction was rollback
java.util.NoSuchElementException: null
         at java.util.LinkedList$ListItr.next(LinkedList.java:698) 
~[na:1.6.0_26]
         at 
com.google.common.collect.Iterators.getOnlyElement(Iterators.java:337) 
~[guava-12.0.jar:na]
         at 
com.google.common.collect.Iterables.getOnlyElement(Iterables.java:272) 
~[guava-12.0.jar:na]
         [...]
         at 
org.obm.annotations.transactional.TransactionalInterceptor.managerTransaction(TransactionalInterceptor.java:88) 
~[annotations-2.4.1.2.jar:na]
         at 
org.obm.annotations.transactional.TransactionalInterceptor.invoke(TransactionalInterceptor.java:74) 
~[annotations-2.4.1.2.jar:na]
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:717) 
[servlet-api-2.5.jar:na]
         at 
com.google.inject.servlet.ServletDefinition.doService(ServletDefinition.java:263) 
[guice-servlet-3.0.jar:na]
         at 
com.google.inject.servlet.ServletDefinition.service(ServletDefinition.java:178) 
[guice-servlet-3.0.jar:na]
         at 
com.google.inject.servlet.ManagedServletPipeline.service(ManagedServletPipeline.java:91) 
[guice-servlet-3.0.jar:na]
         at 
com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:62) 
[guice-servlet-3.0.jar:na]
         at 
org.eclipse.jetty.continuation.ContinuationFilter.doFilter(ContinuationFilter.java:99) 
[jetty-continuation-7.4.2.v20110526.jar:7.4.2.v20110526]
         at 
com.google.inject.servlet.FilterDefinition.doFilter(FilterDefinition.java:163) 
[guice-servlet-3.0.jar:na]
         at 
com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:58) 
[guice-servlet-3.0.jar:na]
         at 
com.google.inject.servlet.ManagedFilterPipeline.dispatch(ManagedFilterPipeline.java:118) 
[guice-servlet-3.0.jar:na]
         at 
com.google.inject.servlet.GuiceFilter.doFilter(GuiceFilter.java:113) 
[guice-servlet-3.0.jar:na]
         at 
org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157) 
[jetty-6.1.24.jar:6.1.24]
         at 
org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:388) 
[jetty-6.1.24.jar:6.1.24]
         at 
org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216) 
[jetty-6.1.24.jar:6.1.24]
         at 
org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182) 
[jetty-6.1.24.jar:6.1.24]
         at 
org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:765) 
[jetty-6.1.24.jar:6.1.24]
         at 
org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:418) 
[jetty-6.1.24.jar:6.1.24]
         at 
org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:230) 
[jetty-6.1.24.jar:6.1.24]
         at 
org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:114) 
[jetty-6.1.24.jar:6.1.24]
         at 
org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152) 
[jetty-6.1.24.jar:6.1.24]
         at org.mortbay.jetty.Server.handle(Server.java:326) 
[jetty-6.1.24.jar:6.1.24]
         at 
org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:542) 
[jetty-6.1.24.jar:6.1.24]
         at 
org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java:943) 
[jetty-6.1.24.jar:6.1.24]
         at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:756) 
[jetty-6.1.24.jar:6.1.24]
         at 
org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:218) 
[jetty-6.1.24.jar:6.1.24]
         at 
org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404) 
[jetty-6.1.24.jar:6.1.24]
         at 
org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:410) 
[jetty-6.1.24.jar:6.1.24]
         at 
org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:582) 
[jetty-util-6.1.24.jar:6.1.24]


Le 22/11/2012 10:07, Hilaire Thomas a écrit :
> Alors il semble que vous rencontrez bien là un bug.
> Votre base de donnée contient des doublons sur les évènements, voici 
> comment les effacer :
>
> 1) Trouver l'identifiant  de votre utilisateur :
> SELECT userobm_id FROM UserObm WHERE userobm_login = '*USER_LOGIN*'; -- remplacer USER_LOGIN par celui de votre utilisateur
>
> 2) Effacer les doublons pour un utilisateur :
> DELETE FROM DeletedEvent WHERE deletedevent_id NOT IN (SELECT MAX(deletedevent_id) FROM DeletedEvent WHERE deletedevent_user_id =*  USER_ID*  GROUP BY deletedevent_event_ext_id,deletedevent_user_id) AND deletedevent_user_id =*USER_ID*;  -- remplacer USER_ID par l'entier trouvé à la requête précédente
>
> La synchronisation devrait alors fonctionner de nouveau pour cet 
> utilisateur.
> Une version de la requête permet de nettoyer ces doublons pour tous 
> les utilisateurs, mais celle ci peut malheureusement être très longue 
> à s'exécuter. La voici :
> DELETE FROM DeletedEvent WHERE deletedevent_id NOT IN (SELECT MAX(deletedevent_id) FROM DeletedEvent GROUP BY deletedevent_event_ext_id,deletedevent_user_id);
>
> Est-ce que cela corrige votre problème ?
>
> Cordialement,
> Thomas
>
> On 11/21/2012 04:32 PM, Vince wrote:
>> Bonjour Thomas,
>>
>> Ci-joint le fichier opush.log avec plus de log.
>> Je ne l'envoi qu'à vous car il peut y avoir des données confidentielles.
>>
>> Le contenu de ce fichier log se répète à chaque fois que je lance la 
>> synchro !!
>>
>> Et oui, j'ai bien fait le tour des options. J'ai créé son compte sur 
>> mon Android. Le problème n'est donc pas lié au smartphone mais bien à 
>> son compte. Surement quelque chose qui ne vas pas dans son agenda.
>> Sachant qu'après la mise à jour de notre serveur OBM, il s'était 
>> retrouvé avec environ dix doublons par évènements sur toute la durée 
>> de l'utilisation de son agenda.
>>
>> En espérant que vous mettrez le doigt dessus ;)))
>>
>> Cordialement
>>
>> Vincent.
>>
>
>
> -- 
> Thomas Hilaire
> Développeur LGS/OBM/R&D
> +33 6 43 65 66 03
>
> ------------------
>
> GROUPE LINAGORA
> 74-80 rue Roque de Fillol
> 92800 Puteaux
>
> +33 (0)8 10 25 12 51
> +33 (0)6 79 60 12 91
> thilaire at linagora.com
>
> ------------------
>
> La présente transmission contient des informations confidentielles
> appartenant à Linagora, exclusivement destinées au(x) destinataire(s)
> identifié(s) ci-dessus. Si vous n'en faites pas partie, toute
> reproduction, distribution ou divulgation de tout ou partie des
> informations de cette transmission, ou toute action effectuée sur la
> base de celles-ci vous sont formellement interdites.
> Si vous avez reçu cette transmission par erreur, nous vous remercions de
> nous en avertir et de la détruire de votre système d'information.
>
> The present transmission contains privileged and confidential
> information belonging to Linagora, exclusively intended for the
> recipient(s) thereabove identified. If you are not one of these
> aforementioned recipients, any reproduction, distribution, disclosure of
> said information in whole or in part, as well as any action undertaken
> on the basis of said information are strictly prohbited. If you received
> the present transmission by mistake, please inform us and destroy it
> from your messenging and information systems.


-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://list.obm.org/pipermail/obm/attachments/20121122/a04ff439/attachment.html 


More information about the Obm mailing list