[Nokogiri-talk] Segmentation fault

Julien Genestoux julien.genestoux at gmail.com
Mon Mar 23 18:22:46 EDT 2009


Hey Aaron,

Thanks for the very quick fix!! It actually solved the problem... but I am
now facing another one!
I am using the Feedzirra gem to parse feeds that I find online.
Unfortunately (but not suprisingly), most of them are not valid, which is
probably why we're having problems here.

Unfortunately it seems that gdb is not as verbose as for the other error :

Program received signal EXC_BAD_ACCESS, Could not access memory.
Reason: KERN_INVALID_ADDRESS at address: 0x024e5000
0xffff07d7 in ?? ()

And Mac OS X's error console :

Process:         ruby [3873]
Path:            /opt/local/bin/ruby
Identifier:      ruby
Version:         ??? (???)
Code Type:       X86 (Native)
Parent Process:  bash [3317]

Date/Time:       2009-03-23 15:21:57.650 -0700
OS Version:      Mac OS X 10.5.6 (9G55)
Report Version:  6

Exception Type:  EXC_BAD_ACCESS (SIGABRT)
Exception Codes: KERN_PROTECTION_FAILURE at 0x000000000000000c
Crashed Thread:  0

Thread 0 Crashed:
0   libSystem.B.dylib                 0x92a0de42 __kill + 10
1   libSystem.B.dylib                 0x92a8023a raise + 26
2   libSystem.B.dylib                 0x92a8c679 abort + 73
3   libruby.dylib                     0x000fdfbe rb_bug + 238
4   libruby.dylib                     0x00170966 sigbus + 54
5   libSystem.B.dylib                 0x92a0c2bb _sigtramp + 43
6   ???                               0xffffffff 0 + 4294967295
7   libruby.dylib                     0x001022b0 call_cfunc + 768
8   libruby.dylib                     0x0010c502 rb_call0 + 706
9   libruby.dylib                     0x0010d10c rb_call + 284
10  libruby.dylib                     0x0010aa47 rb_eval + 9047
11  libruby.dylib                     0x0010a75a rb_eval + 8298
12  libruby.dylib                     0x0010cda0 rb_call0 + 2912
13  libruby.dylib                     0x0010d10c rb_call + 284
14  libruby.dylib                     0x00109a61 rb_eval + 4977
15  libruby.dylib                     0x00110d11 rb_yield_0 + 1985
16  libruby.dylib                     0x00111e71 rb_yield + 33
17  libruby.dylib                     0x000e9f7f rb_ary_each + 63
18  libruby.dylib                     0x0010c502 rb_call0 + 706
19  libruby.dylib                     0x0010d10c rb_call + 284
20  libruby.dylib                     0x0010aa47 rb_eval + 9047
21  libruby.dylib                     0x0010be41 rb_eval + 14161
22  libruby.dylib                     0x0010cda0 rb_call0 + 2912
23  libruby.dylib                     0x0010d10c rb_call + 284
24  libruby.dylib                     0x0010aa47 rb_eval + 9047
25  libruby.dylib                     0x00110d11 rb_yield_0 + 1985
26  libruby.dylib                     0x001114e8 proc_invoke + 1016
27  libruby.dylib                     0x0010c502 rb_call0 + 706
28  libruby.dylib                     0x0010d10c rb_call + 284
29  libruby.dylib                     0x0010aa47 rb_eval + 9047
30  libruby.dylib                     0x0010cda0 rb_call0 + 2912
31  libruby.dylib                     0x00117a98 method_call + 136
32  libruby.dylib                     0x001022f5 call_cfunc + 837
33  libruby.dylib                     0x0010c502 rb_call0 + 706
34  libruby.dylib                     0x0010d10c rb_call + 284
35  libruby.dylib                     0x0010aa47 rb_eval + 9047
36  libruby.dylib                     0x00110d11 rb_yield_0 + 1985
37  libruby.dylib                     0x001114e8 proc_invoke + 1016
38  libruby.dylib                     0x0010c502 rb_call0 + 706
39  libruby.dylib                     0x0010d10c rb_call + 284
40  libruby.dylib                     0x0010de6d vafuncall + 141
41  libruby.dylib                     0x0010dfc1 rb_funcall + 33
42  curb_core.bundle                  0x01308956 rb_curl_multi_read_info +
438
43  curb_core.bundle                  0x01308a28 ruby_curl_multi_add + 200
44  libruby.dylib                     0x0010c502 rb_call0 + 706
45  libruby.dylib                     0x0010d10c rb_call + 284
46  libruby.dylib                     0x0010aa47 rb_eval + 9047
47  libruby.dylib                     0x0010cda0 rb_call0 + 2912
48  libruby.dylib                     0x0010d10c rb_call + 284
49  libruby.dylib                     0x00109a61 rb_eval + 4977
50  libruby.dylib                     0x00110d11 rb_yield_0 + 1985
51  libruby.dylib                     0x001114e8 proc_invoke + 1016
52  libruby.dylib                     0x0010c502 rb_call0 + 706
53  libruby.dylib                     0x0010d10c rb_call + 284
54  libruby.dylib                     0x0010de6d vafuncall + 141
55  libruby.dylib                     0x0010dfc1 rb_funcall + 33
56  curb_core.bundle                  0x01308956 rb_curl_multi_read_info +
438
57  curb_core.bundle                  0x01308a28 ruby_curl_multi_add + 200
58  libruby.dylib                     0x0010c502 rb_call0 + 706
59  libruby.dylib                     0x0010d10c rb_call + 284
60  libruby.dylib                     0x0010aa47 rb_eval + 9047
61  libruby.dylib                     0x0010cda0 rb_call0 + 2912
62  libruby.dylib                     0x0010d10c rb_call + 284
63  libruby.dylib                     0x00109a61 rb_eval + 4977
64  libruby.dylib                     0x00110d11 rb_yield_0 + 1985
65  libruby.dylib                     0x001114e8 proc_invoke + 1016
66  libruby.dylib                     0x0010c502 rb_call0 + 706
67  libruby.dylib                     0x0010d10c rb_call + 284
68  libruby.dylib                     0x0010de6d vafuncall + 141
69  libruby.dylib                     0x0010dfc1 rb_funcall + 33
70  curb_core.bundle                  0x013088b3 rb_curl_multi_read_info +
275
71  curb_core.bundle                  0x01308af5 ruby_curl_multi_perform +
85
72  libruby.dylib                     0x0010c502 rb_call0 + 706
73  libruby.dylib                     0x0010d10c rb_call + 284
74  libruby.dylib                     0x0010aa47 rb_eval + 9047
75  libruby.dylib                     0x0010cda0 rb_call0 + 2912
76  libruby.dylib                     0x0010d10c rb_call + 284
77  libruby.dylib                     0x0010aa47 rb_eval + 9047
78  libruby.dylib                     0x0010be41 rb_eval + 14161
79  libruby.dylib                     0x0010cda0 rb_call0 + 2912
80  libruby.dylib                     0x0010d10c rb_call + 284
81  libruby.dylib                     0x0010abf8 rb_eval + 9480
82  libruby.dylib                     0x0010adc6 rb_eval + 9942
83  libruby.dylib                     0x0010b63b rb_eval + 12107
84  libruby.dylib                     0x00108e03 rb_eval + 1811
85  libruby.dylib                     0x00110d11 rb_yield_0 + 1985
86  libruby.dylib                     0x00113cb5 rb_thread_start_0 + 1125
87  libruby.dylib                     0x0010c502 rb_call0 + 706
88  libruby.dylib                     0x0010d10c rb_call + 284
89  libruby.dylib                     0x0010dba2 rb_obj_call_init + 82
90  libruby.dylib                     0x0010dbf8 rb_thread_s_new + 56
91  libruby.dylib                     0x001022f5 call_cfunc + 837
92  libruby.dylib                     0x0010c502 rb_call0 + 706
93  libruby.dylib                     0x0010d10c rb_call + 284
94  libruby.dylib                     0x0010aa47 rb_eval + 9047
95  libruby.dylib                     0x0010be41 rb_eval + 14161
96  libruby.dylib                     0x0010938a rb_eval + 3226
97  libruby.dylib                     0x00110d11 rb_yield_0 + 1985
98  libruby.dylib                     0x00111e71 rb_yield + 33
99  libruby.dylib                     0x00136d9f int_dotimes + 239
100 libruby.dylib                     0x0010c502 rb_call0 + 706
101 libruby.dylib                     0x0010d10c rb_call + 284
102 libruby.dylib                     0x0010aa47 rb_eval + 9047
103 libruby.dylib                     0x0010be41 rb_eval + 14161
104 libruby.dylib                     0x0011ac57 ruby_exec_internal + 151
105 libruby.dylib                     0x0011ac96 ruby_exec + 22
106 libruby.dylib                     0x0011acca ruby_run + 42
107 ruby                              0x00001ffd 0x1000 + 4093
108 ruby                              0x00001f96 start + 54

Thread 1:
0   libSystem.B.dylib                 0x929a73ae __semwait_signal + 10
1   libruby.dylib                     0x0010620a thread_timer + 90
2   libSystem.B.dylib                 0x929d1095 _pthread_start + 321
3   libSystem.B.dylib                 0x929d0f52 thread_start + 34

Thread 0 crashed with X86 Thread State (32-bit):
  eax: 0x00000000  ebx: 0x92a8c639  ecx: 0xbfff712c  edx: 0x92a0de42
  edi: 0xa0295690  esi: 0x0000001a  ebp: 0xbfff7148  esp: 0xbfff712c
   ss: 0x0000001f  efl: 0x00000286  eip: 0x92a0de42   cs: 0x00000007
   ds: 0x0000001f   es: 0x0000001f   fs: 0x00000000   gs: 0x00000037
  cr2: 0x02b32000

Binary Images:
    0x1000 -     0x1ffc +ruby ??? (???) <3632364748fc11d634bbcb0d42f61b4d>
/opt/local/bin/ruby
   0x39000 -    0x3bffe +thread.bundle ??? (???)
<f64a6726fe4ca8df92ac362f74b6d261>
/opt/local/lib/ruby/1.8/i686-darwin9/thread.bundle
   0x98000 -    0x9affe +stringio.bundle ??? (???)
<a959f7500cd21205daa11abf57b69cc2>
/opt/local/lib/ruby/1.8/i686-darwin9/stringio.bundle
   0x9e000 -    0x9eff4 +etc.bundle ??? (???)
<a1419cdf11e6f54b3407cee79bd3ceed>
/opt/local/lib/ruby/1.8/i686-darwin9/etc.bundle
   0xa2000 -    0xaafff +bigdecimal.bundle ??? (???)
<517e35a65722aa8c9e01561cc366f45b>
/opt/local/lib/ruby/1.8/i686-darwin9/bigdecimal.bundle
   0xaf000 -    0xb0ff8 +iconv.bundle ??? (???)
<2f591c928227d136bd05220d8f26d991>
/opt/local/lib/ruby/1.8/i686-darwin9/iconv.bundle
   0xb4000 -    0xb4ffd +sha1.bundle ??? (???)
<62d5bf5996732b635e910e207ae9df3d>
/opt/local/lib/ruby/1.8/i686-darwin9/digest/sha1.bundle
   0xe8000 -   0x19ffe3 +libruby.dylib ??? (???)
<4edc293e2bb9c2bd178bce192e954cf1> /opt/local/lib/libruby.dylib
  0x1d0000 -   0x1e5ff7 +syck.bundle ??? (???)
<778f9946b43e3ab04f2b6b9874485442>
/opt/local/lib/ruby/1.8/i686-darwin9/syck.bundle
  0x1ec000 -   0x1eeffd +strscan.bundle ??? (???)
<6b210a99f3a9b0b38e3ed3589f6e8e1f>
/opt/local/lib/ruby/1.8/i686-darwin9/strscan.bundle
  0x1f2000 -   0x1f3ffb +cparse.bundle ??? (???)
<734a80ecc33d229453d7d494d7b47908>
/opt/local/lib/ruby/1.8/i686-darwin9/racc/cparse.bundle
  0x1f7000 -   0x1f8ff5 +digest.bundle ??? (???)
<bfed07ba3749594e5c2afe3198cabece>
/opt/local/lib/ruby/1.8/i686-darwin9/digest.bundle
  0x1fc000 -   0x1fcff4 +fcntl.bundle ??? (???)
<dee0e4438bcd79c31bba1ede4f0d1ce6>
/opt/local/lib/ruby/1.8/i686-darwin9/fcntl.bundle
  0x39f000 -   0x3cdfe6 +nkf.bundle ??? (???)
<c6cdc50a53fb9f4c1751b92b40301b02>
/opt/local/lib/ruby/1.8/i686-darwin9/nkf.bundle
  0x3da000 -   0x3eaffd +libz.1.dylib ??? (???)
<25163f077baad0c860ebf6152d7c4183> /opt/local/lib/libz.1.dylib
  0x3ef000 -   0x3f6ff4 +native.bundle ??? (???)
<ad712e701b3a567e8a44ce2573120f0d>
/opt/local/lib/ruby/gems/1.8/gems/nokogiri-1.2.3/lib/nokogiri/native.bundle
  0x61d000 -   0x714ff0 +libiconv.2.dylib ??? (???)
<7e3c963d3ead0a1a598d93bdc1875177> /opt/local/lib/libiconv.2.dylib
  0x721000 -   0x73aff6 +rubyeventmachine.bundle ??? (???)
<18002433c02e462428775c6386ca8ac5>
/opt/local/lib/ruby/gems/1.8/gems/eventmachine-0.12.6/lib/rubyeventmachine.bundle
  0x74a000 -   0x77ffeb +libssl.0.9.8.dylib ??? (???)
<42ce87ce153df90420b3f94faf854fda> /opt/local/lib/libssl.0.9.8.dylib
  0x792000 -   0x79cfff  libexslt.0.dylib ??? (???)
<2d56b8c39848d8a524cb0ae8d6299f19> /usr/lib/libexslt.0.dylib
  0x7a2000 -   0x7a9ff1 +socket.bundle ??? (???)
<4b78fb4cf8227e2ff738701f3a3b28af>
/opt/local/lib/ruby/1.8/i686-darwin9/socket.bundle
  0x7ae000 -   0x7ddff8 +openssl.bundle ??? (???)
<cb4e5ca263c0e574eb8d94f60842a286>
/opt/local/lib/ruby/1.8/i686-darwin9/openssl.bundle
  0x7ef000 -   0x7f4ffc +zlib.bundle ??? (???)
<a8dd4c827873a020d2d9cb2d49b7745f>
/opt/local/lib/ruby/1.8/i686-darwin9/zlib.bundle
 0x1301000 -  0x130aff9 +curb_core.bundle ??? (???)
<6b6ce54bb3e6a2832ae756acb9cf8406>
/opt/local/lib/ruby/gems/1.8/gems/curb-0.3.2/lib/curb_core.bundle
 0x1311000 -  0x1347fef +libcurl.4.dylib ??? (???)
<89d0898454fc790681bb45feb9cf1393> /usr/local/lib/libcurl.4.dylib
 0x1368000 -  0x1378ff0 +mysql.bundle ??? (???)
<2f22d15ee49761774a04b3c26f929af1>
/opt/local/lib/ruby/vendor_ruby/1.8/i686-darwin9/mysql.bundle
 0x1700000 -  0x1801fe7 +libcrypto.0.9.8.dylib ??? (???)
<71abfc53b8c705ef97e0088d8015e067> /opt/local/lib/libcrypto.0.9.8.dylib
 0x2000000 -  0x2039fef +libmysqlclient.15.dylib ??? (???)
<23a41a96b11b62b2318fe08da6b99c01>
/opt/local/lib/mysql5/mysql/libmysqlclient.15.dylib
0x8fe00000 - 0x8fe2db43  dyld 97.1 (???) <100d362e03410f181a34e04e94189ae5>
/usr/lib/dyld
0x9162d000 - 0x91765ff7  libicucore.A.dylib ??? (???)
<18098dcf431603fe47ee027a60006c85> /usr/lib/libicucore.A.dylib
0x92692000 - 0x92696fff  libmathCommon.A.dylib ??? (???)
/usr/lib/system/libmathCommon.A.dylib
0x928ad000 - 0x9298eff7  libxml2.2.dylib ??? (???)
<306036e0070330e35045650e6d9f0d05> /usr/lib/libxml2.2.dylib
0x9299f000 - 0x92b06ff3  libSystem.B.dylib ??? (???)
<d68880dfb1f8becdbdac6928db1510fb> /usr/lib/libSystem.B.dylib
0x930e0000 - 0x93112fff  com.apple.LDAPFramework 1.4.5 (110)
<e9e44dec1fd4b049276257c7cc97b423>
/System/Library/Frameworks/LDAP.framework/Versions/A/LDAP
0x937e6000 - 0x93898ffb  libcrypto.0.9.7.dylib ??? (???)
<75b80bff0d5cfaf10b6b6fe982da3578> /usr/lib/libcrypto.0.9.7.dylib
0x93ccd000 - 0x93cf8fe7  libauto.dylib ??? (???)
<2e44c523b851e8e25f05d13a48070a58> /usr/lib/libauto.dylib
0x9418a000 - 0x94198ffd  libz.1.dylib ??? (???)
<a98b3b221a72b54faf73ded3dd7000e5> /usr/lib/libz.1.dylib
0x953f9000 - 0x95456ffb  libstdc++.6.dylib ??? (???)
<f75e5133d72769de5ce6c06153fc65f6> /usr/lib/libstdc++.6.dylib
0x95910000 - 0x9591ffff  libsasl2.2.dylib ??? (???)
<bb7971ca2f609c070f87786a93d1041e> /usr/lib/libsasl2.2.dylib
0x95960000 - 0x95984feb  libssl.0.9.7.dylib ??? (???)
<d04156c610530ca44979c899834fc24d> /usr/lib/libssl.0.9.7.dylib
0x9670f000 - 0x9672dfff  libresolv.9.dylib ??? (???)
<9ed809256ce8913cddc3269c2e364654> /usr/lib/libresolv.9.dylib
0x96954000 - 0x96a34fff  libobjc.A.dylib ??? (???)
<400e943f9e8a678eea22a1d1205490ee> /usr/lib/libobjc.A.dylib
0x96bb3000 - 0x96bbafe9  libgcc_s.1.dylib ??? (???)
<e280ddf3f5fb3049e674edcb109f389a> /usr/lib/libgcc_s.1.dylib
0x96bfb000 - 0x96c1ffff  libxslt.1.dylib ??? (???)
<0a9778d6368ae668826f446878deb99b> /usr/lib/libxslt.1.dylib
0xfffe8000 - 0xfffebfff  libobjc.A.dylib ??? (???) /usr/lib/libobjc.A.dylib
0xffff0000 - 0xffff1780  libSystem.B.dylib ??? (???)
/usr/lib/libSystem.B.dylib




--
Julien Genestoux, Notifixio.us
http://twitter.com/julien51
http://www.ouvre-boite.com
http://blog.notifixio.us

+1 (415) 254 7340
+33 (0)9 70 44 76 29


On Mon, Mar 23, 2009 at 1:54 PM, Aaron Patterson
<aaron.patterson at gmail.com>wrote:

> 2009/3/23 Julien Genestoux <julien.genestoux at gmail.com>:
> > Hey,
> >
> > Still playing with Nokogiri... I use to have Segmentation fault pretty
> often
> > on my Mac. I assumed this was "local", but as I run the same code on an
> > Ubuntu box I get the seg fault as well... So I am submitting it so that
> you
> > can look into it.
> >
> > I am really not a C guy, so here is what I could get (please tell me if
> you
> > need anything and how I can provide it!) :
>
> This was very helpful.  I reproduced the problem and have posted a fix
> here:
>
>
> http://github.com/tenderlove/nokogiri/commit/a953b2c7cf3872d613234e0ccdde8c2edd063406
>
> Can you provide a sample of what you were doing to make the code
> break?  It looks to me like you were passing a Node in to the CDATA
> constructor when it wants Document.
>
> --
> Aaron Patterson
> http://tenderlovemaking.com/
> _______________________________________________
> Nokogiri-talk mailing list
> Nokogiri-talk at rubyforge.org
> http://rubyforge.org/mailman/listinfo/nokogiri-talk
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://rubyforge.org/pipermail/nokogiri-talk/attachments/20090323/50f22211/attachment-0001.html>


More information about the Nokogiri-talk mailing list