Bug 895173 - Ruby 1.9.3.362 is causing segfaults
Ruby 1.9.3.362 is causing segfaults
Status: CLOSED CURRENTRELEASE
Product: Fedora
Classification: Fedora
Component: ruby (Show other bugs)
17
x86_64 Linux
unspecified Severity high
: ---
: ---
Assigned To: Mamoru TASAKA
Fedora Extras Quality Assurance
:
: 901902 (view as bug list)
Depends On:
Blocks:
  Show dependency treegraph
 
Reported: 2013-01-14 13:23 EST by Toby Ovod-Everett
Modified: 2013-02-21 00:47 EST (History)
8 users (show)

See Also:
Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
Environment:
Last Closed: 2013-02-03 04:33:00 EST
Type: Bug
Regression: ---
Mount Type: ---
Documentation: ---
CRM:
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:


Attachments (Terms of Use)
Dump generated by running segfault.rb (54.23 KB, text/plain)
2013-01-14 17:22 EST, Toby Ovod-Everett
no flags Details


External Trackers
Tracker ID Priority Status Summary Last Updated
Ruby 7629 None None None Never

  None (edit)
Description Toby Ovod-Everett 2013-01-14 13:23:51 EST
Description of problem:

I'm seeing segfaults ever since updating from Ruby 1.9.3.327 to 1.9.3.362.  I've found numerous reports on the web indicating that 1.9.3.362 has issues (https://github.com/travis-ci/travis-ci/issues/827, https://gist.github.com/4433870, https://github.com/wayneeseguin/rvm/issues/1435, etc.).  It looks like it got fixed around 2013-01-08 (see https://bugs.ruby-lang.org/issues/7629#change-35286), but I suspect the fix didn't make it into the recently released Fedora packages.


Version-Release number of selected component (if applicable):
ruby-1.9.3.362-24.fc17.x86_64

How reproducible:
Very.

Steps to Reproduce:
1. See https://gist.github.com/4433870 (assumes you have Rails installed).
  
Actual results:
Pages of seg fault dump information.

Expected results:
Not to crash!

Additional info:
I'm trying to figure out how to get back to 1.9.3.327.  I can downgrade to 1.9.3.194, but that version has security issues.  There were no security issues addressed in 1.9.3.362, so I should be safe on 1.9.3.327, but it doesn't appear to be on the update servers anymore.
Comment 1 Mamoru TASAKA 2013-01-14 16:52:44 EST
Would you attach the exact backtrace to verify the issue you see and check if the commit in ruby CVS actually fixes your issue?
Comment 2 Toby Ovod-Everett 2013-01-14 17:22:54 EST
Created attachment 678452 [details]
Dump generated by running segfault.rb

This is the output from running segfault.rb from https://gist.github.com/4433870 using https://gist.github.com/4433870.
Comment 3 Toby Ovod-Everett 2013-01-14 17:30:24 EST
I'm not running RVM, so I can't be 100% certain the commit in ruby CVS will fix the issue.  I can report that switching back to 1.9.3.194 does resolve the issue.  

In addition, the backtrace I just submitted bears a lot of similarity to the one posted at https://bugs.ruby-lang.org/issues/7669 (this is considered to be a duplicate of the main issue thread at https://bugs.ruby-lang.org/issues/7629).  The first four entries in the control frame information match as far as line numbers go.  The reporter on this thread indicates that 1.9.3-dev does resolve the issue.
Comment 4 Mamoru TASAKA 2013-01-15 19:53:35 EST
[mtasaka@localhost ruby]$ gdb ruby
GNU gdb (GDB) Fedora (7.5.1-32.fc18)
Copyright (C) 2012 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "i686-redhat-linux-gnu".
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>...
Reading symbols from /usr/bin/ruby...Reading symbols from /usr/lib/debug/usr/bin/ruby.debug...done.
done.
(gdb) run ./ruby-1.9.3p362-segfault.rb 
Starting program: /usr/bin/ruby ./ruby-1.9.3p362-segfault.rb
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/libthread_db.so.1".
[New Thread 0xb7c6bb40 (LWP 20530)]
-- create_table(:posts)
   -> 0.0061s
-- initialize_schema_migrations_table()
   -> 0.0008s
-- assume_migrated_upto_version(1, ["db/migrate"])
   -> 0.0002s

Program received signal SIGSEGV, Segmentation fault.
rb_vm_make_env_object (th=th@entry=0x804bba0, cfp=<optimized out>, cfp@entry=0xb7cebf2c) at vm.c:491
491		lfp[0] = GC_GUARDED_PTR(&p->block);
Missing separate debuginfos, use: debuginfo-install keyutils-libs-1.5.5-3.fc18.i686 krb5-libs-1.10.3-5.fc18.i686 libcom_err-1.42.5-1.fc18.i686 libselinux-2.1.12-7.fc18.i686 libyaml-0.1.4-3.fc18.i686 nss-softokn-freebl-3.14.1-5.fc18.i686 openssl-libs-1.0.1c-7.fc18.i686 pcre-8.31-4.fc18.i686 rubygem-json-1.6.5-2.fc18.i686 rubygem-sqlite3-1.3.5-2.fc18.i686 zlib-1.2.7-9.fc18.i686
(gdb) bt
#0  rb_vm_make_env_object (th=th@entry=0x804bba0, cfp=<optimized out>, cfp@entry=0xb7cebf2c) at vm.c:491
#1  0x4acd9dcf in rb_vm_make_proc (th=th@entry=0x804bba0, block=block@entry=0xb7cebf40, klass=134706180) at vm.c:562
#2  0x4acda52d in vm_make_proc_from_block (block=0xb7cebf40, th=0x804bba0) at vm.c:546
#3  rb_vm_make_env_object (th=th@entry=0x804bba0, cfp=<optimized out>, cfp@entry=0xb7cebf00) at vm.c:488
#4  0x4acd9dcf in rb_vm_make_proc (th=th@entry=0x804bba0, block=block@entry=0xb7cebf14, klass=134706180) at vm.c:562
#5  0x4acda52d in vm_make_proc_from_block (block=0xb7cebf14, th=0x804bba0) at vm.c:546
#6  rb_vm_make_env_object (th=th@entry=0x804bba0, cfp=<optimized out>, cfp@entry=0xb7cebed4) at vm.c:488
#7  0x4acd9dcf in rb_vm_make_proc (th=th@entry=0x804bba0, block=0xb7cebee8, klass=134706180) at vm.c:562
#8  0x4aba7129 in vm_callee_setup_arg_complex (th=th@entry=0x804bba0, iseq=iseq@entry=0x8888278, 
    orig_argc=orig_argc@entry=2, orig_argv=orig_argv@entry=0xb7c6c058, block=block@entry=0xbfffea18) at vm_insnhelper.c:221
#9  0x4ace4538 in vm_setup_method (th=th@entry=0x804bba0, cfp=cfp@entry=0xb7cebed4, recv=recv@entry=148280540, 
    argc=argc@entry=2, blockptr=blockptr@entry=0xb7cebee8, flag=flag@entry=0, me=0x8888260) at vm_insnhelper.c:470
#10 0x4ace660a in vm_call_method (th=th@entry=0x804bba0, cfp=cfp@entry=0xb7cebed4, num=num@entry=2, blockptr=0xb7cebee8, 
    flag=flag@entry=0, id=id@entry=36608, me=me@entry=0x8888260, recv=148280540) at vm_insnhelper.c:529
#11 0x4acdcf3b in vm_exec_core (th=0x804bba0, th@entry=0xbfffebc8, initial=initial@entry=0) at insns.def:1018
#12 0x4ace15dc in vm_exec (th=0xbfffebc8, th@entry=0xb7cebf2c) at vm.c:1227
#13 0x4ace22a2 in invoke_block_from_c (cref=0x0, blockptr=0x8abc2f0, argv=0x8fdb03d, argc=148280540, self=161, 
    block=0x8fdb080, th=0xb7cebf2c) at vm.c:631
#14 rb_vm_invoke_proc (th=th@entry=0x804bba0, proc=0x8fdb080, self=self@entry=148280540, argc=argc@entry=1, 
    argv=argv@entry=0xbfffedb0, blockptr=blockptr@entry=0x0) at vm.c:677
#15 0x4ace669e in vm_call_bmethod (me=0x8fdb0b0, blockptr=0x0, argv=0xbfffedb0, argc=1, recv=148280540, th=0x804bba0)
    at vm_insnhelper.c:433
#16 vm_call_method (th=th@entry=0x804bba0, cfp=cfp@entry=0xb7cebf84, num=num@entry=1, blockptr=0x0, flag=flag@entry=0, 
    id=id@entry=14984, me=me@entry=0x8fdb0b0, recv=148280540) at vm_insnhelper.c:566
#17 0x4acdcf3b in vm_exec_core (th=0x804bba0, th@entry=0xbfffef68, initial=initial@entry=136044116) at insns.def:1018
#18 0x4ace15dc in vm_exec (th=0xbfffef68, th@entry=0x804bba0) at vm.c:1227
#19 0x4ace8d9d in rb_iseq_eval_main (iseqval=iseqval@entry=134637000) at vm.c:1468
#20 0x4abdf2b4 in ruby_exec_internal (n=0x80665c8) at eval.c:204
#21 0x4abdfe35 in ruby_exec_node (n=n@entry=0x80665c8) at eval.c:251
#22 0x4abe1857 in ruby_run_node (n=0x80665c8) at eval.c:244
#23 0x080486b9 in main (argc=2, argv=0xbffff264) at main.c:38
(gdb) li
486	
487	    if (blockptr && !(lfp[0] & 0x02)) {
488		VALUE blockprocval = vm_make_proc_from_block(th, blockptr);
489		rb_proc_t *p;
490		GetProcPtr(blockprocval, p);
491		lfp[0] = GC_GUARDED_PTR(&p->block);
492	    }
493	
494	    envval = vm_make_env_each(th, cfp, cfp->dfp, cfp->lfp);
495	    rb_vm_rewrite_dfp_in_errinfo(th);
Comment 5 Fedora Update System 2013-01-16 10:21:32 EST
ruby-1.9.3.362-25.fc17 has been submitted as an update for Fedora 17.
https://admin.fedoraproject.org/updates/ruby-1.9.3.362-25.fc17
Comment 6 Fedora Update System 2013-01-16 10:21:34 EST
ruby-1.9.3.362-25.fc18 has been submitted as an update for Fedora 18.
https://admin.fedoraproject.org/updates/ruby-1.9.3.362-25.fc18
Comment 7 Mamoru TASAKA 2013-01-16 19:57:23 EST
Thank you for information. I think the coming -25 should fix this issue. Please try it.
Comment 8 Toby Ovod-Everett 2013-01-16 20:04:13 EST
I've been watching https://admin.fedoraproject.org/updates/ruby-1.9.3.362-25.fc17 waiting for it to say "This update has been pushed to testing".  As soon as I notice that it's on the testing repository, I'll test and provide feedback.
Comment 9 Mamoru TASAKA 2013-01-18 11:18:25 EST
It seems pushing -25 into testing repo are taking time...
If you want to try -25 now, you can visit
http://kojipkgs.fedoraproject.org/packages/ruby/
and download rpms manually.
Comment 10 Toby Ovod-Everett 2013-01-18 14:03:06 EST
Installing the rpms manually from kojipkgs appears to work.

I updated from 1.9.3.194 to 1.9.3.362-24 and verified that segfault was still present.  I then updated to 1.9.3.362-25 (ruby-1.9.3.362-25.fc17.x86_64.rpm, ruby-devel-1.9.3.362-25.fc17.x86_64.rpm, ruby-irb-1.9.3.362-25.fc17.noarch.rpm, ruby-libs-1.9.3.362-25.fc17.x86_64.rpm, rubygem-bigdecimal-1.1.0-25.fc17.x86_64.rpm, rubygem-io-console-0.3-25.fc17.x86_64.rpm, rubygem-rake-0.9.2.2-25.fc17.noarch.rpm) and verified that I couldn't get the segfaults to trigger any more (I did multiple test runs).

Thanks for the fix!
Comment 11 Fedora Update System 2013-01-18 15:22:58 EST
Package ruby-1.9.3.362-25.fc17:
* should fix your issue,
* was pushed to the Fedora 17 testing repository,
* should be available at your local mirror within two days.
Update it with:
# su -c 'yum update --enablerepo=updates-testing ruby-1.9.3.362-25.fc17'
as soon as you are able to.
Please go to the following url:
https://admin.fedoraproject.org/updates/FEDORA-2013-0900/ruby-1.9.3.362-25.fc17
then log in and leave karma (feedback).
Comment 12 Toby Ovod-Everett 2013-01-19 09:56:19 EST
I waited for the repository to update and then downgraded and re-upgraded from the repository and verified that the packages on the repository resolve the segfaults.  I just left karma feedback.  Thanks once again!
Comment 13 Mamoru TASAKA 2013-01-19 13:14:47 EST
1.9.3 p374 was released, mainly to fix segfault lots of people are seeing on p362. I will submit -27 as update.
Comment 14 Fedora Update System 2013-01-19 13:18:31 EST
ruby-1.9.3.374-27.fc18 has been submitted as an update for Fedora 18.
https://admin.fedoraproject.org/updates/ruby-1.9.3.374-27.fc18
Comment 15 Fedora Update System 2013-01-19 13:19:26 EST
ruby-1.9.3.374-27.fc17 has been submitted as an update for Fedora 17.
https://admin.fedoraproject.org/updates/ruby-1.9.3.374-27.fc17
Comment 16 Mamoru TASAKA 2013-01-19 22:44:36 EST
*** Bug 901902 has been marked as a duplicate of this bug. ***
Comment 17 Fedora Update System 2013-02-01 11:59:48 EST
ruby-1.9.3.374-27.fc18 has been pushed to the Fedora 18 stable repository.  If problems still persist, please make note of it in this bug report.
Comment 18 Fedora Update System 2013-02-01 12:17:56 EST
ruby-1.9.3.374-27.fc17 has been pushed to the Fedora 17 stable repository.  If problems still persist, please make note of it in this bug report.
Comment 19 Toby Ovod-Everett 2013-02-01 17:28:45 EST
I just updated to 1.9.3.374-27.fc17.x86_64 and my test suites are running successfully.  Just left positive feedback for it at https://admin.fedoraproject.org/updates/ruby-1.9.3.374-27.fc17.  I apologize for losing track of the message back on Jan 19th regarding it entering testing.
Comment 20 Mamoru TASAKA 2013-02-03 04:33:00 EST
Closing. Thank you for reports.
Comment 21 Fedora Update System 2013-02-11 07:47:24 EST
ruby-1.9.3.385-28.fc18 has been submitted as an update for Fedora 18.
https://admin.fedoraproject.org/updates/ruby-1.9.3.385-28.fc18
Comment 22 Fedora Update System 2013-02-11 07:47:49 EST
ruby-1.9.3.385-28.fc17 has been submitted as an update for Fedora 17.
https://admin.fedoraproject.org/updates/ruby-1.9.3.385-28.fc17
Comment 23 Toby Ovod-Everett 2013-02-13 15:49:17 EST
I just left positive feedback for ruby-1.9.3.385-28.fc17 at https://admin.fedoraproject.org/updates/ruby-1.9.3.385-28.fc17.
Comment 24 Fedora Update System 2013-02-21 00:38:46 EST
ruby-1.9.3.385-28.fc18 has been pushed to the Fedora 18 stable repository.  If problems still persist, please make note of it in this bug report.
Comment 25 Fedora Update System 2013-02-21 00:47:28 EST
ruby-1.9.3.385-28.fc17 has been pushed to the Fedora 17 stable repository.  If problems still persist, please make note of it in this bug report.

Note You need to log in before you can comment on or make changes to this bug.