Re: Heads up: libffi 3.4 rebuild in rawhide today

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



I get somewhere:


~~~

$ gdb --args ./miniruby -I./lib -I. -I.ext/common ./tool/runruby.rb --extout=.ext  -- --disable-gems "./test/runner.rb" --ruby="./miniruby -I./lib -I. -I.ext/common ./tool/runruby.rb --extout=.ext  -- --disable-gems" --excludes-dir=./test/excludes --name='!/memory_leak/' test/fiddle/test_import.rb test/ruby/test_autoload.rb -v -n '/TestAutoload#test_autoload_fork/'
GNU gdb (GDB) Fedora 11.1-6.fc36
Copyright (C) 2021 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:
<https://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 ./miniruby...
warning: File "/builddir/build/BUILD/ruby-3.1.0/.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-3.1.0/.gdbinit
line to your configuration file "/builddir/.config/gdb/gdbinit".
To completely disable this security protection add
    set auto-load safe-path /
line to your configuration file "/builddir/.config/gdb/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
Starting program: /builddir/build/BUILD/ruby-3.1.0/miniruby -I./lib -I. -I.ext/common ./tool/runruby.rb --extout=.ext -- --disable-gems ./test/runner.rb --ruby=./miniruby\ -I./lib\ -I.\ -I.ext/common\ \ ./tool/runruby.rb\ --extout=.ext\ \ --\ --disable-gems --excludes-dir=./test/excludes --name=\!/memory_leak/ test/fiddle/test_import.rb test/ruby/test_autoload.rb -v -n /TestAutoload\#test_autoload_fork/ Download failed: No route to host.  Continuing without debug info for /builddir/build/BUILD/ruby-3.1.0/system-supplied DSO at 0x7ffff7fc4000. Download failed: No route to host.  Continuing without debug info for /lib64/libz.so.1. Download failed: No route to host.  Continuing without debug info for /lib64/libgmp.so.10. Download failed: No route to host.  Continuing without debug info for /lib64/libcrypt.so.2. Download failed: No route to host.  Continuing without debug info for /lib64/libm.so.6. Download failed: No route to host.  Continuing without debug info for /lib64/libc.so.6.
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib64/libthread_db.so.1".
process 13364 is executing new program: /builddir/build/BUILD/ruby-3.1.0/ruby Missing separate debuginfos, use: dnf debuginfo-install glibc-2.34.9000-36.fc36.x86_64 gmp-6.2.1-1.fc36.x86_64 libxcrypt-4.4.27-1.fc36.x86_64 zlib-1.2.11-30.fc35.x86_64 Download failed: No route to host.  Continuing without debug info for /lib64/libz.so.1. Download failed: No route to host.  Continuing without debug info for /lib64/libgmp.so.10. Download failed: No route to host.  Continuing without debug info for /lib64/libcrypt.so.2. Download failed: No route to host.  Continuing without debug info for /lib64/libm.so.6. Download failed: No route to host.  Continuing without debug info for /lib64/libc.so.6.
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib64/libthread_db.so.1".
Run options:
  --seed=54837
  "--ruby=./miniruby -I./lib -I. -I.ext/common  ./tool/runruby.rb --extout=.ext  -- --disable-gems"
  --excludes-dir=./test/excludes
  --name=!/memory_leak/
  -v
  -n
  /TestAutoload#test_autoload_fork/

# Running tests:

[Detaching after vfork from child process 13401]
[1/0] TestAutoload#test_autoload_fork[New Thread 0x7ffff4ccf640 (LWP 13402)]
[New Thread 0x7ffff4bae640 (LWP 13403)]
[New Thread 0x7ffff4a8d640 (LWP 13404)]
[New Thread 0x7ffff496c640 (LWP 13405)]
[New Thread 0x7ffff484b640 (LWP 13406)]
[New Thread 0x7ffff472a640 (LWP 13407)]
[Detaching after fork from child process 13408]
[Detaching after fork from child process 13409]
[Detaching after fork from child process 13410]
 = 0.39 s

  1) Failure:
TestAutoload#test_autoload_fork [/builddir/build/BUILD/ruby-3.1.0/test/ruby/test_autoload.rb:380]:
[ruby-core:86410] [Bug #14634].
Expected #<Test::Unit::AssertionFailedError: Expected #<Process::Status: pid 13409 SIGABRT (signal 6) (core dumped)> to be success?.> to be nil.

  2) Failure:
TestAutoload#test_autoload_fork [/builddir/build/BUILD/ruby-3.1.0/tool/lib/zombie_hunter.rb:6]: Expected [[13410, #<Process::Status: pid 13410 SIGABRT (signal 6) (core dumped)>]] to be empty.

Finished tests in 0.392854s, 2.5455 tests/s, 12.7274 assertions/s.
1 tests, 5 assertions, 2 failures, 0 errors, 0 skips

ruby -v: ruby 3.1.0p0 (2021-12-25 revision fb4df44d16) [x86_64-linux]

Thread 1 "ruby" received signal SIGABRT, Aborted.
0x00007ffff78a764c in __pthread_kill_implementation () from /lib64/libc.so.6
Missing separate debuginfos, use: dnf debuginfo-install glibc-2.34.9000-36.fc36.x86_64 gmp-6.2.1-1.fc36.x86_64 libxcrypt-4.4.27-1.fc36.x86_64 zlib-1.2.11-30.fc35.x86_64
(gdb) bt
#0  0x00007ffff78a764c in __pthread_kill_implementation () from /lib64/libc.so.6
#1  0x00007ffff785a656 in raise () from /lib64/libc.so.6
#2  0x00007ffff7844833 in abort () from /lib64/libc.so.6
#3  0x00007ffff4d0a5b8 in dlfree (mem=0x7ffff7bf1010) at ../src/dlmalloc.c:4350 #4  0x00007ffff4d190b1 in dealloc (ptr=0x5555558c1c00) at /builddir/build/BUILD/ruby-3.1.0/ext/fiddle/closure.c:32 #5  0x00007ffff7cb7801 in run_final (zombie=140737300557440, objspace=0x55555555d800) at /builddir/build/BUILD/ruby-3.1.0/gc.c:4011 #6  finalize_list (objspace=objspace@entry=0x55555555d800, zombie=140737300557440) at /builddir/build/BUILD/ruby-3.1.0/gc.c:4030 #7  0x00007ffff7cb80cc in rb_objspace_call_finalizer (objspace=0x55555555d800) at /builddir/build/BUILD/ruby-3.1.0/gc.c:4194 #8  0x00007ffff7ca56eb in rb_ec_finalize (ec=0x55555555dd70) at /builddir/build/BUILD/ruby-3.1.0/eval.c:164 #9  rb_ec_cleanup (ec=ec@entry=0x55555555dd70, ex0=<optimized out>) at /builddir/build/BUILD/ruby-3.1.0/eval.c:256 #10 0x00007ffff7ca5c14 in ruby_run_node (n=0x7ffff7699660) at /builddir/build/BUILD/ruby-3.1.0/eval.c:321 #11 0x000055555555518f in main (argc=<optimized out>, argv=<optimized out>) at ./main.c:47
(gdb) f 3
#3  0x00007ffff4d0a5b8 in dlfree (mem=0x7ffff7bf1010) at ../src/dlmalloc.c:4350
4350          USAGE_ERROR_ACTION(fm, p);
(gdb) l
4345              check_free_chunk(fm, p);
4346              goto postaction;
4347            }
4348          }
4349        erroraction:
4350          USAGE_ERROR_ACTION(fm, p);
4351        postaction:
4352          POSTACTION(fm);
4353        }
4354      }

~~~


Vít


Dne 11. 01. 22 v 17:26 Vít Ondruch napsal(a):

Dne 11. 01. 22 v 17:21 Vít Ondruch napsal(a):

Dne 10. 01. 22 v 18:18 Vít Ondruch napsal(a):

Dne 10. 01. 22 v 18:07 Miro Hrončok napsal(a):
On 10. 01. 22 15:33, Miro Hrončok wrote:
On 10. 01. 22 10:56, Vít Ondruch wrote:

Dne 08. 01. 22 v 18:09 Carlos O'Donell napsal(a):

https://copr.fedorainfracloud.org/coprs/churchyard/libffi-3.4/package/ruby/
Segmentation fault
FAIL 1/1489 tests failed
This failed in the same place in two different builds in the test_ractor.rb (Ruby Ractor) test case, and it crashes in 'ractor_select()' within 'rb_vm_exec()'.

This is odd that it should fail with the libffi update since this the failure is in the Ruby Ractor test, which I wouldn't expect to use any of the FFI APIs. It has failed
twice though in the same place.

I didn't see this in c9s. The last built ruby in c9s was built by me and it is 3.0.2-155,
where test_ractor.rb passes just fine built with libffi 3.4.

The ruby-mri binary has no deep DT_NEEDED dependencies which should need libffi or other libraries to be built in a particular order, but with dlopen you can get odd ordering issues that are only resolved after the SONAME bump is complete and rebuilds completed
across dependent libraries.

Rawhide did build successfully on 2021-12-10.


This is reported upstream:

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

Just keep trying and it will eventually pass.

OK then, running:

while ! \fedpkg build --fail-fast; do sleep 5; done

I have stopped now, with 11th build running. You will eventually need to rebuild ruby for https://fedoraproject.org/wiki/Changes/Ruby_3.1 anyway.


Well, but I am afraid the failures are likely different then the original one. Please see:


https://koschei.fedoraproject.org/package/ruby?collection=f36


All the buildroot changes seems to be related to FFI. Also scratch builds are failing in some strange way:


https://src.fedoraproject.org/rpms/ruby/pull-request/106


I am not really sure what to blame.


Vít


Some progress. So there is e.g. this failure:

~~~

  1) Failure:
TestAutoload#test_autoload_fork [/builddir/build/BUILD/ruby-3.1.0/test/ruby/test_autoload.rb:380]:
[ruby-core:86410] [Bug #14634].
Expected #<Test::Unit::AssertionFailedError: Expected #<Process::Status: pid 3249430 SIGABRT (signal 6) (core dumped)> to be success?.> to be nil.

~~~


Trying the test on itself, it passes:


~~~

$ make test-all TESTS="test/ruby/test_autoload.rb -v -n /TestAutoload#test_autoload_fork/"
./revision.h unchanged
Run options:
  --seed=15497
  "--ruby=./miniruby -I./lib -I. -I.ext/common ./tool/runruby.rb --extout=.ext  -- --disable-gems"
  --excludes-dir=./test/excludes
  --name=!/memory_leak/
  -v
  -n
  /TestAutoload#test_autoload_fork/

# Running tests:

[1/0] TestAutoload#test_autoload_fork = 0.31 s
Finished tests in 0.316094s, 3.1636 tests/s, 18.9817 assertions/s.
1 tests, 6 assertions, 0 failures, 0 errors, 0 skips

ruby -v: ruby 3.1.0p0 (2021-12-25 revision fb4df44d16) [x86_64-linux]

~~~


However, trying together with Fiddle tests (Fiddle is the FFI wrapper in Ruby), it fails:


~~~

$ make test-all TESTS="test/fiddle/test_import.rb test/ruby/test_autoload.rb -v -n /TestAutoload#test_autoload_fork/"
./revision.h unchanged
Run options:
  --seed=15
  "--ruby=./miniruby -I./lib -I. -I.ext/common ./tool/runruby.rb --extout=.ext  -- --disable-gems"
  --excludes-dir=./test/excludes
  --name=!/memory_leak/
  -v
  -n
  /TestAutoload#test_autoload_fork/

# Running tests:

[1/0] TestAutoload#test_autoload_fork = 0.42 s

  1) Failure:
TestAutoload#test_autoload_fork [/builddir/build/BUILD/ruby-3.1.0/test/ruby/test_autoload.rb:380]:
[ruby-core:86410] [Bug #14634].
Expected #<Test::Unit::AssertionFailedError: Expected #<Process::Status: pid 10859 SIGABRT (signal 6) (core dumped)> to be success?.> to be nil.

  2) Failure:
TestAutoload#test_autoload_fork [/builddir/build/BUILD/ruby-3.1.0/tool/lib/zombie_hunter.rb:6]:
Expected [[10858, #<Process::Status: pid 10858 exit 0>],
 [10860, #<Process::Status: pid 10860 SIGABRT (signal 6) (core dumped)>]] to be empty.

Finished tests in 0.423522s, 2.3612 tests/s, 9.4446 assertions/s.
1 tests, 4 assertions, 2 failures, 0 errors, 0 skips

ruby -v: ruby 3.1.0p0 (2021-12-25 revision fb4df44d16) [x86_64-linux]
make: *** [uncommon.mk:822: yes-test-all] Aborted (core dumped)

~~~


However, it is still not clear what is wrong.



Vít


Going further, I was able to minimize the test_import.rb:


~~~

# coding: US-ASCII
# frozen_string_literal: true
begin
  require_relative 'helper'
  require 'fiddle/import'
rescue LoadError
end

module Fiddle
  module LIBC
    extend Importer
    dlload LIBC_SO, LIBM_SO

    CallCallback = bind("void call_callback(void*, void*)"){ | ptr1, ptr2|
      f = Function.new(ptr1.to_i, [TYPE_VOIDP], TYPE_VOID)
      f.call(ptr2)
    }
  end


end if defined?(Fiddle)

~~~


Where the `CallCallback` makes the difference.


Vít

Attachment: OpenPGP_signature
Description: OpenPGP digital signature

_______________________________________________
devel mailing list -- devel@xxxxxxxxxxxxxxxxxxxxxxx
To unsubscribe send an email to devel-leave@xxxxxxxxxxxxxxxxxxxxxxx
Fedora Code of Conduct: https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: https://lists.fedoraproject.org/archives/list/devel@xxxxxxxxxxxxxxxxxxxxxxx
Do not reply to spam on the list, report it: https://pagure.io/fedora-infrastructure

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Fedora Announce]     [Fedora Users]     [Fedora Kernel]     [Fedora Testing]     [Fedora Formulas]     [Fedora PHP Devel]     [Kernel Development]     [Fedora Legacy]     [Fedora Maintainers]     [Fedora Desktop]     [PAM]     [Red Hat Development]     [Gimp]     [Yosemite News]

  Powered by Linux