diff --git a/go/logic/migrator.go b/go/logic/migrator.go index 90fa8c509..fa92a7219 100644 --- a/go/logic/migrator.go +++ b/go/logic/migrator.go @@ -584,6 +584,7 @@ func (mgtr *Migrator) Migrate() (err error) { return err } defer mgtr.server.RemoveSocketFile() + defer mgtr.server.Close() if err := mgtr.countTableRows(); err != nil { return err @@ -740,6 +741,7 @@ func (mgtr *Migrator) Revert() error { return err } defer mgtr.server.RemoveSocketFile() + defer mgtr.server.Close() if err := mgtr.addDMLEventsListener(); err != nil { return err } diff --git a/go/logic/server.go b/go/logic/server.go index 4705ba9b9..244442224 100644 --- a/go/logic/server.go +++ b/go/logic/server.go @@ -147,7 +147,7 @@ func (srv *Server) Serve() (err error) { for { conn, err := srv.unixListener.Accept() if err != nil { - srv.migrationContext.Log.Errore(err) + return } go srv.handleConnection(conn) } @@ -159,7 +159,7 @@ func (srv *Server) Serve() (err error) { for { conn, err := srv.tcpListener.Accept() if err != nil { - srv.migrationContext.Log.Errore(err) + return } go srv.handleConnection(conn) } @@ -168,6 +168,16 @@ func (srv *Server) Serve() (err error) { return nil } +// Close shuts down the server listeners +func (srv *Server) Close() { + if srv.unixListener != nil { + srv.unixListener.Close() + } + if srv.tcpListener != nil { + srv.tcpListener.Close() + } +} + func (srv *Server) handleConnection(conn net.Conn) (err error) { if conn != nil { defer conn.Close()