Issue #13284 has been updated by ntfshard (Maksim Derbasov).

Status changed from Closed to Open

Hello
Sorry for delay, but ruby-2.4.2 still has this issue. May be something wrong with size argument?

[ruby-2.4.2]$ gdb ./miniruby
GNU gdb Red Hat Linux (6.3.0.0-1.143.el4rh)
Copyright 2004 Free Software Foundation, Inc.

(gdb) run
Starting program: /tmp/ruby-2.4.2/miniruby
Reading symbols from shared object read from target memory...done.
Loaded system supplied DSO at 0xa000000000000000
[Thread debugging using libthread_db enabled]
[New Thread 16384 (LWP 22035)]

Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 16384 (LWP 22035)]
reserve_stack (limit=0x60000ffc000010e0 <Address 0x60000ffc000010e0 out of bounds>, size=**17179852800**) at thread_pthread.c:722
722                 limit[0] = 0;
(gdb) bt
#0  reserve_stack (limit=0x60000ffc000010e0 <Address 0x60000ffc000010e0 out of bounds>, size=**17179852800**) at thread_pthread.c:722
#1  0x200000080042bef0 in ruby_init_stack (addr=0x60000fffffffb8f0, bsp=Variable "bsp" is not available.
) at thread_pthread.c:757
#2  0x20000008000870a0 in main (argc=1, argv=0x60000fffffffb908) at main.c:34
(gdb)


----------------------------------------
Bug #13284: IA64 ruby 2.4 miniruby segfault
https://bugs.ruby-lang.org/issues/13284#change-67128

* Author: ntfshard (Maksim Derbasov)
* Status: Open
* Priority: Normal
* Assignee: takano32 (Mitsuhiro TAKANO)
* Target version: 
* ruby -v: 
* Backport: 2.2: UNKNOWN, 2.3: DONE, 2.4: DONE
----------------------------------------
Hello, I faced with this degradation (2.0.0 work perfect)

[ruby-2.4.0]$ gdb ./miniruby
GNU gdb Red Hat Linux (6.3.0.0-1.143.el4rh)
Copyright 2004 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB.  Type "show warranty" for details.
This GDB was configured as "ia64-redhat-linux-gnu"...Using host libthread_db library "/lib/libthread_db.so.1".

(gdb) run
Starting program: /tmp/ruby-2.4.0/miniruby
Reading symbols from shared object read from target memory...done.
Loaded system supplied DSO at 0xa000000000000000
[Thread debugging using libthread_db enabled]
[New Thread 16384 (LWP 28566)]

Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 16384 (LWP 28566)]
reserve_stack (limit=0x60000ffc000010e0 <Address 0x60000ffc000010e0 out of bounds>, size=17179852800) at thread_pthread.c:722
722                 limit[0] = 0;
(gdb) print sz
Variable "sz" is not available.

(gdb) bt
#0  reserve_stack (limit=0x60000ffc000010e0 <Address 0x60000ffc000010e0 out of bounds>, size=17179852800) at thread_pthread.c:722
#1  0x400000000038ee30 in ruby_init_stack (addr=0x60000fffffffb4a0, bsp=0x60000ffbffffc080) at thread_pthread.c:751
#2  0x4000000000024460 in main (argc=1, argv=0x60000fffffffb4b8) at main.c:34

____________________
P.S. I did not get the main idea of a code but it looks a little bit dangerous (http://man7.org/linux/man-pages/man3/alloca.3.html  http://stackoverflow.com/questions/1018853/why-is-the-use-of-alloca-not-considered-good-practice)




-- 
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>