From: Jurij Smakov Date: 2011-11-10T05:56:58+09:00 Subject: [ruby-core:40892] [ruby-trunk - Bug #5493] Commit r33357 breaks build on Debian/sparc Issue #5493 has been updated by Jurij Smakov. I've noticed that a failure to create a timer thread causes the following to appear in dmesg: [ 2047.656289] FAULT[miniruby:2299]: 32-bit process reports 64-bit fault address [16fdf6d9d] [ 2047.764409] TSTATE: 0000008011001600 TPC: 00000000005e0af4 TNPC: 00000000005e0af8 Y: 00000000 Tainted: G O [ 2047.905352] TPC: <___copy_in_user+0x34/0xe0> [ 2047.968213] g0: 0000000000422e10 g1: 0000000000000000 g2: 0310040001010080 g3: 0310071101010080 [ 2048.085886] g4: fffff8007f4259a0 g5: fffff800012ac000 g6: fffff8007f2d4000 g7: 00000000000000c0 [ 2048.204116] o0: 000000016fdf73e8 o1: 00000000ffdedfa8 o2: 0000000000000000 o3: 00000001ffdfffe8 [ 2048.323111] o4: ffffffff00212050 o5: 0000000000000000 sp: fffff8007f2d73a1 ret_pc: 000000000042b7e4 [ 2048.447014] RPC: [ 2048.511850] l0: fffff8007cde4000 l1: 000000016fdf73e8 l2: 00000000ffdedfa8 l3: ffffffff00212058 [ 2048.633596] l4: 000000000000000f l5: 0000000000000001 l6: 0000000000000000 l7: 0000000000000008 [ 2048.755984] i0: 00000000003d0f00 i1: 0000000070009440 i2: 0000000000000000 i3: fffff8007f0ff9c0 [ 2048.878724] i4: fffff8007f2d7f60 i5: 0000000000000000 i6: fffff8007f2d7451 i7: 00000000004646ac [ 2049.002003] I7: [ 2049.070428] Call Trace: [ 2049.119099] [00000000004646ac] copy_process+0x7d4/0xd50 [ 2049.203064] [0000000000464d40] do_fork+0xec/0x294 [ 2049.281012] [000000000042b66c] sparc_do_fork+0x30/0x4c [ 2049.364563] [0000000000406154] linux_sparc_syscall32+0x34/0x40 So, in the process of new thread creation some user-space memory copies are performed, and at some point we get a bogus address. ---------------------------------------- Bug #5493: Commit r33357 breaks build on Debian/sparc http://redmine.ruby-lang.org/issues/5493 Author: Jurij Smakov Status: Open Priority: Normal Assignee: Category: Target version: ruby -v: ruby 1.9.4dev (2011-09-29 trunk 33357) [sparc64-linux] While trying to build the Ruby SVN nightly snapshot I found that it fails while configuring fiddle: [...] configuring digest/sha2 configuring dl configuring dl/callback configuring dl/win32 Failed to configure dl/win32. It will not be installed. configuring etc configuring fcntl configuring fiber configuring fiddle [FATAL] Failed to create timer thread (errno: 14) make: *** [exts.mk] Error 1 The actual failing invocation: [...] making encs make[1]: Entering directory `/home/jurij/ruby/rubysvn' make[1]: Leaving directory `/home/jurij/ruby/rubysvn' ./miniruby -I./lib -I. -I.ext/common ./ext/extmk.rb --make="make" --command-output=exts.mk --dest-dir="" --extout=".ext" --mflags="" --make-flags="" --extension --extstatic --make-flags="V=0 MINIRUBY='./miniruby -I./lib -I. -I.ext/common '" -- configure configuring fiddle [FATAL] Failed to create timer thread (errno: 14) make: *** [exts.mk] Error 1 After a bit of bisecting I found that r33356 is the last good revision, the failure appears in r33357 ("use RTYPE_P which is optimized for constant types, instead of comparison with TYPE."). The system is up-to-date Debian-sid/sparc. I can provide the build logs and do additional tests if necessary. -- http://redmine.ruby-lang.org