node: Return error if remote errors
Instead of simply breaking out of the loop, log and return an error.
This commit is contained in:
parent
99bd62d276
commit
3aa105afda
|
|
@ -451,6 +451,7 @@ where
|
||||||
let tracked = self
|
let tracked = self
|
||||||
.track_repo(&id, tracking::Scope::All)
|
.track_repo(&id, tracking::Scope::All)
|
||||||
.expect("Service::command: error tracking repository");
|
.expect("Service::command: error tracking repository");
|
||||||
|
// TODO: Try to fetch project if we weren't tracking it.
|
||||||
resp.send(tracked).ok();
|
resp.send(tracked).ok();
|
||||||
}
|
}
|
||||||
Command::UntrackRepo(id, resp) => {
|
Command::UntrackRepo(id, resp) => {
|
||||||
|
|
|
||||||
|
|
@ -216,7 +216,7 @@ impl<G: Signer + EcSign + 'static> Worker<G> {
|
||||||
) -> Result<Vec<RefUpdate>, FetchError> {
|
) -> Result<Vec<RefUpdate>, FetchError> {
|
||||||
// Connect to our local git daemon, running as a child process.
|
// Connect to our local git daemon, running as a child process.
|
||||||
let daemon = net::TcpStream::connect_timeout(&self.daemon, self.timeout)?;
|
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 stream_r = pktline::Reader::new(drain, stream_r);
|
||||||
let mut daemon_r = pktline::Reader::new(vec![], &mut daemon_r);
|
let mut daemon_r = pktline::Reader::new(vec![], &mut daemon_r);
|
||||||
let mut buffer = [0; u16::MAX as usize + 1];
|
let mut buffer = [0; u16::MAX as usize + 1];
|
||||||
|
|
@ -258,8 +258,9 @@ impl<G: Signer + EcSign + 'static> Worker<G> {
|
||||||
return Err(e.into());
|
return Err(e.into());
|
||||||
}
|
}
|
||||||
if let Err(e) = stream_r.read_pktlines(&mut daemon_w, &mut buffer) {
|
if let Err(e) = stream_r.read_pktlines(&mut daemon_w, &mut buffer) {
|
||||||
log::debug!(target: "worker", "Remote returned error: {e}");
|
log::error!(target: "worker", "Remote returned error for {}: {e}", fetch.repo);
|
||||||
break;
|
|
||||||
|
return Err(e.into());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
log::debug!(target: "worker", "Upload of {} to {} exited successfully", fetch.repo, fetch.remote);
|
log::debug!(target: "worker", "Upload of {} to {} exited successfully", fetch.repo, fetch.remote);
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue