hanklords/flickraw

Segfault when Looping

parkr opened this issue · 4 comments

I get the following segfault message after running get.rb:

(eval):1: [BUG] Segmentation fault
ruby 1.9.2p0 (2010-08-18 revision 29036) [x86_64-darwin10.7.0]

-- control frame ----------
c:0032 p:0018 s:0127 b:0127 l:000126 d:000126 CLASS  (eval):1
c:0031 p:0008 s:0125 b:0125 l:000116 d:000124 EVAL   (eval):1
c:0030 p:---- s:0123 b:0123 l:000122 d:000122 FINISH
c:0029 p:---- s:0121 b:0121 l:000120 d:000120 CFUNC  :eval
c:0028 p:0046 s:0117 b:0117 l:000116 d:000116 METHOD /usr/local/lib/ruby/gems/1.9.1/gems/flickraw-0.9.4/lib/flickraw/response.rb:27
c:0027 p:---- s:0111 b:0111 l:000110 d:000110 FINISH
c:0026 p:---- s:0109 b:0109 l:000108 d:000108 CFUNC  :new
c:0025 p:0139 s:0104 b:0104 l:000103 d:000103 METHOD /usr/local/lib/ruby/gems/1.9.1/gems/flickraw-0.9.4/lib/flickraw/response.rb:11
c:0024 p:0021 s:0098 b:0098 l:000078 d:000097 BLOCK  /usr/local/lib/ruby/gems/1.9.1/gems/flickraw-0.9.4/lib/flickraw/response.rb:22
c:0023 p:---- s:0095 b:0095 l:000094 d:000094 FINISH
c:0022 p:---- s:0093 b:0093 l:000092 d:000092 CFUNC  :collect
c:0021 p:0089 s:0090 b:0088 l:000078 d:000087 BLOCK  /usr/local/lib/ruby/gems/1.9.1/gems/flickraw-0.9.4/lib/flickraw/response.rb:22
c:0020 p:---- s:0084 b:0084 l:000083 d:000083 FINISH
c:0019 p:---- s:0082 b:0082 l:000081 d:000081 CFUNC  :each
c:0018 p:0030 s:0079 b:0079 l:000078 d:000078 METHOD /usr/local/lib/ruby/gems/1.9.1/gems/flickraw-0.9.4/lib/flickraw/response.rb:19
c:0017 p:---- s:0073 b:0073 l:000072 d:000072 FINISH
c:0016 p:---- s:0071 b:0071 l:000070 d:000070 CFUNC  :new
c:0015 p:0139 s:0066 b:0066 l:000065 d:000065 METHOD /usr/local/lib/ruby/gems/1.9.1/gems/flickraw-0.9.4/lib/flickraw/response.rb:11
c:0014 p:0333 s:0060 b:0060 l:000059 d:000059 METHOD /usr/local/lib/ruby/gems/1.9.1/gems/flickraw-0.9.4/lib/flickraw/api.rb:137
c:0013 p:0096 s:0050 b:0050 l:000049 d:000049 METHOD /usr/local/lib/ruby/gems/1.9.1/gems/flickraw-0.9.4/lib/flickraw/api.rb:56
c:0012 p:0019 s:0042 b:0042 l:000041 d:000041 METHOD (eval):3
c:0011 p:0036 s:0037 b:0037 l:001be8 d:000036 BLOCK  get.rb:37
c:0010 p:0008 s:0032 b:0032 l:000023 d:000031 BLOCK  /usr/local/lib/ruby/gems/1.9.1/gems/flickraw-0.9.4/lib/flickraw/response.rb:41
c:0009 p:---- s:0029 b:0029 l:000028 d:000028 FINISH
c:0008 p:---- s:0027 b:0027 l:000026 d:000026 CFUNC  :each
c:0007 p:0013 s:0024 b:0024 l:000023 d:000023 METHOD /usr/local/lib/ruby/gems/1.9.1/gems/flickraw-0.9.4/lib/flickraw/response.rb:41
c:0006 p:0077 s:0021 b:0021 l:001be8 d:000020 BLOCK  get.rb:35
c:0005 p:---- s:0016 b:0016 l:000015 d:000015 FINISH
c:0004 p:---- s:0014 b:0014 l:000013 d:000013 CFUNC  :each
c:0003 p:0178 s:0011 b:0011 l:001be8 d:0005a0 EVAL   get.rb:30
c:0002 p:---- s:0004 b:0004 l:000003 d:000003 FINISH
c:0001 p:0000 s:0002 b:0002 l:001be8 d:001be8 TOP   
---------------------------
-- Ruby level backtrace information ----------------------------------------
get.rb:30:in `<main>'
get.rb:30:in `each'
get.rb:35:in `block in <main>'
/usr/local/lib/ruby/gems/1.9.1/gems/flickraw-0.9.4/lib/flickraw/response.rb:41:in `each'
/usr/local/lib/ruby/gems/1.9.1/gems/flickraw-0.9.4/lib/flickraw/response.rb:41:in `each'
/usr/local/lib/ruby/gems/1.9.1/gems/flickraw-0.9.4/lib/flickraw/response.rb:41:in `block in each'
get.rb:37:in `block (2 levels) in <main>'
(eval):3:in `getExif'
/usr/local/lib/ruby/gems/1.9.1/gems/flickraw-0.9.4/lib/flickraw/api.rb:56:in `call'
/usr/local/lib/ruby/gems/1.9.1/gems/flickraw-0.9.4/lib/flickraw/api.rb:137:in `process_response'
/usr/local/lib/ruby/gems/1.9.1/gems/flickraw-0.9.4/lib/flickraw/response.rb:11:in `build'
/usr/local/lib/ruby/gems/1.9.1/gems/flickraw-0.9.4/lib/flickraw/response.rb:11:in `new'
/usr/local/lib/ruby/gems/1.9.1/gems/flickraw-0.9.4/lib/flickraw/response.rb:19:in `initialize'
/usr/local/lib/ruby/gems/1.9.1/gems/flickraw-0.9.4/lib/flickraw/response.rb:19:in `each'
/usr/local/lib/ruby/gems/1.9.1/gems/flickraw-0.9.4/lib/flickraw/response.rb:22:in `block in initialize'
/usr/local/lib/ruby/gems/1.9.1/gems/flickraw-0.9.4/lib/flickraw/response.rb:22:in `collect'
/usr/local/lib/ruby/gems/1.9.1/gems/flickraw-0.9.4/lib/flickraw/response.rb:22:in `block (2 levels) in initialize'
/usr/local/lib/ruby/gems/1.9.1/gems/flickraw-0.9.4/lib/flickraw/response.rb:11:in `build'
/usr/local/lib/ruby/gems/1.9.1/gems/flickraw-0.9.4/lib/flickraw/response.rb:11:in `new'
/usr/local/lib/ruby/gems/1.9.1/gems/flickraw-0.9.4/lib/flickraw/response.rb:27:in `initialize'
/usr/local/lib/ruby/gems/1.9.1/gems/flickraw-0.9.4/lib/flickraw/response.rb:27:in `eval'
(eval):1:in `initialize'
(eval):1:in `singletonclass'

-- C level backtrace information -------------------------------------------

[NOTE]
You may have encountered a bug in the Ruby interpreter or extension libraries.
Bug reports are welcome.
For details: http://www.ruby-lang.org/bugreport.html

Abort trap: 6

Specifically, the block at get.rb:30

This one is funny :) a ruby script is not supposed to segfault, so there is a bug in the interpreter involved.
Can you try to isolate the photo which triggers this error ? (by adding p p.id at the beginning of the loop) And trying to execute flickr.photos.getExif on this specific photo. Also getting the json returned by flickr would be interesting.

It might be easier for you to grab my script :)

Also, it only happens on this script, when looping like I do (through the pages array) -- all of my other Ruby stuff works just fine. : /

@parkr downloaded and ran your script - no issues for me - using 1.9.3-p194 - sounds like its something with your installation maybe.