Ticket #722 (closed enhancement: fixed)

Opened 4 months ago

Last modified 2 months ago

Unable to find sink for data

Reported by: dirkl Assigned to: bellmich
Priority: high Milestone:
Component: Plugin: syncml Version: 0.36
Severity: major Keywords:
Cc:

Description

Hi,

when trying to sync my SE W950 using the svn version of opensync on a Debian Etch system I'm getting the following error message:

~/build/bin/msynctool --sync filesyncml --wait Synchronizing group "filesyncml" The previous synchronization was unclean. Slow-syncing data sink of member 2 of type syncml-http-server had an error: Unable to find sink for data data sink of member 1 of type file-sync just connected event sink of member 1 of type file-sync just connected note sink of member 1 of type file-sync just connected contact sink of member 1 of type file-sync just connected Main sink of member 1 of type file-sync just connected Main sink of member 2 of type syncml-http-server just connected event sink of member 2 of type syncml-http-server had an error: Timeout. note sink of member 2 of type syncml-http-server had an error: Timeout. contact sink of member 2 of type syncml-http-server had an error: Timeout. The sync failed: No objtypes left without error. Aborting data sink of member 1 of type file-sync just disconnected event sink of member 1 of type file-sync just disconnected note sink of member 1 of type file-sync just disconnected contact sink of member 1 of type file-sync just disconnected Main sink of member 1 of type file-sync just disconnected Main sink of member 2 of type syncml-http-server just disconnected Speicherzugriffsfehler

I'm currently mostly concerned with the first message (unable to find sink...) because it's show before the phone connects and thus cannot be related to a configuration problem at the phone.

Attachments

syncml_log.tgz (1.9 kB) - added by dirkl on 04/11/08 10:45:29.
syncml_trace.tgz (32.2 kB) - added by dirkl on 04/11/08 10:45:58.
http_server_config (1.4 kB) - added by dirkl on 04/11/08 11:38:47.
config of syncml_http_server
osync_trace.tgz (41.9 kB) - added by dirkl on 06/05/08 09:01:48.

Change History

04/11/08 10:45:29 changed by dirkl

  • attachment syncml_log.tgz added.

04/11/08 10:45:58 changed by dirkl

  • attachment syncml_trace.tgz added.

(follow-up: ↓ 2 ) 04/11/08 11:30:17 changed by bellmich

  • owner changed from dgollub to bellmich.

Can you please upload your configuration for syncml-http-server? I think a SE W950 is a UIQ device and I test the whole time with a SE M600i. So it sounds like a configuration issue.

04/11/08 11:38:47 changed by dirkl

  • attachment http_server_config added.

config of syncml_http_server

(in reply to: ↑ 1 ) 04/11/08 14:39:20 changed by dirkl

Replying to bellmich:

Can you please upload your configuration for syncml-http-server? I think a SE W950 is a UIQ device and I test the whole time with a SE M600i. So it sounds like a configuration issue.

done, cf. attachments

04/11/08 16:51:20 changed by bellmich

  • priority changed from normal to high.
  • status changed from new to assigned.
  • type changed from defect to enhancement.
  • severity changed from normal to major.

This is a bug.

File: libsyncml/objects/sml_auth.c Function: _header_callback Description: SML_AUTH_TYPE_MD5 is not implemented.

04/11/08 16:54:35 changed by bellmich

I should use the preview button ...

Filelibsyncml/objects/sml_auth.c
Function_header_callback
DescriptionSML_AUTH_TYPE_MD5 is not implemented.

04/16/08 16:18:19 changed by bellmich

What's to do?

  1. SmlSession?
    1. SmlSession? needs sentCred and recvCred incl. setter in the API
    2. SmlSession? must cache the created nonce in sendChal
  2. SmlAuth?
    1. the verify callback needs another interface to signal the authentication type
    2. AUTH_MD5 must be implemented
    3. smlAuthHeaderReply must support dynamic auth types
    4. internal authentication via recvCred must be implemented
  3. XML parser/assm
    1. the XML assembler must use status->chal and not status->cred
    2. the XML assembler must support nonce
  4. sml_elements must be checked
  5. Plugin SyncML
    1. _verify_callback must be fixed (removed)
    2. received(expected) credentials must be configured for servers
    3. sent credentials must be configured for clients

(follow-up: ↓ 7 ) 06/03/08 19:12:25 changed by bellmich

My SE M600i can use MD5 authentication now.

I had to wait for my notebook (was defect) and had to fix a CDATA bug but now it works (libsyncml v435).

Sorry for the delay :(

Please test it again. Otherwise the bug is closed next week.

(in reply to: ↑ 6 ) 06/03/08 23:18:23 changed by dirkl

Replying to bellmich:

My SE M600i can use MD5 authentication now. I had to wait for my notebook (was defect) and had to fix a CDATA bug but now it works (libsyncml v435). Sorry for the delay :(

No problem ;)

Please test it again. Otherwise the bug is closed next week.

Hm, looks like my system does not have soup-auth.h (cf. log below). I'm running Debian Etch with libsoup-dev 2.2.98-2. Although I found some versions of this lib < 2.2.98-2 on the net which contain soup-auth* files these seem to be missing in Debian.

I suppose that soup-auth.h is a requirement for MD5 authentification? If so, I'll probably have to switch to Debian testing. But even if that is the case, the tests in CMakeLists.txt and the #ifdef around '#include <libsoup/soup-auth.h>' in http_client_internals.h should probably be corrected.

Log for building libsyncml:

-- checking for one of the modules 'check'
-- Could NOT find CHECK
-- ==================================================
-- building tools                               ON
-- tracing tools                                ON
-- unit tests                                   OFF
-- http transports                              ON
-- obex transports                              ON
-- obex over bluetooth transports               ON
-- Configuring done
-- Generating done
-- Build files have been written to: /home/dirkl/svn/opensync/libsyncml/build
make[2]: Entering directory `/home/dirkl/svn/opensync/libsyncml/build'
/usr/bin/cmake -H/home/dirkl/svn/opensync/libsyncml -B/home/dirkl/svn/opensync/libsyncml/build --check-build-system CMakeFiles/Makefile.cmake 0
/usr/bin/cmake -E cmake_progress_start /home/dirkl/svn/opensync/libsyncml/build/CMakeFiles 27
make -f CMakeFiles/Makefile2 all
make[3]: Entering directory `/home/dirkl/svn/opensync/libsyncml/build'
make -f libsyncml/CMakeFiles/syncml.dir/build.make libsyncml/CMakeFiles/syncml.dir/depend
make[4]: Entering directory `/home/dirkl/svn/opensync/libsyncml/build'
make[4]: Für das Ziel »libsyncml/CMakeFiles/syncml.dir/depend« ist nichts zu tun.
make[4]: Leaving directory `/home/dirkl/svn/opensync/libsyncml/build'
make -f libsyncml/CMakeFiles/syncml.dir/build.make libsyncml/CMakeFiles/syncml.dir/build
make[4]: Entering directory `/home/dirkl/svn/opensync/libsyncml/build'
/usr/bin/cmake -E cmake_progress_report /home/dirkl/svn/opensync/libsyncml/build/CMakeFiles 13
[  3%] Building C object libsyncml/CMakeFiles/syncml.dir/sml_transport.o
/usr/bin/gcc  -Dsyncml_EXPORTS   -fPIC -I/home/dirkl/svn/opensync/libsyncml -I/home/dirkl/svn/opensync/libsyncml/build -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/libxml2 -I/usr/include/libsoup-2.2   -o libsyncml/CMakeFiles/syncml.dir/sml_transport.o   -c /home/dirkl/svn/opensync/libsyncml/libsyncml/sml_transport.c
In file included from /home/dirkl/svn/opensync/libsyncml/libsyncml/sml_transport.c:26:
/home/dirkl/svn/opensync/libsyncml/libsyncml/transports/http_client_internals.h:27:31: error: libsoup/soup-auth.h: Datei oder Verzeichnis nicht gefunden
In file included from /home/dirkl/svn/opensync/libsyncml/libsyncml/sml_transport.c:26:
/home/dirkl/svn/opensync/libsyncml/libsyncml/transports/http_client_internals.h:34: error: expected specifier-qualifier-list before ‘SoupURI’
In file included from /home/dirkl/svn/opensync/libsyncml/libsyncml/sml_transport.c:27:
/home/dirkl/svn/opensync/libsyncml/libsyncml/transports/http_server_internals.h:36: error: expected specifier-qualifier-list before ‘SoupURI’
make[4]: *** [libsyncml/CMakeFiles/syncml.dir/sml_transport.o] Fehler 1
make[4]: Leaving directory `/home/dirkl/svn/opensync/libsyncml/build'
make[3]: *** [libsyncml/CMakeFiles/syncml.dir/all] Fehler 2
make[3]: Leaving directory `/home/dirkl/svn/opensync/libsyncml/build'
make[2]: *** [all] Fehler 2
make[2]: Leaving directory `/home/dirkl/svn/opensync/libsyncml/build'
make[2]: Entering directory `/home/dirkl/svn/opensync/libsyncml/build'
make[3]: Entering directory `/home/dirkl/svn/opensync/libsyncml/build'
make[4]: Entering directory `/home/dirkl/svn/opensync/libsyncml/build'
[  3%] Building C object libsyncml/CMakeFiles/syncml.dir/sml_transport.o
In file included from /home/dirkl/svn/opensync/libsyncml/libsyncml/sml_transport.c:26:
/home/dirkl/svn/opensync/libsyncml/libsyncml/transports/http_client_internals.h:27:31: error: libsoup/soup-auth.h: Datei oder Verzeichnis nicht gefunden
In file included from /home/dirkl/svn/opensync/libsyncml/libsyncml/sml_transport.c:26:
/home/dirkl/svn/opensync/libsyncml/libsyncml/transports/http_client_internals.h:34: error: expected specifier-qualifier-list before ‘SoupURI’
In file included from /home/dirkl/svn/opensync/libsyncml/libsyncml/sml_transport.c:27:
/home/dirkl/svn/opensync/libsyncml/libsyncml/transports/http_server_internals.h:36: error: expected specifier-qualifier-list before ‘SoupURI’
make[4]: *** [libsyncml/CMakeFiles/syncml.dir/sml_transport.o] Fehler 1
make[4]: Leaving directory `/home/dirkl/svn/opensync/libsyncml/build'
make[3]: *** [libsyncml/CMakeFiles/syncml.dir/all] Fehler 2
make[3]: Leaving directory `/home/dirkl/svn/opensync/libsyncml/build'
make[2]: *** [all] Fehler 2
make[2]: Leaving directory `/home/dirkl/svn/opensync/libsyncml/build'
make[1]: *** [libsyncml] Fehler 2
make[1]: Leaving directory `/home/dirkl/svn/opensync'
make: *** [all] Fehler 2

(follow-up: ↓ 9 ) 06/04/08 13:58:37 changed by bellmich

You made no mistake. It is fully correct that you have no soup-auth.h. I have Debian unstable and I don't have it too. Someone tried to fix libsoup 2.4 support and damaged 2.2 support during this. I fixed this yesterday too.

It is necessary to delete the build directory to fix this problem. cmake caches a lot of stuff. I had the exact same trouble yesterday too.

(in reply to: ↑ 8 ; follow-up: ↓ 10 ) 06/04/08 14:44:57 changed by dirkl

Replying to bellmich:

You made no mistake. It is fully correct that you have no soup-auth.h. I have Debian unstable and I don't have it too. Someone tried to fix libsoup 2.4 support and damaged 2.2 support during this. I fixed this yesterday too. It is necessary to delete the build directory to fix this problem. cmake caches a lot of stuff. I had the exact same trouble yesterday too.

Ok, now it works again: no more compilation errors. Thx.

I still don't see any plugins with 'msynctool --listplugins' but this is probably caused by a change in my build environment. I will check this tonight.

(in reply to: ↑ 9 ) 06/04/08 22:32:30 changed by dirkl

  • status changed from assigned to closed.
  • resolution set to fixed.

Replying to dirkl:

I still don't see any plugins with 'msynctool --listplugins' but this is probably caused by a change in my build environment. I will check this tonight.

this problem is caused by a change in opensync after rev. 3307 and is unrelated to this bug. So I'm marking this bug as fixed.

06/05/08 09:00:02 changed by dirkl

  • status changed from closed to reopened.
  • resolution deleted.

damn, I closed the ticket to early. Although sychronization works better than before (the phone starts transmitting data and the syncml-http-server recognizes the connection) it's still not successfull:

1) the error message 'unable to find sink for data' is still there 2) after transmitting some data msynctool disconnects again and after a while the phone times out

here is the output of msynctool (I will also attach the current traces):

~/build/bin/msynctool --sync filesyncml --wait
Synchronizing group "filesyncml"
The previous synchronization was unclean. Slow-syncing
data sink of member 2 of type syncml-http-server had an error: Unable to find sink for data
data sink of member 1 of type file-sync just connected
event sink of member 1 of type file-sync just connected
note sink of member 1 of type file-sync just connected
contact sink of member 1 of type file-sync just connected
Main sink of member 1 of type file-sync just connected
Main sink of member 2 of type syncml-http-server just connected
contact sink of member 2 of type syncml-http-server just connected
event sink of member 2 of type syncml-http-server had an error: Timeout.
note sink of member 2 of type syncml-http-server had an error: Timeout.
The sync failed: At least one object engine failed while connecting. Aborting
data sink of member 1 of type file-sync just disconnected
contact sink of member 2 of type syncml-http-server just disconnected
event sink of member 1 of type file-sync just disconnected
note sink of member 1 of type file-sync just disconnected
contact sink of member 1 of type file-sync just disconnected
Main sink of member 1 of type file-sync just disconnected

06/05/08 09:01:48 changed by dirkl

  • attachment osync_trace.tgz added.

(follow-up: ↓ 13 ) 06/05/08 09:47:39 changed by bellmich

I have three questions:

1. Do you activate note synchronization on the phone? You try to synchronize contacts, events and notes. I only use contacts and events on my phone.

2. The timeouts mean that something hangs or is to slow. I cannot run msynctool with full traces on a normal file system for example. I have to create a tmp file system in memory and so my tracing is much faster than normal. Did you test without traces too (to avoid timeouts because of the trace output)?

If you need help with a tmp file system in memory then I can send you the commands. I didn't know it too but Daniel explained it :)

3. Can you activate libsyncml traces too please (in the same directory like the OpenSync? traces)? The first thing what I have to check is the protocol level (SyncML messages).

(in reply to: ↑ 12 ; follow-up: ↓ 14 ) 06/05/08 10:11:14 changed by dirkl

Replying to bellmich:

I have three questions: 1. Do you activate note synchronization on the phone? You try to synchronize contacts, events and notes. I only use contacts and events on my phone.

On the phone I just activated contacts. Thus, it should be ok that events and notes time out. Or is it a problem that these are present in opensync's config but not activated on the phone?

2. The timeouts mean that something hangs or is to slow. I cannot run msynctool with full traces on a normal file system for example. I have to create a tmp file system in memory and so my tracing is much faster than normal. Did you test without traces too (to avoid timeouts because of the trace output)?

Yes, I get the same problem also without traces.

If you need help with a tmp file system in memory then I can send you the commands. I didn't know it too but Daniel explained it :) 3. Can you activate libsyncml traces too please (in the same directory like the OpenSync? traces)? The first thing what I have to check is the protocol level (SyncML messages).

Yes, I will do that and upload the traces.

(in reply to: ↑ 13 ; follow-up: ↓ 15 ) 06/05/08 10:19:15 changed by bellmich

Replying to dirkl:

Replying to bellmich:

I have three questions: 1. Do you activate note synchronization on the phone? You try to synchronize contacts, events and notes. I only use contacts and events on my phone.

On the phone I just activated contacts. Thus, it should be ok that events and notes time out. Or is it a problem that these are present in opensync's config but not activated on the phone?

Yes, this is today a problem and we don't plan to fix it (because this avoids a lot of problems during failure diagnosis). Only configure the contact database please.

(in reply to: ↑ 14 ; follow-ups: ↓ 16 ↓ 17 ) 06/05/08 10:38:46 changed by dirkl

  • status changed from reopened to closed.
  • resolution set to fixed.

Replying to bellmich:

Replying to dirkl:

Replying to bellmich:

I have three questions: 1. Do you activate note synchronization on the phone? You try to synchronize contacts, events and notes. I only use contacts and events on my phone.

On the phone I just activated contacts. Thus, it should be ok that events and notes time out. Or is it a problem that these are present in opensync's config but not activated on the phone?

Yes, this is today a problem and we don't plan to fix it (because this avoids a lot of problems during failure diagnosis). Only configure the contact database please.

Thanks for the hint.

Disabling everything except contacts helped (cf. below). Synchronization still does not terminate but the error message 'unable to find sink for data' disappeared. I will further investigate why the sync doesn't terminate, but will file a new ticket regarding this problem if necessary because it is not related to this ticket any more.

(in reply to: ↑ 15 ) 06/05/08 10:40:01 changed by dirkl

Replying to dirkl:

Disabling everything except contacts helped (cf. below).

~/build/bin/msynctool --sync filesyncml --wait
Synchronizing group "filesyncml"
The previous synchronization was unclean. Slow-syncing
contact sink of member 1 of type file-sync just connected
Main sink of member 1 of type file-sync just connected
Main sink of member 2 of type syncml-http-server just connected
contact sink of member 2 of type syncml-http-server just connected
All clients connected or error
Main sink of member 2 of type syncml-http-server just sent all changes
contact sink of member 1 of type file-sync just sent all changes
Main sink of member 1 of type file-sync just sent all changes

(in reply to: ↑ 15 ; follow-up: ↓ 18 ) 06/05/08 12:05:14 changed by bellmich

Replying to dirkl:

Disabling everything except contacts helped (cf. below). Synchronization still does not terminate but the error message 'unable to find sink for data' disappeared. I will further investigate why the sync doesn't terminate, but will file a new ticket regarding this problem if necessary because it is not related to this ticket any more.

There are really often problems with not terminating syncs. I fixed the last issue yesterday with libsyncml v440 and syncml plugin v3338 or v3339.

(in reply to: ↑ 17 ) 06/05/08 13:03:32 changed by dirkl

Replying to bellmich:

Replying to dirkl:

Disabling everything except contacts helped (cf. below). Synchronization still does not terminate but the error message 'unable to find sink for data' disappeared. I will further investigate why the sync doesn't terminate, but will file a new ticket regarding this problem if necessary because it is not related to this ticket any more.

There are really often problems with not terminating syncs. I fixed the last issue yesterday with libsyncml v440 and syncml plugin v3338 or v3339.

Ok, good to know that I'm not the only one with this kind of problems ;)

I just update to rev 440 of libsyncml and rev 3340 of the plugin and it still doesn't terminate. I will have a look at the traces tonight and file a new ticket if necessary.