Regarding   yesterday's message from me about "cyrus sync_client always refuses to run with an 'Invalid Argument'" I believe I've found a bug in backend.c, the module which is used by sync_client and other cyrus programs - at the very least is an inconsistent behaviour on my Fedora Core 1 servers... I don't know how or to whom properly report the bug, but this is the situation:
 
sync_client refuses to run, on the command line it says it 'can connect to server', on the syslog it says connect(replicaserver) failed: Invalid argument.
 
The only way not to make sync_client abort is to try to connect to a sync_server process on THE SAME HOST ! This way the socket is properly opened. I run a stock i686 fedora 2.4.22 core kernel.
 
I've traced the code of sync_client.c - the 'Invalid argument' is a socket error, logged from the backend_connect() function in backend.c. The error is generated from the connect() library call in the same function - I've not the time to interpret all the function's behavior, so I've simply used a code snippet to open another socket descriptor via gethostbyname(), socket() and other data structures. Doing the connect with these and reassignig the socket descriptor does the trick, I can finally connect to the replica server, and sync_client seems to work flawlessly. There seems to be a bug maybe a unitialized memory allocation, but I am not familiar with the cyrus code and I am no expert in socket programming under linux.. To whom should I report the bug in better detail ?
 
 
----
Cyrus Home Page: http://asg.web.cmu.edu/cyrus
Cyrus Wiki/FAQ: http://cyruswiki.andrew.cmu.edu
List Archives/Info: http://asg.web.cmu.edu/cyrus/mailing-list.html

Reply via email to