Code Monkey home page Code Monkey logo

Comments (2)

joshkunz avatar joshkunz commented on August 26, 2024

So now I'm wondering: is there a limitation on the number of songs (42000 in my case, someone said 33000 on a PiZero) or is there a time limit, meaning if the system still hasn't selected a song after one minute, then the whole process stops.

As currently written, ashuffle store a list of all (just the path to each file relative to the MPD root) songs in memory. On severely memory constrained devices like the RPi, with large libraries, it’s possible that just storing this list consumes more memory than is available on the device. I think there are two separate issues at play here:

  1. Poor error handling in low-memory conditions.
  2. Optionally storing library listing on disk.

Starting with (1): ashuffle’s current handling of allocation errors is poor, and I should make it crash in a more expected way. It’s likely that what is happening is either that ashuffle is getting OOM’d by the kernel when it starts consuming too much memory, or some allocations are failing and ashuffle is crashing. Either way, you should be able to look at the MoOde logs to see why ashuffle is failing to run. I’m not affilicated with moOde, and I’ve never used it, so I don’t really know how to do this, sorry.

For (2): Storing ashuffle data on disk is a reasonable request, and since ashuffle is bundled in systems like moOde, it seems like ashuffle is often run on large libraries in memory-constrained environments. I’ve opened issue #16 to track this.

I’ll leave this issue open until the fixes to (1) are committed.

from ashuffle.

joshkunz avatar joshkunz commented on August 26, 2024

The the advantage of hindsight, the problem described in the original issue actually sounds a lot like #31. This library is pretty large (72k tracks), but we are now performance-testing startup on a 20k-track library at under 1s. 72k is more than triple that size, but the scaling shouldn't be that bad. So this should be resolved. The OOM idea I posed is probably wrong, see this comment for details. Since I think this was fixed in #31, I'm closing this as obsolete. Please re-open if the latest version of ashuffle still has this problem.

from ashuffle.

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.