Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package dnsproxy for openSUSE:Factory 
checked in at 2024-01-25 18:40:56
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/dnsproxy (Old)
 and      /work/SRC/openSUSE:Factory/.dnsproxy.new.1815 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "dnsproxy"

Thu Jan 25 18:40:56 2024 rev:20 rq:1141229 version:0.63.1

Changes:
--------
--- /work/SRC/openSUSE:Factory/dnsproxy/dnsproxy.changes        2024-01-18 
21:54:08.506370572 +0100
+++ /work/SRC/openSUSE:Factory/.dnsproxy.new.1815/dnsproxy.changes      
2024-01-25 18:40:59.802210620 +0100
@@ -1,0 +2,6 @@
+Tue Jan 23 23:16:30 UTC 2024 - Eyad Issa <eyadlore...@gmail.com>
+
+- Update to version 0.63.1:
+  * Pull request 315: 373 fix goroutines leak
+
+-------------------------------------------------------------------

Old:
----
  dnsproxy-0.63.0.obscpio

New:
----
  dnsproxy-0.63.1.obscpio

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ dnsproxy.spec ++++++
--- /var/tmp/diff_new_pack.GHGMfr/_old  2024-01-25 18:41:00.770245156 +0100
+++ /var/tmp/diff_new_pack.GHGMfr/_new  2024-01-25 18:41:00.774245299 +0100
@@ -17,7 +17,7 @@
 
 
 Name:           dnsproxy
-Version:        0.63.0
+Version:        0.63.1
 Release:        0
 Summary:        A DNS proxy server
 License:        Apache-2.0

++++++ _service ++++++
--- /var/tmp/diff_new_pack.GHGMfr/_old  2024-01-25 18:41:00.806246441 +0100
+++ /var/tmp/diff_new_pack.GHGMfr/_new  2024-01-25 18:41:00.810246583 +0100
@@ -2,7 +2,7 @@
   <service name="obs_scm" mode="manual">
     <param name="scm">git</param>
     <param name="url">https://github.com/AdguardTeam/dnsproxy.git</param>
-    <param name="revision">v0.63.0</param>
+    <param name="revision">v0.63.1</param>
     <param name="match-tag">*</param>
     <param name="versionrewrite-pattern">v(\d+\.\d+\.\d+)</param>
    <param name="versionformat">@PARENT_TAG@</param>

++++++ _servicedata ++++++
--- /var/tmp/diff_new_pack.GHGMfr/_old  2024-01-25 18:41:00.830247297 +0100
+++ /var/tmp/diff_new_pack.GHGMfr/_new  2024-01-25 18:41:00.834247440 +0100
@@ -1,6 +1,6 @@
 <servicedata>
 <service name="tar_scm">
                 <param 
name="url">https://github.com/AdguardTeam/dnsproxy.git</param>
-              <param 
name="changesrevision">edb394b25c873f5201c60294a60034e25cb08566</param></service></servicedata>
+              <param 
name="changesrevision">a2506cdb8217517800f9f935075ffe2236a20cf6</param></service></servicedata>
 (No newline at EOF)
 

++++++ dnsproxy-0.63.0.obscpio -> dnsproxy-0.63.1.obscpio ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/dnsproxy-0.63.0/upstream/quic.go 
new/dnsproxy-0.63.1/upstream/quic.go
--- old/dnsproxy-0.63.0/upstream/quic.go        2024-01-16 09:32:06.000000000 
+0100
+++ new/dnsproxy-0.63.1/upstream/quic.go        2024-01-23 14:32:32.000000000 
+0100
@@ -78,13 +78,13 @@
        bytesPool *sync.Pool
 
        // quicConfigMu protects quicConfig.
-       quicConfigMu sync.Mutex
+       quicConfigMu *sync.Mutex
 
        // connMu protects conn.
-       connMu sync.RWMutex
+       connMu *sync.Mutex
 
        // bytesPoolGuard protects bytesPool.
-       bytesPoolMu sync.Mutex
+       bytesPoolMu *sync.Mutex
 
        // timeout is the timeout for the upstream connection.
        timeout time.Duration
@@ -118,7 +118,10 @@
                        VerifyConnection:      opts.VerifyConnection,
                        NextProtos:            compatProtoDQ,
                },
-               timeout: opts.Timeout,
+               quicConfigMu: &sync.Mutex{},
+               connMu:       &sync.Mutex{},
+               bytesPoolMu:  &sync.Mutex{},
+               timeout:      opts.Timeout,
        }
 
        runtime.SetFinalizer(u, (*dnsOverQUIC).Close)
@@ -159,7 +162,7 @@
        // connection was closed (due to inactivity for example) AND the server
        // refuses to open a 0-RTT connection.
        for i := 0; hasConnection && p.shouldRetry(err) && i < 2; i++ {
-               log.Debug("re-creating the QUIC connection and retrying due to 
%v", err)
+               log.Debug("dnsproxy: re-creating the QUIC connection and 
retrying due to %v", err)
 
                // Close the active connection to make sure we'll try to 
re-connect.
                p.closeConnWithError(err)
@@ -214,7 +217,7 @@
        var stream quic.Stream
        stream, err = p.openStream(conn)
        if err != nil {
-               return nil, err
+               return nil, fmt.Errorf("opening stream: %w", err)
        }
 
        _, err = stream.Write(proxyutil.AddPrefix(buf))
@@ -226,7 +229,10 @@
        // indicate through the STREAM FIN mechanism that no further data will
        // be sent on that stream. Note, that stream.Close() closes the
        // write-direction of the stream, but does not prevent reading from it.
-       _ = stream.Close()
+       err = stream.Close()
+       if err != nil {
+               log.Debug("dnsproxy: closing quic stream: %s", err)
+       }
 
        return p.readMsg(stream)
 }
@@ -259,29 +265,30 @@
 // argument controls whether we should try to use the existing cached
 // connection.  If it is false, we will forcibly create a new connection and
 // close the existing one if needed.
-func (p *dnsOverQUIC) getConnection(useCached bool) (quic.Connection, error) {
+func (p *dnsOverQUIC) getConnection(useCached bool) (c quic.Connection, err 
error) {
        var conn quic.Connection
-       p.connMu.RLock()
-       conn = p.conn
-       if conn != nil && useCached {
-               p.connMu.RUnlock()
-
-               return conn, nil
-       }
-       if conn != nil {
-               // we're recreating the connection, let's create a new one.
-               _ = conn.CloseWithError(QUICCodeNoError, "")
-       }
-       p.connMu.RUnlock()
 
        p.connMu.Lock()
        defer p.connMu.Unlock()
 
-       var err error
+       conn = p.conn
+       if conn != nil {
+               if useCached {
+                       return conn, nil
+               }
+
+               // We're recreating the connection, let's create a new one.
+               err = conn.CloseWithError(QUICCodeNoError, "")
+               if err != nil {
+                       log.Debug("dnsproxy: closing stale connection: %s", err)
+               }
+       }
+
        conn, err = p.openConnection()
        if err != nil {
                return nil, err
        }
+
        p.conn = conn
 
        return conn, nil
@@ -320,7 +327,9 @@
        defer cancel()
 
        stream, err := conn.OpenStreamSync(ctx)
-       if err == nil {
+       if err != nil {
+               log.Debug("dnsproxy: opening quic stream: %s", err)
+       } else {
                return stream, nil
        }
 
@@ -330,15 +339,16 @@
        if err != nil {
                return nil, err
        }
+
        // Open a new stream.
        return newConn.OpenStreamSync(ctx)
 }
 
-// openConnection opens a new QUIC connection.
+// openConnection dials a new QUIC connection.
 func (p *dnsOverQUIC) openConnection() (conn quic.Connection, err error) {
        dialContext, err := p.getDialer()
        if err != nil {
-               return nil, fmt.Errorf("failed to bootstrap QUIC connection: 
%w", err)
+               return nil, fmt.Errorf("bootstrapping %s: %w", p.addr, err)
        }
 
        // we're using bootstrapped address instead of what's passed to the 
function
@@ -346,14 +356,18 @@
        // what IP is actually reachable (when there're v4/v6 addresses).
        rawConn, err := dialContext(context.Background(), "udp", "")
        if err != nil {
-               return nil, fmt.Errorf("failed to open a QUIC connection: %w", 
err)
+               return nil, fmt.Errorf("dialing raw connection to %s: %w", 
p.addr, err)
+       }
+
+       // It's never actually used.
+       err = rawConn.Close()
+       if err != nil {
+               log.Debug("dnsproxy: closing raw connection for %s: %s", 
p.addr, err)
        }
-       // It's never actually used
-       _ = rawConn.Close()
 
        udpConn, ok := rawConn.(*net.UDPConn)
        if !ok {
-               return nil, fmt.Errorf("failed to open connection to %s", 
p.addr)
+               return nil, fmt.Errorf("unexpected type %T of connection; 
should be %T", rawConn, udpConn)
        }
 
        addr := udpConn.RemoteAddr().String()
@@ -363,7 +377,7 @@
 
        conn, err = quic.DialAddrEarly(ctx, addr, p.tlsConf.Clone(), 
p.getQUICConfig())
        if err != nil {
-               return nil, fmt.Errorf("opening quic connection to %s: %w", 
p.addr, err)
+               return nil, fmt.Errorf("dialing quic connection to %s: %w", 
p.addr, err)
        }
 
        return conn, nil
@@ -393,7 +407,7 @@
 
        err = p.conn.CloseWithError(code, "")
        if err != nil {
-               log.Error("failed to close the conn: %v", err)
+               log.Error("dnsproxy: failed to close the conn: %v", err)
        }
        p.conn = nil
 }

++++++ dnsproxy.obsinfo ++++++
--- /var/tmp/diff_new_pack.GHGMfr/_old  2024-01-25 18:41:00.994253149 +0100
+++ /var/tmp/diff_new_pack.GHGMfr/_new  2024-01-25 18:41:01.002253434 +0100
@@ -1,5 +1,5 @@
 name: dnsproxy
-version: 0.63.0
-mtime: 1705393926
-commit: edb394b25c873f5201c60294a60034e25cb08566
+version: 0.63.1
+mtime: 1706016752
+commit: a2506cdb8217517800f9f935075ffe2236a20cf6
 

++++++ vendor.tar.zstd ++++++
Binary files /var/tmp/diff_new_pack.GHGMfr/_old and 
/var/tmp/diff_new_pack.GHGMfr/_new differ

Reply via email to