scrapper / postrunner

Application to manage FIT files such as those produced by Garmin fitness devices
GNU General Public License v2.0
62 stars 14 forks source link

Exceptions coming from perobs #34

Closed dupetr closed 2 years ago

dupetr commented 2 years ago

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?

scrapper commented 2 years ago

I'm fairly sure this bug has been fixed in 4.4.0. Please use the latest version.

dupetr commented 2 years ago

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?

scrapper commented 2 years ago

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.