Exceptions coming from perobs
Closed this issue · 3 comments
Hello I am having troubles with postrunner and/or perobs. I started having issues several weeks ago when I went from Fedora 35 to 36.
Maybe I should have created this in the perobs repo, but since it stemming from postrunner, I put it here.
My ruby version: ruby 3.1.2p20 (2022-04-12 revision 4491bb740a) [x86_64-linux]
postrunner --verbose update-gps Ne 28. srpna 2022, 09:59:06
<internal:gc>:34: warning: Exception in finalizer #<Proc:0x00007f69bcea6410 /home/dupe/.gem/ruby/gems/perobs-4.3.0/lib/perobs/ObjectBase.rb:174>
/home/dupe/.gem/ruby/gems/perobs-4.3.0/lib/perobs/Store.rb:556:in `_collect': undefined method `[]' for nil:NilClass (NoMethodError)
if @in_memory_objects[id] == ruby_object_id
^^^^
from /home/dupe/.gem/ruby/gems/perobs-4.3.0/lib/perobs/ObjectBase.rb:174:in `block in _finalize'
from <internal:gc>:34:in `start'
from /home/dupe/.gem/ruby/gems/perobs-4.3.0/lib/perobs/Store.rb:234:in `exit'
from /home/dupe/.gem/ruby/gems/postrunner-1.1.0/lib/postrunner/Main.rb:98:in `main'
from /home/dupe/.gem/ruby/gems/postrunner-1.1.0/lib/postrunner.rb:24:in `<module:PostRunner>'
from /home/dupe/.gem/ruby/gems/postrunner-1.1.0/lib/postrunner.rb:22:in `<top (required)>'
from <internal:/usr/share/rubygems/rubygems/core_ext/kernel_require.rb>:85:in `require'
from <internal:/usr/share/rubygems/rubygems/core_ext/kernel_require.rb>:85:in `require'
from /home/dupe/.gem/ruby/gems/postrunner-1.1.0/bin/postrunner:4:in `<top (required)>'
from /home/dupe/bin/postrunner:25:in `load'
from /home/dupe/bin/postrunner:25:in `<main>'
<internal:gc>:34: warning: Exception in finalizer #<Proc:0x00007f69bcea5470 /home/dupe/.gem/ruby/gems/perobs-4.3.0/lib/perobs/ObjectBase.rb:174>
/home/dupe/.gem/ruby/gems/perobs-4.3.0/lib/perobs/Store.rb:556:in `_collect': undefined method `[]' for nil:NilClass (NoMethodError)
if @in_memory_objects[id] == ruby_object_id
^^^^
from /home/dupe/.gem/ruby/gems/perobs-4.3.0/lib/perobs/ObjectBase.rb:174:in `block in _finalize'
from <internal:gc>:34:in `start'
from /home/dupe/.gem/ruby/gems/perobs-4.3.0/lib/perobs/Store.rb:234:in `exit'
from /home/dupe/.gem/ruby/gems/postrunner-1.1.0/lib/postrunner/Main.rb:98:in `main'
from /home/dupe/.gem/ruby/gems/postrunner-1.1.0/lib/postrunner.rb:24:in `<module:PostRunner>'
from /home/dupe/.gem/ruby/gems/postrunner-1.1.0/lib/postrunner.rb:22:in `<top (required)>'
from <internal:/usr/share/rubygems/rubygems/core_ext/kernel_require.rb>:85:in `require'
from <internal:/usr/share/rubygems/rubygems/core_ext/kernel_require.rb>:85:in `require'
from /home/dupe/.gem/ruby/gems/postrunner-1.1.0/bin/postrunner:4:in `<top (required)>'
from /home/dupe/bin/postrunner:25:in `load'
from /home/dupe/bin/postrunner:25:in `<main>'
I had the same issue with perobs 4.2.0. And doing clean install of everything did not help me out.
I tried to wrap around the problematic lines of code with some checks for nulls and empty lists/vars. However, seeing ruby for the first time, my efforts were rather futile.
Could you give me a hint where to look or what a possible solution?
I'm fairly sure this bug has been fixed in 4.4.0. Please use the latest version.
Unfortunately it persists, even in 4.4.0. I did a fresh install of ruby, moved away ~/.postrunner
and this is the result
I'm running on Fedora 36.
$ sudo dnf install ruby ruby-devel
$ gem install --user-install postrunner
$ postrunner
INFO: Creating PostRunner data directory /home/dupe/.postrunner
INFO: Creating HTML output directory /home/dupe/.postrunner/html
INFO: Creating devices directory /home/dupe/.postrunner/devices
INFO: Creating Old Fit directory /home/dupe/.postrunner/old_fit_dir
INFO: Creating fit directory /home/dupe/.postrunner/fit
ERROR: No command provided. See 'postrunner -h' for more information.
/home/dupe/bin/postrunner: warning: Exception in finalizer #<Proc:0x00007f9f85cde098 /home/dupe/.local/share/gem/ruby/gems/perobs-4.4.0/lib/perobs/ObjectBase.rb:174>
/home/dupe/.local/share/gem/ruby/gems/perobs-4.4.0/lib/perobs/Store.rb:550:in `_collect': undefined method `[]' for nil:NilClass (NoMethodError)
if @in_memory_objects[id] == ruby_object_id
^^^^
from /home/dupe/.local/share/gem/ruby/gems/perobs-4.4.0/lib/perobs/ObjectBase.rb:174:in `block in _finalize'
/home/dupe/bin/postrunner: warning: Exception in finalizer #<Proc:0x00007f9f85cdff10 /home/dupe/.local/share/gem/ruby/gems/perobs-4.4.0/lib/perobs/ObjectBase.rb:174>
/home/dupe/.local/share/gem/ruby/gems/perobs-4.4.0/lib/perobs/Store.rb:550:in `_collect': undefined method `[]' for nil:NilClass (NoMethodError)
if @in_memory_objects[id] == ruby_object_id
^^^^
from /home/dupe/.local/share/gem/ruby/gems/perobs-4.4.0/lib/perobs/ObjectBase.rb:174:in `block in _finalize'
Any way I can help with fixing?
I'm sorry! The fix was the first commit after the 4.4.0 release. So it wasn't in there. I've just released 4.5.0 that does include the fix. Please try that one.