Fossil SCM

Cloning and syncing an URL with no repository or misconfigured CGI repository fails silently.

Fixed

bfb8427cdd5b601… · opened 16 years, 6 months ago

Type
Code_Defect
Priority
Severity
Severe
Resolution
Fixed
Subsystem
Created
Sept. 19, 2009 2:07 a.m.

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.


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

anonymous claiming to be Dmitry Chestnykh added on 2009-10-11 21:14:28:
I've tracked this down to http_exchange function in http.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.


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");
 }


lrem added on 2011-08-30 16:27:08 UTC: Fixed for an unknown time.


Keyboard Shortcuts

Open search /
Next entry (timeline) j
Previous entry (timeline) k
Open focused entry Enter
Show this help ?
Toggle theme Top nav button