[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