<feed xmlns='http://www.w3.org/2005/Atom'>
<title>ruby.git/misc/tsan_suppressions.txt, branch v4.0.2</title>
<subtitle>The Ruby Programming Language</subtitle>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/'/>
<entry>
<title>Disable TSAN for rb_gc_mark_machine_context</title>
<updated>2025-07-24T23:35:42+00:00</updated>
<author>
<name>John Hawthorn</name>
<email>john@hawthorn.email</email>
</author>
<published>2025-07-18T23:06:17+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=7f25b8f5fb95e547353c3cbf426bb39ec9150fe2'/>
<id>7f25b8f5fb95e547353c3cbf426bb39ec9150fe2</id>
<content type='text'>
Previously this was listed as a suppression, but we actually want this
permanently unsanitized. This should be faster and more reliable since
TASN won't have to match against symbolicated backtraces.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Previously this was listed as a suppression, but we actually want this
permanently unsanitized. This should be faster and more reliable since
TASN won't have to match against symbolicated backtraces.
</pre>
</div>
</content>
</entry>
<entry>
<title>Extract vm_locked_by_ractor_p</title>
<updated>2025-07-24T23:35:20+00:00</updated>
<author>
<name>John Hawthorn</name>
<email>john@hawthorn.email</email>
</author>
<published>2025-07-23T21:24:59+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=3ad2019259015080ab7fdadaa6f4ae818229bcd1'/>
<id>3ad2019259015080ab7fdadaa6f4ae818229bcd1</id>
<content type='text'>
This introduces a new method to encapsulate checking whether the current
Ractor owns the vm-&gt;ractor.sync lock. This allows us to disable TSan on
it since that operation should be safe, and still get validation of
other uses.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This introduces a new method to encapsulate checking whether the current
Ractor owns the vm-&gt;ractor.sync lock. This allows us to disable TSan on
it since that operation should be safe, and still get validation of
other uses.
</pre>
</div>
</content>
</entry>
<entry>
<title>Update misc/tsan_suppressions.txt</title>
<updated>2025-07-22T16:37:13+00:00</updated>
<author>
<name>John Hawthorn</name>
<email>john@hawthorn.email</email>
</author>
<published>2025-07-18T21:51:20+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=41ec0f5b978cba26deb7c099f580cf02ecbde42e'/>
<id>41ec0f5b978cba26deb7c099f580cf02ecbde42e</id>
<content type='text'>
* Add gc_enable/disable to TSAN suppressions
* Remove deleted methods from tsan suppressions
* Remove TSAN errors we've fixed
* Add another two inline cache suppressions
* Improve comments
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* Add gc_enable/disable to TSAN suppressions
* Remove deleted methods from tsan suppressions
* Remove TSAN errors we've fixed
* Add another two inline cache suppressions
* Improve comments
</pre>
</div>
</content>
</entry>
<entry>
<title>Supress a few more tsan errors</title>
<updated>2025-06-12T01:11:36+00:00</updated>
<author>
<name>John Hawthorn</name>
<email>john@hawthorn.email</email>
</author>
<published>2025-06-05T03:00:43+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=7854b71e7f94eb4484c5ad72f5b6e3d0839fc24b'/>
<id>7854b71e7f94eb4484c5ad72f5b6e3d0839fc24b</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Add two more TSan suppressions</title>
<updated>2025-05-20T16:56:31+00:00</updated>
<author>
<name>John Hawthorn</name>
<email>john@hawthorn.email</email>
</author>
<published>2025-05-15T04:40:16+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=84bfcaa80dcbc05b79a386d444d7ed353768ef6d'/>
<id>84bfcaa80dcbc05b79a386d444d7ed353768ef6d</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Use atomic load for signal buff size</title>
<updated>2025-05-20T16:56:31+00:00</updated>
<author>
<name>John Hawthorn</name>
<email>john@hawthorn.email</email>
</author>
<published>2025-05-15T02:59:03+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=e7f97eb2f3539ec49c61e4adbfaa7600256ef234'/>
<id>e7f97eb2f3539ec49c61e4adbfaa7600256ef234</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Use atomic load to read interrupt mask</title>
<updated>2025-05-20T16:56:31+00:00</updated>
<author>
<name>John Hawthorn</name>
<email>john@hawthorn.email</email>
</author>
<published>2025-05-15T01:28:53+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=05e0e7223acbc9ab223dd8f4b342d5eb6d3ae8c7'/>
<id>05e0e7223acbc9ab223dd8f4b342d5eb6d3ae8c7</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Use atomics for system_working global</title>
<updated>2025-05-15T22:18:10+00:00</updated>
<author>
<name>John Hawthorn</name>
<email>john@hawthorn.email</email>
</author>
<published>2025-05-14T05:36:09+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=d67d169aeae8b05f8b06f4829de6d5f14059cfea'/>
<id>d67d169aeae8b05f8b06f4829de6d5f14059cfea</id>
<content type='text'>
Although it almost certainly works in this case, volatile is best not
used for multi-threaded code. Using atomics instead avoids warnings from
TSan.

This also simplifies some logic, as system_working was previously only
ever assigned to 1, so --system_working &lt;= 0 should always return true
(unless it underflowed).
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Although it almost certainly works in this case, volatile is best not
used for multi-threaded code. Using atomics instead avoids warnings from
TSan.

This also simplifies some logic, as system_working was previously only
ever assigned to 1, so --system_working &lt;= 0 should always return true
(unless it underflowed).
</pre>
</div>
</content>
</entry>
<entry>
<title>Add misc/tsan_suppressions.txt</title>
<updated>2025-05-14T03:09:30+00:00</updated>
<author>
<name>John Hawthorn</name>
<email>john@hawthorn.email</email>
</author>
<published>2025-05-13T22:39:39+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=86f5cec7828a49926e49783a545e9d2b2b1e2415'/>
<id>86f5cec7828a49926e49783a545e9d2b2b1e2415</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
</feed>
