Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package etcd for openSUSE:Factory checked in 
at 2026-05-04 12:54:17
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/etcd (Old)
 and      /work/SRC/openSUSE:Factory/.etcd.new.30200 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "etcd"

Mon May  4 12:54:17 2026 rev:57 rq:1350535 version:3.6.11

Changes:
--------
--- /work/SRC/openSUSE:Factory/etcd/etcd.changes        2026-04-02 
17:42:09.273805837 +0200
+++ /work/SRC/openSUSE:Factory/.etcd.new.30200/etcd.changes     2026-05-04 
12:57:33.547461048 +0200
@@ -1,0 +2,11 @@
+Sun May 03 16:22:03 UTC 2026 - Elisei Roca <[email protected]>
+
+- Update to version 3.6.11:
+  * Fix the 'read via PrevKv' and 'Put with lease' in TXN bypass rbac check 
issue
+  * Get all Put related auth check into a separate function 'checkPutAuth'
+  * move function CheckTxnAuth from package txn to apply
+  * Bump golang.org/x/image to v0.39.0 to resolve GO-2026-4962
+  * Fix the issue of not being able to adding new member when one existing 
member is down
+  * *: bump go to 1.25.9
+
+-------------------------------------------------------------------

Old:
----
  etcd-3.6.10.tar.gz

New:
----
  etcd-3.6.11.tar.gz

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

Other differences:
------------------
++++++ etcd.spec ++++++
--- /var/tmp/diff_new_pack.xrUsUt/_old  2026-05-04 12:57:34.531501546 +0200
+++ /var/tmp/diff_new_pack.xrUsUt/_new  2026-05-04 12:57:34.531501546 +0200
@@ -23,7 +23,7 @@
   %define _fillupdir %{_localstatedir}/adm/fillup-templates
 %endif
 Name:           etcd
-Version:        3.6.10
+Version:        3.6.11
 Release:        0
 Summary:        Reliable key-value store for the most critical data of a 
distributed system
 License:        Apache-2.0

++++++ _service ++++++
--- /var/tmp/diff_new_pack.xrUsUt/_old  2026-05-04 12:57:34.591504015 +0200
+++ /var/tmp/diff_new_pack.xrUsUt/_new  2026-05-04 12:57:34.595504180 +0200
@@ -3,7 +3,7 @@
     <param name="url">https://github.com/etcd-io/etcd.git</param>
     <param name="scm">git</param>
     <param name="exclude">.git</param>
-    <param name="revision">v3.6.10</param>
+    <param name="revision">v3.6.11</param>
     <param name="versionformat">@PARENT_TAG@</param>
     <param name="changesgenerate">enable</param>
     <param name="versionrewrite-pattern">v(.*)</param>

++++++ _servicedata ++++++
--- /var/tmp/diff_new_pack.xrUsUt/_old  2026-05-04 12:57:34.615505003 +0200
+++ /var/tmp/diff_new_pack.xrUsUt/_new  2026-05-04 12:57:34.619505168 +0200
@@ -1,6 +1,6 @@
 <servicedata>
 <service name="tar_scm">
                 <param name="url">https://github.com/etcd-io/etcd.git</param>
-              <param 
name="changesrevision">db8d13a5421fcbd1c5825a148735b80c7d36cd2d</param></service></servicedata>
+              <param 
name="changesrevision">ec166e2292a58365c90e96fcd206b3b74938d49d</param></service></servicedata>
 (No newline at EOF)
 

++++++ etcd-3.6.10.tar.gz -> etcd-3.6.11.tar.gz ++++++
/work/SRC/openSUSE:Factory/etcd/etcd-3.6.10.tar.gz 
/work/SRC/openSUSE:Factory/.etcd.new.30200/etcd-3.6.11.tar.gz differ: char 12, 
line 1

++++++ vendor-etcdctl.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/vendor/go.etcd.io/etcd/api/v3/version/version.go 
new/vendor/go.etcd.io/etcd/api/v3/version/version.go
--- old/vendor/go.etcd.io/etcd/api/v3/version/version.go        2026-04-01 
20:29:49.000000000 +0200
+++ new/vendor/go.etcd.io/etcd/api/v3/version/version.go        2026-05-01 
20:50:30.000000000 +0200
@@ -26,7 +26,7 @@
 var (
        // MinClusterVersion is the min cluster version this etcd binary is 
compatible with.
        MinClusterVersion = "3.0.0"
-       Version           = "3.6.10"
+       Version           = "3.6.11"
        APIVersion        = "unknown"
 
        // Git SHA Value will be set during build
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/vendor/golang.org/x/net/http2/http2.go 
new/vendor/golang.org/x/net/http2/http2.go
--- old/vendor/golang.org/x/net/http2/http2.go  2026-04-01 20:29:49.000000000 
+0200
+++ new/vendor/golang.org/x/net/http2/http2.go  2026-05-01 20:50:30.000000000 
+0200
@@ -4,13 +4,17 @@
 
 // Package http2 implements the HTTP/2 protocol.
 //
-// This package is low-level and intended to be used directly by very
-// few people. Most users will use it indirectly through the automatic
-// use by the net/http package (from Go 1.6 and later).
-// For use in earlier Go versions see ConfigureServer. (Transport support
-// requires Go 1.6 or later)
+// Almost no users should need to import this package directly.
+// The net/http package supports HTTP/2 natively.
 //
-// See https://http2.github.io/ for more information on HTTP/2.
+// To enable or disable HTTP/2 support in net/http clients and servers, see
+// [http.Transport.Protocols] and [http.Server.Protocols].
+//
+// To configure HTTP/2 parameters, see
+// [http.Transport.HTTP2] and [http.Server.HTTP2].
+//
+// To create HTTP/1 or HTTP/2 connections, see
+// [http.Transport.NewClientConn].
 package http2 // import "golang.org/x/net/http2"
 
 import (
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/vendor/golang.org/x/net/http2/server.go 
new/vendor/golang.org/x/net/http2/server.go
--- old/vendor/golang.org/x/net/http2/server.go 2026-04-01 20:29:49.000000000 
+0200
+++ new/vendor/golang.org/x/net/http2/server.go 2026-05-01 20:50:30.000000000 
+0200
@@ -164,6 +164,8 @@
 
        // NewWriteScheduler constructs a write scheduler for a connection.
        // If nil, a default scheduler is chosen.
+       //
+       // Deprecated: User-provided write schedulers are deprecated.
        NewWriteScheduler func() WriteScheduler
 
        // CountError, if non-nil, is called on HTTP/2 server errors.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/vendor/golang.org/x/net/http2/transport.go 
new/vendor/golang.org/x/net/http2/transport.go
--- old/vendor/golang.org/x/net/http2/transport.go      2026-04-01 
20:29:49.000000000 +0200
+++ new/vendor/golang.org/x/net/http2/transport.go      2026-05-01 
20:50:30.000000000 +0200
@@ -712,10 +712,6 @@
                return true
        }
        if se, ok := err.(StreamError); ok {
-               if se.Code == ErrCodeProtocol && se.Cause == errFromPeer {
-                       // See golang/go#47635, golang/go#42777
-                       return true
-               }
                return se.Code == ErrCodeRefusedStream
        }
        return false
@@ -3233,10 +3229,6 @@
        return gz.body.Close()
 }
 
-type errorReader struct{ err error }
-
-func (r errorReader) Read(p []byte) (int, error) { return 0, r.err }
-
 // isConnectionCloseRequest reports whether req should use its own
 // connection for a single request and then close the connection.
 func isConnectionCloseRequest(req *http.Request) bool {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/vendor/golang.org/x/net/http2/writesched.go 
new/vendor/golang.org/x/net/http2/writesched.go
--- old/vendor/golang.org/x/net/http2/writesched.go     2026-04-01 
20:29:49.000000000 +0200
+++ new/vendor/golang.org/x/net/http2/writesched.go     2026-05-01 
20:50:30.000000000 +0200
@@ -8,6 +8,8 @@
 
 // WriteScheduler is the interface implemented by HTTP/2 write schedulers.
 // Methods are never called concurrently.
+//
+// Deprecated: User-provided write schedulers are deprecated.
 type WriteScheduler interface {
        // OpenStream opens a new stream in the write scheduler.
        // It is illegal to call this with streamID=0 or with a streamID that is
@@ -38,6 +40,8 @@
 }
 
 // OpenStreamOptions specifies extra options for WriteScheduler.OpenStream.
+//
+// Deprecated: User-provided write schedulers are deprecated.
 type OpenStreamOptions struct {
        // PusherID is zero if the stream was initiated by the client. 
Otherwise,
        // PusherID names the stream that pushed the newly opened stream.
@@ -47,6 +51,8 @@
 }
 
 // FrameWriteRequest is a request to write a frame.
+//
+// Deprecated: User-provided write schedulers are deprecated.
 type FrameWriteRequest struct {
        // write is the interface value that does the writing, once the
        // WriteScheduler has selected this frame to write. The write
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/vendor/golang.org/x/net/http2/writesched_priority_rfc7540.go 
new/vendor/golang.org/x/net/http2/writesched_priority_rfc7540.go
--- old/vendor/golang.org/x/net/http2/writesched_priority_rfc7540.go    
2026-04-01 20:29:49.000000000 +0200
+++ new/vendor/golang.org/x/net/http2/writesched_priority_rfc7540.go    
2026-05-01 20:50:30.000000000 +0200
@@ -14,6 +14,8 @@
 const priorityDefaultWeightRFC7540 = 15 // 16 = 15 + 1
 
 // PriorityWriteSchedulerConfig configures a priorityWriteScheduler.
+//
+// Deprecated: User-provided write schedulers are deprecated.
 type PriorityWriteSchedulerConfig struct {
        // MaxClosedNodesInTree controls the maximum number of closed streams to
        // retain in the priority tree. Setting this to zero saves a small 
amount
@@ -55,6 +57,9 @@
 // NewPriorityWriteScheduler constructs a WriteScheduler that schedules
 // frames by following HTTP/2 priorities as described in RFC 7540 Section 5.3.
 // If cfg is nil, default options are used.
+//
+// Deprecated: The RFC 7540 write scheduler has known bugs and performance 
issues,
+// and RFC 7540 prioritization was deprecated in RFC 9113.
 func NewPriorityWriteScheduler(cfg *PriorityWriteSchedulerConfig) 
WriteScheduler {
        return newPriorityWriteSchedulerRFC7540(cfg)
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/vendor/golang.org/x/net/http2/writesched_random.go 
new/vendor/golang.org/x/net/http2/writesched_random.go
--- old/vendor/golang.org/x/net/http2/writesched_random.go      2026-04-01 
20:29:49.000000000 +0200
+++ new/vendor/golang.org/x/net/http2/writesched_random.go      2026-05-01 
20:50:30.000000000 +0200
@@ -10,6 +10,8 @@
 // priorities. Control frames like SETTINGS and PING are written before DATA
 // frames, but if no control frames are queued and multiple streams have queued
 // HEADERS or DATA frames, Pop selects a ready stream arbitrarily.
+//
+// Deprecated: User-provided write schedulers are deprecated.
 func NewRandomWriteScheduler() WriteScheduler {
        return &randomWriteScheduler{sq: make(map[uint32]*writeQueue)}
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/vendor/golang.org/x/sys/unix/ztypes_linux.go 
new/vendor/golang.org/x/sys/unix/ztypes_linux.go
--- old/vendor/golang.org/x/sys/unix/ztypes_linux.go    2026-04-01 
20:29:49.000000000 +0200
+++ new/vendor/golang.org/x/sys/unix/ztypes_linux.go    2026-05-01 
20:50:30.000000000 +0200
@@ -593,110 +593,115 @@
 )
 
 const (
-       NDA_UNSPEC         = 0x0
-       NDA_DST            = 0x1
-       NDA_LLADDR         = 0x2
-       NDA_CACHEINFO      = 0x3
-       NDA_PROBES         = 0x4
-       NDA_VLAN           = 0x5
-       NDA_PORT           = 0x6
-       NDA_VNI            = 0x7
-       NDA_IFINDEX        = 0x8
-       NDA_MASTER         = 0x9
-       NDA_LINK_NETNSID   = 0xa
-       NDA_SRC_VNI        = 0xb
-       NTF_USE            = 0x1
-       NTF_SELF           = 0x2
-       NTF_MASTER         = 0x4
-       NTF_PROXY          = 0x8
-       NTF_EXT_LEARNED    = 0x10
-       NTF_OFFLOADED      = 0x20
-       NTF_ROUTER         = 0x80
-       NUD_INCOMPLETE     = 0x1
-       NUD_REACHABLE      = 0x2
-       NUD_STALE          = 0x4
-       NUD_DELAY          = 0x8
-       NUD_PROBE          = 0x10
-       NUD_FAILED         = 0x20
-       NUD_NOARP          = 0x40
-       NUD_PERMANENT      = 0x80
-       NUD_NONE           = 0x0
-       IFA_UNSPEC         = 0x0
-       IFA_ADDRESS        = 0x1
-       IFA_LOCAL          = 0x2
-       IFA_LABEL          = 0x3
-       IFA_BROADCAST      = 0x4
-       IFA_ANYCAST        = 0x5
-       IFA_CACHEINFO      = 0x6
-       IFA_MULTICAST      = 0x7
-       IFA_FLAGS          = 0x8
-       IFA_RT_PRIORITY    = 0x9
-       IFA_TARGET_NETNSID = 0xa
-       IFAL_LABEL         = 0x2
-       IFAL_ADDRESS       = 0x1
-       RT_SCOPE_UNIVERSE  = 0x0
-       RT_SCOPE_SITE      = 0xc8
-       RT_SCOPE_LINK      = 0xfd
-       RT_SCOPE_HOST      = 0xfe
-       RT_SCOPE_NOWHERE   = 0xff
-       RT_TABLE_UNSPEC    = 0x0
-       RT_TABLE_COMPAT    = 0xfc
-       RT_TABLE_DEFAULT   = 0xfd
-       RT_TABLE_MAIN      = 0xfe
-       RT_TABLE_LOCAL     = 0xff
-       RT_TABLE_MAX       = 0xffffffff
-       RTA_UNSPEC         = 0x0
-       RTA_DST            = 0x1
-       RTA_SRC            = 0x2
-       RTA_IIF            = 0x3
-       RTA_OIF            = 0x4
-       RTA_GATEWAY        = 0x5
-       RTA_PRIORITY       = 0x6
-       RTA_PREFSRC        = 0x7
-       RTA_METRICS        = 0x8
-       RTA_MULTIPATH      = 0x9
-       RTA_FLOW           = 0xb
-       RTA_CACHEINFO      = 0xc
-       RTA_TABLE          = 0xf
-       RTA_MARK           = 0x10
-       RTA_MFC_STATS      = 0x11
-       RTA_VIA            = 0x12
-       RTA_NEWDST         = 0x13
-       RTA_PREF           = 0x14
-       RTA_ENCAP_TYPE     = 0x15
-       RTA_ENCAP          = 0x16
-       RTA_EXPIRES        = 0x17
-       RTA_PAD            = 0x18
-       RTA_UID            = 0x19
-       RTA_TTL_PROPAGATE  = 0x1a
-       RTA_IP_PROTO       = 0x1b
-       RTA_SPORT          = 0x1c
-       RTA_DPORT          = 0x1d
-       RTN_UNSPEC         = 0x0
-       RTN_UNICAST        = 0x1
-       RTN_LOCAL          = 0x2
-       RTN_BROADCAST      = 0x3
-       RTN_ANYCAST        = 0x4
-       RTN_MULTICAST      = 0x5
-       RTN_BLACKHOLE      = 0x6
-       RTN_UNREACHABLE    = 0x7
-       RTN_PROHIBIT       = 0x8
-       RTN_THROW          = 0x9
-       RTN_NAT            = 0xa
-       RTN_XRESOLVE       = 0xb
-       SizeofNlMsghdr     = 0x10
-       SizeofNlMsgerr     = 0x14
-       SizeofRtGenmsg     = 0x1
-       SizeofNlAttr       = 0x4
-       SizeofRtAttr       = 0x4
-       SizeofIfInfomsg    = 0x10
-       SizeofIfAddrmsg    = 0x8
-       SizeofIfAddrlblmsg = 0xc
-       SizeofIfaCacheinfo = 0x10
-       SizeofRtMsg        = 0xc
-       SizeofRtNexthop    = 0x8
-       SizeofNdUseroptmsg = 0x10
-       SizeofNdMsg        = 0xc
+       NDA_UNSPEC            = 0x0
+       NDA_DST               = 0x1
+       NDA_LLADDR            = 0x2
+       NDA_CACHEINFO         = 0x3
+       NDA_PROBES            = 0x4
+       NDA_VLAN              = 0x5
+       NDA_PORT              = 0x6
+       NDA_VNI               = 0x7
+       NDA_IFINDEX           = 0x8
+       NDA_MASTER            = 0x9
+       NDA_LINK_NETNSID      = 0xa
+       NDA_SRC_VNI           = 0xb
+       NTF_USE               = 0x1
+       NTF_SELF              = 0x2
+       NTF_MASTER            = 0x4
+       NTF_PROXY             = 0x8
+       NTF_EXT_LEARNED       = 0x10
+       NTF_OFFLOADED         = 0x20
+       NTF_ROUTER            = 0x80
+       NUD_INCOMPLETE        = 0x1
+       NUD_REACHABLE         = 0x2
+       NUD_STALE             = 0x4
+       NUD_DELAY             = 0x8
+       NUD_PROBE             = 0x10
+       NUD_FAILED            = 0x20
+       NUD_NOARP             = 0x40
+       NUD_PERMANENT         = 0x80
+       NUD_NONE              = 0x0
+       IFA_UNSPEC            = 0x0
+       IFA_ADDRESS           = 0x1
+       IFA_LOCAL             = 0x2
+       IFA_LABEL             = 0x3
+       IFA_BROADCAST         = 0x4
+       IFA_ANYCAST           = 0x5
+       IFA_CACHEINFO         = 0x6
+       IFA_MULTICAST         = 0x7
+       IFA_FLAGS             = 0x8
+       IFA_RT_PRIORITY       = 0x9
+       IFA_TARGET_NETNSID    = 0xa
+       IFAL_LABEL            = 0x2
+       IFAL_ADDRESS          = 0x1
+       RT_SCOPE_UNIVERSE     = 0x0
+       RT_SCOPE_SITE         = 0xc8
+       RT_SCOPE_LINK         = 0xfd
+       RT_SCOPE_HOST         = 0xfe
+       RT_SCOPE_NOWHERE      = 0xff
+       RT_TABLE_UNSPEC       = 0x0
+       RT_TABLE_COMPAT       = 0xfc
+       RT_TABLE_DEFAULT      = 0xfd
+       RT_TABLE_MAIN         = 0xfe
+       RT_TABLE_LOCAL        = 0xff
+       RT_TABLE_MAX          = 0xffffffff
+       RTA_UNSPEC            = 0x0
+       RTA_DST               = 0x1
+       RTA_SRC               = 0x2
+       RTA_IIF               = 0x3
+       RTA_OIF               = 0x4
+       RTA_GATEWAY           = 0x5
+       RTA_PRIORITY          = 0x6
+       RTA_PREFSRC           = 0x7
+       RTA_METRICS           = 0x8
+       RTA_MULTIPATH         = 0x9
+       RTA_FLOW              = 0xb
+       RTA_CACHEINFO         = 0xc
+       RTA_TABLE             = 0xf
+       RTA_MARK              = 0x10
+       RTA_MFC_STATS         = 0x11
+       RTA_VIA               = 0x12
+       RTA_NEWDST            = 0x13
+       RTA_PREF              = 0x14
+       RTA_ENCAP_TYPE        = 0x15
+       RTA_ENCAP             = 0x16
+       RTA_EXPIRES           = 0x17
+       RTA_PAD               = 0x18
+       RTA_UID               = 0x19
+       RTA_TTL_PROPAGATE     = 0x1a
+       RTA_IP_PROTO          = 0x1b
+       RTA_SPORT             = 0x1c
+       RTA_DPORT             = 0x1d
+       RTN_UNSPEC            = 0x0
+       RTN_UNICAST           = 0x1
+       RTN_LOCAL             = 0x2
+       RTN_BROADCAST         = 0x3
+       RTN_ANYCAST           = 0x4
+       RTN_MULTICAST         = 0x5
+       RTN_BLACKHOLE         = 0x6
+       RTN_UNREACHABLE       = 0x7
+       RTN_PROHIBIT          = 0x8
+       RTN_THROW             = 0x9
+       RTN_NAT               = 0xa
+       RTN_XRESOLVE          = 0xb
+       PREFIX_UNSPEC         = 0x0
+       PREFIX_ADDRESS        = 0x1
+       PREFIX_CACHEINFO      = 0x2
+       SizeofNlMsghdr        = 0x10
+       SizeofNlMsgerr        = 0x14
+       SizeofRtGenmsg        = 0x1
+       SizeofNlAttr          = 0x4
+       SizeofRtAttr          = 0x4
+       SizeofIfInfomsg       = 0x10
+       SizeofPrefixmsg       = 0xc
+       SizeofPrefixCacheinfo = 0x8
+       SizeofIfAddrmsg       = 0x8
+       SizeofIfAddrlblmsg    = 0xc
+       SizeofIfaCacheinfo    = 0x10
+       SizeofRtMsg           = 0xc
+       SizeofRtNexthop       = 0x8
+       SizeofNdUseroptmsg    = 0x10
+       SizeofNdMsg           = 0xc
 )
 
 type NlMsghdr struct {
@@ -735,6 +740,22 @@
        Change uint32
 }
 
+type Prefixmsg struct {
+       Family  uint8
+       Pad1    uint8
+       Pad2    uint16
+       Ifindex int32
+       Type    uint8
+       Len     uint8
+       Flags   uint8
+       Pad3    uint8
+}
+
+type PrefixCacheinfo struct {
+       Preferred_time uint32
+       Valid_time     uint32
+}
+
 type IfAddrmsg struct {
        Family    uint8
        Prefixlen uint8
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/vendor/golang.org/x/sys/windows/aliases.go 
new/vendor/golang.org/x/sys/windows/aliases.go
--- old/vendor/golang.org/x/sys/windows/aliases.go      2026-04-01 
20:29:49.000000000 +0200
+++ new/vendor/golang.org/x/sys/windows/aliases.go      2026-05-01 
20:50:30.000000000 +0200
@@ -8,5 +8,6 @@
 
 import "syscall"
 
+type Signal = syscall.Signal
 type Errno = syscall.Errno
 type SysProcAttr = syscall.SysProcAttr
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/vendor/golang.org/x/sys/windows/syscall_windows.go 
new/vendor/golang.org/x/sys/windows/syscall_windows.go
--- old/vendor/golang.org/x/sys/windows/syscall_windows.go      2026-04-01 
20:29:49.000000000 +0200
+++ new/vendor/golang.org/x/sys/windows/syscall_windows.go      2026-05-01 
20:50:30.000000000 +0200
@@ -1490,20 +1490,6 @@
 func Getegid() (egid int)                { return -1 }
 func Getgroups() (gids []int, err error) { return nil, syscall.EWINDOWS }
 
-type Signal int
-
-func (s Signal) Signal() {}
-
-func (s Signal) String() string {
-       if 0 <= s && int(s) < len(signals) {
-               str := signals[s]
-               if str != "" {
-                       return str
-               }
-       }
-       return "signal " + itoa(int(s))
-}
-
 func LoadCreateSymbolicLink() error {
        return procCreateSymbolicLinkW.Find()
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/vendor/modules.txt new/vendor/modules.txt
--- old/vendor/modules.txt      2026-04-01 20:29:49.000000000 +0200
+++ new/vendor/modules.txt      2026-05-01 20:50:30.000000000 +0200
@@ -66,7 +66,7 @@
 github.com/stretchr/testify/assert
 github.com/stretchr/testify/assert/yaml
 github.com/stretchr/testify/require
-# go.etcd.io/etcd/api/v3 v3.6.10 => ../api
+# go.etcd.io/etcd/api/v3 v3.6.11 => ../api
 ## explicit; go 1.25.0
 go.etcd.io/etcd/api/v3/authpb
 go.etcd.io/etcd/api/v3/etcdserverpb
@@ -75,7 +75,7 @@
 go.etcd.io/etcd/api/v3/v3rpc/rpctypes
 go.etcd.io/etcd/api/v3/version
 go.etcd.io/etcd/api/v3/versionpb
-# go.etcd.io/etcd/client/pkg/v3 v3.6.10 => ../client/pkg
+# go.etcd.io/etcd/client/pkg/v3 v3.6.11 => ../client/pkg
 ## explicit; go 1.25.0
 go.etcd.io/etcd/client/pkg/v3/fileutil
 go.etcd.io/etcd/client/pkg/v3/logutil
@@ -85,7 +85,7 @@
 go.etcd.io/etcd/client/pkg/v3/transport
 go.etcd.io/etcd/client/pkg/v3/types
 go.etcd.io/etcd/client/pkg/v3/verify
-# go.etcd.io/etcd/client/v3 v3.6.10 => ../client/v3
+# go.etcd.io/etcd/client/v3 v3.6.11 => ../client/v3
 ## explicit; go 1.25.0
 go.etcd.io/etcd/client/v3
 go.etcd.io/etcd/client/v3/concurrency
@@ -94,7 +94,7 @@
 go.etcd.io/etcd/client/v3/internal/resolver
 go.etcd.io/etcd/client/v3/mirror
 go.etcd.io/etcd/client/v3/snapshot
-# go.etcd.io/etcd/pkg/v3 v3.6.10 => ../pkg
+# go.etcd.io/etcd/pkg/v3 v3.6.11 => ../pkg
 ## explicit; go 1.25.0
 go.etcd.io/etcd/pkg/v3/cobrautl
 go.etcd.io/etcd/pkg/v3/flags
@@ -114,7 +114,7 @@
 go.uber.org/zap/internal/stacktrace
 go.uber.org/zap/zapcore
 go.uber.org/zap/zapgrpc
-# golang.org/x/net v0.51.0
+# golang.org/x/net v0.52.0
 ## explicit; go 1.25.0
 golang.org/x/net/http/httpguts
 golang.org/x/net/http2
@@ -124,11 +124,11 @@
 golang.org/x/net/internal/httpsfv
 golang.org/x/net/internal/timeseries
 golang.org/x/net/trace
-# golang.org/x/sys v0.41.0
-## explicit; go 1.24.0
+# golang.org/x/sys v0.42.0
+## explicit; go 1.25.0
 golang.org/x/sys/unix
 golang.org/x/sys/windows
-# golang.org/x/text v0.35.0
+# golang.org/x/text v0.36.0
 ## explicit; go 1.25.0
 golang.org/x/text/secure/bidirule
 golang.org/x/text/transform

++++++ vendor-etcdutl.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/vendor/go.etcd.io/etcd/api/v3/version/version.go 
new/vendor/go.etcd.io/etcd/api/v3/version/version.go
--- old/vendor/go.etcd.io/etcd/api/v3/version/version.go        2026-04-01 
20:29:49.000000000 +0200
+++ new/vendor/go.etcd.io/etcd/api/v3/version/version.go        2026-05-01 
20:50:30.000000000 +0200
@@ -26,7 +26,7 @@
 var (
        // MinClusterVersion is the min cluster version this etcd binary is 
compatible with.
        MinClusterVersion = "3.0.0"
-       Version           = "3.6.10"
+       Version           = "3.6.11"
        APIVersion        = "unknown"
 
        // Git SHA Value will be set during build
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/vendor/go.etcd.io/etcd/server/v3/etcdserver/apply/apply_auth.go 
new/vendor/go.etcd.io/etcd/server/v3/etcdserver/apply/apply_auth.go
--- old/vendor/go.etcd.io/etcd/server/v3/etcdserver/apply/apply_auth.go 
2026-04-01 20:29:49.000000000 +0200
+++ new/vendor/go.etcd.io/etcd/server/v3/etcdserver/apply/apply_auth.go 
2026-05-01 20:50:30.000000000 +0200
@@ -20,7 +20,6 @@
        pb "go.etcd.io/etcd/api/v3/etcdserverpb"
        "go.etcd.io/etcd/pkg/v3/traceutil"
        "go.etcd.io/etcd/server/v3/auth"
-       "go.etcd.io/etcd/server/v3/etcdserver/txn"
        "go.etcd.io/etcd/server/v3/lease"
 )
 
@@ -63,25 +62,34 @@
 }
 
 func (aa *authApplierV3) Put(r *pb.PutRequest) (*pb.PutResponse, 
*traceutil.Trace, error) {
-       if err := aa.as.IsPutPermitted(&aa.authInfo, r.Key); err != nil {
+       if err := checkPutAuth(aa.as, &aa.authInfo, aa.lessor, r); err != nil {
                return nil, nil, err
        }
 
-       if err := aa.checkLeasePuts(lease.LeaseID(r.Lease)); err != nil {
+       return aa.applierV3.Put(r)
+}
+
+func checkPutAuth(as auth.AuthStore, ai *auth.AuthInfo, lessor lease.Lessor, r 
*pb.PutRequest) error {
+       if err := as.IsPutPermitted(ai, r.Key); err != nil {
+               return err
+       }
+
+       if err := checkLeasePuts(as, ai, lessor, lease.LeaseID(r.Lease)); err 
!= nil {
                // The specified lease is already attached with a key that 
cannot
                // be written by this user. It means the user cannot revoke the
                // lease so attaching the lease to the newly written key should
                // be forbidden.
-               return nil, nil, err
+               return err
        }
 
        if r.PrevKv {
-               err := aa.as.IsRangePermitted(&aa.authInfo, r.Key, nil)
+               err := as.IsRangePermitted(ai, r.Key, nil)
                if err != nil {
-                       return nil, nil, err
+                       return err
                }
        }
-       return aa.applierV3.Put(r)
+
+       return nil
 }
 
 func (aa *authApplierV3) Range(r *pb.RangeRequest) (*pb.RangeResponse, 
*traceutil.Trace, error) {
@@ -106,37 +114,104 @@
 }
 
 func (aa *authApplierV3) Txn(rt *pb.TxnRequest) (*pb.TxnResponse, 
*traceutil.Trace, error) {
-       if err := txn.CheckTxnAuth(aa.as, &aa.authInfo, rt); err != nil {
+       if err := CheckTxnAuth(aa.as, &aa.authInfo, aa.lessor, rt); err != nil {
                return nil, nil, err
        }
        return aa.applierV3.Txn(rt)
 }
 
+func CheckTxnAuth(as auth.AuthStore, ai *auth.AuthInfo, lessor lease.Lessor, 
rt *pb.TxnRequest) error {
+       return checkTxnPermission(as, ai, lessor, rt)
+}
+
+func checkTxnPermission(as auth.AuthStore, ai *auth.AuthInfo, lessor 
lease.Lessor, rt *pb.TxnRequest) error {
+       for _, c := range rt.Compare {
+               if err := as.IsRangePermitted(ai, c.Key, c.RangeEnd); err != 
nil {
+                       return err
+               }
+       }
+       if err := checkTxnReqsPermission(as, ai, lessor, rt.Success); err != 
nil {
+               return err
+       }
+       return checkTxnReqsPermission(as, ai, lessor, rt.Failure)
+}
+
+func checkTxnReqsPermission(as auth.AuthStore, ai *auth.AuthInfo, lessor 
lease.Lessor, reqs []*pb.RequestOp) error {
+       for _, requ := range reqs {
+               switch tv := requ.Request.(type) {
+               case *pb.RequestOp_RequestRange:
+                       if tv.RequestRange == nil {
+                               continue
+                       }
+
+                       if err := as.IsRangePermitted(ai, tv.RequestRange.Key, 
tv.RequestRange.RangeEnd); err != nil {
+                               return err
+                       }
+
+               case *pb.RequestOp_RequestPut:
+                       if tv.RequestPut == nil {
+                               continue
+                       }
+
+                       if err := checkPutAuth(as, ai, lessor, tv.RequestPut); 
err != nil {
+                               return err
+                       }
+               case *pb.RequestOp_RequestDeleteRange:
+                       if tv.RequestDeleteRange == nil {
+                               continue
+                       }
+
+                       if tv.RequestDeleteRange.PrevKv {
+                               err := as.IsRangePermitted(ai, 
tv.RequestDeleteRange.Key, tv.RequestDeleteRange.RangeEnd)
+                               if err != nil {
+                                       return err
+                               }
+                       }
+
+                       err := as.IsDeleteRangePermitted(ai, 
tv.RequestDeleteRange.Key, tv.RequestDeleteRange.RangeEnd)
+                       if err != nil {
+                               return err
+                       }
+               case *pb.RequestOp_RequestTxn:
+                       if tv.RequestTxn == nil {
+                               continue
+                       }
+
+                       err := checkTxnPermission(as, ai, lessor, tv.RequestTxn)
+                       if err != nil {
+                               return err
+                       }
+               }
+       }
+
+       return nil
+}
+
 func (aa *authApplierV3) LeaseRevoke(lc *pb.LeaseRevokeRequest) 
(*pb.LeaseRevokeResponse, error) {
-       if err := aa.checkLeasePuts(lease.LeaseID(lc.ID)); err != nil {
+       if err := checkLeasePuts(aa.as, &aa.authInfo, aa.lessor, 
lease.LeaseID(lc.ID)); err != nil {
                return nil, err
        }
        return aa.applierV3.LeaseRevoke(lc)
 }
 
-func (aa *authApplierV3) checkLeasePuts(leaseID lease.LeaseID) error {
-       l := aa.lessor.Lookup(leaseID)
+func checkLeasePuts(as auth.AuthStore, ai *auth.AuthInfo, lessor lease.Lessor, 
leaseID lease.LeaseID) error {
+       l := lessor.Lookup(leaseID)
        if l != nil {
-               return aa.checkLeasePutsKeys(l)
+               return checkLeasePutsKeys(as, ai, l)
        }
 
        return nil
 }
 
-func (aa *authApplierV3) checkLeasePutsKeys(l *lease.Lease) error {
+func checkLeasePutsKeys(as auth.AuthStore, ai *auth.AuthInfo, l *lease.Lease) 
error {
        // early return for most-common scenario of either disabled auth or 
admin user.
        // IsAdminPermitted also checks whether auth is enabled
-       if err := aa.as.IsAdminPermitted(&aa.authInfo); err == nil {
+       if err := as.IsAdminPermitted(ai); err == nil {
                return nil
        }
 
        for _, key := range l.Keys() {
-               if err := aa.as.IsPutPermitted(&aa.authInfo, []byte(key)); err 
!= nil {
+               if err := as.IsPutPermitted(ai, []byte(key)); err != nil {
                        return err
                }
        }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/vendor/go.etcd.io/etcd/server/v3/etcdserver/server.go 
new/vendor/go.etcd.io/etcd/server/v3/etcdserver/server.go
--- old/vendor/go.etcd.io/etcd/server/v3/etcdserver/server.go   2026-04-01 
20:29:49.000000000 +0200
+++ new/vendor/go.etcd.io/etcd/server/v3/etcdserver/server.go   2026-05-01 
20:50:30.000000000 +0200
@@ -1428,9 +1428,10 @@
                return errors.ErrNotEnoughStartedMembers
        }
 
-       if !isConnectedFullySince(s.r.transport, 
time.Now().Add(-HealthInterval), s.MemberID(), s.cluster.VotingMembers()) {
+       // Treat the new member as unavailable when checking quorum safety.
+       if !isConnectedToQuorumAfterAddingNewMemberSince(s.r.transport, 
time.Now().Add(-HealthInterval), s.MemberID(), s.cluster.VotingMembers()) {
                lg.Warn(
-                       "rejecting member add request; local member has not 
been connected to all peers, reconfigure breaks active quorum",
+                       "rejecting member add request; local member has not 
been connected to majority peers, reconfigure breaks active quorum",
                        zap.String("local-member-id", s.MemberID().String()),
                        zap.String("requested-member-add", fmt.Sprintf("%+v", 
memb)),
                        zap.Error(errors.ErrUnhealthy),
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/vendor/go.etcd.io/etcd/server/v3/etcdserver/txn/txn.go 
new/vendor/go.etcd.io/etcd/server/v3/etcdserver/txn/txn.go
--- old/vendor/go.etcd.io/etcd/server/v3/etcdserver/txn/txn.go  2026-04-01 
20:29:49.000000000 +0200
+++ new/vendor/go.etcd.io/etcd/server/v3/etcdserver/txn/txn.go  2026-05-01 
20:50:30.000000000 +0200
@@ -26,7 +26,6 @@
        pb "go.etcd.io/etcd/api/v3/etcdserverpb"
        "go.etcd.io/etcd/api/v3/mvccpb"
        "go.etcd.io/etcd/pkg/v3/traceutil"
-       "go.etcd.io/etcd/server/v3/auth"
        "go.etcd.io/etcd/server/v3/etcdserver/errors"
        "go.etcd.io/etcd/server/v3/lease"
        "go.etcd.io/etcd/server/v3/storage/mvcc"
@@ -666,71 +665,3 @@
        }
        return true
 }
-
-func CheckTxnAuth(as auth.AuthStore, ai *auth.AuthInfo, rt *pb.TxnRequest) 
error {
-       return checkTxnPermission(as, ai, rt)
-}
-
-func checkTxnPermission(as auth.AuthStore, ai *auth.AuthInfo, rt 
*pb.TxnRequest) error {
-       for _, c := range rt.Compare {
-               if err := as.IsRangePermitted(ai, c.Key, c.RangeEnd); err != 
nil {
-                       return err
-               }
-       }
-       if err := checkTxnReqsPermission(as, ai, rt.Success); err != nil {
-               return err
-       }
-       return checkTxnReqsPermission(as, ai, rt.Failure)
-}
-
-func checkTxnReqsPermission(as auth.AuthStore, ai *auth.AuthInfo, reqs 
[]*pb.RequestOp) error {
-       for _, requ := range reqs {
-               switch tv := requ.Request.(type) {
-               case *pb.RequestOp_RequestRange:
-                       if tv.RequestRange == nil {
-                               continue
-                       }
-
-                       if err := as.IsRangePermitted(ai, tv.RequestRange.Key, 
tv.RequestRange.RangeEnd); err != nil {
-                               return err
-                       }
-
-               case *pb.RequestOp_RequestPut:
-                       if tv.RequestPut == nil {
-                               continue
-                       }
-
-                       if err := as.IsPutPermitted(ai, tv.RequestPut.Key); err 
!= nil {
-                               return err
-                       }
-
-               case *pb.RequestOp_RequestDeleteRange:
-                       if tv.RequestDeleteRange == nil {
-                               continue
-                       }
-
-                       if tv.RequestDeleteRange.PrevKv {
-                               err := as.IsRangePermitted(ai, 
tv.RequestDeleteRange.Key, tv.RequestDeleteRange.RangeEnd)
-                               if err != nil {
-                                       return err
-                               }
-                       }
-
-                       err := as.IsDeleteRangePermitted(ai, 
tv.RequestDeleteRange.Key, tv.RequestDeleteRange.RangeEnd)
-                       if err != nil {
-                               return err
-                       }
-               case *pb.RequestOp_RequestTxn:
-                       if tv.RequestTxn == nil {
-                               continue
-                       }
-
-                       err := checkTxnPermission(as, ai, tv.RequestTxn)
-                       if err != nil {
-                               return err
-                       }
-               }
-       }
-
-       return nil
-}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/vendor/go.etcd.io/etcd/server/v3/etcdserver/util.go 
new/vendor/go.etcd.io/etcd/server/v3/etcdserver/util.go
--- old/vendor/go.etcd.io/etcd/server/v3/etcdserver/util.go     2026-04-01 
20:29:49.000000000 +0200
+++ new/vendor/go.etcd.io/etcd/server/v3/etcdserver/util.go     2026-05-01 
20:50:30.000000000 +0200
@@ -23,12 +23,30 @@
        "go.etcd.io/etcd/server/v3/etcdserver/api/rafthttp"
 )
 
-// isConnectedToQuorumSince checks whether the local member is connected to the
-// quorum of the cluster since the given time.
+// isConnectedToQuorumSince reports whether the local member has been connected
+// to a quorum of the current cluster continuously since the given time.
 func isConnectedToQuorumSince(transport rafthttp.Transporter, since time.Time, 
self types.ID, members []*membership.Member) bool {
        return numConnectedSince(transport, since, self, members) >= 
(len(members)/2)+1
 }
 
+// isConnectedToQuorumAfterAddingNewMemberSince reports whether the local 
member
+// has been connected to a quorum continuously since the given time, assuming a
+// new member is being added to the cluster.
+//
+// For a single-member cluster, it always returns true to allow membership
+// expansion.
+func isConnectedToQuorumAfterAddingNewMemberSince(transport 
rafthttp.Transporter, since time.Time, self types.ID, members 
[]*membership.Member) bool {
+       if len(members) == 1 {
+               // If it's a single member cluster, we should allow adding a 
new member
+               return true
+       }
+       return numConnectedSince(transport, since, self, members) >= 
quorum(len(members)+1)
+}
+
+func quorum(num int) int {
+       return num/2 + 1
+}
+
 // isConnectedSince checks whether the local member is connected to the
 // remote member since the given time.
 func isConnectedSince(transport rafthttp.Transporter, since time.Time, remote 
types.ID) bool {
@@ -36,12 +54,6 @@
        return !t.IsZero() && t.Before(since)
 }
 
-// isConnectedFullySince checks whether the local member is connected to all
-// members in the cluster since the given time.
-func isConnectedFullySince(transport rafthttp.Transporter, since time.Time, 
self types.ID, members []*membership.Member) bool {
-       return numConnectedSince(transport, since, self, members) == 
len(members)
-}
-
 // numConnectedSince counts how many members are connected to the local member
 // since the given time.
 func numConnectedSince(transport rafthttp.Transporter, since time.Time, self 
types.ID, members []*membership.Member) int {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/vendor/go.etcd.io/etcd/server/v3/etcdserver/v3_server.go 
new/vendor/go.etcd.io/etcd/server/v3/etcdserver/v3_server.go
--- old/vendor/go.etcd.io/etcd/server/v3/etcdserver/v3_server.go        
2026-04-01 20:29:49.000000000 +0200
+++ new/vendor/go.etcd.io/etcd/server/v3/etcdserver/v3_server.go        
2026-05-01 20:50:30.000000000 +0200
@@ -174,7 +174,7 @@
                var resp *pb.TxnResponse
                var err error
                chk := func(ai *auth.AuthInfo) error {
-                       return txn.CheckTxnAuth(s.authStore, ai, r)
+                       return apply2.CheckTxnAuth(s.authStore, ai, s.lessor, r)
                }
 
                defer func(start time.Time) {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/vendor/golang.org/x/net/http2/http2.go 
new/vendor/golang.org/x/net/http2/http2.go
--- old/vendor/golang.org/x/net/http2/http2.go  2026-04-01 20:29:49.000000000 
+0200
+++ new/vendor/golang.org/x/net/http2/http2.go  2026-05-01 20:50:30.000000000 
+0200
@@ -4,13 +4,17 @@
 
 // Package http2 implements the HTTP/2 protocol.
 //
-// This package is low-level and intended to be used directly by very
-// few people. Most users will use it indirectly through the automatic
-// use by the net/http package (from Go 1.6 and later).
-// For use in earlier Go versions see ConfigureServer. (Transport support
-// requires Go 1.6 or later)
+// Almost no users should need to import this package directly.
+// The net/http package supports HTTP/2 natively.
 //
-// See https://http2.github.io/ for more information on HTTP/2.
+// To enable or disable HTTP/2 support in net/http clients and servers, see
+// [http.Transport.Protocols] and [http.Server.Protocols].
+//
+// To configure HTTP/2 parameters, see
+// [http.Transport.HTTP2] and [http.Server.HTTP2].
+//
+// To create HTTP/1 or HTTP/2 connections, see
+// [http.Transport.NewClientConn].
 package http2 // import "golang.org/x/net/http2"
 
 import (
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/vendor/golang.org/x/net/http2/server.go 
new/vendor/golang.org/x/net/http2/server.go
--- old/vendor/golang.org/x/net/http2/server.go 2026-04-01 20:29:49.000000000 
+0200
+++ new/vendor/golang.org/x/net/http2/server.go 2026-05-01 20:50:30.000000000 
+0200
@@ -164,6 +164,8 @@
 
        // NewWriteScheduler constructs a write scheduler for a connection.
        // If nil, a default scheduler is chosen.
+       //
+       // Deprecated: User-provided write schedulers are deprecated.
        NewWriteScheduler func() WriteScheduler
 
        // CountError, if non-nil, is called on HTTP/2 server errors.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/vendor/golang.org/x/net/http2/transport.go 
new/vendor/golang.org/x/net/http2/transport.go
--- old/vendor/golang.org/x/net/http2/transport.go      2026-04-01 
20:29:49.000000000 +0200
+++ new/vendor/golang.org/x/net/http2/transport.go      2026-05-01 
20:50:30.000000000 +0200
@@ -712,10 +712,6 @@
                return true
        }
        if se, ok := err.(StreamError); ok {
-               if se.Code == ErrCodeProtocol && se.Cause == errFromPeer {
-                       // See golang/go#47635, golang/go#42777
-                       return true
-               }
                return se.Code == ErrCodeRefusedStream
        }
        return false
@@ -3233,10 +3229,6 @@
        return gz.body.Close()
 }
 
-type errorReader struct{ err error }
-
-func (r errorReader) Read(p []byte) (int, error) { return 0, r.err }
-
 // isConnectionCloseRequest reports whether req should use its own
 // connection for a single request and then close the connection.
 func isConnectionCloseRequest(req *http.Request) bool {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/vendor/golang.org/x/net/http2/writesched.go 
new/vendor/golang.org/x/net/http2/writesched.go
--- old/vendor/golang.org/x/net/http2/writesched.go     2026-04-01 
20:29:49.000000000 +0200
+++ new/vendor/golang.org/x/net/http2/writesched.go     2026-05-01 
20:50:30.000000000 +0200
@@ -8,6 +8,8 @@
 
 // WriteScheduler is the interface implemented by HTTP/2 write schedulers.
 // Methods are never called concurrently.
+//
+// Deprecated: User-provided write schedulers are deprecated.
 type WriteScheduler interface {
        // OpenStream opens a new stream in the write scheduler.
        // It is illegal to call this with streamID=0 or with a streamID that is
@@ -38,6 +40,8 @@
 }
 
 // OpenStreamOptions specifies extra options for WriteScheduler.OpenStream.
+//
+// Deprecated: User-provided write schedulers are deprecated.
 type OpenStreamOptions struct {
        // PusherID is zero if the stream was initiated by the client. 
Otherwise,
        // PusherID names the stream that pushed the newly opened stream.
@@ -47,6 +51,8 @@
 }
 
 // FrameWriteRequest is a request to write a frame.
+//
+// Deprecated: User-provided write schedulers are deprecated.
 type FrameWriteRequest struct {
        // write is the interface value that does the writing, once the
        // WriteScheduler has selected this frame to write. The write
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/vendor/golang.org/x/net/http2/writesched_priority_rfc7540.go 
new/vendor/golang.org/x/net/http2/writesched_priority_rfc7540.go
--- old/vendor/golang.org/x/net/http2/writesched_priority_rfc7540.go    
2026-04-01 20:29:49.000000000 +0200
+++ new/vendor/golang.org/x/net/http2/writesched_priority_rfc7540.go    
2026-05-01 20:50:30.000000000 +0200
@@ -14,6 +14,8 @@
 const priorityDefaultWeightRFC7540 = 15 // 16 = 15 + 1
 
 // PriorityWriteSchedulerConfig configures a priorityWriteScheduler.
+//
+// Deprecated: User-provided write schedulers are deprecated.
 type PriorityWriteSchedulerConfig struct {
        // MaxClosedNodesInTree controls the maximum number of closed streams to
        // retain in the priority tree. Setting this to zero saves a small 
amount
@@ -55,6 +57,9 @@
 // NewPriorityWriteScheduler constructs a WriteScheduler that schedules
 // frames by following HTTP/2 priorities as described in RFC 7540 Section 5.3.
 // If cfg is nil, default options are used.
+//
+// Deprecated: The RFC 7540 write scheduler has known bugs and performance 
issues,
+// and RFC 7540 prioritization was deprecated in RFC 9113.
 func NewPriorityWriteScheduler(cfg *PriorityWriteSchedulerConfig) 
WriteScheduler {
        return newPriorityWriteSchedulerRFC7540(cfg)
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/vendor/golang.org/x/net/http2/writesched_random.go 
new/vendor/golang.org/x/net/http2/writesched_random.go
--- old/vendor/golang.org/x/net/http2/writesched_random.go      2026-04-01 
20:29:49.000000000 +0200
+++ new/vendor/golang.org/x/net/http2/writesched_random.go      2026-05-01 
20:50:30.000000000 +0200
@@ -10,6 +10,8 @@
 // priorities. Control frames like SETTINGS and PING are written before DATA
 // frames, but if no control frames are queued and multiple streams have queued
 // HEADERS or DATA frames, Pop selects a ready stream arbitrarily.
+//
+// Deprecated: User-provided write schedulers are deprecated.
 func NewRandomWriteScheduler() WriteScheduler {
        return &randomWriteScheduler{sq: make(map[uint32]*writeQueue)}
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/vendor/golang.org/x/sys/unix/ztypes_linux.go 
new/vendor/golang.org/x/sys/unix/ztypes_linux.go
--- old/vendor/golang.org/x/sys/unix/ztypes_linux.go    2026-04-01 
20:29:49.000000000 +0200
+++ new/vendor/golang.org/x/sys/unix/ztypes_linux.go    2026-05-01 
20:50:30.000000000 +0200
@@ -593,110 +593,115 @@
 )
 
 const (
-       NDA_UNSPEC         = 0x0
-       NDA_DST            = 0x1
-       NDA_LLADDR         = 0x2
-       NDA_CACHEINFO      = 0x3
-       NDA_PROBES         = 0x4
-       NDA_VLAN           = 0x5
-       NDA_PORT           = 0x6
-       NDA_VNI            = 0x7
-       NDA_IFINDEX        = 0x8
-       NDA_MASTER         = 0x9
-       NDA_LINK_NETNSID   = 0xa
-       NDA_SRC_VNI        = 0xb
-       NTF_USE            = 0x1
-       NTF_SELF           = 0x2
-       NTF_MASTER         = 0x4
-       NTF_PROXY          = 0x8
-       NTF_EXT_LEARNED    = 0x10
-       NTF_OFFLOADED      = 0x20
-       NTF_ROUTER         = 0x80
-       NUD_INCOMPLETE     = 0x1
-       NUD_REACHABLE      = 0x2
-       NUD_STALE          = 0x4
-       NUD_DELAY          = 0x8
-       NUD_PROBE          = 0x10
-       NUD_FAILED         = 0x20
-       NUD_NOARP          = 0x40
-       NUD_PERMANENT      = 0x80
-       NUD_NONE           = 0x0
-       IFA_UNSPEC         = 0x0
-       IFA_ADDRESS        = 0x1
-       IFA_LOCAL          = 0x2
-       IFA_LABEL          = 0x3
-       IFA_BROADCAST      = 0x4
-       IFA_ANYCAST        = 0x5
-       IFA_CACHEINFO      = 0x6
-       IFA_MULTICAST      = 0x7
-       IFA_FLAGS          = 0x8
-       IFA_RT_PRIORITY    = 0x9
-       IFA_TARGET_NETNSID = 0xa
-       IFAL_LABEL         = 0x2
-       IFAL_ADDRESS       = 0x1
-       RT_SCOPE_UNIVERSE  = 0x0
-       RT_SCOPE_SITE      = 0xc8
-       RT_SCOPE_LINK      = 0xfd
-       RT_SCOPE_HOST      = 0xfe
-       RT_SCOPE_NOWHERE   = 0xff
-       RT_TABLE_UNSPEC    = 0x0
-       RT_TABLE_COMPAT    = 0xfc
-       RT_TABLE_DEFAULT   = 0xfd
-       RT_TABLE_MAIN      = 0xfe
-       RT_TABLE_LOCAL     = 0xff
-       RT_TABLE_MAX       = 0xffffffff
-       RTA_UNSPEC         = 0x0
-       RTA_DST            = 0x1
-       RTA_SRC            = 0x2
-       RTA_IIF            = 0x3
-       RTA_OIF            = 0x4
-       RTA_GATEWAY        = 0x5
-       RTA_PRIORITY       = 0x6
-       RTA_PREFSRC        = 0x7
-       RTA_METRICS        = 0x8
-       RTA_MULTIPATH      = 0x9
-       RTA_FLOW           = 0xb
-       RTA_CACHEINFO      = 0xc
-       RTA_TABLE          = 0xf
-       RTA_MARK           = 0x10
-       RTA_MFC_STATS      = 0x11
-       RTA_VIA            = 0x12
-       RTA_NEWDST         = 0x13
-       RTA_PREF           = 0x14
-       RTA_ENCAP_TYPE     = 0x15
-       RTA_ENCAP          = 0x16
-       RTA_EXPIRES        = 0x17
-       RTA_PAD            = 0x18
-       RTA_UID            = 0x19
-       RTA_TTL_PROPAGATE  = 0x1a
-       RTA_IP_PROTO       = 0x1b
-       RTA_SPORT          = 0x1c
-       RTA_DPORT          = 0x1d
-       RTN_UNSPEC         = 0x0
-       RTN_UNICAST        = 0x1
-       RTN_LOCAL          = 0x2
-       RTN_BROADCAST      = 0x3
-       RTN_ANYCAST        = 0x4
-       RTN_MULTICAST      = 0x5
-       RTN_BLACKHOLE      = 0x6
-       RTN_UNREACHABLE    = 0x7
-       RTN_PROHIBIT       = 0x8
-       RTN_THROW          = 0x9
-       RTN_NAT            = 0xa
-       RTN_XRESOLVE       = 0xb
-       SizeofNlMsghdr     = 0x10
-       SizeofNlMsgerr     = 0x14
-       SizeofRtGenmsg     = 0x1
-       SizeofNlAttr       = 0x4
-       SizeofRtAttr       = 0x4
-       SizeofIfInfomsg    = 0x10
-       SizeofIfAddrmsg    = 0x8
-       SizeofIfAddrlblmsg = 0xc
-       SizeofIfaCacheinfo = 0x10
-       SizeofRtMsg        = 0xc
-       SizeofRtNexthop    = 0x8
-       SizeofNdUseroptmsg = 0x10
-       SizeofNdMsg        = 0xc
+       NDA_UNSPEC            = 0x0
+       NDA_DST               = 0x1
+       NDA_LLADDR            = 0x2
+       NDA_CACHEINFO         = 0x3
+       NDA_PROBES            = 0x4
+       NDA_VLAN              = 0x5
+       NDA_PORT              = 0x6
+       NDA_VNI               = 0x7
+       NDA_IFINDEX           = 0x8
+       NDA_MASTER            = 0x9
+       NDA_LINK_NETNSID      = 0xa
+       NDA_SRC_VNI           = 0xb
+       NTF_USE               = 0x1
+       NTF_SELF              = 0x2
+       NTF_MASTER            = 0x4
+       NTF_PROXY             = 0x8
+       NTF_EXT_LEARNED       = 0x10
+       NTF_OFFLOADED         = 0x20
+       NTF_ROUTER            = 0x80
+       NUD_INCOMPLETE        = 0x1
+       NUD_REACHABLE         = 0x2
+       NUD_STALE             = 0x4
+       NUD_DELAY             = 0x8
+       NUD_PROBE             = 0x10
+       NUD_FAILED            = 0x20
+       NUD_NOARP             = 0x40
+       NUD_PERMANENT         = 0x80
+       NUD_NONE              = 0x0
+       IFA_UNSPEC            = 0x0
+       IFA_ADDRESS           = 0x1
+       IFA_LOCAL             = 0x2
+       IFA_LABEL             = 0x3
+       IFA_BROADCAST         = 0x4
+       IFA_ANYCAST           = 0x5
+       IFA_CACHEINFO         = 0x6
+       IFA_MULTICAST         = 0x7
+       IFA_FLAGS             = 0x8
+       IFA_RT_PRIORITY       = 0x9
+       IFA_TARGET_NETNSID    = 0xa
+       IFAL_LABEL            = 0x2
+       IFAL_ADDRESS          = 0x1
+       RT_SCOPE_UNIVERSE     = 0x0
+       RT_SCOPE_SITE         = 0xc8
+       RT_SCOPE_LINK         = 0xfd
+       RT_SCOPE_HOST         = 0xfe
+       RT_SCOPE_NOWHERE      = 0xff
+       RT_TABLE_UNSPEC       = 0x0
+       RT_TABLE_COMPAT       = 0xfc
+       RT_TABLE_DEFAULT      = 0xfd
+       RT_TABLE_MAIN         = 0xfe
+       RT_TABLE_LOCAL        = 0xff
+       RT_TABLE_MAX          = 0xffffffff
+       RTA_UNSPEC            = 0x0
+       RTA_DST               = 0x1
+       RTA_SRC               = 0x2
+       RTA_IIF               = 0x3
+       RTA_OIF               = 0x4
+       RTA_GATEWAY           = 0x5
+       RTA_PRIORITY          = 0x6
+       RTA_PREFSRC           = 0x7
+       RTA_METRICS           = 0x8
+       RTA_MULTIPATH         = 0x9
+       RTA_FLOW              = 0xb
+       RTA_CACHEINFO         = 0xc
+       RTA_TABLE             = 0xf
+       RTA_MARK              = 0x10
+       RTA_MFC_STATS         = 0x11
+       RTA_VIA               = 0x12
+       RTA_NEWDST            = 0x13
+       RTA_PREF              = 0x14
+       RTA_ENCAP_TYPE        = 0x15
+       RTA_ENCAP             = 0x16
+       RTA_EXPIRES           = 0x17
+       RTA_PAD               = 0x18
+       RTA_UID               = 0x19
+       RTA_TTL_PROPAGATE     = 0x1a
+       RTA_IP_PROTO          = 0x1b
+       RTA_SPORT             = 0x1c
+       RTA_DPORT             = 0x1d
+       RTN_UNSPEC            = 0x0
+       RTN_UNICAST           = 0x1
+       RTN_LOCAL             = 0x2
+       RTN_BROADCAST         = 0x3
+       RTN_ANYCAST           = 0x4
+       RTN_MULTICAST         = 0x5
+       RTN_BLACKHOLE         = 0x6
+       RTN_UNREACHABLE       = 0x7
+       RTN_PROHIBIT          = 0x8
+       RTN_THROW             = 0x9
+       RTN_NAT               = 0xa
+       RTN_XRESOLVE          = 0xb
+       PREFIX_UNSPEC         = 0x0
+       PREFIX_ADDRESS        = 0x1
+       PREFIX_CACHEINFO      = 0x2
+       SizeofNlMsghdr        = 0x10
+       SizeofNlMsgerr        = 0x14
+       SizeofRtGenmsg        = 0x1
+       SizeofNlAttr          = 0x4
+       SizeofRtAttr          = 0x4
+       SizeofIfInfomsg       = 0x10
+       SizeofPrefixmsg       = 0xc
+       SizeofPrefixCacheinfo = 0x8
+       SizeofIfAddrmsg       = 0x8
+       SizeofIfAddrlblmsg    = 0xc
+       SizeofIfaCacheinfo    = 0x10
+       SizeofRtMsg           = 0xc
+       SizeofRtNexthop       = 0x8
+       SizeofNdUseroptmsg    = 0x10
+       SizeofNdMsg           = 0xc
 )
 
 type NlMsghdr struct {
@@ -735,6 +740,22 @@
        Change uint32
 }
 
+type Prefixmsg struct {
+       Family  uint8
+       Pad1    uint8
+       Pad2    uint16
+       Ifindex int32
+       Type    uint8
+       Len     uint8
+       Flags   uint8
+       Pad3    uint8
+}
+
+type PrefixCacheinfo struct {
+       Preferred_time uint32
+       Valid_time     uint32
+}
+
 type IfAddrmsg struct {
        Family    uint8
        Prefixlen uint8
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/vendor/golang.org/x/sys/windows/aliases.go 
new/vendor/golang.org/x/sys/windows/aliases.go
--- old/vendor/golang.org/x/sys/windows/aliases.go      2026-04-01 
20:29:49.000000000 +0200
+++ new/vendor/golang.org/x/sys/windows/aliases.go      2026-05-01 
20:50:30.000000000 +0200
@@ -8,5 +8,6 @@
 
 import "syscall"
 
+type Signal = syscall.Signal
 type Errno = syscall.Errno
 type SysProcAttr = syscall.SysProcAttr
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/vendor/golang.org/x/sys/windows/registry/key.go 
new/vendor/golang.org/x/sys/windows/registry/key.go
--- old/vendor/golang.org/x/sys/windows/registry/key.go 2026-04-01 
20:29:49.000000000 +0200
+++ new/vendor/golang.org/x/sys/windows/registry/key.go 2026-05-01 
20:50:30.000000000 +0200
@@ -198,7 +198,20 @@
 
 // ModTime returns the key's last write time.
 func (ki *KeyInfo) ModTime() time.Time {
-       return time.Unix(0, ki.lastWriteTime.Nanoseconds())
+       lastHigh, lastLow := ki.lastWriteTime.HighDateTime, 
ki.lastWriteTime.LowDateTime
+       // 100-nanosecond intervals since January 1, 1601
+       hsec := uint64(lastHigh)<<32 + uint64(lastLow)
+       // Convert _before_ gauging; the nanosecond difference between Epoch 
(00:00:00
+       // UTC, January 1, 1970) and Filetime's zero offset (January 1, 1601) 
is out
+       // of bounds for int64: -11644473600*1e7*1e2 < math.MinInt64
+       sec := int64(hsec/1e7) - 11644473600
+       nsec := int64(hsec%1e7) * 100
+       return time.Unix(sec, nsec)
+}
+
+// modTimeZero reports whether the key's last write time is zero.
+func (ki *KeyInfo) modTimeZero() bool {
+       return ki.lastWriteTime.LowDateTime == 0 && 
ki.lastWriteTime.HighDateTime == 0
 }
 
 // Stat retrieves information about the open key k.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/vendor/golang.org/x/sys/windows/syscall_windows.go 
new/vendor/golang.org/x/sys/windows/syscall_windows.go
--- old/vendor/golang.org/x/sys/windows/syscall_windows.go      2026-04-01 
20:29:49.000000000 +0200
+++ new/vendor/golang.org/x/sys/windows/syscall_windows.go      2026-05-01 
20:50:30.000000000 +0200
@@ -1490,20 +1490,6 @@
 func Getegid() (egid int)                { return -1 }
 func Getgroups() (gids []int, err error) { return nil, syscall.EWINDOWS }
 
-type Signal int
-
-func (s Signal) Signal() {}
-
-func (s Signal) String() string {
-       if 0 <= s && int(s) < len(signals) {
-               str := signals[s]
-               if str != "" {
-                       return str
-               }
-       }
-       return "signal " + itoa(int(s))
-}
-
 func LoadCreateSymbolicLink() error {
        return procCreateSymbolicLinkW.Find()
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/vendor/modules.txt new/vendor/modules.txt
--- old/vendor/modules.txt      2026-04-01 20:29:49.000000000 +0200
+++ new/vendor/modules.txt      2026-05-01 20:50:30.000000000 +0200
@@ -143,7 +143,7 @@
 go.etcd.io/bbolt/errors
 go.etcd.io/bbolt/internal/common
 go.etcd.io/bbolt/internal/freelist
-# go.etcd.io/etcd/api/v3 v3.6.10 => ../api
+# go.etcd.io/etcd/api/v3 v3.6.11 => ../api
 ## explicit; go 1.25.0
 go.etcd.io/etcd/api/v3/authpb
 go.etcd.io/etcd/api/v3/etcdserverpb
@@ -153,7 +153,7 @@
 go.etcd.io/etcd/api/v3/v3rpc/rpctypes
 go.etcd.io/etcd/api/v3/version
 go.etcd.io/etcd/api/v3/versionpb
-# go.etcd.io/etcd/client/pkg/v3 v3.6.10 => ../client/pkg
+# go.etcd.io/etcd/client/pkg/v3 v3.6.11 => ../client/pkg
 ## explicit; go 1.25.0
 go.etcd.io/etcd/client/pkg/v3/fileutil
 go.etcd.io/etcd/client/pkg/v3/logutil
@@ -164,7 +164,7 @@
 go.etcd.io/etcd/client/pkg/v3/transport
 go.etcd.io/etcd/client/pkg/v3/types
 go.etcd.io/etcd/client/pkg/v3/verify
-# go.etcd.io/etcd/client/v3 v3.6.10 => ../client/v3
+# go.etcd.io/etcd/client/v3 v3.6.11 => ../client/v3
 ## explicit; go 1.25.0
 go.etcd.io/etcd/client/v3
 go.etcd.io/etcd/client/v3/concurrency
@@ -172,7 +172,7 @@
 go.etcd.io/etcd/client/v3/internal/endpoint
 go.etcd.io/etcd/client/v3/internal/resolver
 go.etcd.io/etcd/client/v3/snapshot
-# go.etcd.io/etcd/pkg/v3 v3.6.10 => ../pkg
+# go.etcd.io/etcd/pkg/v3 v3.6.11 => ../pkg
 ## explicit; go 1.25.0
 go.etcd.io/etcd/pkg/v3/adt
 go.etcd.io/etcd/pkg/v3/cobrautl
@@ -192,7 +192,7 @@
 go.etcd.io/etcd/pkg/v3/schedule
 go.etcd.io/etcd/pkg/v3/traceutil
 go.etcd.io/etcd/pkg/v3/wait
-# go.etcd.io/etcd/server/v3 v3.6.10 => ../server
+# go.etcd.io/etcd/server/v3 v3.6.11 => ../server
 ## explicit; go 1.25.0
 go.etcd.io/etcd/server/v3/auth
 go.etcd.io/etcd/server/v3/config
@@ -321,11 +321,11 @@
 go.uber.org/zap/internal/stacktrace
 go.uber.org/zap/zapcore
 go.uber.org/zap/zapgrpc
-# golang.org/x/crypto v0.48.0
-## explicit; go 1.24.0
+# golang.org/x/crypto v0.49.0
+## explicit; go 1.25.0
 golang.org/x/crypto/bcrypt
 golang.org/x/crypto/blowfish
-# golang.org/x/net v0.51.0
+# golang.org/x/net v0.52.0
 ## explicit; go 1.25.0
 golang.org/x/net/context
 golang.org/x/net/http/httpguts
@@ -336,12 +336,12 @@
 golang.org/x/net/internal/httpsfv
 golang.org/x/net/internal/timeseries
 golang.org/x/net/trace
-# golang.org/x/sys v0.41.0
-## explicit; go 1.24.0
+# golang.org/x/sys v0.42.0
+## explicit; go 1.25.0
 golang.org/x/sys/unix
 golang.org/x/sys/windows
 golang.org/x/sys/windows/registry
-# golang.org/x/text v0.35.0
+# golang.org/x/text v0.36.0
 ## explicit; go 1.25.0
 golang.org/x/text/secure/bidirule
 golang.org/x/text/transform

++++++ vendor-server.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/vendor/go.etcd.io/etcd/api/v3/version/version.go 
new/vendor/go.etcd.io/etcd/api/v3/version/version.go
--- old/vendor/go.etcd.io/etcd/api/v3/version/version.go        2026-04-01 
20:29:49.000000000 +0200
+++ new/vendor/go.etcd.io/etcd/api/v3/version/version.go        2026-05-01 
20:50:30.000000000 +0200
@@ -26,7 +26,7 @@
 var (
        // MinClusterVersion is the min cluster version this etcd binary is 
compatible with.
        MinClusterVersion = "3.0.0"
-       Version           = "3.6.10"
+       Version           = "3.6.11"
        APIVersion        = "unknown"
 
        // Git SHA Value will be set during build
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/vendor/golang.org/x/net/http2/http2.go 
new/vendor/golang.org/x/net/http2/http2.go
--- old/vendor/golang.org/x/net/http2/http2.go  2026-04-01 20:29:49.000000000 
+0200
+++ new/vendor/golang.org/x/net/http2/http2.go  2026-05-01 20:50:30.000000000 
+0200
@@ -4,13 +4,17 @@
 
 // Package http2 implements the HTTP/2 protocol.
 //
-// This package is low-level and intended to be used directly by very
-// few people. Most users will use it indirectly through the automatic
-// use by the net/http package (from Go 1.6 and later).
-// For use in earlier Go versions see ConfigureServer. (Transport support
-// requires Go 1.6 or later)
+// Almost no users should need to import this package directly.
+// The net/http package supports HTTP/2 natively.
 //
-// See https://http2.github.io/ for more information on HTTP/2.
+// To enable or disable HTTP/2 support in net/http clients and servers, see
+// [http.Transport.Protocols] and [http.Server.Protocols].
+//
+// To configure HTTP/2 parameters, see
+// [http.Transport.HTTP2] and [http.Server.HTTP2].
+//
+// To create HTTP/1 or HTTP/2 connections, see
+// [http.Transport.NewClientConn].
 package http2 // import "golang.org/x/net/http2"
 
 import (
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/vendor/golang.org/x/net/http2/server.go 
new/vendor/golang.org/x/net/http2/server.go
--- old/vendor/golang.org/x/net/http2/server.go 2026-04-01 20:29:49.000000000 
+0200
+++ new/vendor/golang.org/x/net/http2/server.go 2026-05-01 20:50:30.000000000 
+0200
@@ -164,6 +164,8 @@
 
        // NewWriteScheduler constructs a write scheduler for a connection.
        // If nil, a default scheduler is chosen.
+       //
+       // Deprecated: User-provided write schedulers are deprecated.
        NewWriteScheduler func() WriteScheduler
 
        // CountError, if non-nil, is called on HTTP/2 server errors.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/vendor/golang.org/x/net/http2/transport.go 
new/vendor/golang.org/x/net/http2/transport.go
--- old/vendor/golang.org/x/net/http2/transport.go      2026-04-01 
20:29:49.000000000 +0200
+++ new/vendor/golang.org/x/net/http2/transport.go      2026-05-01 
20:50:30.000000000 +0200
@@ -712,10 +712,6 @@
                return true
        }
        if se, ok := err.(StreamError); ok {
-               if se.Code == ErrCodeProtocol && se.Cause == errFromPeer {
-                       // See golang/go#47635, golang/go#42777
-                       return true
-               }
                return se.Code == ErrCodeRefusedStream
        }
        return false
@@ -3233,10 +3229,6 @@
        return gz.body.Close()
 }
 
-type errorReader struct{ err error }
-
-func (r errorReader) Read(p []byte) (int, error) { return 0, r.err }
-
 // isConnectionCloseRequest reports whether req should use its own
 // connection for a single request and then close the connection.
 func isConnectionCloseRequest(req *http.Request) bool {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/vendor/golang.org/x/net/http2/writesched.go 
new/vendor/golang.org/x/net/http2/writesched.go
--- old/vendor/golang.org/x/net/http2/writesched.go     2026-04-01 
20:29:49.000000000 +0200
+++ new/vendor/golang.org/x/net/http2/writesched.go     2026-05-01 
20:50:30.000000000 +0200
@@ -8,6 +8,8 @@
 
 // WriteScheduler is the interface implemented by HTTP/2 write schedulers.
 // Methods are never called concurrently.
+//
+// Deprecated: User-provided write schedulers are deprecated.
 type WriteScheduler interface {
        // OpenStream opens a new stream in the write scheduler.
        // It is illegal to call this with streamID=0 or with a streamID that is
@@ -38,6 +40,8 @@
 }
 
 // OpenStreamOptions specifies extra options for WriteScheduler.OpenStream.
+//
+// Deprecated: User-provided write schedulers are deprecated.
 type OpenStreamOptions struct {
        // PusherID is zero if the stream was initiated by the client. 
Otherwise,
        // PusherID names the stream that pushed the newly opened stream.
@@ -47,6 +51,8 @@
 }
 
 // FrameWriteRequest is a request to write a frame.
+//
+// Deprecated: User-provided write schedulers are deprecated.
 type FrameWriteRequest struct {
        // write is the interface value that does the writing, once the
        // WriteScheduler has selected this frame to write. The write
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/vendor/golang.org/x/net/http2/writesched_priority_rfc7540.go 
new/vendor/golang.org/x/net/http2/writesched_priority_rfc7540.go
--- old/vendor/golang.org/x/net/http2/writesched_priority_rfc7540.go    
2026-04-01 20:29:49.000000000 +0200
+++ new/vendor/golang.org/x/net/http2/writesched_priority_rfc7540.go    
2026-05-01 20:50:30.000000000 +0200
@@ -14,6 +14,8 @@
 const priorityDefaultWeightRFC7540 = 15 // 16 = 15 + 1
 
 // PriorityWriteSchedulerConfig configures a priorityWriteScheduler.
+//
+// Deprecated: User-provided write schedulers are deprecated.
 type PriorityWriteSchedulerConfig struct {
        // MaxClosedNodesInTree controls the maximum number of closed streams to
        // retain in the priority tree. Setting this to zero saves a small 
amount
@@ -55,6 +57,9 @@
 // NewPriorityWriteScheduler constructs a WriteScheduler that schedules
 // frames by following HTTP/2 priorities as described in RFC 7540 Section 5.3.
 // If cfg is nil, default options are used.
+//
+// Deprecated: The RFC 7540 write scheduler has known bugs and performance 
issues,
+// and RFC 7540 prioritization was deprecated in RFC 9113.
 func NewPriorityWriteScheduler(cfg *PriorityWriteSchedulerConfig) 
WriteScheduler {
        return newPriorityWriteSchedulerRFC7540(cfg)
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/vendor/golang.org/x/net/http2/writesched_random.go 
new/vendor/golang.org/x/net/http2/writesched_random.go
--- old/vendor/golang.org/x/net/http2/writesched_random.go      2026-04-01 
20:29:49.000000000 +0200
+++ new/vendor/golang.org/x/net/http2/writesched_random.go      2026-05-01 
20:50:30.000000000 +0200
@@ -10,6 +10,8 @@
 // priorities. Control frames like SETTINGS and PING are written before DATA
 // frames, but if no control frames are queued and multiple streams have queued
 // HEADERS or DATA frames, Pop selects a ready stream arbitrarily.
+//
+// Deprecated: User-provided write schedulers are deprecated.
 func NewRandomWriteScheduler() WriteScheduler {
        return &randomWriteScheduler{sq: make(map[uint32]*writeQueue)}
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/vendor/golang.org/x/sys/unix/ztypes_linux.go 
new/vendor/golang.org/x/sys/unix/ztypes_linux.go
--- old/vendor/golang.org/x/sys/unix/ztypes_linux.go    2026-04-01 
20:29:49.000000000 +0200
+++ new/vendor/golang.org/x/sys/unix/ztypes_linux.go    2026-05-01 
20:50:30.000000000 +0200
@@ -593,110 +593,115 @@
 )
 
 const (
-       NDA_UNSPEC         = 0x0
-       NDA_DST            = 0x1
-       NDA_LLADDR         = 0x2
-       NDA_CACHEINFO      = 0x3
-       NDA_PROBES         = 0x4
-       NDA_VLAN           = 0x5
-       NDA_PORT           = 0x6
-       NDA_VNI            = 0x7
-       NDA_IFINDEX        = 0x8
-       NDA_MASTER         = 0x9
-       NDA_LINK_NETNSID   = 0xa
-       NDA_SRC_VNI        = 0xb
-       NTF_USE            = 0x1
-       NTF_SELF           = 0x2
-       NTF_MASTER         = 0x4
-       NTF_PROXY          = 0x8
-       NTF_EXT_LEARNED    = 0x10
-       NTF_OFFLOADED      = 0x20
-       NTF_ROUTER         = 0x80
-       NUD_INCOMPLETE     = 0x1
-       NUD_REACHABLE      = 0x2
-       NUD_STALE          = 0x4
-       NUD_DELAY          = 0x8
-       NUD_PROBE          = 0x10
-       NUD_FAILED         = 0x20
-       NUD_NOARP          = 0x40
-       NUD_PERMANENT      = 0x80
-       NUD_NONE           = 0x0
-       IFA_UNSPEC         = 0x0
-       IFA_ADDRESS        = 0x1
-       IFA_LOCAL          = 0x2
-       IFA_LABEL          = 0x3
-       IFA_BROADCAST      = 0x4
-       IFA_ANYCAST        = 0x5
-       IFA_CACHEINFO      = 0x6
-       IFA_MULTICAST      = 0x7
-       IFA_FLAGS          = 0x8
-       IFA_RT_PRIORITY    = 0x9
-       IFA_TARGET_NETNSID = 0xa
-       IFAL_LABEL         = 0x2
-       IFAL_ADDRESS       = 0x1
-       RT_SCOPE_UNIVERSE  = 0x0
-       RT_SCOPE_SITE      = 0xc8
-       RT_SCOPE_LINK      = 0xfd
-       RT_SCOPE_HOST      = 0xfe
-       RT_SCOPE_NOWHERE   = 0xff
-       RT_TABLE_UNSPEC    = 0x0
-       RT_TABLE_COMPAT    = 0xfc
-       RT_TABLE_DEFAULT   = 0xfd
-       RT_TABLE_MAIN      = 0xfe
-       RT_TABLE_LOCAL     = 0xff
-       RT_TABLE_MAX       = 0xffffffff
-       RTA_UNSPEC         = 0x0
-       RTA_DST            = 0x1
-       RTA_SRC            = 0x2
-       RTA_IIF            = 0x3
-       RTA_OIF            = 0x4
-       RTA_GATEWAY        = 0x5
-       RTA_PRIORITY       = 0x6
-       RTA_PREFSRC        = 0x7
-       RTA_METRICS        = 0x8
-       RTA_MULTIPATH      = 0x9
-       RTA_FLOW           = 0xb
-       RTA_CACHEINFO      = 0xc
-       RTA_TABLE          = 0xf
-       RTA_MARK           = 0x10
-       RTA_MFC_STATS      = 0x11
-       RTA_VIA            = 0x12
-       RTA_NEWDST         = 0x13
-       RTA_PREF           = 0x14
-       RTA_ENCAP_TYPE     = 0x15
-       RTA_ENCAP          = 0x16
-       RTA_EXPIRES        = 0x17
-       RTA_PAD            = 0x18
-       RTA_UID            = 0x19
-       RTA_TTL_PROPAGATE  = 0x1a
-       RTA_IP_PROTO       = 0x1b
-       RTA_SPORT          = 0x1c
-       RTA_DPORT          = 0x1d
-       RTN_UNSPEC         = 0x0
-       RTN_UNICAST        = 0x1
-       RTN_LOCAL          = 0x2
-       RTN_BROADCAST      = 0x3
-       RTN_ANYCAST        = 0x4
-       RTN_MULTICAST      = 0x5
-       RTN_BLACKHOLE      = 0x6
-       RTN_UNREACHABLE    = 0x7
-       RTN_PROHIBIT       = 0x8
-       RTN_THROW          = 0x9
-       RTN_NAT            = 0xa
-       RTN_XRESOLVE       = 0xb
-       SizeofNlMsghdr     = 0x10
-       SizeofNlMsgerr     = 0x14
-       SizeofRtGenmsg     = 0x1
-       SizeofNlAttr       = 0x4
-       SizeofRtAttr       = 0x4
-       SizeofIfInfomsg    = 0x10
-       SizeofIfAddrmsg    = 0x8
-       SizeofIfAddrlblmsg = 0xc
-       SizeofIfaCacheinfo = 0x10
-       SizeofRtMsg        = 0xc
-       SizeofRtNexthop    = 0x8
-       SizeofNdUseroptmsg = 0x10
-       SizeofNdMsg        = 0xc
+       NDA_UNSPEC            = 0x0
+       NDA_DST               = 0x1
+       NDA_LLADDR            = 0x2
+       NDA_CACHEINFO         = 0x3
+       NDA_PROBES            = 0x4
+       NDA_VLAN              = 0x5
+       NDA_PORT              = 0x6
+       NDA_VNI               = 0x7
+       NDA_IFINDEX           = 0x8
+       NDA_MASTER            = 0x9
+       NDA_LINK_NETNSID      = 0xa
+       NDA_SRC_VNI           = 0xb
+       NTF_USE               = 0x1
+       NTF_SELF              = 0x2
+       NTF_MASTER            = 0x4
+       NTF_PROXY             = 0x8
+       NTF_EXT_LEARNED       = 0x10
+       NTF_OFFLOADED         = 0x20
+       NTF_ROUTER            = 0x80
+       NUD_INCOMPLETE        = 0x1
+       NUD_REACHABLE         = 0x2
+       NUD_STALE             = 0x4
+       NUD_DELAY             = 0x8
+       NUD_PROBE             = 0x10
+       NUD_FAILED            = 0x20
+       NUD_NOARP             = 0x40
+       NUD_PERMANENT         = 0x80
+       NUD_NONE              = 0x0
+       IFA_UNSPEC            = 0x0
+       IFA_ADDRESS           = 0x1
+       IFA_LOCAL             = 0x2
+       IFA_LABEL             = 0x3
+       IFA_BROADCAST         = 0x4
+       IFA_ANYCAST           = 0x5
+       IFA_CACHEINFO         = 0x6
+       IFA_MULTICAST         = 0x7
+       IFA_FLAGS             = 0x8
+       IFA_RT_PRIORITY       = 0x9
+       IFA_TARGET_NETNSID    = 0xa
+       IFAL_LABEL            = 0x2
+       IFAL_ADDRESS          = 0x1
+       RT_SCOPE_UNIVERSE     = 0x0
+       RT_SCOPE_SITE         = 0xc8
+       RT_SCOPE_LINK         = 0xfd
+       RT_SCOPE_HOST         = 0xfe
+       RT_SCOPE_NOWHERE      = 0xff
+       RT_TABLE_UNSPEC       = 0x0
+       RT_TABLE_COMPAT       = 0xfc
+       RT_TABLE_DEFAULT      = 0xfd
+       RT_TABLE_MAIN         = 0xfe
+       RT_TABLE_LOCAL        = 0xff
+       RT_TABLE_MAX          = 0xffffffff
+       RTA_UNSPEC            = 0x0
+       RTA_DST               = 0x1
+       RTA_SRC               = 0x2
+       RTA_IIF               = 0x3
+       RTA_OIF               = 0x4
+       RTA_GATEWAY           = 0x5
+       RTA_PRIORITY          = 0x6
+       RTA_PREFSRC           = 0x7
+       RTA_METRICS           = 0x8
+       RTA_MULTIPATH         = 0x9
+       RTA_FLOW              = 0xb
+       RTA_CACHEINFO         = 0xc
+       RTA_TABLE             = 0xf
+       RTA_MARK              = 0x10
+       RTA_MFC_STATS         = 0x11
+       RTA_VIA               = 0x12
+       RTA_NEWDST            = 0x13
+       RTA_PREF              = 0x14
+       RTA_ENCAP_TYPE        = 0x15
+       RTA_ENCAP             = 0x16
+       RTA_EXPIRES           = 0x17
+       RTA_PAD               = 0x18
+       RTA_UID               = 0x19
+       RTA_TTL_PROPAGATE     = 0x1a
+       RTA_IP_PROTO          = 0x1b
+       RTA_SPORT             = 0x1c
+       RTA_DPORT             = 0x1d
+       RTN_UNSPEC            = 0x0
+       RTN_UNICAST           = 0x1
+       RTN_LOCAL             = 0x2
+       RTN_BROADCAST         = 0x3
+       RTN_ANYCAST           = 0x4
+       RTN_MULTICAST         = 0x5
+       RTN_BLACKHOLE         = 0x6
+       RTN_UNREACHABLE       = 0x7
+       RTN_PROHIBIT          = 0x8
+       RTN_THROW             = 0x9
+       RTN_NAT               = 0xa
+       RTN_XRESOLVE          = 0xb
+       PREFIX_UNSPEC         = 0x0
+       PREFIX_ADDRESS        = 0x1
+       PREFIX_CACHEINFO      = 0x2
+       SizeofNlMsghdr        = 0x10
+       SizeofNlMsgerr        = 0x14
+       SizeofRtGenmsg        = 0x1
+       SizeofNlAttr          = 0x4
+       SizeofRtAttr          = 0x4
+       SizeofIfInfomsg       = 0x10
+       SizeofPrefixmsg       = 0xc
+       SizeofPrefixCacheinfo = 0x8
+       SizeofIfAddrmsg       = 0x8
+       SizeofIfAddrlblmsg    = 0xc
+       SizeofIfaCacheinfo    = 0x10
+       SizeofRtMsg           = 0xc
+       SizeofRtNexthop       = 0x8
+       SizeofNdUseroptmsg    = 0x10
+       SizeofNdMsg           = 0xc
 )
 
 type NlMsghdr struct {
@@ -735,6 +740,22 @@
        Change uint32
 }
 
+type Prefixmsg struct {
+       Family  uint8
+       Pad1    uint8
+       Pad2    uint16
+       Ifindex int32
+       Type    uint8
+       Len     uint8
+       Flags   uint8
+       Pad3    uint8
+}
+
+type PrefixCacheinfo struct {
+       Preferred_time uint32
+       Valid_time     uint32
+}
+
 type IfAddrmsg struct {
        Family    uint8
        Prefixlen uint8
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/vendor/golang.org/x/sys/windows/aliases.go 
new/vendor/golang.org/x/sys/windows/aliases.go
--- old/vendor/golang.org/x/sys/windows/aliases.go      2026-04-01 
20:29:49.000000000 +0200
+++ new/vendor/golang.org/x/sys/windows/aliases.go      2026-05-01 
20:50:30.000000000 +0200
@@ -8,5 +8,6 @@
 
 import "syscall"
 
+type Signal = syscall.Signal
 type Errno = syscall.Errno
 type SysProcAttr = syscall.SysProcAttr
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/vendor/golang.org/x/sys/windows/registry/key.go 
new/vendor/golang.org/x/sys/windows/registry/key.go
--- old/vendor/golang.org/x/sys/windows/registry/key.go 2026-04-01 
20:29:49.000000000 +0200
+++ new/vendor/golang.org/x/sys/windows/registry/key.go 2026-05-01 
20:50:30.000000000 +0200
@@ -198,7 +198,20 @@
 
 // ModTime returns the key's last write time.
 func (ki *KeyInfo) ModTime() time.Time {
-       return time.Unix(0, ki.lastWriteTime.Nanoseconds())
+       lastHigh, lastLow := ki.lastWriteTime.HighDateTime, 
ki.lastWriteTime.LowDateTime
+       // 100-nanosecond intervals since January 1, 1601
+       hsec := uint64(lastHigh)<<32 + uint64(lastLow)
+       // Convert _before_ gauging; the nanosecond difference between Epoch 
(00:00:00
+       // UTC, January 1, 1970) and Filetime's zero offset (January 1, 1601) 
is out
+       // of bounds for int64: -11644473600*1e7*1e2 < math.MinInt64
+       sec := int64(hsec/1e7) - 11644473600
+       nsec := int64(hsec%1e7) * 100
+       return time.Unix(sec, nsec)
+}
+
+// modTimeZero reports whether the key's last write time is zero.
+func (ki *KeyInfo) modTimeZero() bool {
+       return ki.lastWriteTime.LowDateTime == 0 && 
ki.lastWriteTime.HighDateTime == 0
 }
 
 // Stat retrieves information about the open key k.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/vendor/golang.org/x/sys/windows/syscall_windows.go 
new/vendor/golang.org/x/sys/windows/syscall_windows.go
--- old/vendor/golang.org/x/sys/windows/syscall_windows.go      2026-04-01 
20:29:49.000000000 +0200
+++ new/vendor/golang.org/x/sys/windows/syscall_windows.go      2026-05-01 
20:50:30.000000000 +0200
@@ -1490,20 +1490,6 @@
 func Getegid() (egid int)                { return -1 }
 func Getgroups() (gids []int, err error) { return nil, syscall.EWINDOWS }
 
-type Signal int
-
-func (s Signal) Signal() {}
-
-func (s Signal) String() string {
-       if 0 <= s && int(s) < len(signals) {
-               str := signals[s]
-               if str != "" {
-                       return str
-               }
-       }
-       return "signal " + itoa(int(s))
-}
-
 func LoadCreateSymbolicLink() error {
        return procCreateSymbolicLinkW.Find()
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/vendor/modules.txt new/vendor/modules.txt
--- old/vendor/modules.txt      2026-04-01 20:29:49.000000000 +0200
+++ new/vendor/modules.txt      2026-05-01 20:50:30.000000000 +0200
@@ -156,7 +156,7 @@
 go.etcd.io/bbolt/errors
 go.etcd.io/bbolt/internal/common
 go.etcd.io/bbolt/internal/freelist
-# go.etcd.io/etcd/api/v3 v3.6.10 => ../api
+# go.etcd.io/etcd/api/v3 v3.6.11 => ../api
 ## explicit; go 1.25.0
 go.etcd.io/etcd/api/v3/authpb
 go.etcd.io/etcd/api/v3/etcdserverpb
@@ -166,7 +166,7 @@
 go.etcd.io/etcd/api/v3/v3rpc/rpctypes
 go.etcd.io/etcd/api/v3/version
 go.etcd.io/etcd/api/v3/versionpb
-# go.etcd.io/etcd/client/pkg/v3 v3.6.10 => ../client/pkg
+# go.etcd.io/etcd/client/pkg/v3 v3.6.11 => ../client/pkg
 ## explicit; go 1.25.0
 go.etcd.io/etcd/client/pkg/v3/fileutil
 go.etcd.io/etcd/client/pkg/v3/logutil
@@ -178,7 +178,7 @@
 go.etcd.io/etcd/client/pkg/v3/transport
 go.etcd.io/etcd/client/pkg/v3/types
 go.etcd.io/etcd/client/pkg/v3/verify
-# go.etcd.io/etcd/client/v3 v3.6.10 => ../client/v3
+# go.etcd.io/etcd/client/v3 v3.6.11 => ../client/v3
 ## explicit; go 1.25.0
 go.etcd.io/etcd/client/v3
 go.etcd.io/etcd/client/v3/concurrency
@@ -190,7 +190,7 @@
 go.etcd.io/etcd/client/v3/naming/endpoints
 go.etcd.io/etcd/client/v3/naming/endpoints/internal
 go.etcd.io/etcd/client/v3/ordering
-# go.etcd.io/etcd/pkg/v3 v3.6.10 => ../pkg
+# go.etcd.io/etcd/pkg/v3 v3.6.11 => ../pkg
 ## explicit; go 1.25.0
 go.etcd.io/etcd/pkg/v3/adt
 go.etcd.io/etcd/pkg/v3/contention
@@ -294,11 +294,11 @@
 go.uber.org/zap/zapcore
 go.uber.org/zap/zapgrpc
 go.uber.org/zap/zaptest
-# golang.org/x/crypto v0.48.0
-## explicit; go 1.24.0
+# golang.org/x/crypto v0.49.0
+## explicit; go 1.25.0
 golang.org/x/crypto/bcrypt
 golang.org/x/crypto/blowfish
-# golang.org/x/net v0.51.0
+# golang.org/x/net v0.52.0
 ## explicit; go 1.25.0
 golang.org/x/net/context
 golang.org/x/net/http/httpguts
@@ -309,12 +309,12 @@
 golang.org/x/net/internal/httpsfv
 golang.org/x/net/internal/timeseries
 golang.org/x/net/trace
-# golang.org/x/sys v0.41.0
-## explicit; go 1.24.0
+# golang.org/x/sys v0.42.0
+## explicit; go 1.25.0
 golang.org/x/sys/unix
 golang.org/x/sys/windows
 golang.org/x/sys/windows/registry
-# golang.org/x/text v0.35.0
+# golang.org/x/text v0.36.0
 ## explicit; go 1.25.0
 golang.org/x/text/secure/bidirule
 golang.org/x/text/transform

Reply via email to