On Fr, 2010-12-17 at 14:08 +0000, Lukas Zeller wrote:
> On Dec 17, 2010, at 8:47 , Patrick Ohly wrote:
> >> Now it turns out that there's a bad bug here, which probably explains
> >> all this (and maybe other) weird behaviour.
> > 
> > I'm glad that you got to the bottom of this. Much better than pampering
> > over the symptoms. So my question now is: should the code that I added
> > to detect collisions remain in the code?
> > 
> > The loop which detects non-unique temporary IDs is harmless. But the one
> > which iterates over all mappings to find a previous mapping to the same
> > local ID has a real performance impact.
> > 
> > My preference would be this:
> > - turn the messages in these loops into real errors
> > - keep them for a while
> > - remove after the real fix has proven to be effective
> 
> I fully agree with this, just go ahead!

Okay, working on it.

I wondered why this bug did not surface in my "interrupted sync" tests.
SyncEvolution's client-test simulates a whole range of different
scenarios (items added/removed/modified) and a loss of network
connection at any point in the sync session. I'm 100% certain that this
passed when I declared SyncEvolution's server support ready for users.

Looking at my test setup, I see that the server side was configured to
use the file data stores. Those use very simple numbers as ID, and thus
the whole temporary ID mapping code wasn't exercised. Rerunning the
tests with the Evolution calendar store (which uses UID as local ID and
thus depends on the mapping code) shows that the mapping problems *do*
occur. My workarounds are triggered (visible in the logs), so the tests
themselves finish successfully.

With your patch applied, the are no longer triggered. IMHO this confirms
that you found the root cause.

An additional benefit is that the old meta data seems to be erased
reliably. I don't think there's any further need for the "erase mapping
on refresh-sync" feature that I was proposing.

-- 
Best Regards, Patrick Ohly

The content of this message is my personal opinion only and although
I am an employee of Intel, the statements I make here in no way
represent Intel's position on the issue, nor am I authorized to speak
on behalf of Intel on this matter.



_______________________________________________
os-libsynthesis mailing list
os-libsynthesis@synthesis.ch
http://lists.synthesis.ch/mailman/listinfo/os-libsynthesis

Reply via email to