diff --git a/pageserver/src/page_service.rs b/pageserver/src/page_service.rs index 0919c5191a..eb9416a482 100644 --- a/pageserver/src/page_service.rs +++ b/pageserver/src/page_service.rs @@ -76,6 +76,12 @@ fn copyin_stream(pgb: &mut PostgresBackend) -> impl Stream bytes, FeMessage::CopyDone => { break }, FeMessage::Sync => continue, + FeMessage::Terminate => { + let msg = format!("client terminated connection with Terminate message during COPY"); + pgb.write_message(&BeMessage::ErrorResponse(&msg))?; + Err(io::Error::new(io::ErrorKind::ConnectionReset, msg))?; + break; + } m => { let msg = format!("unexpected message {:?}", m); pgb.write_message(&BeMessage::ErrorResponse(&msg))?; @@ -87,10 +93,10 @@ fn copyin_stream(pgb: &mut PostgresBackend) -> impl Stream { - let msg = "client closed connection"; + let msg = "client closed connection during COPY"; pgb.write_message(&BeMessage::ErrorResponse(msg))?; pgb.flush().await?; - Err(io::Error::new(io::ErrorKind::Other, msg))?; + Err(io::Error::new(io::ErrorKind::ConnectionReset, msg))?; } Err(e) => { Err(io::Error::new(io::ErrorKind::Other, e))?;