This is an automated email from the ASF dual-hosted git repository.

asf-gitbox-commits pushed a commit to branch asf-staging
in repository https://gitbox.apache.org/repos/asf/thrift-website.git


The following commit(s) were added to refs/heads/asf-staging by this push:
     new 982fe00  Automatic Site Publish by Buildbot
982fe00 is described below

commit 982fe00544fa0e8404c07c93c5898f505daef516
Author: buildbot <[email protected]>
AuthorDate: Wed Apr 22 17:18:33 2026 +0000

    Automatic Site Publish by Buildbot
---
 output/index.html      | 24 ++++++++++++------------
 output/lib/netstd.html |  9 ++++++++-
 output/lib/rb.html     | 32 ++++++++++++++++++++++++++++++++
 3 files changed, 52 insertions(+), 13 deletions(-)

diff --git a/output/index.html b/output/index.html
index 741f0a4..facda2b 100644
--- a/output/index.html
+++ b/output/index.html
@@ -125,33 +125,33 @@
   <div class="tab-content">
     <div class="tab-pane active" id="1">
       
-<figure class="highlight"><pre><code class="language-text" data-lang="text">/**
+<figure class="highlight"><pre><code class="language-thrift" 
data-lang="thrift"><span class="c">/**
  * Ahh, now onto the cool part, defining a service. Services just need a name
  * and can optionally inherit from another service using the extends keyword.
- */
-service Calculator extends shared.SharedService {
+ */</span>
+<span class="kd">service</span> <span class="n">Calculator</span> <span 
class="k">extends</span> <span class="n">shared.SharedService</span> <span 
class="p">{</span>
 
-  /**
+  <span class="c">/**
    * A method definition looks like C code. It has a return type, arguments,
    * and optionally a list of exceptions that it may throw. Note that argument
    * lists and exception lists are specified using the exact same syntax as
    * field lists in struct or exception definitions.
-   */
+   */</span>
 
-   void ping(),
+   <span class="kt">void</span> <span class="n">ping</span><span 
class="p">(),</span>
 
-   i32 add(1:i32 num1, 2:i32 num2),
+   <span class="nb">i32</span> <span class="n">add</span><span 
class="p">(</span><span class="mi">1</span><span class="p">:</span><span 
class="nb">i32</span> <span class="n">num1</span><span class="p">,</span> <span 
class="mi">2</span><span class="p">:</span><span class="nb">i32</span> <span 
class="n">num2</span><span class="p">),</span>
 
-   i32 calculate(1:i32 logid, 2:Work w) throws (1:InvalidOperation ouch),
+   <span class="nb">i32</span> <span class="n">calculate</span><span 
class="p">(</span><span class="mi">1</span><span class="p">:</span><span 
class="nb">i32</span> <span class="n">logid</span><span class="p">,</span> 
<span class="mi">2</span><span class="p">:</span><span class="n">Work</span> 
<span class="n">w</span><span class="p">)</span> <span class="k">throws</span> 
<span class="p">(</span><span class="mi">1</span><span class="p">:</span><span 
class="n">InvalidOperation</span> <span  [...]
 
-   /**
+   <span class="c">/**
     * This method has a oneway modifier. That means the client only makes
     * a request and does not listen for any response at all. Oneway methods
     * must be void.
-    */
-   oneway void zip()
+    */</span>
+   <span class="k">oneway</span> <span class="kt">void</span> <span 
class="n">zip</span><span class="p">()</span>
 
-}
+<span class="p">}</span>
 </code></pre></figure>
 <p class="snippet_footer">This snippet was generated by Apache Thrift's 
<strong>source tree docs</strong>:
 <a 
href="https://gitbox.apache.org/repos/asf?p=thrift.git;a=blob;hb=HEAD;f=tutorial/tutorial.thrift";>tutorial/tutorial.thrift</a>
diff --git a/output/lib/netstd.html b/output/lib/netstd.html
index dbd3d63..32ecf31 100644
--- a/output/lib/netstd.html
+++ b/output/lib/netstd.html
@@ -120,7 +120,14 @@ or</li>
 
 <h1 id="fuzzing">Fuzzing</h1>
 
-<p>We use <a href="https://github.com/Metalnem/sharpfuzz";>SharpFuzz</a> (and 
its libfuzzer variant) to fuzz the Thrift protocol parsers. This is 
<strong>not</strong> integrated with oss-fuzz, so all fuzzing must be run 
locally. <strong>Supported platform: Linux only.</strong> The fuzzers are 
opt-in and are <strong>not</strong> built by <code class="language-plaintext 
highlighter-rouge">make check</code>; run <code class="language-plaintext 
highlighter-rouge">make build-fuzzers</code> (or [...]
+<p>We use <a href="https://github.com/Metalnem/sharpfuzz";>SharpFuzz</a> (and 
its libfuzzer variant) to fuzz the Thrift protocol parsers. This is 
<strong>not</strong> integrated with oss-fuzz, so all fuzzing must be run 
locally. <strong>Supported platform: Linux only.</strong></p>
+
+<p><code class="language-plaintext highlighter-rouge">make check</code> 
compiles the 12 fuzzer variants without SharpFuzz IL
+instrumentation, so changes that break the fuzzer build will fail CI.
+Full, instrumented builds suitable for actually running a fuzzer remain
+opt-in: run <code class="language-plaintext highlighter-rouge">make 
build-fuzzers</code> (or <code class="language-plaintext 
highlighter-rouge">./buildfuzzers.sh</code>), which
+additionally requires the SharpFuzz.CommandLine global tool and the
+<code class="language-plaintext highlighter-rouge">libfuzzer-dotnet</code> 
native driver as described below.</p>
 
 <h2 id="prerequisites">Prerequisites</h2>
 
diff --git a/output/lib/rb.html b/output/lib/rb.html
index af49501..ea1988e 100644
--- a/output/lib/rb.html
+++ b/output/lib/rb.html
@@ -153,6 +153,32 @@ optional native extension that accelerates protocols and 
buffers.</li>
 
 <h2 id="breaking-changes">Breaking Changes</h2>
 
+<h3 id="0240">0.24.0</h3>
+
+<p>Connect timeout handling changed for both <code class="language-plaintext 
highlighter-rouge">Thrift::Socket</code> and
+<code class="language-plaintext 
highlighter-rouge">Thrift::SSLSocket</code>.</p>
+
+<ul>
+  <li><code class="language-plaintext highlighter-rouge">timeout == nil</code> 
and <code class="language-plaintext highlighter-rouge">timeout == 0</code> now 
use blocking connect/open semantics.
+Older releases already treated <code class="language-plaintext 
highlighter-rouge">nil</code> that way, but treated <code 
class="language-plaintext highlighter-rouge">0</code> differently
+across operations: <code class="language-plaintext 
highlighter-rouge">read</code> and <code class="language-plaintext 
highlighter-rouge">write</code> used the blocking path, plain TCP
+<code class="language-plaintext highlighter-rouge">open</code> used a 
zero-length poll, and TLS <code class="language-plaintext 
highlighter-rouge">open</code> could spin in the handshake
+retry loop.</li>
+  <li>Positive timeouts now bound the whole connect/open operation instead of
+effectively applying a fresh timeout window at each wait or address attempt.
+For plain TCP this budget is shared across address fallback. For TLS it is
+shared across the TCP connect and the SSL handshake.</li>
+  <li>Connect/open timeout expiry now raises
+<code class="language-plaintext 
highlighter-rouge">Thrift::TransportException::TIMED_OUT</code>. Older releases 
could report the same
+condition as <code class="language-plaintext 
highlighter-rouge">NOT_OPEN</code>, and <code class="language-plaintext 
highlighter-rouge">Thrift::SSLSocket</code> could keep retrying the
+handshake after the wait timed out.</li>
+</ul>
+
+<p>If your application matched <code class="language-plaintext 
highlighter-rouge">NOT_OPEN</code> for connect timeout handling, update it
+to handle <code class="language-plaintext highlighter-rouge">TIMED_OUT</code>. 
If you relied on <code class="language-plaintext highlighter-rouge">timeout = 
0</code> meaning immediate failure
+or on repeated retries extending the effective timeout during TCP fallback or
+TLS handshake, update those call paths before upgrading.</p>
+
 <h3 id="0230">0.23.0</h3>
 
 <p>The documented source-build flow now effectively requires Ruby <code 
class="language-plaintext highlighter-rouge">2.7+</code>.
@@ -213,6 +239,12 @@ require 'my_namespace/calculator'
 <h2 id="migration-notes">Migration Notes</h2>
 
 <ul>
+  <li>If you upgrade to <code class="language-plaintext 
highlighter-rouge">0.24.0</code>, treat <code class="language-plaintext 
highlighter-rouge">timeout</code> on <code class="language-plaintext 
highlighter-rouge">Thrift::Socket</code> and
+<code class="language-plaintext highlighter-rouge">Thrift::SSLSocket</code> as 
one budget for the whole open path. For
+<code class="language-plaintext highlighter-rouge">Thrift::SSLSocket</code>, 
that includes both the TCP connect and the TLS
+handshake.</li>
+  <li>If you upgrade to <code class="language-plaintext 
highlighter-rouge">0.24.0</code>, handle connect/open timeout expiry as
+<code class="language-plaintext 
highlighter-rouge">Thrift::TransportException::TIMED_OUT</code> instead of 
<code class="language-plaintext highlighter-rouge">NOT_OPEN</code>.</li>
   <li>If you upgrade across the stricter reply-validation changes, regenerate 
all
 Ruby stubs and deploy them with the matching Ruby runtime. Do not mix old
 generated code, new generated code, and new runtime code on the same client

Reply via email to