From: 908709778@...
Date: 2021-02-09T13:05:03+00:00
Subject: [ruby-core:102424] [Ruby master Bug#17612] ractor crash with some	simple codes

Issue #17612 has been updated by tomanderson (Thomas Ender).


@ko1 Here is my error log when running your simpler code:

irb(main):036:0> 2.times.map{ Ractor.new{ loop{ rand.to_s } } }.each(&:take)
<internal:ractor>:267: warning: Ractor is experimental, and the behavior may change in future versions of Ruby! Also there are many implementation issues.
*** Error in `irb': free(): invalid next size (fast): 0x00007f69a0001490 ***
======= Backtrace: =========
/lib/x86_64-linux-gnu/libc.so.6(+0x777f5)[0x7f69aaea37f5]
/lib/x86_64-linux-gnu/libc.so.6(+0x8038a)[0x7f69aaeac38a]
/lib/x86_64-linux-gnu/libc.so.6(cfree+0x4c)[0x7f69aaeb058c]
/home/thomas/.rbenv/versions/3.0.0/lib/libruby.so.3.0(ruby_sized_xfree+0x41)[0x7f69ab2df621]
/home/thomas/.rbenv/versions/3.0.0/lib/libruby.so.3.0(+0x165c2a)[0x7f69ab35bc2a]
/home/thomas/.rbenv/versions/3.0.0/lib/libruby.so.3.0(+0x28457e)[0x7f69ab47a57e]
/home/thomas/.rbenv/versions/3.0.0/lib/libruby.so.3.0(+0x28886c)[0x7f69ab47e86c]
/home/thomas/.rbenv/versions/3.0.0/lib/libruby.so.3.0(+0x29008e)[0x7f69ab48608e]
/home/thomas/.rbenv/versions/3.0.0/lib/libruby.so.3.0(rb_vm_exec+0xc8)[0x7f69ab48bc38]
/home/thomas/.rbenv/versions/3.0.0/lib/libruby.so.3.0(+0x2a0cc7)[0x7f69ab496cc7]
/home/thomas/.rbenv/versions/3.0.0/lib/libruby.so.3.0(rb_vrescue2+0x10a)[0x7f69ab2c561a]
/home/thomas/.rbenv/versions/3.0.0/lib/libruby.so.3.0(rb_rescue2+0x8a)[0x7f69ab2c589a]
/home/thomas/.rbenv/versions/3.0.0/lib/libruby.so.3.0(+0x28457e)[0x7f69ab47a57e]
/home/thomas/.rbenv/versions/3.0.0/lib/libruby.so.3.0(+0x298d31)[0x7f69ab48ed31]
/home/thomas/.rbenv/versions/3.0.0/lib/libruby.so.3.0(+0x2993b3)[0x7f69ab48f3b3]
/home/thomas/.rbenv/versions/3.0.0/lib/libruby.so.3.0(+0x28886c)[0x7f69ab47e86c]
/home/thomas/.rbenv/versions/3.0.0/lib/libruby.so.3.0(+0x290a5a)[0x7f69ab486a5a]
/home/thomas/.rbenv/versions/3.0.0/lib/libruby.so.3.0(rb_vm_exec+0xc8)[0x7f69ab48bc38]
/home/thomas/.rbenv/versions/3.0.0/lib/libruby.so.3.0(+0x24f735)[0x7f69ab445735]
/home/thomas/.rbenv/versions/3.0.0/lib/libruby.so.3.0(+0x2516f4)[0x7f69ab4476f4]
/home/thomas/.rbenv/versions/3.0.0/lib/libruby.so.3.0(+0x251a26)[0x7f69ab447a26]
/lib/x86_64-linux-gnu/libpthread.so.0(+0x76ba)[0x7f69aa9fc6ba]
/lib/x86_64-linux-gnu/libc.so.6(clone+0x6d)[0x7f69aaf334dd]
======= Memory map: ========
00400000-00401000 r-xp 00000000 08:01 6563405                            /home/thomas/.rbenv/versions/3.0.0/bin/ruby
00600000-00601000 r--p 00000000 08:01 6563405                            /home/thomas/.rbenv/versions/3.0.0/bin/ruby
00601000-00602000 rw-p 00001000 08:01 6563405                            /home/thomas/.rbenv/versions/3.0.0/bin/ruby
023d4000-02e21000 rw-p 00000000 00:00 0                                  [heap]
7f6998000000-7f6998021000 rw-p 00000000 00:00 0 
7f6998021000-7f699c000000 ---p 00000000 00:00 0 
7f699c000000-7f699c021000 rw-p 00000000 00:00 0 
7f699c021000-7f69a0000000 ---p 00000000 00:00 0 
7f69a0000000-7f69a0021000 rw-p 00000000 00:00 0 
7f69a0021000-7f69a4000000 ---p 00000000 00:00 0 
7f69a5563000-7f69a557a000 r-xp 00000000 08:01 11141258                   /lib/x86_64-linux-gnu/libgcc_s.so.1
7f69a557a000-7f69a5779000 ---p 00017000 08:01 11141258                   /lib/x86_64-linux-gnu/libgcc_s.so.1
7f69a5779000-7f69a577a000 r--p 00016000 08:01 11141258                   /lib/x86_64-linux-gnu/libgcc_s.so.1
7f69a577a000-7f69a577b000 rw-p 00017000 08:01 11141258                   /lib/x86_64-linux-gnu/libgcc_s.so.1
7f69a577b000-7f69a577c000 ---p 00000000 00:00 0 
7f69a577c000-7f69a597c000 rw-p 00000000 00:00 0 
7f69a597c000-7f69a597d000 ---p 00000000 00:00 0 
7f69a597d000-7f69a5b7d000 rw-p 00000000 00:00 0 
7f69a5b7d000-7f69a5b83000 r-xp 00000000 08:01 6573663                    /home/thomas/.rbenv/versions/3.0.0/lib/ruby/3.0.0/x86_64-linux/etc.so
7f69a5b83000-7f69a5d82000 ---p 00006000 08:01 6573663                    /home/thomas/.rbenv/versions/3.0.0/lib/ruby/3.0.0/x86_64-linux/etc.so
7f69a5d82000-7f69a5d83000 r--p 00005000 08:01 6573663                    /home/thomas/.rbenv/versions/3.0.0/lib/ruby/3.0.0/x86_64-linux/etc.so
7f69a5d83000-7f69a5d84000 rw-p 00006000 08:01 6573663                    /home/thomas/.rbenv/versions/3.0.0/lib/ruby/3.0.0/x86_64-linux/etc.so
7f69a5d84000-7f69a5d8b000 r-xp 00000000 08:01 6573529                    /home/thomas/.rbenv/versions/3.0.0/lib/ruby/3.0.0/x86_64-linux/io/console.so
7f69a5d8b000-7f69a5f8a000 ---p 00007000 08:01 6573529                    /home/thomas/.rbenv/versions/3.0.0/lib/ruby/3.0.0/x86_64-linux/io/console.so
7f69a5f8a000-7f69a5f8b000 r--p 00006000 08:01 6573529                    /home/thomas/.rbenv/versions/3.0.0/lib/ruby/3.0.0/x86_64-linux/io/console.so
7f69a5f8b000-7f69a5f8c000 rw-p 00007000 08:01 6573529                    /home/thomas/.rbenv/versions/3.0.0/lib/ruby/3.0.0/x86_64-linux/io/console.so
7f69a5f8c000-7f69a5fc7000 r-xp 00000000 08:01 6573566                    /home/thomas/.rbenv/versions/3.0.0/lib/ruby/3.0.0/x86_64-linux/ripper.so
7f69a5fc7000-7f69a61c7000 ---p 0003b000 08:01 6573566                    /home/thomas/.rbenv/versions/3.0.0/lib/ruby/3.0.0/x86_64-linux/ripper.so
7f69a61c7000-7f69a61c9000 r--p 0003b000 08:01 6573566                    /home/thomas/.rbenv/versions/3.0.0/lib/ruby/3.0.0/x86_64-linux/ripper.so
7f69a61c9000-7f69a61ca000 rw-p 0003d000 08:01 6573566                    /home/thomas/.rbenv/versions/3.0.0/lib/ruby/3.0.0/x86_64-linux/ripper.so
7f69a61ca000-7f69a61cc000 r-xp 00000000 08:01 6573544                    /home/thomas/.rbenv/versions/3.0.0/lib/ruby/3.0.0/x86_64-linux/monitor.so
7f69a61cc000-7f69a63cb000 ---p 00002000 08:01 6573544                    /home/thomas/.rbenv/versions/3.0.0/lib/ruby/3.0.0/x86_64-linux/monitor.so
7f69a63cb000-7f69a63cc000 r--p 00001000 08:01 6573544                    /home/thomas/.rbenv/versions/3.0.0/lib/ruby/3.0.0/x86_64-linux/monitor.so
7f69a63cc000-7f69a63cd000 rw-p 00002000 08:01 6573544                    /home/thomas/.rbenv/versions/3.0.0/lib/ruby/3.0.0/x86_64-linux/monitor.so
7f69a63cd000-7f69a63d0000 r-xp 00000000 08:01 6573635                    /home/thomas/.rbenv/versions/3.0.0/lib/ruby/3.0.0/x86_64-linux/enc/trans/transdb.so
7f69a63d0000-7f69a65cf000 ---p 00003000 08:01 6573635                    /home/thomas/.rbenv/versions/3.0.0/lib/ruby/3.0.0/x86_64-linux/enc/trans/transdb.so
7f69a65cf000-7f69a65d0000 r--p 00002000 08:01 6573635                    /home/thomas/.rbenv/versions/3.0.0/lib/ruby/3.0.0/x86_64-linux/enc/trans/transdb.so
7f69a65d0000-7f69a65d1000 rw-p 00003000 08:01 6573635                    /home/thomas/.rbenv/versions/3.0.0/lib/ruby/3.0.0/x86_64-linux/enc/trans/transdb.so
7f69a65d1000-7f69a65d3000 r-xp 00000000 08:01 6573589                    /home/thomas/.rbenv/versions/3.0.0/lib/ruby/3.0.0/x86_64-linux/enc/encdb.so
7f69a65d3000-7f69a67d2000 ---p 00002000 08:01 6573589                    /home/thomas/.rbenv/versions/3.0.0/lib/ruby/3.0.0/x86_64-linux/enc/encdb.so
7f69a67d2000-7f69a67d3000 r--p 00001000 08:01 6573589                    /home/thomas/.rbenv/versions/3.0.0/lib/ruby/3.0.0/x86_64-linux/enc/encdb.so
7f69a67d3000-7f69a67d4000 rw-p 00002000 08:01 6573589                    /home/thomas/.rbenv/versions/3.0.0/lib/ruby/3.0.0/x86_64-linux/enc/encdb.so
7f69a67d4000-7f69a67d5000 ---p 00000000 00:00 0 
7f69a67d5000-7f69a6876000 rw-p 00000000 00:00 0 
7f69a6876000-7f69a6877000 ---p 00000000 00:00 0 
7f69a6877000-7f69a6918000 rw-p 00000000 00:00 0 
7f69a6918000-7f69a6919000 ---p 00000000 00:00 0 
7f69a6919000-7f69a69ba000 rw-p 00000000 00:00 0 
7f69a69ba000-7f69a69bb000 ---p 00000000 00:00 0 
7f69a69bb000-7f69a6a5c000 rw-p 00000000 00:00 0 
7f69a6a5c000-7f69a6a5d000 ---p 00000000 00:00 0 
7f69a6a5d000-7f69a6afe000 rw-p 00000000 00:00 0 
7f69a6afe000-7f69a6aff000 ---p 00000000 00:00 0 
7f69a6aff000-7f69a6ba0000 rw-p 00000000 00:00 0 
7f69a6ba0000-7f69a6ba1000 ---p 00000000 00:00 0 
7f69a6ba1000-7f69a6c42000 rw-p 00000000 00:00 0 
7f69a6c42000-7f69a6c43000 ---p 00000000 00:00 0 
7f69a6c43000-7f69a6ce4000 rw-p 00000000 00:00 0 
7f69a6ce4000-7f69a6ce5000 ---p 00000000 00:00 0 
7f69a6ce5000-7f69a6d86000 rw-p 00000000 00:00 0 
7f69a6d86000-7f69a6d87000 ---p 00000000 00:00 0 
7f69a6d87000-7f69a6e28000 rw-p 00000000 00:00 0 
7f69a6e28000-7f69a6e29000 ---p 00000000 00:00 0 
7f69a6e29000-7f69a6eca000 rw-p 00000000 00:00 0 
7f69a6eca000-7f69a6ecb000 ---p 00000000 00:00 0 
7f69a6ecb000-7f69a6f6c000 rw-p 00000000 00:00 0 
7f69a6f6c000-7f69a6f6d000 ---p 00000000 00:00 0 
7f69a6f6d000-7f69a700e000 rw-p 00000000 00:00 0 
7f69a700e000-7f69a700f000 ---p 00000000 00:00 0 
7f69a700f000-7f69a70b0000 rw-p 00000000 00:00 0 
7f69a70b0000-7f69a70b1000 ---p 00000000 00:00 0 
7f69a70b1000-7f69a7152000 rw-p 00000000 00:00 0 
7f69a7152000-7f69a7153000 ---p 00000000 00:00 0 
7f69a7153000-7f69a71f4000 rw-p 00000000 00:00 0 
7f69a71f4000-7f69a71f5000 ---p 00000000 00:00 0 
7f69a71f5000-7f69a7296000 rw-p 00000000 00:00 0 
7f69a7296000-7f69a7297000 ---p 00000000 00:00 0 
7f69a7297000-7f69a7338000 rw-p 00000000 00:00 0 
7f69a7338000-7f69a7339000 ---p 00000000 00:00 0 
7f69a7339000-7f69a73da000 rw-p 00000000 00:00 0 
7f69a73da000-7f69a73db000 ---p 00000000 00:00 0 
7f69a73db000-7f69a747c000 rw-p 00000000 00:00 0 
7f69a747c000-7f69a747d000 ---p 00000000 00:00 0 
7f69a747d000-7f69a751e000 rw-p 00000000 00:00 0 
7f69a751e000-7f69a751f000 ---p 00000000 00:00 0 
7f69a751f000-7f69a75c0000 rw-p 00000000 00:00 0 
7f69a75c0000-7f69a75c1000 ---p 00000000 00:00 0 
7f69a75c1000-7f69a7662000 rw-p 00000000 00:00 0 
7f69a7662000-7f69a7663000 ---p 00000000 00:00 0 
7f69a7663000-7f69a7704000 rw-p 00000000 00:00 0 
7f69a7704000-7f69a7705000 ---p 00000000 00:00 0 
7f69a7705000-7f69a77a6000 rw-p 00000000 00:00 0 
7f69a77a6000-7f69a77a7000 ---p 00000000 00:00 0 
7f69a77a7000-7f69a7848000 rw-p 00000000 00:00 0 
7f69a7848000-7f69a7849000 ---p 00000000 00:00 0 
7f69a7849000-7f69a78ea000 rw-p 00000000 00:00 0 
7f69a78ea000-7f69a78eb000 ---p 00000000 00:00 0 
7f69a78eb000-7f69a798c000 rw-p 00000000 00:00 0 
7f69a798c000-7f69a798d000 ---p 00000000 00:00 0 
7f69a798d000-7f69a7a2e000 rw-p 00000000 00:00 0 
7f69a7a2e000-7f69a7a2f000 ---p 00000000 00:00 0 
7f69a7a2f000-7f69a7ad0000 rw-p 00000000 00:00 0 
7f69a7ad0000-7f69a7ad1000 ---p 00000000 00:00 0 
7f69a7ad1000-7f69a7b72000 rw-p 00000000 00:00 0 
7f69a7b72000-7f69a7b73000 ---p 00000000 00:00 0 
7f69a7b73000-7f69a9c1d000 rw-p 00000000 00:00 0 
7f69a9c1d000-7f69aa0a8000 r--p 00000000 08:01 5374958                    /usr/lib/locale/locale-archive
7f69aa0a8000-7f69aa1b0000 r-xp 00000000 08:01 11152156                   /lib/x86_64-linux-gnu/libm-2.23.so
7f69aa1b0000-7f69aa3af000 ---p 00108000 08:01 11152156                   /lib/x86_64-linux-gnu/libm-2.23.so
7f69aa3af000-7f69aa3b0000 r--p 00107000 08:01 11152156                   /lib/x86_64-linux-gnu/libm-2.23.so
7f69aa3b0000-7f69aa3b1000 rw-p 00108000 08:01 11152156                   /lib/x86_64-linux-gnu/libm-2.23.so
7f69aa3b1000-7f69aa3ba000 r-xp 00000000 08:01 11152158                   /lib/x86_64-linux-gnu/libcrypt-2.23.so
7f69aa3ba000-7f69aa5b9000 ---p 00009000 08:01 11152158                   /lib/x86_64-linux-gnu/libcrypt-2.23.so
7f69aa5b9000-7f69aa5ba000 r--p 00008000 08:01 11152158                   /lib/x86_64-linux-gnu/libcrypt-2.23.so
7f69aa5ba000-7f69aa5bb000 rw-p 00009000 08:01 11152158                   /lib/x86_64-linux-gnu/libcrypt-2.23.so
7f69aa5bb000-7f69aa5e9000 rw-p 00000000 00:00 0 
7f69aa5e9000-7f69aa5ec000 r-xp 00000000 08:01 11142968                   /lib/x86_64-linux-gnu/libdl-2.23.so
7f69aa5ec000-7f69aa7eb000 ---p 00003000 08:01 11142968                   /lib/x86_64-linux-gnu/libdl-2.23.so
7f69aa7eb000-7f69aa7ec000 r--p 00002000 08:01 11142968                   /lib/x86_64-linux-gnu/libdl-2.23.so
7f69aa7ec000-7f69aa7ed000 rw-p 00003000 08:01 11142968                   /lib/x86_64-linux-gnu/libdl-2.23.so
7f69aa7ed000-7f69aa7f4000 r-xp 00000000 08:01 11152172                   /lib/x86_64-linux-gnu/librt-2.23.so
7f69aa7f4000-7f69aa9f3000 ---p 00007000 08:01 11152172                   /lib/x86_64-linux-gnu/librt-2.23.so
7f69aa9f3000-7f69aa9f4000 r--p 00006000 08:01 11152172                   /lib/x86_64-linux-gnu/librt-2.23.so
7f69aa9f4000-7f69aa9f5000 rw-p 00007000 08:01 11152172                   /lib/x86_64-linux-gnu/librt-2.23.so
7f69aa9f5000-7f69aaa0d000 r-xp 00000000 08:01 11152153                   /lib/x86_64-linux-gnu/libpthread-2.23.so
7f69aaa0d000-7f69aac0c000 ---p 00018000 08:01 11152153                   /lib/x86_64-linux-gnu/libpthread-2.23.so
7f69aac0c000-7f69aac0d000 r--p 00017000 08:01 11152153                   /lib/x86_64-linux-gnu/libpthread-2.23.so
7f69aac0d000-7f69aac0e000 rw-p 00018000 08:01 11152153                   /lib/x86_64-linux-gnu/libpthread-2.23.so
7f69aac0e000-7f69aac12000 rw-p 00000000 00:00 0 
7f69aac12000-7f69aac2b000 r-xp 00000000 08:01 11143060                   /lib/x86_64-linux-gnu/libz.so.1.2.8
7f69aac2b000-7f69aae2a000 ---p 00019000 08:01 11143060                   /lib/x86_64-linux-gnu/libz.so.1.2.8
7f69aae2a000-7f69aae2b000 r--p 00018000 08:01 11143060                   /lib/x86_64-linux-gnu/libz.so.1.2.8
7f69aae2b000-7f69aae2c000 rw-p 00019000 08:01 11143060                   /lib/x86_64-linux-gnu/libz.so.1.2.8
7f69aae2c000-7f69aafec000 r-xp 00000000 08:01 11152152                   /lib/x86_64-linux-gnu/libc-2.23.so
7f69aafec000-7f69ab1ec000 ---p 001c0000 08:01 11152152                   /lib/x86_64-linux-gnu/libc-2.23.so
7f69ab1ec000-7f69ab1f0000 r--p 001c0000 08:01 11152152                   /lib/x86_64-linux-gnu/libc-2.23.so
7f69ab1f0000-7f69ab1f2000 rw-p 001c4000 08:01 11152152                   /lib/x86_64-linux-gnu/libc-2.23.so
7f69ab1f2000-7f69ab1f6000 rw-p 00000000 00:00 0 
7f69ab1f6000-7f69ab5b1000 r-xp 00000000 08:01 6563406                    /home/thomas/.rbenv/versions/3.0.0/lib/libruby.so.3.0.0
7f69ab5b1000-7f69ab7b0000 ---p 003bb000 08:01 6563406                    /home/thomas/.rbenv/versions/3.0.0/lib/libruby.so.3.0.0
7f69ab7b0000-7f69ab7b7000 r--p 003ba000 08:01 6563406                    /home/thomas/.rbenv/versions/3.0.0/lib/libruby.so.3.0.0
7f69ab7b7000-7f69ab7ba000 rw-p 003c1000 08:01 6563406                    /home/thomas/.rbenv/versions/3.0.0/lib/libruby.so.3.0.0
7f69ab7ba000-7f69ab7cb000 rw-p 00000000 00:00 0 
7f69ab7cb000-7f69ab7f1000 r-xp 00000000 08:01 11152163                   /lib/x86_64-linux-gnu/ld-2.23.so
7f69ab865000-7f69ab9cc000 rw-p 00000000 00:00 0 
7f69ab9e7000-7f69ab9e8000 rw-p 00000000 00:00 0 
7f69ab9e8000-7f69ab9ef000 r--s 00000000 08:01 5508188                    /usr/lib/x86_64-linux-gnu/gconv/gconv-modules.cache
7f69ab9ef000-7f69ab9f0000 rw-p 00000000 00:00 0 
7f69ab9f0000-7f69ab9f1000 r--p 00025000 08:01 11152163                   /lib/x86_64-linux-gnu/ld-2.23.so
7f69ab9f1000-7f69ab9f2000 rw-p 00026000 08:01 11152163                   /lib/x86_64-linux-gnu/ld-2.23.so
7f69ab9f2000-7f69ab9f3000 rw-p 00000000 00:00 0 
7ffdf24f5000-7ffdf2cf4000 rw-p 00000000 00:00 0                          [stack]
7ffdf2d9e000-7ffdf2da1000 r--p 00000000 00:00 0                          [vvar]
7ffdf2da1000-7ffdf2da3000 r-xp 00000000 00:00 0                          [vdso]
ffffffffff600000-ffffffffff601000 r-xp 00000000 00:00 0                  [vsyscall]

And here's for my original example:

*** Error in `ruby': free(): invalid next size (fast): 0x00007fb9e40032a0 ***
======= Backtrace: =========
/lib/x86_64-linux-gnu/libc.so.6(+0x777f5)[0x7fb9ff9847f5]
/lib/x86_64-linux-gnu/libc.so.6(+0x8038a)[0x7fb9ff98d38a]
/lib/x86_64-linux-gnu/libc.so.6(cfree+0x4c)[0x7fb9ff99158c]
/home/thomas/.rbenv/versions/3.0.0/lib/libruby.so.3.0(ruby_sized_xfree+0x41)[0x7fb9ffdc0621]
/home/thomas/.rbenv/versions/3.0.0/lib/libruby.so.3.0(+0x165c2a)[0x7fb9ffe3cc2a]
/home/thomas/.rbenv/versions/3.0.0/lib/libruby.so.3.0(+0x28457e)[0x7fb9fff5b57e]
/home/thomas/.rbenv/versions/3.0.0/lib/libruby.so.3.0(+0x28886c)[0x7fb9fff5f86c]
/home/thomas/.rbenv/versions/3.0.0/lib/libruby.so.3.0(+0x29008e)[0x7fb9fff6708e]
*** Error in `ruby': free(): invalid next size (fast): 0x00007fb9f00032a0 ***
======= Backtrace: =========
/lib/x86_64-linux-gnu/libc.so.6(+0x777f5/home/thomas/.rbenv/versions/3.0.0/lib/libruby.so.3.0/lib/x86_64-linux-gnu/libc.so.6(+0x8038a)[0x7fb9ff98d38a]
/lib/x86_64-linux-gnu/libc.so.6(cfree+0x4c)[0x7fb9ff99158c]
/home/thomas/.rbenv/versions/3.0.0/lib/libruby.so.3.0(ruby_sized_xfree+0x41)[0x7fb9ffdc0621]
(rb_vm_exec/home/thomas/.rbenv/versions/3.0.0/lib/libruby.so.3.0(+0x165c2a)[0x7fb9ffe3cc2a]
+0x/home/thomas/.rbenv/versions/3.0.0/lib/libruby.so.3.0(+0x28457e)[0x7fb9fff5b57e]
/home/thomas/.rbenv/versions/3.0.0/lib/libruby.so.3.0/home/thomas/.rbenv/versions/3.0.0/lib/libruby.so.3.0(+0x28886c)[0x7fb9fff5f86c]
/home/thomas/.rbenv/versions/3.0.0/lib/libruby.so.3.0(+0x29008e)[0x7fb9fff6708e]
/home/thomas/.rbenv/versions/3.0.0/lib/libruby.so.3.0(rb_vm_exec+0xc8)[0x7fb9fff6cc38]
/home/thomas/.rbenv/versions/3.0.0/lib/libruby.so.3.0(rb_yield+0x18e)[0x7fb9fff6f06e]
/home/thomas/.rbenv/versions/3.0.0/lib/libruby.so.3.0(+0x4017f)[0x7fb9ffd1717f]
/home/thomas/.rbenv/versions/3.0.0/lib/libruby.so.3.0(+0x28457e)[0x7fb9fff5b57e]
/home/thomas/.rbenv/versions/3.0.0/lib/libruby.so.3.0(+0x28886c)[0x7fb9fff5f86c]
/home/thomas/.rbenv/versions/3.0.0/lib/libruby.so.3.0(+0x290a5a)[0x7fb9fff67a5a]
/home/thomas/.rbenv/versions/3.0.0/lib/libruby.so.3.0(rb_vm_exec+0xc8)[0x7fb9fff6cc38]
/home/thomas/.rbenv/versions/3.0.0/lib/libruby.so.3.0(+0x24f735)[0x7fb9fff26735]
/home/thomas/.rbenv/versions/3.0.0/lib/libruby.so.3.0(+0x2516f4)[0x7fb9fff286f4]
/home/thomas/.rbenv/versions/3.0.0/lib/libruby.so.3.0(+0x251a26)[0x7fb9fff28a26]
/lib/x86_64-linux-gnu/libpthread.so.0(+0x76ba)[0x7fb9ff4dd6ba]
/home/thomas/.rbenv/versions/3.0.0/lib/libruby.so.3.0(+0x4017f)[0x7fb9ffd1717f]
/lib/x86_64-linux-gnu/libc.so.6(clone+0x6d)[0x7fb9ffa144dd]
======= Memory map: ========
/home/thomas/.rbenv/versions/3.0.0/lib/libruby.so.3.0(+0x28457e00400000-00401000 r-xp 00000000 08:01 6563405                            /home/thomas/.rbenv/versions/3.0.0/bin/ruby
00600000-00601000 r--p 00000000 08:01 6563405                            /home/thomas/.rbenv/versions/3.0.0/bin/ruby
00601000-00602000 rw-p 00001000 08:01 6563405                            /home/thomas/.rbenv/versions/3.0.0/bin/ruby
02471000-02808000 rw-p 00000000 00:00 0                                  [heap]
7fb9e4000000-7fb9e4021000 rw-p 00000000 00:00 0 
7fb9e4021000-7fb9e8000000 ---p 00000000 00:00 0 
7fb9e8000000-7fb9e8021000 rw-p 00000000 00:00 0 
7fb9e8021000-7fb9ec000000 ---p 00000000 00:00 0 
7fb9ec000000-7fb9ec021000 rw-p 00000000 00:00 0 
7fb9ec021000-7fb9f0000000 ---p 00000000 00:00 0 
7fb9f0000000-7fb9f0021000 rw-p 00000000 00:00 0 
7fb9f0021000-7fb9f4000000 ---p 00000000 00:00 0 
7fb9f4000000-7fb9f4021000 rw-p 00000000 00:00 0 
7fb9f4021000-7fb9f8000000 ---p 00000000 00:00 0 
7fb9f9e87000-7fb9f9e9e000 r-xp 00000000 08:01 11141258                   /lib/x86_64-linux-gnu/libgcc_s/home/thomas/.rbenv/versions/3.0.0/lib/libruby.so.3.0(+0x28886c��������� (���������������)

FYI, my environment is ruby 3.0.0 installed by rbenv, OS is ubuntu 16.04 desktop x64. My example was firstly found crashed in Rails, but later I put it into .rb and run script with ruby, it crashed in the same way. I also test it on windows 10 with ruby 3.0 installed by rubyinstaller.org version and seems to be the same.

----------------------------------------
Bug #17612: ractor crash with some simple codes
https://bugs.ruby-lang.org/issues/17612#change-90296

* Author: tomanderson (Thomas Ender)
* Status: Assigned
* Priority: Normal
* Assignee: ko1 (Koichi Sasada)
* Backport: 2.5: UNKNOWN, 2.6: UNKNOWN, 2.7: UNKNOWN, 3.0: UNKNOWN
----------------------------------------
I found these codes will crash because of **Ractor** :

``` ruby
    e = (1..1000).to_a
    arr = [e,e,e,e]

    arr.map { |sub_arr|
      Ractor.new(sub_arr) do |sub_arr|
        sub_arr.map {
          Digest::MD5.hexdigest(rand.to_s)
        }
      end
    }.map{|r| r.take}.reduce(:+)
```

If change e to (1..100), no crashes any more. If we don't use Ractor, it's also good.

Environment: ruby3.0.0p0 + rails6.1.1.




-- 
https://bugs.ruby-lang.org/

Unsubscribe: <mailto:ruby-core-request@ruby-lang.org?subject=unsubscribe>
<http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-core>