Giter VIP home page Giter VIP logo

Comments (3)

svilenkov avatar svilenkov commented on June 12, 2024 1

Hey @mrkn

When I run your command in IRB console that uses ruby 2.4.1p111 (2017-03-22 revision 58053) [x86_64-linux]

I get the following segmentation fault

root@97b43330976b:/app# irb
irb(main):001:0> require 'pycall'
=> true
irb(main):002:0> po = PyCall.eval('object()')
=> <object object at 0x7efdf0298080>
irb(main):003:0> po.__pyptr__.__ob_refcnt__
=> 2
irb(main):004:0> PyCall::PyPtr.decref(po.__pyptr__)
/usr/local/lib/ruby/2.4.0/irb/inspector.rb:109: [BUG] Segmentation fault at 0x00000000000008
ruby 2.4.1p111 (2017-03-22 revision 58053) [x86_64-linux]

-- Control frame information -----------------------------------------------
c:0020 p:---- s:0092 e:000091 CFUNC  :inspect
c:0019 p:0011 s:0088 e:000087 BLOCK  /usr/local/lib/ruby/2.4.0/irb/inspector.rb:109 [FINISH]
c:0018 p:0012 s:0084 e:000083 METHOD /usr/local/lib/ruby/2.4.0/irb/inspector.rb:102
c:0017 p:0013 s:0079 e:000078 METHOD /usr/local/lib/ruby/2.4.0/irb/context.rb:385
c:0016 p:0017 s:0075 e:000072 METHOD /usr/local/lib/ruby/2.4.0/irb.rb:665
c:0015 p:0039 s:0069 e:000068 BLOCK  /usr/local/lib/ruby/2.4.0/irb.rb:494
c:0014 p:0041 s:0060 e:000059 METHOD /usr/local/lib/ruby/2.4.0/irb.rb:627
c:0013 p:0011 s:0054 e:000053 BLOCK  /usr/local/lib/ruby/2.4.0/irb.rb:490
c:0012 p:0128 s:0049 e:000048 BLOCK  /usr/local/lib/ruby/2.4.0/irb/ruby-lex.rb:246 [FINISH]
c:0011 p:---- s:0045 e:000044 CFUNC  :loop
c:0010 p:0009 s:0041 e:000040 BLOCK  /usr/local/lib/ruby/2.4.0/irb/ruby-lex.rb:232 [FINISH]
c:0009 p:---- s:0038 e:000037 CFUNC  :catch
c:0008 p:0018 s:0033 e:000032 METHOD /usr/local/lib/ruby/2.4.0/irb/ruby-lex.rb:231
c:0007 p:0037 s:0029 E:0009e0 METHOD /usr/local/lib/ruby/2.4.0/irb.rb:489
c:0006 p:0008 s:0025 e:000024 BLOCK  /usr/local/lib/ruby/2.4.0/irb.rb:430 [FINISH]
c:0005 p:---- s:0022 e:000021 CFUNC  :catch
c:0004 p:0075 s:0017 E:000568 METHOD /usr/local/lib/ruby/2.4.0/irb.rb:429
c:0003 p:0118 s:0012 e:000011 METHOD /usr/local/lib/ruby/2.4.0/irb.rb:385
c:0002 p:0023 s:0006 e:000005 EVAL   /usr/local/bin/irb:11 [FINISH]
c:0001 p:0000 s:0003 E:0019d0 (none) [FINISH]

-- Ruby level backtrace information ----------------------------------------
/usr/local/bin/irb:11:in `<main>'
/usr/local/lib/ruby/2.4.0/irb.rb:385:in `start'
/usr/local/lib/ruby/2.4.0/irb.rb:429:in `run'
/usr/local/lib/ruby/2.4.0/irb.rb:429:in `catch'
/usr/local/lib/ruby/2.4.0/irb.rb:430:in `block in run'
/usr/local/lib/ruby/2.4.0/irb.rb:489:in `eval_input'
/usr/local/lib/ruby/2.4.0/irb/ruby-lex.rb:231:in `each_top_level_statement'
/usr/local/lib/ruby/2.4.0/irb/ruby-lex.rb:231:in `catch'
/usr/local/lib/ruby/2.4.0/irb/ruby-lex.rb:232:in `block in each_top_level_statement'
/usr/local/lib/ruby/2.4.0/irb/ruby-lex.rb:232:in `loop'
/usr/local/lib/ruby/2.4.0/irb/ruby-lex.rb:246:in `block (2 levels) in each_top_level_statement'
/usr/local/lib/ruby/2.4.0/irb.rb:490:in `block in eval_input'
/usr/local/lib/ruby/2.4.0/irb.rb:627:in `signal_status'
/usr/local/lib/ruby/2.4.0/irb.rb:494:in `block (2 levels) in eval_input'
/usr/local/lib/ruby/2.4.0/irb.rb:665:in `output_value'
/usr/local/lib/ruby/2.4.0/irb/context.rb:385:in `inspect_last_value'
/usr/local/lib/ruby/2.4.0/irb/inspector.rb:102:in `inspect_value'
/usr/local/lib/ruby/2.4.0/irb/inspector.rb:109:in `block in <module:IRB>'
/usr/local/lib/ruby/2.4.0/irb/inspector.rb:109:in `inspect'

-- Machine register context ------------------------------------------------
 RIP: 0x00007efdf034a1bf RBP: 0x0000000000000000 RSP: 0x00007fff90f0a530
 RAX: 0x0000000002215e10 RBX: 0x0000000002222728 RCX: 0x000000000224d680
 RDX: 0x0000007274507950 RDI: 0x0000000001cd7e30 RSI: 0x0000000000000005
  R8: 0x00007efdf34e22f0  R9: 0x0000000001c77ac0 R10: 0x00007fff90f0a2f0
 R11: 0x00007efdf30bb480 R12: 0x0000000002222728 R13: 0x0000000000000000
 R14: 0x0000000002079950 R15: 0x0000000002222728 EFL: 0x0000000000010202

-- C level backtrace information -------------------------------------------
/usr/local/lib/libruby.so.2.4(rb_vm_bugreport+0x4f3) [0x7efdf30e2683] vm_dump.c:684
/usr/local/lib/libruby.so.2.4(rb_bug_context+0xd4) [0x7efdf2f613a4] error.c:506
/usr/local/lib/libruby.so.2.4(sigsegv+0x3e) [0x7efdf305605e] signal.c:907
/lib/x86_64-linux-gnu/libpthread.so.0 [0x7efdf2cad890]
/usr/local/bundle/gems/pycall-1.0.3/lib/pycall.so(pycall_pyptr_inspect+0x5f) [0x7efdf034a1bf] pycall.c:358
/usr/local/lib/libruby.so.2.4(vm_call_cfunc+0xef) [0x7efdf30c4f3f] vm_insnhelper.c:1752
/usr/local/lib/libruby.so.2.4(vm_call_method+0xe3) [0x7efdf30d6b13] vm_insnhelper.c:2292
/usr/local/lib/libruby.so.2.4(vm_exec_core+0x1610) [0x7efdf30ce3d0] insns.def:1066
/usr/local/lib/libruby.so.2.4(vm_exec+0x8b) [0x7efdf30d342b] vm.c:1727
/usr/local/lib/libruby.so.2.4(invoke_iseq_block_from_c+0x516) [0x7efdf30d4206] vm.c:969
/usr/local/lib/libruby.so.2.4(invoke_block_from_c_unsplattable+0xe0) [0x7efdf30d4410] vm.c:1101
/usr/local/lib/libruby.so.2.4(vm_invoke_proc+0xd3) [0x7efdf30d4583] vm.c:1126
/usr/local/lib/libruby.so.2.4(vm_call_opt_call+0xa9) [0x7efdf30d62a9] vm_insnhelper.c:1979
/usr/local/lib/libruby.so.2.4(vm_exec_core+0x1610) [0x7efdf30ce3d0] insns.def:1066
/usr/local/lib/libruby.so.2.4(vm_exec+0x8b) [0x7efdf30d342b] vm.c:1727
/usr/local/lib/libruby.so.2.4(invoke_iseq_block_from_c+0x516) [0x7efdf30d4206] vm.c:969
/usr/local/lib/libruby.so.2.4(loop_i+0xd0) [0x7efdf30d50a0] vm.c:1032
/usr/local/lib/libruby.so.2.4(rb_rescue2+0xc7) [0x7efdf2f69e17] eval.c:838
/usr/local/lib/libruby.so.2.4(vm_call_cfunc+0xef) [0x7efdf30c4f3f] vm_insnhelper.c:1752
/usr/local/lib/libruby.so.2.4(vm_call_method+0xe3) [0x7efdf30d6b13] vm_insnhelper.c:2292
/usr/local/lib/libruby.so.2.4(vm_exec_core+0x113f) [0x7efdf30cdeff] insns.def:967
/usr/local/lib/libruby.so.2.4(vm_exec+0x8b) [0x7efdf30d342b] vm.c:1727
/usr/local/lib/libruby.so.2.4(invoke_iseq_block_from_c+0x516) [0x7efdf30d4206] vm.c:969
/usr/local/lib/libruby.so.2.4(catch_i+0xb4) [0x7efdf30d4cc4] vm.c:1032
/usr/local/lib/libruby.so.2.4(vm_catch_protect+0x9c) [0x7efdf30c72cc] vm_eval.c:2043
/usr/local/lib/libruby.so.2.4(rb_catch_obj+0x19) [0x7efdf30c7399] vm_eval.c:2017
/usr/local/lib/libruby.so.2.4(vm_call_cfunc+0xef) [0x7efdf30c4f3f] vm_insnhelper.c:1752
/usr/local/lib/libruby.so.2.4(vm_call_method+0xe3) [0x7efdf30d6b13] vm_insnhelper.c:2292
/usr/local/lib/libruby.so.2.4(vm_exec_core+0x113f) [0x7efdf30cdeff] insns.def:967
/usr/local/lib/libruby.so.2.4(vm_exec+0x8b) [0x7efdf30d342b] vm.c:1727
/usr/local/lib/libruby.so.2.4(invoke_iseq_block_from_c+0x516) [0x7efdf30d4206] vm.c:969
/usr/local/lib/libruby.so.2.4(catch_i+0xb4) [0x7efdf30d4cc4] vm.c:1032
/usr/local/lib/libruby.so.2.4(vm_catch_protect+0x9c) [0x7efdf30c72cc] vm_eval.c:2043
/usr/local/lib/libruby.so.2.4(rb_catch_obj+0x19) [0x7efdf30c7399] vm_eval.c:2017
/usr/local/lib/libruby.so.2.4(vm_call_cfunc+0xef) [0x7efdf30c4f3f] vm_insnhelper.c:1752
/usr/local/lib/libruby.so.2.4(vm_call_method+0xe3) [0x7efdf30d6b13] vm_insnhelper.c:2292
/usr/local/lib/libruby.so.2.4(vm_exec_core+0x113f) [0x7efdf30cdeff] insns.def:967
/usr/local/lib/libruby.so.2.4(vm_exec+0x8b) [0x7efdf30d342b] vm.c:1727
/usr/local/lib/libruby.so.2.4(ruby_exec_internal+0xb2) [0x7efdf2f67132] eval.c:244
/usr/local/lib/libruby.so.2.4(ruby_exec_node+0x1d) [0x7efdf2f68ead] eval.c:308
/usr/local/lib/libruby.so.2.4(ruby_run_node+0x1e) [0x7efdf2f6ba6e] eval.c:300
/usr/local/bin/ruby(main+0x4b) [0x40087b] main.c:36

-- Other runtime information -----------------------------------------------

* Loaded script: irb

* Loaded features:

    0 enumerator.so
    1 thread.rb
    2 rational.so
    3 complex.so
    4 /usr/local/lib/ruby/2.4.0/x86_64-linux/enc/encdb.so
    5 /usr/local/lib/ruby/2.4.0/x86_64-linux/enc/trans/transdb.so
    6 /usr/local/lib/ruby/2.4.0/unicode_normalize.rb
    7 /usr/local/lib/ruby/2.4.0/x86_64-linux/rbconfig.rb
    8 /usr/local/lib/ruby/site_ruby/2.4.0/rubygems/compatibility.rb
    9 /usr/local/lib/ruby/site_ruby/2.4.0/rubygems/defaults.rb
   10 /usr/local/lib/ruby/site_ruby/2.4.0/rubygems/deprecate.rb
   11 /usr/local/lib/ruby/site_ruby/2.4.0/rubygems/errors.rb
   12 /usr/local/lib/ruby/site_ruby/2.4.0/rubygems/version.rb
   13 /usr/local/lib/ruby/site_ruby/2.4.0/rubygems/requirement.rb
   14 /usr/local/lib/ruby/site_ruby/2.4.0/rubygems/platform.rb
   15 /usr/local/lib/ruby/site_ruby/2.4.0/rubygems/basic_specification.rb
   16 /usr/local/lib/ruby/site_ruby/2.4.0/rubygems/stub_specification.rb
   17 /usr/local/lib/ruby/site_ruby/2.4.0/rubygems/util/list.rb
   18 /usr/local/lib/ruby/2.4.0/x86_64-linux/stringio.so
   19 /usr/local/lib/ruby/2.4.0/uri/rfc2396_parser.rb
   20 /usr/local/lib/ruby/2.4.0/uri/rfc3986_parser.rb
   21 /usr/local/lib/ruby/2.4.0/uri/common.rb
   22 /usr/local/lib/ruby/2.4.0/uri/generic.rb
   23 /usr/local/lib/ruby/2.4.0/uri/ftp.rb
   24 /usr/local/lib/ruby/2.4.0/uri/http.rb
   25 /usr/local/lib/ruby/2.4.0/uri/https.rb
   26 /usr/local/lib/ruby/2.4.0/uri/ldap.rb
   27 /usr/local/lib/ruby/2.4.0/uri/ldaps.rb
   28 /usr/local/lib/ruby/2.4.0/uri/mailto.rb
   29 /usr/local/lib/ruby/2.4.0/uri.rb
   30 /usr/local/lib/ruby/site_ruby/2.4.0/rubygems/specification.rb
   31 /usr/local/lib/ruby/site_ruby/2.4.0/rubygems/exceptions.rb
   32 /usr/local/lib/ruby/site_ruby/2.4.0/rubygems/util.rb
   33 /usr/local/lib/ruby/site_ruby/2.4.0/rubygems/bundler_version_finder.rb
   34 /usr/local/lib/ruby/site_ruby/2.4.0/rubygems/dependency.rb
   35 /usr/local/lib/ruby/site_ruby/2.4.0/rubygems/core_ext/kernel_gem.rb
   36 /usr/local/lib/ruby/2.4.0/monitor.rb
   37 /usr/local/lib/ruby/site_ruby/2.4.0/rubygems/core_ext/kernel_require.rb
   38 /usr/local/lib/ruby/site_ruby/2.4.0/rubygems.rb
   39 /usr/local/lib/ruby/site_ruby/2.4.0/rubygems/path_support.rb
   40 /usr/local/lib/ruby/gems/2.4.0/gems/did_you_mean-1.1.0/lib/did_you_mean/version.rb
   41 /usr/local/lib/ruby/gems/2.4.0/gems/did_you_mean-1.1.0/lib/did_you_mean/core_ext/name_error.rb
   42 /usr/local/lib/ruby/gems/2.4.0/gems/did_you_mean-1.1.0/lib/did_you_mean/levenshtein.rb
   43 /usr/local/lib/ruby/gems/2.4.0/gems/did_you_mean-1.1.0/lib/did_you_mean/jaro_winkler.rb
   44 /usr/local/lib/ruby/gems/2.4.0/gems/did_you_mean-1.1.0/lib/did_you_mean/spell_checker.rb
   45 /usr/local/lib/ruby/2.4.0/delegate.rb
   46 /usr/local/lib/ruby/gems/2.4.0/gems/did_you_mean-1.1.0/lib/did_you_mean/spell_checkers/name_error_checkers/class_name_checker.rb
   47 /usr/local/lib/ruby/gems/2.4.0/gems/did_you_mean-1.1.0/lib/did_you_mean/spell_checkers/name_error_checkers/variable_name_checker.rb
   48 /usr/local/lib/ruby/gems/2.4.0/gems/did_you_mean-1.1.0/lib/did_you_mean/spell_checkers/name_error_checkers.rb
   49 /usr/local/lib/ruby/gems/2.4.0/gems/did_you_mean-1.1.0/lib/did_you_mean/spell_checkers/method_name_checker.rb
   50 /usr/local/lib/ruby/gems/2.4.0/gems/did_you_mean-1.1.0/lib/did_you_mean/spell_checkers/null_checker.rb
   51 /usr/local/lib/ruby/gems/2.4.0/gems/did_you_mean-1.1.0/lib/did_you_mean/formatter.rb
   52 /usr/local/lib/ruby/gems/2.4.0/gems/did_you_mean-1.1.0/lib/did_you_mean.rb
   53 /usr/local/lib/ruby/2.4.0/e2mmap.rb
   54 /usr/local/lib/ruby/2.4.0/irb/init.rb
   55 /usr/local/lib/ruby/2.4.0/irb/workspace.rb
   56 /usr/local/lib/ruby/2.4.0/irb/inspector.rb
   57 /usr/local/lib/ruby/2.4.0/irb/output-method.rb
   58 /usr/local/lib/ruby/2.4.0/irb/context.rb
   59 /usr/local/lib/ruby/2.4.0/irb/extend-command.rb
   60 /usr/local/lib/ruby/2.4.0/irb/notifier.rb
   61 /usr/local/lib/ruby/2.4.0/irb/slex.rb
   62 /usr/local/lib/ruby/2.4.0/irb/ruby-token.rb
   63 /usr/local/lib/ruby/2.4.0/irb/ruby-lex.rb
   64 /usr/local/lib/ruby/2.4.0/irb/src_encoding.rb
   65 /usr/local/lib/ruby/2.4.0/irb/magic-file.rb
   66 /usr/local/lib/ruby/2.4.0/x86_64-linux/readline.so
   67 /usr/local/lib/ruby/2.4.0/irb/input-method.rb
   68 /usr/local/lib/ruby/2.4.0/irb/locale.rb
   69 /usr/local/lib/ruby/2.4.0/irb.rb
   70 /usr/local/bundle/gems/pycall-1.0.3/lib/pycall/version.rb
   71 /usr/local/bundle/gems/pycall-1.0.3/lib/pycall/error.rb
   72 /usr/local/lib/ruby/2.4.0/x86_64-linux/fiddle.so
   73 /usr/local/lib/ruby/2.4.0/fiddle/function.rb
   74 /usr/local/lib/ruby/2.4.0/fiddle/closure.rb
   75 /usr/local/lib/ruby/2.4.0/fiddle.rb
   76 /usr/local/bundle/gems/pycall-1.0.3/lib/pycall/libpython/finder.rb
   77 /usr/local/bundle/gems/pycall-1.0.3/lib/pycall/libpython.rb
   78 /usr/local/bundle/gems/pycall-1.0.3/lib/pycall/pyerror.rb
   79 /usr/local/bundle/gems/pycall-1.0.3/lib/pycall/wrapper_object_cache.rb
   80 /usr/local/bundle/gems/pycall-1.0.3/lib/pycall/pyobject_wrapper.rb
   81 /usr/local/bundle/gems/pycall-1.0.3/lib/pycall/pytypeobject_wrapper.rb
   82 /usr/local/bundle/gems/pycall-1.0.3/lib/pycall/init.rb
   83 /usr/local/bundle/gems/pycall-1.0.3/lib/pycall.rb
   84 /usr/local/bundle/gems/pycall-1.0.3/lib/pycall.so
   85 /usr/local/bundle/gems/pycall-1.0.3/lib/pycall/dict.rb
   86 /usr/local/bundle/gems/pycall-1.0.3/lib/pycall/list.rb
   87 /usr/local/bundle/gems/pycall-1.0.3/lib/pycall/slice.rb

* Process memory map:

00400000-00401000 r-xp 00000000 08:01 927867                             /usr/local/bin/ruby
00600000-00601000 rw-p 00000000 08:01 927867                             /usr/local/bin/ruby
01c77000-02317000 rw-p 00000000 00:00 0                                  [heap]
7efdeeec5000-7efdef06e000 r--s 00000000 08:01 664516                     /lib/x86_64-linux-gnu/libc-2.19.so
7efdef06e000-7efdef0ef000 r--s 00000000 08:01 810737                     /usr/local/bundle/gems/pycall-1.0.3/lib/pycall.so
7efdef0ef000-7efdef111000 r--s 00000000 08:01 664580                     /lib/x86_64-linux-gnu/libpthread-2.19.so
7efdef111000-7efdf000c000 r--s 00000000 08:01 927905                     /usr/local/lib/libruby.so.2.4.1
7efdf000c000-7efdf0030000 r--s 00000000 08:01 927867                     /usr/local/bin/ruby
7efdf0030000-7efdf0046000 r-xp 00000000 08:01 2910637                    /lib/x86_64-linux-gnu/libgcc_s.so.1
7efdf0046000-7efdf0245000 ---p 00016000 08:01 2910637                    /lib/x86_64-linux-gnu/libgcc_s.so.1
7efdf0245000-7efdf0246000 rw-p 00015000 08:01 2910637                    /lib/x86_64-linux-gnu/libgcc_s.so.1
7efdf0251000-7efdf0342000 rw-p 00000000 00:00 0
7efdf0342000-7efdf0353000 r-xp 00000000 08:01 810737                     /usr/local/bundle/gems/pycall-1.0.3/lib/pycall.so
7efdf0353000-7efdf0552000 ---p 00011000 08:01 810737                     /usr/local/bundle/gems/pycall-1.0.3/lib/pycall.so
7efdf0552000-7efdf0554000 rw-p 00010000 08:01 810737                     /usr/local/bundle/gems/pycall-1.0.3/lib/pycall.so
7efdf0554000-7efdf0556000 r-xp 00000000 08:01 664606                     /lib/x86_64-linux-gnu/libutil-2.19.so
7efdf0556000-7efdf0755000 ---p 00002000 08:01 664606                     /lib/x86_64-linux-gnu/libutil-2.19.so
7efdf0755000-7efdf0756000 r--p 00001000 08:01 664606                     /lib/x86_64-linux-gnu/libutil-2.19.so
7efdf0756000-7efdf0757000 rw-p 00002000 08:01 664606                     /lib/x86_64-linux-gnu/libutil-2.19.so
7efdf0757000-7efdf0771000 r-xp 00000000 08:01 664611                     /lib/x86_64-linux-gnu/libz.so.1.2.8
7efdf0771000-7efdf0970000 ---p 0001a000 08:01 664611                     /lib/x86_64-linux-gnu/libz.so.1.2.8
7efdf0970000-7efdf0971000 r--p 00019000 08:01 664611                     /lib/x86_64-linux-gnu/libz.so.1.2.8
7efdf0971000-7efdf0972000 rw-p 0001a000 08:01 664611                     /lib/x86_64-linux-gnu/libz.so.1.2.8
7efdf0972000-7efdf0c66000 r-xp 00000000 08:01 1466974                    /usr/lib/x86_64-linux-gnu/libpython2.7.so.1.0
7efdf0c66000-7efdf0e65000 ---p 002f4000 08:01 1466974                    /usr/lib/x86_64-linux-gnu/libpython2.7.so.1.0
7efdf0e65000-7efdf0e67000 r--p 002f3000 08:01 1466974                    /usr/lib/x86_64-linux-gnu/libpython2.7.so.1.0
7efdf0e67000-7efdf0ee5000 rw-p 002f5000 08:01 1466974                    /usr/lib/x86_64-linux-gnu/libpython2.7.so.1.0
7efdf0ee5000-7efdf0ef7000 rw-p 00000000 00:00 0
7efdf0ef7000-7efdf0efe000 r-xp 00000000 08:01 539262                     /usr/lib/x86_64-linux-gnu/libffi.so.6.0.2
7efdf0efe000-7efdf10fe000 ---p 00007000 08:01 539262                     /usr/lib/x86_64-linux-gnu/libffi.so.6.0.2
7efdf10fe000-7efdf10ff000 r--p 00007000 08:01 539262                     /usr/lib/x86_64-linux-gnu/libffi.so.6.0.2
7efdf10ff000-7efdf1100000 rw-p 00008000 08:01 539262                     /usr/lib/x86_64-linux-gnu/libffi.so.6.0.2
7efdf1100000-7efdf1109000 r-xp 00000000 08:01 1318183                    /usr/local/lib/ruby/2.4.0/x86_64-linux/fiddle.so
7efdf1109000-7efdf1308000 ---p 00009000 08:01 1318183                    /usr/local/lib/ruby/2.4.0/x86_64-linux/fiddle.so
7efdf1308000-7efdf1309000 rw-p 00008000 08:01 1318183                    /usr/local/lib/ruby/2.4.0/x86_64-linux/fiddle.so
7efdf1309000-7efdf132f000 r-xp 00000000 08:01 664601                     /lib/x86_64-linux-gnu/libtinfo.so.5.9
7efdf132f000-7efdf152e000 ---p 00026000 08:01 664601                     /lib/x86_64-linux-gnu/libtinfo.so.5.9
7efdf152e000-7efdf1532000 r--p 00025000 08:01 664601                     /lib/x86_64-linux-gnu/libtinfo.so.5.9
7efdf1532000-7efdf1533000 rw-p 00029000 08:01 664601                     /lib/x86_64-linux-gnu/libtinfo.so.5.9
7efdf1533000-7efdf1557000 r-xp 00000000 08:01 664552                     /lib/x86_64-linux-gnu/libncurses.so.5.9
7efdf1557000-7efdf1756000 ---p 00024000 08:01 664552                     /lib/x86_64-linux-gnu/libncurses.so.5.9
7efdf1756000-7efdf1757000 r--p 00023000 08:01 664552                     /lib/x86_64-linux-gnu/libncurses.so.5.9
7efdf1757000-7efdf1758000 rw-p 00024000 08:01 664552                     /lib/x86_64-linux-gnu/libncurses.so.5.9
7efdf1758000-7efdf1798000 r-xp 00000000 08:01 664583                     /lib/x86_64-linux-gnu/libreadline.so.6.3
7efdf1798000-7efdf1998000 ---p 00040000 08:01 664583                     /lib/x86_64-linux-gnu/libreadline.so.6.3
7efdf1998000-7efdf199a000 r--p 00040000 08:01 664583                     /lib/x86_64-linux-gnu/libreadline.so.6.3
7efdf199a000-7efdf19a1000 rw-p 00042000 08:01 664583                     /lib/x86_64-linux-gnu/libreadline.so.6.3
7efdf19a1000-7efdf19a2000 rw-p 00000000 00:00 0
7efdf19a2000-7efdf19aa000 r-xp 00000000 08:01 1318192                    /usr/local/lib/ruby/2.4.0/x86_64-linux/readline.so
7efdf19aa000-7efdf1ba9000 ---p 00008000 08:01 1318192                    /usr/local/lib/ruby/2.4.0/x86_64-linux/readline.so
7efdf1ba9000-7efdf1baa000 rw-p 00007000 08:01 1318192                    /usr/local/lib/ruby/2.4.0/x86_64-linux/readline.so
7efdf1baa000-7efdf1bb2000 r-xp 00000000 08:01 1318196                    /usr/local/lib/ruby/2.4.0/x86_64-linux/stringio.so
7efdf1bb2000-7efdf1db1000 ---p 00008000 08:01 1318196                    /usr/local/lib/ruby/2.4.0/x86_64-linux/stringio.so
7efdf1db1000-7efdf1db2000 rw-p 00007000 08:01 1318196                    /usr/local/lib/ruby/2.4.0/x86_64-linux/stringio.so
7efdf1db2000-7efdf1db5000 r-xp 00000000 08:01 1456149                    /usr/local/lib/ruby/2.4.0/x86_64-linux/enc/trans/transdb.so
7efdf1db5000-7efdf1fb4000 ---p 00003000 08:01 1456149                    /usr/local/lib/ruby/2.4.0/x86_64-linux/enc/trans/transdb.so
7efdf1fb4000-7efdf1fb5000 rw-p 00002000 08:01 1456149                    /usr/local/lib/ruby/2.4.0/x86_64-linux/enc/trans/transdb.so
7efdf1fb5000-7efdf1fb7000 r-xp 00000000 08:01 1456106                    /usr/local/lib/ruby/2.4.0/x86_64-linux/enc/encdb.so
7efdf1fb7000-7efdf21b6000 ---p 00002000 08:01 1456106                    /usr/local/lib/ruby/2.4.0/x86_64-linux/enc/encdb.so
7efdf21b6000-7efdf21b7000 rw-p 00001000 08:01 1456106                    /usr/local/lib/ruby/2.4.0/x86_64-linux/enc/encdb.so
7efdf21b7000-7efdf2358000 r-xp 00000000 08:01 664516                     /lib/x86_64-linux-gnu/libc-2.19.so
7efdf2358000-7efdf2558000 ---p 001a1000 08:01 664516                     /lib/x86_64-linux-gnu/libc-2.19.so
7efdf2558000-7efdf255c000 r--p 001a1000 08:01 664516                     /lib/x86_64-linux-gnu/libc-2.19.so
7efdf255c000-7efdf255e000 rw-p 001a5000 08:01 664516                     /lib/x86_64-linux-gnu/libc-2.19.so
7efdf255e000-7efdf2562000 rw-p 00000000 00:00 0
7efdf2562000-7efdf2662000 r-xp 00000000 08:01 664546                     /lib/x86_64-linux-gnu/libm-2.19.so
7efdf2662000-7efdf2861000 ---p 00100000 08:01 664546                     /lib/x86_64-linux-gnu/libm-2.19.so
7efdf2861000-7efdf2862000 r--p 000ff000 08:01 664546                     /lib/x86_64-linux-gnu/libm-2.19.so
7efdf2862000-7efdf2863000 rw-p 00100000 08:01 664546                     /lib/x86_64-linux-gnu/libm-2.19.so
7efdf2863000-7efdf286b000 r-xp 00000000 08:01 664524                     /lib/x86_64-linux-gnu/libcrypt-2.19.so
7efdf286b000-7efdf2a6a000 ---p 00008000 08:01 664524                     /lib/x86_64-linux-gnu/libcrypt-2.19.so
7efdf2a6a000-7efdf2a6b000 r--p 00007000 08:01 664524                     /lib/x86_64-linux-gnu/libcrypt-2.19.so
7efdf2a6b000-7efdf2a6c000 rw-p 00008000 08:01 664524                     /lib/x86_64-linux-gnu/libcrypt-2.19.so
7efdf2a6c000-7efdf2a9a000 rw-p 00000000 00:00 0
7efdf2a9a000-7efdf2a9d000 r-xp 00000000 08:01 664529                     /lib/x86_64-linux-gnu/libdl-2.19.so
7efdf2a9d000-7efdf2c9c000 ---p 00003000 08:01 664529                     /lib/x86_64-linux-gnu/libdl-2.19.so
7efdf2c9c000-7efdf2c9d000 r--p 00002000 08:01 664529                     /lib/x86_64-linux-gnu/libdl-2.19.so
7efdf2c9d000-7efdf2c9e000 rw-p 00003000 08:01 664529                     /lib/x86_64-linux-gnu/libdl-2.19.so
7efdf2c9e000-7efdf2cb6000 r-xp 00000000 08:01 664580                     /lib/x86_64-linux-gnu/libpthread-2.19.so
7efdf2cb6000-7efdf2eb5000 ---p 00018000 08:01 664580                     /lib/x86_64-linux-gnu/libpthread-2.19.so
7efdf2eb5000-7efdf2eb6000 r--p 00017000 08:01 664580                     /lib/x86_64-linux-gnu/libpthread-2.19.so
7efdf2eb6000-7efdf2eb7000 rw-p 00018000 08:01 664580                     /lib/x86_64-linux-gnu/libpthread-2.19.so
7efdf2eb7000-7efdf2ebb000 rw-p 00000000 00:00 0
7efdf2ebb000-7efdf31bc000 r-xp 00000000 08:01 927905                     /usr/local/lib/libruby.so.2.4.1
7efdf31bc000-7efdf33bb000 ---p 00301000 08:01 927905                     /usr/local/lib/libruby.so.2.4.1
7efdf33bb000-7efdf33c4000 rw-p 00300000 08:01 927905                     /usr/local/lib/libruby.so.2.4.1
7efdf33c4000-7efdf33d5000 rw-p 00000000 00:00 0
7efdf33d5000-7efdf33f6000 r-xp 00000000 08:01 664498                     /lib/x86_64-linux-gnu/ld-2.19.so
7efdf3400000-7efdf35e8000 rw-p 00000000 00:00 0
7efdf35ec000-7efdf35ef000 rw-p 00000000 00:00 0
7efdf35ef000-7efdf35f0000 ---p 00000000 00:00 0
7efdf35f0000-7efdf35f5000 rw-p 00000000 00:00 0
7efdf35f5000-7efdf35f6000 r--p 00020000 08:01 664498                     /lib/x86_64-linux-gnu/ld-2.19.so
7efdf35f6000-7efdf35f7000 rw-p 00021000 08:01 664498                     /lib/x86_64-linux-gnu/ld-2.19.so
7efdf35f7000-7efdf35f8000 rw-p 00000000 00:00 0
7fff90710000-7fff90f0f000 rw-p 00000000 00:00 0                          [stack]
7fff90f1f000-7fff90f21000 r--p 00000000 00:00 0                          [vvar]
7fff90f21000-7fff90f23000 r-xp 00000000 00:00 0                          [vdso]
ffffffffff600000-ffffffffff601000 r-xp 00000000 00:00 0                  [vsyscall]


[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

Aborted

from pycall.rb.

mrkn avatar mrkn commented on June 12, 2024

@kammerer I understand the inconvenience that a Python object referred from Ruby isn't freed when leaving the scope. The reason is Ruby's mark-and-sweep GC.

Currently, you can use PyCall::PyPtr.decref class method for this case. Let pyobj is a PyCall::PyObjectWrapper object you want to force deallocate, you can do it by:

PyCall::PyPtr.decref(pyobj.__pyptr__)

After calling PyCall::PyPtr.decref for the PyCall::PyPtr object that has refcnt==2, the address the PyCall::PyPtr object indicates changes to 0 (NULL).

[1] pry(main)> po = PyCall.eval('object()')
=> <object object at 0x10ec4b110>
[2] pry(main)> po.__pyptr__.__ob_refcnt__
=> 2
[3] pry(main)> PyCall::PyPtr.decref(po.__pyptr__)
=> #<PyCall::PyPtr:0x3fc2eb0a7ab0>
[4] pry(main)> po.__pyptr__.__ob_refcnt__
=> nil
[5] pry(main)> po.__pyptr__.__address__
=> 0
[6] pry(main)>

from pycall.rb.

mrkn avatar mrkn commented on June 12, 2024

@svilenkov I'll investigate what's going on. Thank you for the report.

from pycall.rb.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.