Project

General

Profile

Actions

Bug #11452

closed

Stability issues with glibc-2.22

Added by vo.x (Vit Ondruch) over 8 years ago. Updated over 8 years ago.

Status:
Third Party's Issue
Assignee:
-
Target version:
-
ruby -v:
ruby 2.3.0dev (2015-08-17 trunk 51617) [x86_64-linux]
[ruby-core:<unknown>]

Description

Originally, I reported the issues with recent glibc stability in Fedora's tracker [1]. Unfortunately, there has not been made a big progress yet, but it seems that the issues might be due to incorrect use of condvars [2]. Is there any chance that somebody can identify the core of the issue? The simplest reproducer is:

$ rpm -q glibc
glibc-2.22.90-3.fc24.x86_64

$ RUBYOPT=-Ilib:.:.ext/x86_64-linux LD_LIBRARY_PATH=. gdb ./ruby                 
GNU gdb (GDB) Fedora 7.9.90.20150717-12.fc24
Copyright (C) 2015 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 "x86_64-redhat-linux-gnu".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
<http://www.gnu.org/software/gdb/documentation/>.
For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from ./ruby...done.
warning: File "/builddir/build/BUILD/ruby-2.3.0-r51617/.gdbinit" auto-loading has been declined by your `auto-load safe-path' set to "$debugdir:$datadir/auto-load".
To enable execution of this file add
	add-auto-load-safe-path /builddir/build/BUILD/ruby-2.3.0-r51617/.gdbinit
line to your configuration file "/builddir/.gdbinit".
To completely disable this security protection add
	set auto-load safe-path /
line to your configuration file "/builddir/.gdbinit".
For more information about this security protection see the
"Auto-loading safe path" section in the GDB manual.  E.g., run from the shell:
	info "(gdb)Auto-loading safe path"
(gdb) r test/ruby/lbtest.rb
Starting program: /builddir/build/BUILD/ruby-2.3.0-r51617/ruby test/ruby/lbtest.rb
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib64/libthread_db.so.1".
[New Thread 0x7ffff7ff6700 (LWP 27737)]
[New Thread 0x7ffff60aa700 (LWP 27738)]
[New Thread 0x7ffff5ea8700 (LWP 27739)]
[New Thread 0x7ffff5ca6700 (LWP 27740)]
[New Thread 0x7ffff5aa4700 (LWP 27741)]
[New Thread 0x7ffff58a2700 (LWP 27742)]
[New Thread 0x7ffff56a0700 (LWP 27743)]
[New Thread 0x7ffff549e700 (LWP 27744)]
[New Thread 0x7ffff529c700 (LWP 27745)]
[New Thread 0x7ffff509a700 (LWP 27746)]
[New Thread 0x7ffff4e98700 (LWP 27747)]
0: done
8: done
2: done
4: done
5: done
7: done
3: done
1: done
6: done
3: cont
[Thread 0x7ffff60aa700 (LWP 27738) exited]
2: cont
[Thread 0x7ffff58a2700 (LWP 27742) exited]
6: cont
[Thread 0x7ffff5aa4700 (LWP 27741) exited]
1: cont
9: cont
exit.
[Thread 0x7ffff529c700 (LWP 27745) exited]
[Thread 0x7ffff5ca6700 (LWP 27740) exited]
[Thread 0x7ffff5ea8700 (LWP 27739) exited]
[Thread 0x7ffff509a700 (LWP 27746) exited]
[Thread 0x7ffff4e98700 (LWP 27747) exited]
[Thread 0x7ffff549e700 (LWP 27744) exited]
[Thread 0x7ffff56a0700 (LWP 27743) exited]
[BUG] [Thread 0x7ffff7ff6700 (LWP 27737) exited]
pthread_cond_destroy: Device or resource busy (EBUSY)
ruby 2.3.0dev (2015-08-17 trunk 51617) [x86_64-linux]


Program received signal SIGSEGV, Segmentation fault.
rb_vm_bugreport (ctx=ctx@entry=0x0) at vm_dump.c:994
994		SDR();
(gdb) backtrace 
#0  rb_vm_bugreport (ctx=ctx@entry=0x0) at vm_dump.c:994
#1  0x00007ffff79cce3a in rb_bug (fmt=fmt@entry=0x7ffff7b04544 "%s: %s (%s)") at error.c:406
#2  0x00007ffff79ccf6a in rb_bug_errno (mesg=mesg@entry=0x7ffff7b2cd0f "pthread_cond_destroy", errno_arg=16) at error.c:436
#3  0x00007ffff7af36a0 in native_cond_destroy (cond=cond@entry=0x555555756050) at thread_pthread.c:296
#4  0x00007ffff7af5e37 in gvl_destroy (vm=0x555555756010) at thread_pthread.c:177
#5  rb_vm_gvl_destroy (vm=vm@entry=0x555555756010) at thread.c:339
#6  0x00007ffff7adbb74 in ruby_vm_destruct (vm=0x555555756010) at vm.c:1870
#7  0x00007ffff79d389c in ruby_cleanup (ex=<optimized out>) at eval.c:227
#8  0x00007ffff79d3a65 in ruby_run_node (n=0x555555ae5560) at eval.c:301
#9  0x00005555555549ab in main (argc=2, argv=0x7fffffffe648) at main.c:36
(gdb) quit
A debugging session is active.

	Inferior 1 [process 27736] will be killed.

Quit anyway? (y or n) y

Please note that it took approximately 20 attempts to reproduce the bug. But it (and several similar) appears quite often in Fedora's CI [3].

[1] https://bugzilla.redhat.com/show_bug.cgi?id=1229659
[2] https://bugzilla.redhat.com/show_bug.cgi?id=1229659#c5
[3] https://apps.fedoraproject.org/koschei/package/ruby

Updated by vo.x (Vit Ondruch) over 8 years ago

  • Status changed from Open to Third Party's Issue

The glibc-new-condvar.patch which was causing the issues was dropped from Fedora [1], so this should be resolved for now, unless this will get reintroduced into upstream.

[1] http://pkgs.fedoraproject.org/cgit/glibc.git/commit/?id=4cc081474ce5365d929251f5e381acd19815894f

Actions

Also available in: Atom PDF

Like0
Like0