[#56965] [ruby-trunk - Bug #8852][Open] Synology build of ruby-2.0.0-p247 is failing — "barbecuesteve (Steve Sparks)" <sparks@...>

12 messages 2013/09/02

[#57051] [ruby-trunk - Bug #8872][Open] Case statements do not honor a refinement of the '===' method — "jconley88 (Jon Conley)" <schnozberries@...>

21 messages 2013/09/07

[#57058] [ruby-trunk - Bug #8875][Open] Select is not usable with SSLSocket — "headius (Charles Nutter)" <headius@...>

11 messages 2013/09/07

[#57074] [ruby-trunk - Bug #8879][Open] String#to_r fails after moving ruby to other OSX system — "mpapis (Michal Papis)" <mpapis@...>

12 messages 2013/09/08

[#57092] [ruby-trunk - Bug #8883][Open] Rational canonicalization unexpectedly converts to Fixnum — "melquiades (Paul Cantrell)" <cantrell@...>

16 messages 2013/09/09

[#57109] [ruby-trunk - Bug #8886][Open] TracePoint API inconsistence when raise used — deivid (David Rodríguez) <deivid.rodriguez@...>

14 messages 2013/09/10

[#57111] [ruby-trunk - Feature #8887][Open] min(n), max(n), min_by(n), max_by(n) — "akr (Akira Tanaka)" <akr@...>

13 messages 2013/09/10

[#57131] [ruby-trunk - Feature #8895][Open] Destructuring Assignment for Hash — "chendo (Jack Chen)" <ruby-lang@...>

19 messages 2013/09/11

[#57186] [ruby-trunk - Feature #8909][Open] Expand "f" frozen suffix to literal arrays and hashes — "headius (Charles Nutter)" <headius@...>

37 messages 2013/09/14

[#57262] [ruby-trunk - Feature #8921][Open] Allow select, reject, etc to accept a regex — "kyledecot (Kyle Decot)" <kyle.decot@...>

13 messages 2013/09/18

[#57273] [ruby-trunk - Feature #8923][Open] Frozen nil/true/false — "ko1 (Koichi Sasada)" <redmine@...>

13 messages 2013/09/19

[#57353] [ruby-trunk - Feature #8948][Open] Frozen regex — "sawa (Tsuyoshi Sawada)" <sawadatsuyoshi@...>

19 messages 2013/09/24

[#57385] [ruby-trunk - Bug #8953][Open] `str =~ /pattern/` does not call =~ method if (1) str is a String, (2) /pattern/ is a Regexp literal — "gfx (Goro Fuji)" <gfuji@...>

12 messages 2013/09/26

[#57396] [ruby-trunk - Feature #8956][Open] Allow hash members delimited by \n inside of {} — "adamdunson (Adam Dunson)" <adam@...>

20 messages 2013/09/26

[ruby-core:56985] [ruby-trunk - Feature #8793] Ruby 2.0 and Threads under HPUX

From: "michal@... (Michal Rokos)" <michal@...>
Date: 2013-09-03 10:25:37 UTC
List: ruby-core #56985
Issue #8793 has been updated by michal@rokos.cz (Michal Rokos).


nobu (Nobuyoshi Nakada) wrote:
> Thank you, and does this patch work?

Patch compiles, but the 'make test' started to fail again, since the PTHREAD_STACK_MIN got back:
sample/test.rb:signal  
sendsig: useracc failed. 0x2000000077773e00 0x00000000005000
Pid 15617 was killed due to failure in writing the signal context - possible stack overflow.
#962 test_thread.rb:60:in `<top (required)>': core dumped  
#979 test_thread.rb:227:in `<top (required)>': core dumped  
#983 test_thread.rb:264:in `<top (required)>': 
     (0..10).map {
       Thread.new {
        10000.times {
           Object.new.to_s
         }
       }
     }.each {|t|
       t.join
     }
  #=> killed by SIGABRT (signal 6)
| (MR) thid 1: p = 7ffff000, s = 142602240, addr = 887fe000, err = 0
| (MR) thid 1: p = 7ffff000, s = 142602240, addr = 887fe000, err = 0
| (MR) thid 1: p = 7ffff000, s = 142602240, addr = 887fe000, err = 0
| (MR) thid 1: p = 7ffff000, s = 142602240, addr = 887fe000, err = 0
| (MR) thid 7: p = 77771000, s = 524288, addr = 777f1000, err = 0
| bootstraptest.tmp.rb:5: [BUG] object allocation during garbage collection phase
| ruby 2.1.0dev (2013-09-03 trunk 42801) [ia64-hpux11.31]
| 
| -- Control frame information -----------------------------------------------
| c:0005 p:---- s:0012 e:000011 CFUNC  :to_s
| c:0004 p:0015 s:0009 e:000008 BLOCK  bootstraptest.tmp.rb:5 [FINISH]
| c:0003 p:---- s:0007 e:000006 CFUNC  :times
| c:0002 p:0008 s:0004 e:000003 BLOCK  bootstraptest.tmp.rb:4 [FINISH]
| c:0001 p:---- s:0002 e:000001 TOP    [FINISH]
| 
| bootstraptest.tmp.rb:4:in `block (2 levels) in <main>'
| bootstraptest.tmp.rb:4:in `times'
| bootstraptest.tmp.rb:5:in `block (3 levels) in <main>'
| bootstraptest.tmp.rb:5:in `to_s'
| 
| -- Other runtime information -----------------------------------------------
| 
| * Loaded script: bootstraptest.tmp.rb
| 
| * Loaded features:
| 
|     0 enumerator.so
| 
| [NOTE]
| You may have encountered a bug in the Ruby interpreter or extension libraries.
| Bug reports are welcome.
| For details: http://bugs.ruby-lang.org/
| 
#984 test_thread.rb:276:in `<top (required)>': core dumped  [ruby-dev:34492]
#1002 test_thread.rb:399:in `<top (required)>': core dumped  
FAIL 5/50

Just to compare values between merged version and the Comment #7 version:
> ./miniruby -e 'Thread.new { sleep 5 }'
(MR) pthread_self 1: _Asm_get_sp() = 7fffe3c0, *addr = 7ffbc000, size = 262144 [thread_pthread.c:535]
(MR) addr = 7fffe400, stackaddr = 7fffc000, space = -9216, size = 262144 [thread_pthread.c:694]
(MR) pthread_self 1: _Asm_get_sp() = 7fffde90, *addr = 7ffbc000, size = 262144 [thread_pthread.c:535]
(MR) addr = 7fffded0, stackaddr = 7fffc000, space = -7888, size = 262144 [thread_pthread.c:694]
(MR) pthread_self 1: _Asm_get_sp() = 7fffde90, *addr = 7ffbc000, size = 262144 [thread_pthread.c:535]
(MR) addr = 7fffded0, stackaddr = 7fffc000, space = -7888, size = 262144 [thread_pthread.c:694]
(MR) pthread_self 1: _Asm_get_sp() = 7fffe3a0, *addr = 7ffbc000, size = 262144 [thread_pthread.c:535]
(MR) addr = 7fffe3e4, stackaddr = 7fffc000, space = -9188, size = 262144 [thread_pthread.c:694]
(MR) pthread_self 3: _Asm_get_sp() = 77778fc0, *addr = 77738000, size = 262144 [thread_pthread.c:535]
(MR) pthread_self 1: _Asm_get_sp() = 7fffd430, *addr = 7ffbc000, size = 262144 [thread_pthread.c:535]
(MR) addr = 7fffd474, stackaddr = 7fffc000, space = -5236, size = 262144 [thread_pthread.c:694]
and
> ./miniruby -e 'Thread.new { sleep 5 }'
(MR) thid 1: p = 7ffff000, s = 142602240, *addr = 887fe000, *size = 142602240 [thread_pthread.c:509]
(MR) addr = 7fffe400, stackaddr = 887fe000, space = 142605312, size = 142602240 [thread_pthread.c:707]
(MR) thid 1: p = 7ffff000, s = 142602240, *addr = 887fe000, *size = 142602240 [thread_pthread.c:509]
(MR) addr = 7fffded0, stackaddr = 887fe000, space = 142606640, size = 142602240 [thread_pthread.c:707]
(MR) thid 1: p = 7ffff000, s = 142602240, *addr = 887fe000, *size = 142602240 [thread_pthread.c:509]
(MR) addr = 7fffded0, stackaddr = 887fe000, space = 142606640, size = 142602240 [thread_pthread.c:707]
(MR) thid 1: p = 7ffff000, s = 142602240, *addr = 887fe000, *size = 142602240 [thread_pthread.c:509]
(MR) addr = 7fffe3e4, stackaddr = 887fe000, space = 142605340, size = 142602240 [thread_pthread.c:707]
(MR) thid 7: p = 77771000, s = 524288, *addr = 777f1000, *size = 524288 [thread_pthread.c:509]
(MR) thid 1: p = 7ffff000, s = 142602240, *addr = 887fe000, *size = 142602240 [thread_pthread.c:509]
(MR) addr = 7fffd474, stackaddr = 887fe000, space = 142609292, size = 142602240 [thread_pthread.c:707]

----------------------------------------
Feature #8793: Ruby 2.0 and Threads under HPUX
https://bugs.ruby-lang.org/issues/8793#change-41570

Author: michal@rokos.cz (Michal Rokos)
Status: Feedback
Priority: Normal
Assignee: 
Category: 
Target version: 


Use of Threads under HPUX currently raise rb_eNotImpError ("ruby engine can initialize only in the main thread") since the STACKADDR_AVAILABLE is not available.

This brings basic support for the get_stack() under HPUX.

This patch also resolves issue under HPUX where signals usually cause the coredump since the stack size is too small.

It seems that the patch is valid not only for Ruby 2.0, but also for Ruby 1.9.


-- 
http://bugs.ruby-lang.org/

In This Thread