Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package okteto for openSUSE:Factory checked in at 2025-11-24 14:08:13 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/okteto (Old) and /work/SRC/openSUSE:Factory/.okteto.new.14147 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "okteto" Mon Nov 24 14:08:13 2025 rev:110 rq:1319086 version:3.13.3 Changes: -------- --- /work/SRC/openSUSE:Factory/okteto/okteto.changes 2025-11-13 18:17:29.878295173 +0100 +++ /work/SRC/openSUSE:Factory/.okteto.new.14147/okteto.changes 2025-11-24 14:09:43.030602060 +0100 @@ -1,0 +2,7 @@ +Fri Nov 21 12:22:57 UTC 2025 - Johannes Kastl <[email protected]> + +- Update to version 3.13.3: + * DEV-1254: Improve how ssh forwarder handle connections when + connecting with the ssh agent (#4825) (#4826) + +------------------------------------------------------------------- Old: ---- okteto-3.13.2.obscpio New: ---- okteto-3.13.3.obscpio ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ okteto.spec ++++++ --- /var/tmp/diff_new_pack.qIZ15R/_old 2025-11-24 14:09:45.526706940 +0100 +++ /var/tmp/diff_new_pack.qIZ15R/_new 2025-11-24 14:09:45.530707108 +0100 @@ -17,7 +17,7 @@ Name: okteto -Version: 3.13.2 +Version: 3.13.3 Release: 0 Summary: Develop your applications directly in your Kubernetes Cluster License: Apache-2.0 ++++++ _service ++++++ --- /var/tmp/diff_new_pack.qIZ15R/_old 2025-11-24 14:09:45.570708789 +0100 +++ /var/tmp/diff_new_pack.qIZ15R/_new 2025-11-24 14:09:45.574708957 +0100 @@ -3,8 +3,8 @@ <param name="url">https://github.com/okteto/okteto</param> <param name="scm">git</param> <param name="exclude">.git</param> - <param name="revision">3.13.2</param> - <param name="match-tag">3.13.2</param> + <param name="revision">3.13.3</param> + <param name="match-tag">3.13.3</param> <param name="versionformat">@PARENT_TAG@</param> <param name="changesgenerate">enable</param> </service> ++++++ _servicedata ++++++ --- /var/tmp/diff_new_pack.qIZ15R/_old 2025-11-24 14:09:45.594709797 +0100 +++ /var/tmp/diff_new_pack.qIZ15R/_new 2025-11-24 14:09:45.598709966 +0100 @@ -1,6 +1,6 @@ <servicedata> <service name="tar_scm"> <param name="url">https://github.com/okteto/okteto</param> - <param name="changesrevision">fefaeeb02a58b08cbc5aa2c02c93e5353fa10c85</param></service></servicedata> + <param name="changesrevision">70919733b9cfe8645ce5cc079fe8e93eb9d3f8ef</param></service></servicedata> (No newline at EOF) ++++++ okteto-3.13.2.obscpio -> okteto-3.13.3.obscpio ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/okteto-3.13.2/cmd/remoterun/ssh.go new/okteto-3.13.3/cmd/remoterun/ssh.go --- old/okteto-3.13.2/cmd/remoterun/ssh.go 2025-11-13 13:51:17.000000000 +0100 +++ new/okteto-3.13.3/cmd/remoterun/ssh.go 2025-11-20 19:00:26.000000000 +0100 @@ -23,6 +23,7 @@ "net" "os" "strings" + "sync" "time" oktetoLog "github.com/okteto/okteto/pkg/log" @@ -100,7 +101,13 @@ } func (s *sshForwarder) handleConnection(ctx context.Context, localConn net.Conn, host, port, userToken string, timeout time.Duration) error { - defer localConn.Close() + var closeLocalOnce sync.Once + closeLocal := func() { + closeLocalOnce.Do(func() { + localConn.Close() + }) + } + defer closeLocal() cfg := s.getTLSConfig() @@ -110,7 +117,14 @@ oktetoLog.Errorf("Failed to connect to remote SSH agent: %v", err) return fmt.Errorf("failed to connect to remote SSH agent: %v", err) } - defer remoteConn.Close() + + var closeRemoteOnce sync.Once + closeRemote := func() { + closeRemoteOnce.Do(func() { + remoteConn.Close() + }) + } + defer closeRemote() // Set timeout for auth request err = remoteConn.SetWriteDeadline(time.Now().Add(timeout)) @@ -157,26 +171,19 @@ go func() { <-ctx.Done() - localConn.Close() - remoteConn.Close() + closeLocal() + closeRemote() }() var eg errgroup.Group - err = localConn.SetDeadline(time.Now().Add(timeout)) - if err != nil { - oktetoLog.Infof("failed to set timeout to the local socket: %v", err) - } - - err = remoteConn.SetDeadline(time.Now().Add(timeout)) - if err != nil { - oktetoLog.Infof("failed to set timeout to the remote ssh connection: %v", err) - } - // Forward data from local to remote eg.Go(func() error { _, err := io.Copy(remoteConn, localConn) - if err != nil { + // When local->remote copy completes (local closed or error), + // close remote connection to signal EOF and unblock remote->local copy + closeRemote() + if err != nil && !errors.Is(err, net.ErrClosed) { return fmt.Errorf("error while sending data to remote SSH agent: %w", err) } return nil @@ -185,7 +192,10 @@ // Forward data from remote to local eg.Go(func() error { _, err := io.Copy(localConn, remoteConn) - if err != nil { + // When remote->local copy completes (remote closed or error), + // close local connection to signal EOF and unblock local->remote copy + closeLocal() + if err != nil && !errors.Is(err, net.ErrClosed) { return fmt.Errorf("error while receiving data from remote SSH agent: %w", err) } return nil ++++++ okteto.obsinfo ++++++ --- /var/tmp/diff_new_pack.qIZ15R/_old 2025-11-24 14:09:46.898764590 +0100 +++ /var/tmp/diff_new_pack.qIZ15R/_new 2025-11-24 14:09:46.914765262 +0100 @@ -1,5 +1,5 @@ name: okteto -version: 3.13.2 -mtime: 1763038277 -commit: fefaeeb02a58b08cbc5aa2c02c93e5353fa10c85 +version: 3.13.3 +mtime: 1763661626 +commit: 70919733b9cfe8645ce5cc079fe8e93eb9d3f8ef ++++++ vendor.tar.gz ++++++ /work/SRC/openSUSE:Factory/okteto/vendor.tar.gz /work/SRC/openSUSE:Factory/.okteto.new.14147/vendor.tar.gz differ: char 19, line 1
