diff --git a/radicle-node/src/service.rs b/radicle-node/src/service.rs index 49e22814..c40017a9 100644 --- a/radicle-node/src/service.rs +++ b/radicle-node/src/service.rs @@ -451,6 +451,7 @@ where let tracked = self .track_repo(&id, tracking::Scope::All) .expect("Service::command: error tracking repository"); + // TODO: Try to fetch project if we weren't tracking it. resp.send(tracked).ok(); } Command::UntrackRepo(id, resp) => { diff --git a/radicle-node/src/worker.rs b/radicle-node/src/worker.rs index 613b9341..93f1935a 100644 --- a/radicle-node/src/worker.rs +++ b/radicle-node/src/worker.rs @@ -216,7 +216,7 @@ impl Worker { ) -> Result, FetchError> { // Connect to our local git daemon, running as a child process. let daemon = net::TcpStream::connect_timeout(&self.daemon, self.timeout)?; - let (mut daemon_r, mut daemon_w) = (daemon.try_clone().unwrap(), daemon); + let (mut daemon_r, mut daemon_w) = (daemon.try_clone()?, daemon); let mut stream_r = pktline::Reader::new(drain, stream_r); let mut daemon_r = pktline::Reader::new(vec![], &mut daemon_r); let mut buffer = [0; u16::MAX as usize + 1]; @@ -258,8 +258,9 @@ impl Worker { return Err(e.into()); } if let Err(e) = stream_r.read_pktlines(&mut daemon_w, &mut buffer) { - log::debug!(target: "worker", "Remote returned error: {e}"); - break; + log::error!(target: "worker", "Remote returned error for {}: {e}", fetch.repo); + + return Err(e.into()); } } log::debug!(target: "worker", "Upload of {} to {} exited successfully", fetch.repo, fetch.remote);