[SyncEvolution] super data store: trying to read to check for existance
by Patrick Ohly
Hello!
A SyncEvolution user found that SyncEvolution fails while synchronizing
against a mobile phone when an item was deleted on both the phone and
Evolution side. SyncEvolution is asked to read the already deleted item,
which then fails (currently) with an unspecified database error.
This is due to the following code:
#20 0x00000000009b89de in sysync::TSuperDataStore::engProcessRemoteItem (this=0x1166900, syncitemP=0xe854e0,
aStatusCommand=...) at /home/pohly/syncevolution/libsynthesis/src/sysync/superdatastore.cpp:637
637 regular=linkP->fDatastoreLinkP->logicRetrieveItemByID(*itemcopyP,aStatusCommand);
(gdb) list
632 PDEBUGPRINTFX(DBG_DATA+DBG_DETAILS,(
633 "Trying to read item by remoteID='%s' from subdatastore '%s' to see if it is there",
634 itemcopyP->getRemoteID(),
635 linkP->fDatastoreLinkP->getName()
636 ));
637 regular=linkP->fDatastoreLinkP->logicRetrieveItemByID(*itemcopyP,aStatusCommand);
638 // must be ok AND not 404 (item not found)
639 if (regular && aStatusCommand.getStatusCode()!=404) {
640 PDEBUGPRINTFX(DBG_DATA,(
641 "Item found in subdatastore '%s', deleting it there",
Why is it necessary to read before trying to delete? If the item exists,
then reading it is a fairly expensive test.
So far, my backends were written with the expectation that they have to
cope with delete requests for items which are already deleted. This
follows from the inherent race condition between syncing and some other
process which might delete items while a sync runs.
Are all backends expected to return 404 when an item doesn't exist?
--
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.
10 years, 6 months
Re: [SyncEvolution] syncevolution + file size
by Patrick Ohly
On Wed, 2011-10-26 at 18:01 +0200, jacqueline.leroi wrote:
> No problem to keep it on the mailing list
[compile in SyncML client mode by modifying the
libsynthesis/src/Makefile.am, full description below]
> I tried what you proposed but I had problems when compiling.
> make[6]: *** [libsynthesis_la-enginesessiondispatch.lo] Error 1
> make[6]: *** Waiting for unfinished jobs....
> mv -f .deps/libsynthesis_la-vcalendaritemtype.Tpo .deps/libsynthesis_la-vcalendaritemtype.Plo
> mv -f .deps/libsynthesis_la-vtimezone.Tpo .deps/libsynthesis_la-vtimezone.Plo
> mv -f .deps/libsynthesis_la-lineartime.Tpo .deps/libsynthesis_la-lineartime.Plo
> mv -f .deps/libsynthesis_la-blobs.Tpo .deps/libsynthesis_la-blobs.Plo
> mv -f .deps/libsynthesis_la-admindata.Tpo .deps/libsynthesis_la-admindata.Plo
> mv -f .deps/libsynthesis_la-timezones.Tpo .deps/libsynthesis_la-timezones.Plo
> mv -f .deps/libsynthesis_la-sync_dbapi_text.Tpo .deps/libsynthesis_la-sync_dbapi_text.Plo
> mv -f .deps/libsynthesis_la-dbitem.Tpo .deps/libsynthesis_la-dbitem.Plo
> mv -f .deps/libsynthesis_la-enginemodulebase.Tpo .deps/libsynthesis_la-enginemodulebase.Plo
> mv -f .deps/libsynthesis_la-sysync_b64.Tpo .deps/libsynthesis_la-sysync_b64.Plo
> mv -f .deps/libsynthesis_la-sysync_utils.Tpo .deps/libsynthesis_la-sysync_utils.Plo
> ./src/synthesis/src/sysync/scriptcontext.cpp: In static member function 'static int sysync::TBuiltinStdFuncs::run_pcre(const char*, const char*, sysync::stringSize, sysync::stringSize, int*, int, sysync::TDebugLogger*)':
> ./src/synthesis/src/sysync/scriptcontext.cpp:1265: error: 'PCRE_CASELESS' was not declared in this scope
[...]
This is about libpcre, used for regular expressions. The header file
doesn't seem to be included because of the modified config. Try with
--disable-regex.
> ./src/synthesis/src/sysync/syncagent.cpp: In constructor 'sysync::TSyncAgent::TSyncAgent(sysync::TSyncAppBase*, sysync::TSyncSessionHandle*, const char*)':
> ./src/synthesis/src/sysync/syncagent.cpp:623: error: 'fAbortRequested' was not declared in this scope
> ./src/synthesis/src/sysync/syncagent.cpp:624: error: 'fSuspendRequested' was not declared in this scope
> ./src/synthesis/src/sysync/syncagent.cpp:625: error: 'fEngineSessionStatus' was not declared in this scope
> ./src/synthesis/src/sysync/syncagent.cpp:628: error: 'fProgressInfoList' was not declared in this scope
> ./src/synthesis/src/sysync/syncagent.cpp:629: error: 'fPendingStepCmd' was not declared in this scope
> ./src/synthesis/src/sysync/syncagent.cpp:635: error: 'fIncomingBytes' was not declared in this scope
> ./src/synthesis/src/sysync/syncagent.cpp:636: error: 'fOutgoingBytes' was not declared in this scope
Not sure about this here. You'll have to look into the source to
determine whether these members (f* are class members) are perhaps not
defined in the mode in which the engine is now getting compiled. Might
be a case of not enough or too many ifdefs.
> This is my configure line :
> ./configure CFLAGS=-Os CXXFLAGS=-Os\
> --enable-libcurl=no \
> --disable-shared \
> --enable-static \
> --enable-file \
> --disable-sqlite \
> --enable-core \
> --disable-libsoup \
> --with-syncml-engines=client \
> --disable-gnome-keyring \
> --disable-dbus-timeout-hack \
> --disable-ebook \
> --disable-ecal \
> --disable-regex \
> --disable-kcalextended \
> --disable-qtcontacts \
> --disable-bluetooth \
> --disable-libsoup \
> --disable-maemo \
> --disable-unit-tests \
> --with-boost-libdir=/usr/lib \
> --with-boost=/usr/include/boost \
> --disable-dbus-service \
> --disable-notify \
> --disable-nls \
> --disable-xmlrpc \
> --disable-dbus-service
>
> I tried to put as many option as I can trying to get minmal config. By the way I activated file backend.
> Have you any idea about errors encountred?
See above.
> Regards
>
> > Message du 26/10/11 13:26
> > De : "Patrick Ohly"
>
> > A : "jacqueline.leroi"
> > Copie à :
> > Objet : Re: [SyncEvolution] syncevolution + file size
> >
> > On Wed, 2011-10-26 at 13:09 +0200, jacqueline.leroi wrote:
> > > Hi Patrick,
> > > I wonder how to do it since i think that the option --with-syncml-engines has no effect as it 's described in configure file.
> > >
> > > --with-syncml-engines=client|server|both
> > > Determines which kind of support for SyncML is
> > > compiled and linked into SyncEvolution. Default is
> > > both. Currently has no effect.
> > > have you any idea to compile only client side .
> >
> > In libsynthesis/src/Makefile.am find the
> > -include $(srcdir)/Targets/ReleasedProducts/combiEngine_opensource_linux/combiengine_opensource_linux_prefix.h
> > and change that into
> > -include $(srcdir)/Targets/ReleasedProducts/clientEngine_opensource_linux/clientengine_demo_x86_linux_prefix.h
> >
> > Also change combiEngine_opensource_linux into clientEngine_opensource_linux further down in that Makefile.am.
> >
> > That should give you a libsynthesis configured as SyncML client only.
> >
> > BTW, can we keep this discussion on the mailing list?
> >
> > --
> > Best Regards
> >
> > Patrick Ohly
> > Senior Software Engineer
> >
> > Intel GmbH
> > Open Source Technology Center
> > Pützstr. 5 Phone: +49-228-2493652
> > 53129 Bonn
> > Germany
> >
> >
>
> Une messagerie gratuite, garantie à vie et des services en plus, ça vous tente ?
> Je crée ma boîte mail www.laposte.net
10 years, 6 months
[SyncEvolution] Memotoo + ADR country component
by Patrick Ohly
Hello Thomas!
I looked into the eds_contact::testExtensions failures. I noticed some
oddity around the seventh component of the ADR property, the country:
ADR:Test Box #3;;Test Drive 3;Test Me ADR:Test Box #3;;Test Drive 3;Test Me
gacity;Test County;12347;New Testonia | gacity;Test County;12347;Estonia
ADR;TYPE=HOME:Test Box #1;;Test Drive ADR;TYPE=HOME:Test Box #1;;Test Drive
1;Test Village;Lower Test County;123 1;Test Village;Lower Test County;123
45;Testovia | 45
ADR;TYPE=WORK:Test Box #2;;Test Drive ADR;TYPE=WORK:Test Box #2;;Test Drive
2;Test Town;Upper Test County;12346; | 2;Test Town;Upper Test County;12346
Old Testovia <
In the first ADR, "New Testonia" gets replaced by Estonia. It gets lost
in the last two cases.
Why is that? Is Memotoo perhaps trying to match against a certain fixed
list of countries?
SyncEvolution testing has traditionally ignored the issue; there's a
remark that "Memotoo does not support the country field". That probably
is not quite correct (see the "Estonia" case), but it certainly doesn't
support arbitrary strings.
The testExtension test doesn't pamper over this as testItems does, thus
it come up again now.
--
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.
10 years, 6 months
Re: [SyncEvolution] (no subject)
by Frederik Elwert
-----Ursprüngliche Nachricht-----
Von: "Patrick Ohly" <patrick.ohly(a)intel.com>
Gesendet: 25.10.2011 13:15:25
An: "Frederik Elwert" <frederik.elwert(a)web.de>
Betreff: Re: [SyncEvolution] (no subject)
>On Tue, 2011-10-25 at 12:59 +0200, Frederik Elwert wrote:
>> I recently got a Nokia N9, and I am now experimenting with
>> SyncEvolution to get my Desktop and the N9 in sync.
>>
>> It started fairly promising: I could add the N9 with the Nokia
>> template in sync-ui. In general, sync works quite fine. So the N9
>> seems to be capable enough by default to get this kind of things
>> right. (It seems to lack support for HTTP SyncML servers itself,
>> though.) I just notices two issues so far:
>>
>> 1. The bluetooth stack in Ubuntu 11.10 seems to be broken, so
>> bluetooth sync does not work at all.
>
>This sounds ominously like https://bugs.meego.com/show_bug.cgi?id=4835
>I assume it works with some other distro, like the Ubuntu Lucid that you
>mention below?
Yes, sounds like that bug. Yes, it workes with Lucid. Some Fedora users told me they had the same issue with kernel > 2.6.38, but now a recent kernel update seems to have fixed it for Fedora.
>> 2. On my work machine, where I am still running Ubuntu Lucid, the
>> syncevo-dbus-server fails silently. I could manage to sync using
>> "--daemon=no", but for everyday use s-d-s is more comfortable.
>>
>> While you probably cannot do much about #1, it might be worth looking
>> at #2.
>
>Absolutely.
>
>> I attached the terminal output of both s-d-s and syncevolution,
>> though it does not tell very much. Which additional information do you
>> need?
>
>Please run syncevo-dbus-server under gdb and when it crashes (which I
>assume it will), run "thread apply all bt".
I did and will send you the log in private.
Regards,
Frederik
___________________________________________________________
SMS schreiben mit WEB.DE FreeMail - einfach, schnell und
kostenguenstig. Jetzt gleich testen! http://f.web.de/?mc=021192
10 years, 6 months
[SyncEvolution] (no subject)
by Frederik Elwert
Hi!
I recently got a Nokia N9, and I am now experimenting with SyncEvolution to get my Desktop and the N9 in sync.
It started fairly promising: I could add the N9 with the Nokia template in sync-ui. In general, sync works quite fine. So the N9 seems to be capable enough by default to get this kind of things right. (It seems to lack support for HTTP SyncML servers itself, though.) I just notices two issues so far:
1. The bluetooth stack in Ubuntu 11.10 seems to be broken, so bluetooth sync does not work at all.
2. On my work machine, where I am still running Ubuntu Lucid, the syncevo-dbus-server fails silently. I could manage to sync using "--daemon=no", but for everyday use s-d-s is more comfortable.
While you probably cannot do much about #1, it might be worth looking at #2. I attached the terminal output of both s-d-s and syncevolution, though it does not tell very much. Which additional information do you need?
Frederik
___________________________________________________________
SMS schreiben mit WEB.DE FreeMail - einfach, schnell und
kostenguenstig. Jetzt gleich testen! http://f.web.de/?mc=021192
10 years, 6 months
[SyncEvolution] evolution and CalDAV calendar: authentication
by stephan0h@gmx.net
Hello,
I use syncevolution to sync my local evolution client to a funambol
server. This worked fine until today.
I've added a new calendar of type CalDAV to evolution. When I run
syncevolution now it tells me: "Synchronization failed" and "calendar:
opening calendar: Authentication required".
I understand that it's not possible to sync this new calendar without
authentication but I don't know how to set things up:
Either I could disable the respective calendar: how can I do that?
Or i could supply username/password to syncevoltion: how to do that?
Or I could remove this calendar from evolution alltogether - which I
don't want to do.
Any suggestions?
thanks,
stephan
10 years, 6 months
[SyncEvolution] syncevolution
by jacqueline.leroi
Hi all,
can anyone tell me How can i get the minimum size of syncevolution binary and for the synthesis library ?
thanks in advance :)
Une messagerie gratuite, garantie à vie et des services en plus, ça vous tente ?
Je crée ma boîte mail www.laposte.net
10 years, 6 months
[SyncEvolution] Sync broken after upgrade to syncevolution 1.2
by Irihapeti
I sync a Nokia E63 directly with Evolution over BlueTooth. The
databases, other than the addressbook, are caldav (on my local machine)
to which Evolution connects. I've been using this setup successfully for
some time.
On the first run after upgrading to syncevolution 1.2, the sync failed.
The error text begins with:
Fatal: Script Error: comparescript: unknown macro at line 1786: '...
_$VCALENDAR...' at line 1787 col 9
Fatal: Script Error: comparescript: unknown macro at line 1805: '...
_$VCALENDAR...' at line 1806 col 9
Fatal error 20010, no valid configuration could be read from XML file
[ERROR] internal error, invalid XML configuration (without datastores):
<?xml version="1.0"?>
<!-- SYNTHESIS SYNCML CLIENT Version 3.2 Configuration file -->
What's happened here, and what do I need to do to fix it?
Many thanks
Irihapeti
10 years, 6 months
Re: [SyncEvolution] Memotoo EXDATE
by Patrick Ohly
On Fri, 2011-10-21 at 16:03 +0200, Thomas Pequet wrote:
> Ok corrected :)
Ack. Thanks for the quick turn-around times, BTW. Very useful :-)
--
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.
10 years, 6 months