[#1884] multiple exceptions for assert_raises — nobu.nokada@...

Hi,

14 messages 2003/12/04

[#1932] --enable-pthread broken? — Nathaniel Talbott <nathaniel@...>

[ruby-talk: 87759] and the surrounding thread seem to indicate that

29 messages 2003/12/11
[#1933] Re: --enable-pthread broken? — matz@... (Yukihiro Matsumoto) 2003/12/11

Hi,

[#1934] Re: --enable-pthread broken? — Nathaniel Talbott <nathaniel@...> 2003/12/11

On Dec 11, 2003, at 11:49, Yukihiro Matsumoto wrote:

[#1935] Re: --enable-pthread broken? — ts <decoux@...> 2003/12/11

>>>>> "N" == Nathaniel Talbott <nathaniel@talbott.ws> writes:

[#1937] Re: --enable-pthread broken? — nobu.nokada@... 2003/12/11

Hi,

[#1938] Re: --enable-pthread broken? — Nathaniel Talbott <nathaniel@...> 2003/12/12

On Dec 11, 2003, at 16:10, nobu.nokada@softhome.net wrote:

[#1939] Re: --enable-pthread broken? — matz@... (Yukihiro Matsumoto) 2003/12/12

Hi,

[#1941] Re: --enable-pthread broken? — matz@... (Yukihiro Matsumoto) 2003/12/12

Hi,

[#1943] Re: --enable-pthread broken? — Nathaniel Talbott <nathaniel@...> 2003/12/12

On Dec 11, 2003, at 20:48, Yukihiro Matsumoto wrote:

[#1953] Re: --enable-pthread broken? — matz@... (Yukihiro Matsumoto) 2003/12/13

Hi,

[#1959] Re: --enable-pthread broken? — ts <decoux@...> 2003/12/14

>>>>> "Y" == Yukihiro Matsumoto <matz@ruby-lang.org> writes:

[#1961] Re: --enable-pthread broken? — matz@... (Yukihiro Matsumoto) 2003/12/15

Hi,

[#1962] Re: --enable-pthread broken? — ts <decoux@...> 2003/12/15

>>>>> "Y" == Yukihiro Matsumoto <matz@ruby-lang.org> writes:

[#1936] Can't define +@ for Symbol (plus ruby install problem) — "T. Onoma" <transami@...>

I wanted to see if the +@ problem was fixed in 1.8.1 preview 3 but when I do

11 messages 2003/12/11

[#1973] Where to install documentation — Dave Thomas <dave@...>

Folks:

48 messages 2003/12/15
[#1982] Re: Where to install documentation — Eric Hodel <drbrain@...7.net> 2003/12/15

Dave Thomas (dave@pragprog.com) wrote:

[#1984] Re: Where to install documentation — Dave Thomas <dave@...> 2003/12/15

[#1991] Re: Where to install documentation — "Gavin Sinclair" <gsinclair@...> 2003/12/16

>

[#1992] Re: Where to install documentation — Dave Thomas <dave@...> 2003/12/16

[#2000] Re: Where to install documentation — Minero Aoki <aamine@...> 2003/12/16

Hi,

[#2002] Re: Where to install documentation — Dave Thomas <dave@...> 2003/12/16

[#2037] --enable-pthread still segfaults... — Nathaniel Talbott <nathaniel@...>

I've finally been able to test my application under load using the

25 messages 2003/12/23
[#2038] Re: --enable-pthread still segfaults... — matz@... (Yukihiro Matsumoto) 2003/12/23

Hi,

[#2039] Re: --enable-pthread still segfaults... — Nathaniel Talbott <nathaniel@...> 2003/12/23

On Dec 23, 2003, at 14:17, Yukihiro Matsumoto wrote:

[#2040] Re: --enable-pthread still segfaults... — matz@... (Yukihiro Matsumoto) 2003/12/23

Hi,

[#2041] Re: --enable-pthread still segfaults... — Nathaniel Talbott <nathaniel@...> 2003/12/23

On Dec 23, 2003, at 14:34, Yukihiro Matsumoto wrote:

[#2042] Re: --enable-pthread still segfaults... — matz@... (Yukihiro Matsumoto) 2003/12/23

Hi,

[#2043] Re: --enable-pthread still segfaults... — Nathaniel Talbott <nathaniel@...> 2003/12/23

On Dec 23, 2003, at 14:44, Yukihiro Matsumoto wrote:

[#2045] Re: --enable-pthread still segfaults... — matz@... (Yukihiro Matsumoto) 2003/12/23

Hi,

[#2046] Re: --enable-pthread still segfaults... — Nathaniel Talbott <nathaniel@...> 2003/12/23

> I'm afraid you're using old configure file. Can you wipe off old

[#2049] Re: --enable-pthread still segfaults... — Nathaniel Talbott <nathaniel@...> 2003/12/23

On Dec 23, 2003, at 15:18, Nathaniel Talbott wrote:

[#2050] Re: --enable-pthread still segfaults... — matz@... (Yukihiro Matsumoto) 2003/12/23

In message "Re: --enable-pthread still segfaults..."

[#2122] Bad interaction between timeout.rb and --enable-pthread — Nathaniel Talbott <nathaniel@...>

Here's a testcase that shows the problem:

13 messages 2003/12/31
[#2123] sleep is broken with --enable-pthread [Was: Bad interaction between timeout.rb and --enable-pthread] — Nathaniel Talbott <nathaniel@...> 2003/12/31

I should have reduced it more before posting...

Re: --enable-pthread broken?

From: Nathaniel Talbott <nathaniel@...>
Date: 2003-12-12 00:12:50 UTC
List: ruby-core #1938
On Dec 11, 2003, at 16:10, nobu.nokada@softhome.net wrote:

> At Fri, 12 Dec 2003 03:08:58 +0900,
> ts wrote:
>> N> I tried it against the latest Ruby CVS, and it still crashes. It 
>> seemed
>> N> to take (subjectively) longer to crash, though. Interestingly, 2 
>> out of
>> N> 3 runs gave me this instead of a segfault:
>>
>>  Well, look where it crash.
>>
>>  With the previous version normally you have a crash in
>>    * rb_thread_restore_content()
>>    * and localjump_destination()
>>
>>  normally with the new patch (if I'm right), you have just a crash in
>>    * localjump_destination()
>
> Then, it'd be simple.

Maybe for you... but for me, I'm very grateful for Ruby super-heroes :-)

Anyhow, I tried this patch, and I no longer get a segfault or any other 
kind of crash, which is great!

Unfortunately, with a slight modification to keep the killer running 
even if some threads time out, the killer will now lock completely 
sometimes with the same characteristics as reported in 
[ruby-talk:87519]. Here's the line from top:

    PID USER     WCHAN     STAT %CPU %MEM   TIME COMMAND
   5502 ntalbott rt_sigsus S     0.0 21.8   1:15 bin/ruby 
/home/ntalbott/sandbox/killer.rb

Not only that, but it's hard to reproduce this; under production, the 
process will run for hours without it happening, and even with this 
test case I've only had it happen once. I'm continuing to try different 
variants, and will let you know if I find one that fails more 
consistently.

This 'rt_sigsuspend problem' is why I enabled pthread in the first 
place, but apparently that doesn't really fix it. Any guesses? I have a 
hunch that Net::HTTP (and the underlying native code) are interacting 
poorly with threads (my full WEBrick server uses Net::HTTP as well), 
but it's only a guess.

Here's the new killer.rb:

   require 'thread'
   require 'net/http'

   threads = []

   STDOUT.sync = true
   200.times do
     threads << Thread.new do
       h = Net::HTTP::new('localhost', 2000)
       loop do
         h.get('/hello')
         print('.')
       end
     end
   end

   sleep(60 * 10)


Thanks,


Nathaniel

<:((><


In This Thread