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