zhm / gdal-ruby

GDAL/OGR bindings for ruby
BSD 3-Clause "New" or "Revised" License
34 stars 10 forks source link

Ruby Bug on Create Layer with driver #9

Closed migtorres closed 8 years ago

migtorres commented 8 years ago

I am getting a bug every time I try to create a layer using the driver:

driver = Gdal::Ogr.get_driver_by_name('MEM')
ds = driver.create_data_source('')
ds.create_layer('poly',nil,Gdal::Ogr::WKBPOLYGON)

The error is the following:

[BUG] Segmentation fault at 0x00000000000198
ruby 2.1.1p76 (2014-02-24 revision 45161) [x86_64-linux]

-- Control frame information -----------------------------------------------
c:0019 p:---- s:0076 e:000075 CFUNC  :create_layer
c:0018 p:0009 s:0072 e:000071 EVAL   (irb):20 [FINISH]
c:0017 p:---- s:0070 e:000069 CFUNC  :eval
c:0016 p:0024 s:0063 e:000062 METHOD /home/miguelt/.rvm/rubies/ruby-2.1.1/lib/ruby/2.1.0/irb/workspace.rb:86
c:0015 p:0025 s:0056 e:000054 METHOD /home/miguelt/.rvm/rubies/ruby-2.1.1/lib/ruby/2.1.0/irb/context.rb:380
c:0014 p:0022 s:0050 e:000049 BLOCK  /home/miguelt/.rvm/rubies/ruby-2.1.1/lib/ruby/2.1.0/irb.rb:492
c:0013 p:0040 s:0042 e:000041 METHOD /home/miguelt/.rvm/rubies/ruby-2.1.1/lib/ruby/2.1.0/irb.rb:624
c:0012 p:0009 s:0037 e:000036 BLOCK  /home/miguelt/.rvm/rubies/ruby-2.1.1/lib/ruby/2.1.0/irb.rb:489
c:0011 p:0118 s:0033 e:000032 BLOCK  /home/miguelt/.rvm/rubies/ruby-2.1.1/lib/ruby/2.1.0/irb/ruby-lex.rb:247 [FINISH]
c:0010 p:---- s:0030 e:000029 CFUNC  :loop
c:0009 p:0007 s:0027 e:000026 BLOCK  /home/miguelt/.rvm/rubies/ruby-2.1.1/lib/ruby/2.1.0/irb/ruby-lex.rb:233 [FINISH]
c:0008 p:---- s:0025 e:000024 CFUNC  :catch
c:0007 p:0015 s:0021 e:000020 METHOD /home/miguelt/.rvm/rubies/ruby-2.1.1/lib/ruby/2.1.0/irb/ruby-lex.rb:232
c:0006 p:0030 s:0018 E:000818 METHOD /home/miguelt/.rvm/rubies/ruby-2.1.1/lib/ruby/2.1.0/irb.rb:488
c:0005 p:0008 s:0015 e:000014 BLOCK  /home/miguelt/.rvm/rubies/ruby-2.1.1/lib/ruby/2.1.0/irb.rb:397 [FINISH]
c:0004 p:---- s:0013 e:000012 CFUNC  :catch
c:0003 p:0143 s:0009 E:0013c8 METHOD /home/miguelt/.rvm/rubies/ruby-2.1.1/lib/ruby/2.1.0/irb.rb:396
c:0002 p:0021 s:0004 E:000b08 EVAL   /home/miguelt/.rvm/rubies/ruby-2.1.1/bin/irb:11 [FINISH]
c:0001 p:0000 s:0002 E:002108 TOP    [FINISH]

-- Ruby level backtrace information ----------------------------------------
/home/miguelt/.rvm/rubies/ruby-2.1.1/bin/irb:11:in `<main>'
/home/miguelt/.rvm/rubies/ruby-2.1.1/lib/ruby/2.1.0/irb.rb:396:in `start'
/home/miguelt/.rvm/rubies/ruby-2.1.1/lib/ruby/2.1.0/irb.rb:396:in `catch'
/home/miguelt/.rvm/rubies/ruby-2.1.1/lib/ruby/2.1.0/irb.rb:397:in `block in start'
/home/miguelt/.rvm/rubies/ruby-2.1.1/lib/ruby/2.1.0/irb.rb:488:in `eval_input'
/home/miguelt/.rvm/rubies/ruby-2.1.1/lib/ruby/2.1.0/irb/ruby-lex.rb:232:in `each_top_level_statement'
/home/miguelt/.rvm/rubies/ruby-2.1.1/lib/ruby/2.1.0/irb/ruby-lex.rb:232:in `catch'
/home/miguelt/.rvm/rubies/ruby-2.1.1/lib/ruby/2.1.0/irb/ruby-lex.rb:233:in `block in each_top_level_statement'
/home/miguelt/.rvm/rubies/ruby-2.1.1/lib/ruby/2.1.0/irb/ruby-lex.rb:233:in `loop'
/home/miguelt/.rvm/rubies/ruby-2.1.1/lib/ruby/2.1.0/irb/ruby-lex.rb:247:in `block (2 levels) in each_top_level_statement'
/home/miguelt/.rvm/rubies/ruby-2.1.1/lib/ruby/2.1.0/irb.rb:489:in `block in eval_input'
/home/miguelt/.rvm/rubies/ruby-2.1.1/lib/ruby/2.1.0/irb.rb:624:in `signal_status'
/home/miguelt/.rvm/rubies/ruby-2.1.1/lib/ruby/2.1.0/irb.rb:492:in `block (2 levels) in eval_input'
/home/miguelt/.rvm/rubies/ruby-2.1.1/lib/ruby/2.1.0/irb/context.rb:380:in `evaluate'
/home/miguelt/.rvm/rubies/ruby-2.1.1/lib/ruby/2.1.0/irb/workspace.rb:86:in `evaluate'
/home/miguelt/.rvm/rubies/ruby-2.1.1/lib/ruby/2.1.0/irb/workspace.rb:86:in `eval'
(irb):20:in `irb_binding'
(irb):20:in `create_layer'
zhm commented 8 years ago

I can't reproduce this. It works for me on OSX and Ubuntu 14.04 with ruby 2.2.2p95:

irb(main):003:0> driver = Gdal::Ogr.get_driver_by_name('Memory')
irb(main):004:0> ds = driver.create_data_source('')
irb(main):005:0> ds.create_layer('poly',nil,Gdal::Ogr::WKBPOLYGON)

If you could provide more info on the exact version numbers/OS of everything it might help.