Code Monkey home page Code Monkey logo

fit_parser's People

Contributors

dependabot[bot] avatar dimameshcharakou avatar lukasskywalker avatar

Stargazers

 avatar  avatar

Watchers

 avatar

fit_parser's Issues

Failed Parsing Using Multithreads?

We are using this gem in order to parse FIT file data and we are running on a kubernetes cluster. We have noticed that this gem is throwing lots of errors depending on our pod configuration. We wanted to test this theory so over the past 12 hours we have some graphs of the error activity.

The first error we see which was starting to become common was a

No definition for local message type: [INSERT NUMBER HERE]
ERROR: /root/vendor/bundle/ruby/2.7.0/gems/fit_parser-1.0.9/lib/fit_parser/file/record.rb:25:in `read'

This error bubbles up directly from this gem - we also see the following error which comes from bindata but since this is a dependency here, we know it is being triggered via this gem as well.

selection [INSERT NUMBER HERE] does not exist in :choices for obj.global_message_number
ERROR: /root/vendor/bundle/ruby/2.7.0/gems/bindata-2.2.0/lib/bindata/choice.rb:119:in `instantiate_choice'

Currently, you have locked bindata at v2.2.0 and that gem is now on v0.2.4.8. Looking at the commit history, it seems like you tried to upgrade with v2.3.1 but were having multithread issues.

In order to test to see if these errors were getting out of control as threads were increased per pod, we changed our configs and noticed this trend over time. The following numbers explain the event lines from left to right:

  1. We move the current config from 1 pod with 2 threads to 1 pod with 6 threads as we were not getting near our CPU or memory limits
  2. Again, we keep pushing threads as we have not come close to our CPU limits and have not noticed these errors a lot (thinking they are random and happening with corrupt FIT files). We move the current config of 1 pod with 6 threads to 1 pod with 10 threads. This shows a massive uptick in these errors
  3. Curious after some digging into this, we move the current config of 1 pod with 10 threads to 5 pods with 1 thread each to see if these errors are reacting to single pod multithreading issues

The top graph is simply showing the processing activity and the number of FIT files rolling through the system (you can ignore the different colors). The bottom graph is showing the number of these errors in the logs. The No definition error is aqua here and the selection error is in yellow.

Screenshot 2020-11-25 at 16 45 32

As you can see, from this evidence we are confident that this is a multithreading issues since as soon as we moved to single-thread pods, all these errors vanished. My main question is if you have tried the newer versions of bindata here to see if this fixes your multithreading issue or if you have tried to fix this issue in any way? Do you know what the main issue is and why this gem seems to throw these errors only during multithreaded processes?

Thanks,
Sven

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.