- Appended to comment:
anonymous claiming to be Dmitry Chestnykh added on 2009-10-11 21:22:27:
Perhaps, something like this would do:--- src/http.c +++ src/http.c @@ -235,7 +235,7 @@ /* ** Jump to here if an error is seen. */ write_err: transport_close(); - return; + fossil_panic("bad server response"); }
- Appended to comment:
anonymous claiming to be Dmitry Chestnykh added on 2009-10-11 21:14:28:
I've tracked this down tohttp_exchange
function inhttp.c
. It correctly identifies non-200 HTTP responses:if( rc!=200 ) goto write_err;
However, it just goes to
write_err
where it simply closes the connection and doesn't output errors (perhaps, it should panic after closing the connection?), so Fossil just continues creating a new repository with zero data.
- Change foundin to "[0eb08b860c], [37f295c310], [b99aa66d1f]"
- Change title to "Cloning and syncing an URL with no repository or misconfigured CGI repository fails silently."
- Appended to comment:
anonymous claiming to be Dmitry Chestnykh added on 2009-10-10 09:13:42:
There's no error reporting at all even for wrong URLs. I mistakenly used a wrong URL (.com instead of .org) for my server to clone/push/pull/sync and was wondering why it doesn't sync.Here's an example session:
~ $ fossil clone http://example.com/404/ test Bytes Cards Artifacts Deltas Send: 597 24 0 0 Received: 0 0 0 0 Total network traffic: 447 bytes sent, 463 bytes received Rebuilding repository meta-data... 0 (0%)... project-id: (null) server-id: a3f3933d58f406f54a82902fb5b57b1e8d24a9af admin-user: dmitry (password is "a666f9")
~ $ fossil open test
~ $ fossil sync http://example.com/NOTHING/ Bytes Cards Artifacts Deltas Send: 137 2 0 0 Received: 0 2 0 0 Total network traffic: 303 bytes sent, 467 bytes received
- Change foundin to "[0eb08b860c], [37f295c310]"
- Change resolution to "Open"
- Change severity to "Severe"
- Change comment to "If a CGI script lacks execution permissions by accident, cloning from it generates no error messages of any kind. All that happens is that an empty repository is created."
- Change foundin to "[0eb08b860c]"
- Change private_contact to "e64e062ff7022fc7fdd41ac56baff07e8ae485d9"
- Change severity to "Important"
- Change status to "Open"
- Change title to "Cloning a misconfigured CGI repository fails silently."
- Change type to "Code_Defect"