Comments (2)
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:
- Poor error handling in low-memory conditions.
- 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.
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)
- ashuffle adds multiple albums with the same title HOT 2
- --exclude artist <artist> album <album> excludes all of artist HOT 8
- Allow excludes to be passed in a file HOT 3
- Recent ARM binaries are actually x86-64 HOT 5
- Build from source failed on Pi-4 HOT 6
- Support reading from pipe for continuous adding of songs HOT 4
- Ashuffle does not stop when oneshot single mode is enabled HOT 10
- How to shuffle one song from each tag HOT 4
- Make ashuffle release binaries fully static
- Add a --retry option to wait for mpd HOT 1
- Make possible to exclude songs by its length
- ashuffle build failure due to subproject CMake target absl_crc_internal missing HOT 5
- Add *BSD cross build and/or cross test to CI
- Building v3.14.1 on OpenBSD 7.4 HOT 5
- Ashuffle stops when a file is not found HOT 1
- Playlist is restarted when a file is not found HOT 5
- ashuffle reverts to track mode on library update when `--group-by` provided. HOT 2
- Add something like a --daemonize flag HOT 4
- Automatically reconnect to MPD without exiting HOT 3
- Unofficial fedora builds HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from ashuffle.