[#59462] [ruby-trunk - Bug #9342][Open] [PATCH] SizedQueue#clear does not notify waiting threads in Ruby 1.9.3 — "jsc (Justin Collins)" <redmine@...>

9 messages 2014/01/02

[#59466] [ruby-trunk - Bug #9343][Open] [PATCH] SizedQueue#max= wakes up waiters properly — "normalperson (Eric Wong)" <normalperson@...>

11 messages 2014/01/02

[#59498] [ruby-trunk - Bug #9352][Open] [BUG] rb_sys_fail_str(connect(2) for [fe80::1%lo0]:3000) - errno == 0 — "kain (Claudio Poli)" <claudio@...>

10 messages 2014/01/03

[#59516] [ruby-trunk - Bug #9356][Open] TCPSocket.new does not seem to handle INTR — "charliesome (Charlie Somerville)" <charliesome@...>

48 messages 2014/01/03

[#59538] [ruby-trunk - Feature #9362][Assigned] Minimize cache misshit to gain optimal speed — "shyouhei (Shyouhei Urabe)" <shyouhei@...>

33 messages 2014/01/03
[#59541] Re: [ruby-trunk - Feature #9362][Assigned] Minimize cache misshit to gain optimal speed — Eric Wong <normalperson@...> 2014/01/04

Hi, I noticed a trivial typo in array.c, and it fails building struct.c

[#59582] Re: [ruby-trunk - Feature #9362][Assigned] Minimize cache misshit to gain optimal speed — SASADA Koichi <ko1@...> 2014/01/06

Intersting challenge.

[#59583] [ruby-trunk - Bug #9367][Open] REXML::XmlDecl doesn't use user specified quotes — "bearmini (Takashi Oguma)" <bear.mini@...>

12 messages 2014/01/06

[#59642] [ruby-trunk - Bug #9384][Open] Segfault in ruby 2.1.0p0 — "cbliard (Christophe Bliard)" <christophe.bliard@...>

11 messages 2014/01/08

[#59791] About unmarshallable DRb objects life-time — Rodrigo Rosenfeld Rosas <rr.rosas@...>

A while ago I created a proof-of-concept that I intended to use in my

16 messages 2014/01/15
[#59794] Re: About unmarshallable DRb objects life-time — Eric Hodel <[email protected]> 2014/01/15

On 15 Jan 2014, at 11:58, Rodrigo Rosenfeld Rosas <[email protected]> =

[#59808] Re: About unmarshallable DRb objects life-time — Rodrigo Rosenfeld Rosas <rr.rosas@...> 2014/01/16

Em 15-01-2014 19:42, Eric Hodel escreveu:

[#59810] Re: About unmarshallable DRb objects life-time — Eric Hodel <[email protected]> 2014/01/16

On 16 Jan 2014, at 02:15, Rodrigo Rosenfeld Rosas <[email protected]> =

[#59826] Re: About unmarshallable DRb objects life-time — Rodrigo Rosenfeld Rosas <rr.rosas@...> 2014/01/17

Em 16-01-2014 19:43, Eric Hodel escreveu:

[#59832] Re: About unmarshallable DRb objects life-time — Eric Hodel <[email protected]> 2014/01/17

On 17 Jan 2014, at 04:22, Rodrigo Rosenfeld Rosas <[email protected]> =

[ruby-core:60207] [ruby-trunk - Bug #9365] Sporadic TypeError (wrong argument type Thread (expected VM/thread)) from IO#close (via Net:HTTP)

From: normalperson@...
Date: 2014-01-29 10:20:26 UTC
List: ruby-core #60207
Issue #9365 has been updated by Eric Wong.


 I haven't been able to reproduce this.  It appears something is
 corrupting the typed_flag in the thread VALUE before IO#close.
 Do you get segfaults or other unexplained errors?
 Does this happen near/when unicorn worker processes exit/spawn?
 
 Thanks for any more info you can provide.

----------------------------------------
Bug #9365: Sporadic TypeError (wrong argument type Thread (expected VM/thread)) from IO#close (via Net:HTTP)
https://bugs.ruby-lang.org/issues/9365#change-44689

* Author: Geoffrey Giesemann
* Status: Open
* Priority: Normal
* Assignee: 
* Category: 
* Target version: 
* ruby -v: ruby 2.0.0p353 (2013-11-22 revision 43784) [x86_64-linux]
* Backport: 1.9.3: UNKNOWN, 2.0.0: UNKNOWN, 2.1: UNKNOWN
----------------------------------------
I'm seeing the occasional error being thrown from Net:HTTP from a Rails app running under unicorn:

TypeError (wrong argument type Thread (expected VM/thread))

The two difference stack traces I see point back to IO#close:

  /opt/rubies/ruby-2.0.0/lib/ruby/2.0.0/net/protocol.rb:  88:in `close'
  /opt/rubies/ruby-2.0.0/lib/ruby/2.0.0/net/protocol.rb:  88:in `close'
      /opt/rubies/ruby-2.0.0/lib/ruby/2.0.0/net/http.rb: 946:in `do_finish'
      /opt/rubies/ruby-2.0.0/lib/ruby/2.0.0/net/http.rb: 854:in `ensure in start'
      /opt/rubies/ruby-2.0.0/lib/ruby/2.0.0/net/http.rb: 854:in `start'
      /opt/rubies/ruby-2.0.0/lib/ruby/2.0.0/net/http.rb:1367:in `request'
      /opt/rubies/ruby-2.0.0/lib/ruby/2.0.0/net/http.rb:1390:in `send_entity'
      /opt/rubies/ruby-2.0.0/lib/ruby/2.0.0/net/http.rb:1179:in `post'

  /opt/rubies/ruby-2.0.0/lib/ruby/2.0.0/net/protocol.rb:  88:in `close'
  /opt/rubies/ruby-2.0.0/lib/ruby/2.0.0/net/protocol.rb:  88:in `close'
      /opt/rubies/ruby-2.0.0/lib/ruby/2.0.0/net/http.rb: 946:in `do_finish'
      /opt/rubies/ruby-2.0.0/lib/ruby/2.0.0/net/http.rb: 854:in `start'
      /opt/rubies/ruby-2.0.0/lib/ruby/2.0.0/net/http.rb: 582:in `start'

Flipping through the source, I can see that we're calling the following under the hood:

void
rb_thread_fd_close(int fd)
{
    st_foreach(GET_THREAD()->vm->living_threads, thread_fd_close_i, (st_index_t)fd);
}

thread_fd_close_i is unpacking a thread out of GET_THREAD()->vm->living_threads but is expected a Thread and not a VM/Thread.

These errors only seem to occur sporadically (78 in the past 30 days) and seem to happen during quiet times. The only other place I've been able to find this mentioned is on the Twitters [1]

I'd like to dig further, but I'm a bit out of my depth at debugging ruby runtimes.

HALP

[1] - https://twitter.com/Sutto/status/332103402681151489





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

In This Thread

Prev Next