#1095467 ruby3.3: ruby has too many valgrind errors which makes debugging ruby libraries difficult

Package:
ruby3.3
Source:
ruby3.3
Description:
Interpreter of object-oriented scripting language Ruby
Submitter:
Russell Coker
Date:
2025-02-08 08:57:02 UTC
Severity:
normal
#1095467#5
Date:
2025-02-08 08:52:37 UTC
From:
To:
echo "" | valgrind ruby

I ran the above command to get valgrind output on ruby doing nothing.  It gave
the following as prt of it's output.  I expect to see significantly fewer than
100,000 errors on a run of a program with no actual work to do.

==86478== Conditional jump or move depends on uninitialised value(s)
==86478==    at 0x4A9B21A: ??? (in /usr/lib/x86_64-linux-gnu/libruby-3.3.so.3.3.7)
==86478==    by 0x4A9D7BE: rb_sym_to_s (in /usr/lib/x86_64-linux-gnu/libruby-3.3.so.3.3.7)
==86478==    by 0x4B0C97B: ??? (in /usr/lib/x86_64-linux-gnu/libruby-3.3.so.3.3.7)
==86478==    by 0x4B0F752: ??? (in /usr/lib/x86_64-linux-gnu/libruby-3.3.so.3.3.7)
==86478==    by 0x4B10858: rb_funcall_with_block_kw (in /usr/lib/x86_64-linux-gnu/libruby-3.3.so.3.3.7)
==86478==    by 0x4B0C1F7: rb_yield (in /usr/lib/x86_64-linux-gnu/libruby-3.3.so.3.3.7)
==86478==    by 0x4957D67: ??? (in /usr/lib/x86_64-linux-gnu/libruby-3.3.so.3.3.7)
==86478==    by 0x4AFE125: ??? (in /usr/lib/x86_64-linux-gnu/libruby-3.3.so.3.3.7)
==86478==    by 0x4B0C1F7: rb_yield (in /usr/lib/x86_64-linux-gnu/libruby-3.3.so.3.3.7)
==86478==    by 0x48D193B: rb_ary_each (in /usr/lib/x86_64-linux-gnu/libruby-3.3.so.3.3.7)
==86478==    by 0x4B0C97B: ??? (in /usr/lib/x86_64-linux-gnu/libruby-3.3.so.3.3.7)
==86478==    by 0x4B0F752: ??? (in /usr/lib/x86_64-linux-gnu/libruby-3.3.so.3.3.7)
==86478==
==86478== Conditional jump or move depends on uninitialised value(s)
==86478==    at 0x4A9D7D0: rb_sym_to_s (in /usr/lib/x86_64-linux-gnu/libruby-3.3.so.3.3.7)
==86478==    by 0x4B0C97B: ??? (in /usr/lib/x86_64-linux-gnu/libruby-3.3.so.3.3.7)
==86478==    by 0x4B0F752: ??? (in /usr/lib/x86_64-linux-gnu/libruby-3.3.so.3.3.7)
==86478==    by 0x4B10858: rb_funcall_with_block_kw (in /usr/lib/x86_64-linux-gnu/libruby-3.3.so.3.3.7)
==86478==    by 0x4B0C1F7: rb_yield (in /usr/lib/x86_64-linux-gnu/libruby-3.3.so.3.3.7)
==86478==    by 0x4957D67: ??? (in /usr/lib/x86_64-linux-gnu/libruby-3.3.so.3.3.7)
==86478==    by 0x4AFE125: ??? (in /usr/lib/x86_64-linux-gnu/libruby-3.3.so.3.3.7)
==86478==    by 0x4B0C1F7: rb_yield (in /usr/lib/x86_64-linux-gnu/libruby-3.3.so.3.3.7)
==86478==    by 0x48D193B: rb_ary_each (in /usr/lib/x86_64-linux-gnu/libruby-3.3.so.3.3.7)
==86478==    by 0x4B0C97B: ??? (in /usr/lib/x86_64-linux-gnu/libruby-3.3.so.3.3.7)
==86478==    by 0x4B0F752: ??? (in /usr/lib/x86_64-linux-gnu/libruby-3.3.so.3.3.7)
==86478==    by 0x4B108C1: ??? (in /usr/lib/x86_64-linux-gnu/libruby-3.3.so.3.3.7)
==86478==
==86478==
==86478== More than 1000 different errors detected.  I'm not reporting any more.
==86478== Final error counts will be inaccurate.  Go fix your program!
==86478== Rerun with --error-limit=no to disable this cutoff.  Note
==86478== that errors may occur in your program without prior warning from
==86478== Valgrind, because errors are no longer being displayed.
==86478==
==86478==
==86478== HEAP SUMMARY:
==86478==     in use at exit: 3,162,383 bytes in 18,810 blocks
==86478==   total heap usage: 59,898 allocs, 41,088 frees, 37,625,107 bytes allocated
==86478==
==86478== LEAK SUMMARY:
==86478==    definitely lost: 799,384 bytes in 6,291 blocks
==86478==    indirectly lost: 988,865 bytes in 11,588 blocks
==86478==      possibly lost: 4,488 bytes in 30 blocks
==86478==    still reachable: 1,369,646 bytes in 901 blocks
==86478==         suppressed: 0 bytes in 0 blocks
==86478== Rerun with --leak-check=full to see details of leaked memory
==86478==
==86478== Use --track-origins=yes to see where uninitialised values come from
==86478== For lists of detected and suppressed errors, rerun with: -s
==86478== ERROR SUMMARY: 106476 errors from 1000 contexts (suppressed: 0 from 0)