compactd / compactd

Remote music player that supports adding more content
MIT License
87 stars 9 forks source link

Heap out of Memory #39

Open jackalblood opened 6 years ago

jackalblood commented 6 years ago

<--- Last few GCs --->

[24583:0x3eff660] 8334583 ms: Mark-sweep 1394.2 (1571.1) -> 1394.2 (1571.1) MB, 1241.9 / 0.0 ms allocation failure GC in old space requested [24583:0x3eff660] 8336107 ms: Mark-sweep 1394.2 (1571.1) -> 1394.2 (1525.6) MB, 1522.7 / 0.0 ms last resort [24583:0x3eff660] 8337473 ms: Mark-sweep 1394.2 (1525.6) -> 1394.1 (1523.1) MB, 1365.0 / 0.0 ms last resort

<--- JS stacktrace --->

==== JS stack trace =========================================

Security context: 0x3d7537713471 1: fromString(aka fromString) [buffer.js:~194] [pc=0x294f26fbb751](this=0x3d7537702241 ,string=0xa7040f06879 <Very long string[8346650]>,encoding=0x34216c8865c1 <String[4]: utf8>) 2: from [buffer.js:~96] [pc=0x294f26ea8ad6](this=0x371882c1f129 <JS Function Buffer (SharedFunctionInfo 0x34216c8a2429)>,value=0xa7040f06879 <Very long string[8346650]>,encodingOrOffset=0x34216c8865...

FATAL ERROR: CALL_AND_RETRY_LAST Allocation failed - JavaScript heap out of memory 1: node::Abort() [node] 2: 0x134e91c [node] 3: v8::Utils::ReportOOMFailure(char const, bool) [node] 4: v8::internal::V8::FatalProcessOutOfMemory(char const, bool) [node] 5: v8::internal::Factory::NewRawTwoByteString(int, v8::internal::PretenureFlag) [node] 6: v8::internal::String::SlowFlatten(v8::internal::Handle, v8::internal::PretenureFlag) [node] 7: v8::internal::String::Flatten(v8::internal::Handle, v8::internal::PretenureFlag) [node] 8: v8::String::WriteUtf8(char, int, int, int) const [node] 9: node::StringBytes::Write(v8::Isolate, char, unsigned long, v8::Local, node::encoding, int) [node] 10: node::Buffer::New(v8::Isolate, v8::Local, node::encoding) [node] 11: node::Buffer::CreateFromString(v8::FunctionCallbackInfo const&) [node] 12: v8::internal::FunctionCallbackArguments::Call(void (*)(v8::FunctionCallbackInfo const&)) [node] 13: 0xabfced [node] 14: v8::internal::Builtin_HandleApiCall(int, v8::internal::Object*, v8::internal::Isolate) [node] 15: 0x294f266040c7 Aborted

I finally got CompactD scanning my collection but after about 30 min i received this wall of text above now i can't run --configure because obviously couchdb is already configured and --serve tells me to --upgrade however when i try i get this

Thanks for downloading compactd 1.2.1 !

Trying to upgrade database from version 1.2.0-4... ⠈ Running upgrade...{ error: 'error', reason: '{badmatch,{\'EXIT\',noproc}}', name: 'error', status: 500, message: '{badmatch,{\'EXIT\',noproc}}' } ⠈ Running upgrade...^C

so im again quite stuck

Thank you

vinz243 commented 6 years ago

There is probably a memory leak somewhere, how many files do you have? I would need to try and identify it while scanning my music.

If you want to fiddle with it yourself you might wanna read https://github.com/felixge/node-memory-leak-tutorial.

You may find to the dir using echo $(dirname $(readlink -f$(which compactd)))

jackalblood commented 6 years ago

37689 files in the main music folder id love to try it myself but tbh that tutorial has me a little lost am i best off waiting for some kinda update from you ?

vinz243 commented 6 years ago

wow, that is indeed a lot of files how many different artists/albums? I mean is it random tracks from everywhere or lots of from the same artist? in the latter case, I am not sure it's the right tool, given that teh latest "stable" version isn't really optimized performance-wise. The 1.3.0-alpha.0 tries to fix this but even then the standard flow (artist > album > track) might not be suitable for you. See issue #36, #35 and #37. You might wanna wait 1.3.0 I'll try to improve it by adding a table view, grid view and optimized for large libraries

For the memory leak during scanning I'll try to find the leaks

jackalblood commented 6 years ago

its multiple albums and artists it's the collection ive created over a couple of years some from CD rips some using headphones also a few audiobooks maybe it might be better for me to start a fresh collection without importing my current collection

vinz243 commented 6 years ago

If you want to just try it might be better try it without your whole collection. I think you'll need a few files to make it work tho

jackalblood commented 6 years ago

ok then ill keep a couple of albums

jackalblood commented 6 years ago

ok ive tried it with 4 albums its successfully loaded it tells me but i dont see any evidence that its running what was the port for compactd its 9000 right ?

ompactd --serve

Thanks for downloading compactd 1.3.0-alpha.0 !

Trying to start compactd in the background...

Successfully started compactd in the background

my pm2 status command lists nothing

App name │ id │ mode │ pid │ status │ restart │ uptime │ cpu │ mem │ user │ watching │ └──────────┴────┴──────┴─────┴────────┴─────────┴────────┴─────┴─────┴──────┴──────────┘ Use pm2 show <id|name> to get more details about an app

vinz243 commented 6 years ago

It is, right now there is no way to change it except by changing the code (or using the alpha version).

You can still curl localhost:9000 to check it's working

If not, use pm2 start $(dirname $(readlink -f $(which compactd)))/index.js --name compactd

jackalblood commented 6 years ago

[PM2][ERROR] script not found : /usr/lib/node_modules/compactd/index.js script not found : /usr/lib/node_modules/compactd/index.js is the response i got from the pm2 start but the curl gave me connection refused but i still have nothing

vinz243 commented 6 years ago

mb, it was pm2 start $(dirname $(readlink -f $(which compactd)))/server/index.js --name compactd

jackalblood commented 6 years ago

that last command got it up and running thank you however now its telling me an error occurred for database tracks:undefined

vinz243 commented 6 years ago

can you paste the full log pls? where did you get this error?

jackalblood commented 6 years ago

this was after login for the first time at localhost:9000 it appeared at the top of the page in a red box above the spinning ring after that nothing happens were might i find the log i looked in the compactd folder and was unable to see any

vinz243 commented 6 years ago

can you paste the full content of the developpers tool console? or a screen ?

jackalblood commented 6 years ago

Sorry I've been having issues with the hardware running compactd I'll get back to you ASAP

jackalblood commented 6 years ago

I'm on a fresh installation now and I can't get past the - - upgrade option

Trying to upgrade database from version 1.2.0-4... ⠈ Running upgrade...{ error: 'unknown_error', reason: 'function_clause', ref: 919438065, name: 'unknown_error', status: 500, message: 'function_clause' } ⡀ Running upgrade...

Is the response

I'm not having much luck lol

vinz243 commented 6 years ago

This is weird, the upgrade script looks broken even tho it works for me... anyway you can bypass the upgrade script using:

echo -n '1.2.2' > ~/.compactd/_version

I also released version 1.2.2 version which fixes a few bugs and improve volume slider

jackalblood commented 6 years ago

Ok so I managed to get the update to work by running the command

pm2 start $(dirname $(readlink -f $(which compactd)))/server/index.js --name compactd Killing it and running the update command again

Then I used vnc to go to the localhost and below is the screenshot I was able to grab of the error message nothing else is outputted (is that a word)

If you can think of what else to look at I will give it to you

http://prntscr.com/hkw1ir

vinz243 commented 6 years ago

There is bug you need to create the database. Open ~/.compactd/config.json and locate the couchPassword value. then do:

curl -X PUT http://admin:<password you just found>@localhsot:5984/trackers
jackalblood commented 6 years ago

I'm extremely pleased to say it now works about to dig around to configure it for access outside of localhost and I also want to see about getting the android app but know nothing about java on android I appreciate your patience and I love the look already

Can not wait to use it thanks again for working on it with me

jackalblood commented 6 years ago

Sorry another small glitch I assume settings is supposed to you know have settings in it but it's blank

http://prntscr.com/hkxnlo

jackalblood commented 6 years ago

I should say that there is no error and playback is flawless

vinz243 commented 6 years ago

I also want to see about getting the android app

I would love it too, I'm struggling with getting couchbase working (java API for couchdb).

Sorry another small glitch I assume settings is supposed to you know have settings in it but it's blank

This isn't a glitch, I just didn't had to put something yet, although I sure am going to soon

I should say that there is no error and playback is flawless

Glad it's working!

jackalblood commented 6 years ago

You can officially close this then super happy it's working I'll be watching for updates can't wait to see the torrent downloading come into play can't wait to leave headphones behind

vinz243 commented 6 years ago

I'll try to make a wiki with the different issues encountered and tutorial about downloading. Anyway I'll keep this opensince the original issue isn't resolved (oom)