Project

General

Profile

Bug #4350

Segmentation fault and Bus Error

Added by qianthinking (Leon Li) over 9 years ago. Updated almost 8 years ago.

Status:
Rejected
Priority:
Normal
Assignee:
-
Target version:
ruby -v:
ruby 1.9.2p136 (2010-12-25 revision 30365) [x86_64-linux]
Backport:
[ruby-core:35017]

Description

=begin
My server crashes 0-4 times a day with segmentation faults.
The fault seems related to activerecord transaction, but it is not always a same spot, so the attached are just examples of some occurrence.

The application is a tcp server base on eventmachine.
Ruby compiled from rvm, ruby-1.9.2-p0 and ruby-1.9.2-p136
System info: Linux foo 2.6.31-gentoo-r6 #1 SMP Wed Dec 23 08:10:43 CST 2009 x86_64 Intel(R) Xeon(R) CPU E5520 @ 2.27GHz GenuineIntel GNU/Linux

Brief of logs

segfault1.ruby-1.9.2-p0.log
/usr/local/rvm/gems/ruby-1.9.2-p0/gems/mysql2-0.2.6/lib/active_record/connection_adapters/mysql2_adapter.rb:314: [BUG] Segmentation fault

segfault2.ruby-1.9.2-p0.log
/usr/local/rvm/gems/ruby-1.9.2-p0/gems/activemodel-3.0.3/lib/active_model/attribute_methods.rb:327: [BUG] Segmentation fault

segfault3.ruby-1.9.2-p0.log
/usr/local/rvm/gems/ruby-1.9.2-p0/gems/mysql2-0.2.6/lib/active_record/connection_adapters/mysql2_adapter.rb:314: [BUG] Bus Error

segfault1.ruby-1.9.2-p136.log
/usr/local/rvm/gems/ruby-1.9.2-p136/gems/mysql2-0.2.6/lib/active_record/connection_adapters/mysql2_adapter.rb:310: [BUG] Segmentation fault

segfault2.ruby-1.9.2-p136.log
/usr/local/rvm/gems/ruby-1.9.2-p136/gems/activerecord-3.0.3/lib/active_record/connection_adapters/abstract/connection_pool.rb:242: [BUG] Segmentation fault

segfault3.ruby-1.9.2-p136.log
/path_to_server/2011-01-30_231948/config/initializers/encoding.rb:12: [BUG] Segmentation fault

content of /path_to_server/2011-01-30_231948/config/initializers/encoding.rb

1 #workaround for "incompatible character encodings: UTF-8 and ASCII-8BIT"
2 #due to "测试" + [23423424234].pack("G")
3

4 unless SERVER_TYPE == 'proxy'
5 Encoding.default_external = Encoding::UTF_8 if RUBY_VERSION > "1.9"
6 if RUBY_VERSION > '1.9'
7 String.class_eval do
8 alias_method :quick_append, :<< unless method_defined? :quick_append
9 alias_method :quick_add, :+ unless method_defined? :quick_add
10 def <<(str)
11 str.force_encoding("UTF-8") unless str.frozen?
12 self.quick_append str
13 end
14 def +(str)
15 str.force_encoding("UTF-8") unless str.frozen?
16 self.quick_add str
17 end
18 end
19 StringIO.class_eval do
20 alias_method :quick_write, :write unless method_defined? :quick_write
21 def write(str)
22 str.force_encoding("UTF-8") unless (!str.is_a? String) || str.frozen?
23 self.quick_write str
24 end
25 end
26
27 else
28 String.class_eval do
29 def force_encoding(encode)
30 self
31 end
32 end
33 end
34 Fixnum.class_eval do
35 alias_method :quick_to_s, :to_s unless method_defined? :quick_to_s
36 def force_encoding(encode)
37 self
38 end
39 def to_s(base=10)
40 quick_to_s(base).force_encoding("UTF-8")
41 end
42 end
43 Array.class_eval do
44 alias_method :quick_pack, :pack unless method_defined? :quick_pack
45 def pack(*args)
46 quick_pack(*args).force_encoding("UTF-8")
47 end
48 end
49 end
=end


Files

segfault3.ruby-1.9.2-p136.log (12.7 KB) segfault3.ruby-1.9.2-p136.log qianthinking (Leon Li), 01/31/2011 06:34 PM
segfault1.ruby-1.9.2-p0.log (6.62 KB) segfault1.ruby-1.9.2-p0.log qianthinking (Leon Li), 01/31/2011 06:34 PM
segfault2.ruby-1.9.2-p0.log (8.21 KB) segfault2.ruby-1.9.2-p0.log qianthinking (Leon Li), 01/31/2011 06:34 PM
segfault3.ruby-1.9.2-p0.log (6.61 KB) segfault3.ruby-1.9.2-p0.log qianthinking (Leon Li), 01/31/2011 06:34 PM
segfault1.ruby-1.9.2-p136.log (4.54 KB) segfault1.ruby-1.9.2-p136.log qianthinking (Leon Li), 01/31/2011 06:34 PM
segfault2.ruby-1.9.2-p136.log (7 KB) segfault2.ruby-1.9.2-p136.log qianthinking (Leon Li), 01/31/2011 06:34 PM

Related issues

Related to Backport191 - Bug #2295: segmentation faultsClosedActions
#1

Updated by qianthinking (Leon Li) over 9 years ago

=begin
It seems related to #2295
=end

Updated by naruse (Yui NARUSE) over 9 years ago

  • Status changed from Open to Feedback

Would you show a small reproducible code?

Updated by mame (Yusuke Endoh) almost 8 years ago

  • Status changed from Feedback to Rejected

Sorry but I'm closing this ticket because it is too clueless.
I guess eventmachine is involved to this issue, but I can make no hypothesis any more.
Feel free to reopen this if you have any clue.

--
Yusuke Endoh mame@tsg.ne.jp

Also available in: Atom PDF