Hi,

On 04/10/2020 13:58, Patrick Ohly wrote:
> Merlijn Wajer <merl...@wizzup.org> writes:
>> I'm interested in getting the Maemo backend up and running again, to be
>> used in 'Maemo Leste' (Maemo 5, 100% open source, based on stable
>> Devuan/Debian).
> 
> As you noticed, that backend needs a maintainer. I'm currently trying to
> get an updated SyncEvolution release-ready (using more modern C++,
> adapted to recent versions of the libraries it depends on). If you care
> about Maemo to work in that release, then now is a good time to debug
> this.

Ok, if I can bend it into shape I'm happy to maintain it for now.

> There is a "for-master/master-next" branch with the revised code, but I
> am still rebasing that from time to time.

Check, let me try to get it to work first.

>> Then, I can see my calendar backends and invoke a sync, but it throws a
>> weird error when I try to sync like this:
>>
>>> user@devuan:~$ syncevolution --sync refresh-from-client radicale calendar
>>
>> This error shows up a lot (but maybe it is not harmful?):
>>
>>> [ERROR] @default/radicalecal: basic_string::replace: __pos (which is
>> 4294967295) > this->size() (which is 11)
> 
> This indicates that an invalid string replace was attempted for a C++
> string (out-of-bounds index), which got caught by the C++ runtime and
> turned into an exception.

Check.

> 
> There's no strack trace for the exception printed, so it's impossible to
> determine where it occurs.
> 
> Try this:
> 
> SYNCEVOLUTION_DEBUG=1 gdb --args syncevolution --daemon=no \
>              --sync-property loglevel=10 \
>              --sync refresh-from-client radicale radicalecal
> 
> When the exception is thrown, gdb might stop.

I entered this in gdb before typing 'run':

> catch throw .*

And then it caught the exception [1]. And it looks like the exception is
in "calendar-backend", which is a Maemo component - so the problem might
not even be in syncevolution per se.

I will dive in, and I will let you know. Thank you for the quick response.

Cheers,
Merlijn


[1]

> Thread 1 "syncevolution" hit Catchpoint 1 (exception thrown), 
> 0x00007ffff7367afd in __cxa_throw () from 
> /usr/lib/x86_64-linux-gnu/libstdc++.so.6
> (gdb) bt
> #0  0x00007ffff7367afd in __cxa_throw () at 
> /usr/lib/x86_64-linux-gnu/libstdc++.so.6
> #1  0x00007ffff7363891 in  () at /usr/lib/x86_64-linux-gnu/libstdc++.so.6
> #2  0x00007ffff35d6d41 in std::__cxx11::basic_string<char, 
> std::char_traits<char>, std::allocator<char> >::_M_check(unsigned long, char 
> const*) const
>     (__s=0x7ffff35faf24 "basic_string::replace", __pos=<optimized out>, 
> this=0x7fffffff9d50) at /usr/include/c++/8/bits/basic_string.h:299
> #3  0x00007ffff35d6d41 in std::__cxx11::basic_string<char, 
> std::char_traits<char>, std::allocator<char> >::replace(unsigned long, 
> unsigned long, char const*, unsigned long) (__n2=1, __s=0x7ffff360806b ",", 
> __n1=2, __pos=<optimized out>, this=0x7fffffff9d50) at 
> /usr/include/c++/8/bits/basic_string.h:1932
> #4  0x00007ffff35d6d41 in std::__cxx11::basic_string<char, 
> std::char_traits<char>, std::allocator<char> >::replace(unsigned long, 
> unsigned long, char const*)
>     (__s=0x7ffff360806b ",", __n1=2, __pos=<optimized out>, 
> this=0x7fffffff9d50) at /usr/include/c++/8/bits/basic_string.h:1955
> #5  0x00007ffff35d6d41 in 
> ICalConverter::icalVcalToLocal(std::__cxx11::basic_string<char, 
> std::char_traits<char>, std::allocator<char> >, FileType, int&)
>     (this=this@entry=0x555557b23de0, 
> szCont="BEGIN:VCALENDAR\nVERSION:2.0\nPRODID:-//Synthesis AG//NONSGML SyncML 
> Engine 
> V3.4.0.47//EN\nBEGIN:VTIMEZONE\nTZID:Amsterdam\nBEGIN:STANDARD\nDTSTART:19671029T030000\nRRULE:FREQ=MONTHLY;INTERVAL=12;BYDAY=-1SU\n"...,
>  iType=iType@entry=ICAL_TYPE, pErrorCode=@0x7fffffffabdc: 21845)
>     at ICalConverter.cpp:3940
> #6  0x00007ffff36cdd41 in 
> SyncEvo::MaemoCalendarSource::insertItem(std::__cxx11::basic_string<char, 
> std::char_traits<char>, std::allocator<char> > const&, 
> std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> 
> > const&, bool)
>     (this=0x5555579d4560, uid="", 
> item="BEGIN:VCALENDAR\r\nVERSION:2.0\r\nPRODID:-//Synthesis AG//NONSGML 
> SyncML Engine 
> V3.4.0.47//EN\r\nBEGIN:VTIMEZONE\r\nTZID:Amsterdam\r\nBEGIN:STANDARD\r\nDTSTART:19671029T030000\r\nRRULE:FREQ=MONTHLY;INTERVAL=12;BYDA"...,
>  raw=<optimized out>) at /usr/include/c++/8/bits/basic_string.h:936
> #7  0x00007ffff7a61cd7 in 
> boost::detail::function::function_obj_invoker0<boost::_bi::bind_t<SyncEvo::SyncSourceRaw::InsertItemResult,
>  boost::_mfi::mf3<SyncEvo::SyncSourceRaw::InsertItemResult, 
> SyncEvo::TrackingSyncSource, std::__cxx11::basic_string<char, 
> std::char_traits<char>, std::allocator<char> > const&, 
> std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> 
> > const&, bool>, 
> boost::_bi::list4<boost::_bi::value<SyncEvo::TrackingSyncSource*>, 
> boost::_bi::value<std::__cxx11::basic_string<char, std::char_traits<char>, 
> std::allocator<char> > >, boost::_bi::value<std::__cxx11::basic_string<char, 
> std::char_traits<char>, std::allocator<char> > >, boost::_bi::value<bool> > 
> >, 
> SyncEvo::SyncSourceRaw::InsertItemResult>::invoke(boost::detail::function::function_buffer&)
>  ()
>     at /usr/lib/x86_64-linux-gnu/libsyncevolution.so.0
> #8  0x00007ffff7a5fe23 in 
> SyncEvo::TrackingSyncSource::continueInsertItem(boost::function<SyncEvo::SyncSourceRaw::InsertItemResult
>  ()> const&, std::__cxx11::basic_string<char, std::char_traits<char>, 
> std::allocator<char> > const&) () at 
> /usr/lib/x86_64-linux-gnu/libsyncevolution.so.0
> #9  0x00007ffff7a61163 in 
> SyncEvo::TrackingSyncSource::doInsertItem(std::__cxx11::basic_string<char, 
> std::char_traits<char>, std::allocator<char> > const&, 
> std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> 
> > const&, bool) () at /usr/lib/x86_64-linux-gnu/libsyncevolution.so.0
> #10 0x00007ffff7a61580 in 
> SyncEvo::TrackingSyncSource::insertItem(std::__cxx11::basic_string<char, 
> std::char_traits<char>, std::allocator<char> > const&, 
> std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> 
> > const&) () at /usr/lib/x86_64-linux-gnu/libsyncevolution.so.0
> #11 0x00007ffff798f213 in 
> SyncEvo::SyncSourceSerialize::insertItemAsKey(sysync::KeyType*, 
> sysync::ItemIDType*) () at /usr/lib/x86_64-linux-gnu/libsyncevolution.so.0
> #12 0x00007ffff79a373a in 
> boost::detail::function::function_obj_invoker2<boost::_bi::bind_t<boost::variant<unsigned
>  short, SyncEvo::ContinueOperation<unsigned short (sysync::KeyType*, 
> sysync::ItemIDType*)> >, boost::_mfi::mf2<boost::variant<unsigned short, 
> SyncEvo::ContinueOperation<unsigned short (sysync::KeyType*, 
> sysync::ItemIDType*)> >, SyncEvo::SyncSourceSerialize, sysync::KeyType*, 
> sysync::ItemIDType*>, 
> boost::_bi::list3<boost::_bi::value<SyncEvo::SyncSourceSerialize*>, 
> boost::arg<1>, boost::arg<2> > >, boost::variant<unsigned short, 
> SyncEvo::ContinueOperation<unsigned short (sysync::KeyType*, 
> sysync::ItemIDType*)> >, sysync::KeyType*, 
> sysync::ItemIDType*>::invoke(boost::detail::function::function_buffer&, 
> sysync::KeyType*, sysync::ItemIDType*) () at 
> /usr/lib/x86_64-linux-gnu/libsyncevolution.so.0
> #13 0x00007ffff79d9927 in 
> SyncEvo::OperationWrapperSwitch<boost::variant<unsigned short, 
> SyncEvo::ContinueOperation<unsigned short (sysync::KeyType*, 
> sysync::ItemIDType*)> > (sysync::KeyType*, sysync::ItemIDType*), 2, 
> boost::variant<unsigned short, SyncEvo::ContinueOperation<unsigned short 
> (sysync::KeyType*, sysync::ItemIDType*)> > >::operator()(sysync::KeyType*, 
> sysync::ItemIDType*) const () at 
> /usr/lib/x86_64-linux-gnu/libsyncevolution.so.0
> #14 0x00007ffff79c582a in SyncEvolution_InsertItemAsKey () at 
> /usr/lib/x86_64-linux-gnu/libsyncevolution.so.0
> #15 0x00007ffff662a116 in sysync::TDB_Api::InsertItemAsKey(sysync::KeyType*, 
> char const*, sysync::TDB_Api_ItemID&)
>     (this=this@entry=0x555557a068a0, aItemKey=aItemKey@entry=0x555557b1fb90, 
> parentID=parentID@entry=0x7ffff67428d5 "", newID=...)
>     at DB_interfaces/api_db/dbapi.cpp:1924
> #16 0x00007ffff6633080 in 
> sysync::TPluginApiDS::apiAddItem(sysync::TMultiFieldItem&, 
> std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> 
> >&)
>     (this=0x555557a05860, aItem=..., aLocalID="") at 
> DB_interfaces/api_db/pluginapids.cpp:1384
> #17 0x00007ffff6666533 in 
> sysync::TCustomImplDS::implProcessItem(sysync::TSyncItem*, 
> sysync::TStatusCommand&)
>     (this=0x555557a05860, aItemP=0x555555637260, aStatusCommand=...) at 
> sysync/customimplds.cpp:2918
> #18 0x00007ffff66bb773 in 
> sysync::TStdLogicDS::logicProcessRemoteItem(sysync::TSyncItem*, 
> sysync::TStatusCommand&, bool&, std::__cxx11::basic_string<char, 
> std::char_traits<char>, std::allocator<char> >*) (this=0x555557a05860, 
> syncitemP=0x555555637260, aStatusCommand=..., 
> aVisibleInSyncset=@0x7fffffffbb1f: true, aGUID=0x0)
>     at sysync/stdlogicds.cpp:1446
> #19 0x00007ffff668a807 in 
> sysync::TLocalEngineDS::engProcessRemoteItemAsServer(sysync::TSyncItem*, 
> sysync::TStatusCommand&)
>     (this=<optimized out>, aSyncItemP=0x555555637260, aStatusCommand=...) at 
> sysync/localengineds.cpp:6407
> #20 0x00007ffff66828dc in 
> sysync::TLocalEngineDS::engProcessSyncOpItem(sysync::TSyncOperation, 
> sml_item_s*, sml_metinf_metinf_s*, sysync::TStatusCommand&)
>     (this=0x555557a05860, aSyncOp=aSyncOp@entry=sysync::sop_add, 
> aItemP=aItemP@entry=0x555557b23b10, aMetaP=aMetaP@entry=0x555557b197c0, 
> aStatusCommand=...)
>     at sysync/localengineds.cpp:5277
> #21 0x00007ffff66dfdc8 in 
> sysync::TSyncSession::processSyncOpItem(sysync::TSyncOperation, sml_item_s*, 
> sml_metinf_metinf_s*, sysync::TLocalEngineDS*, sysync::TStatusCommand&, bool&)
>     (this=0x5555579e8d20, aSyncOp=<optimized out>, aItemP=0x555557b23b10, 
> aMetaP=aMetaP@entry=0x555557b197c0, aLocalSyncDatastore=<optimized out>, 
> aStatusCommand=..., aQueueForLater=@0x7fffffffbd3b: false) at 
> sysync/syncsession.cpp:3999
> #22 0x00007ffff66d725e in sysync::TSyncOpCommand::execute() 
> (this=0x555557b00b80) at sysync/synccommand.cpp:2637
> #23 0x00007ffff66e846e in sysync::TSyncSession::process(sysync::TSmlCommand*) 
> (this=this@entry=0x5555579e8d20, aSyncCommandP=0x555557b00b80)
>     at sysync/syncsession.cpp:2576
> #24 0x00007ffff66e89d5 in sysync::TSyncSession::AddCmd(sml_generic_s*) 
> (this=this@entry=0x5555579e8d20, aContentP=<optimized out>) at 
> sysync/syncsession.cpp:5803
> #25 0x00007ffff66cc1bc in sysync::TSyncAppBase::AddCmd(void*, sml_generic_s*) 
> (this=0x5555555c4670, userData=0x5555579e8d20, aContentP=<optimized out>)
>     at sysync/syncappbase.cpp:2113
> #26 0x00007ffff6990356 in smlProcessData () at 
> /usr/lib/x86_64-linux-gnu/libsmltk.so.0
> #27 0x00007ffff66c50cd in sysync::TSyncAgent::ServerProcessingStep(unsigned 
> short&, sysync::TEngineProgressType*)
>     (this=this@entry=0x5555579e8d20, aStepCmd=@0x7fffffffc09a: 102, 
> aInfoP=<optimized out>) at sysync/syncagent.cpp:3289
> #28 0x00007ffff66c6a69 in sysync::TSyncAgent::ServerSessionStep(unsigned 
> short&, sysync::TEngineProgressType*)
>     (this=this@entry=0x5555579e8d20, aStepCmd=@0x7fffffffc09a: 102, 
> aInfoP=aInfoP@entry=0x7fffffffc230) at sysync/syncagent.cpp:3257
> #29 0x00007ffff66c895f in sysync::TSyncAgent::SessionStep(unsigned short&, 
> sysync::TEngineProgressType*)
>     (this=this@entry=0x5555579e8d20, aStepCmd=@0x7fffffffc09a: 102, 
> aInfoP=aInfoP@entry=0x7fffffffc230) at sysync/syncagent.cpp:3058
> #30 0x00007ffff6649276 in 
> sysync::TServerEngineInterface::SessionStep(sysync::SessionType*, unsigned 
> short&, sysync::TEngineProgressType*)
>     (this=<optimized out>, aSessionH=0x5555579e8ab0, 
> aStepCmd=@0x7fffffffc09a: 102, aInfoP=0x7fffffffc230) at 
> Transport_interfaces/engine/enginesessiondispatch.cpp:478
> #31 0x00007ffff790556b in 
> SyncEvo::SharedEngine::SessionStep(boost::shared_ptr<sysync::SessionType> 
> const&, unsigned short&, sysync::TEngineProgressType*) ()
>     at /usr/lib/x86_64-linux-gnu/libsyncevolution.so.0
> #32 0x00007ffff79f3ba8 in SyncEvo::SyncContext::doSync() () at 
> /usr/lib/x86_64-linux-gnu/libsyncevolution.so.0
> #33 0x00007ffff79fb713 in SyncEvo::SyncContext::sync(SyncEvo::SyncReport*) () 
> at /usr/lib/x86_64-linux-gnu/libsyncevolution.so.0
> #34 0x00007ffff7962711 in SyncEvo::Cmdline::run() () at 
> /usr/lib/x86_64-linux-gnu/libsyncevolution.so.0
> #35 0x000055555556d24f in main ()


Attachment: signature.asc
Description: OpenPGP digital signature

_______________________________________________
SyncEvolution mailing list -- syncevolution@syncevolution.org
To unsubscribe send an email to syncevolution-le...@syncevolution.org
%(web_page_url)slistinfo%(cgiext)s/%(_internal_name)s

Reply via email to