beaTunes v5 EA1 crash - OutOfMemoryError while analyzing

Olly Ainger's Avatar

Olly Ainger

30 May, 2017 12:01 PM

Hi,

When analysing my library with beaTunes v5 EA1 it crashes. Looking at the logs I can see the following error:
2017-05-30 12:41:36,261 [3144267] [ERROR][AnalysisQueueWorker-1] com.tagtraum.beatunes.analysisqueue.AnalysisTaskWorker: OutOfMemoryError while analyzing. java.lang.OutOfMemoryError: Java heap space at com.tagtraum.jipes.audio.AudioBufferFunctions$AudioBufferMapFunction.map(AudioBufferFunctions.java:241) at com.tagtraum.jipes.audio.AudioBufferFunctions$AudioBufferMapFunction.map(AudioBufferFunctions.java:229) at com.tagtraum.jipes.universal.Mapping.processNext(Mapping.java:62) at com.tagtraum.jipes.AbstractSignalProcessor.process(AbstractSignalProcessor.java:123) at com.tagtraum.jipes.SignalProcessorSupport.process(SignalProcessorSupport.java:144) at com.tagtraum.jipes.SignalProcessorSupport.process(SignalProcessorSupport.java:117) at com.tagtraum.jipes.AbstractSignalProcessor.process(AbstractSignalProcessor.java:124) at com.tagtraum.jipes.SignalProcessorSupport.process(SignalProcessorSupport.java:144) at com.tagtraum.jipes.SignalProcessorSupport.process(SignalProcessorSupport.java:129) at com.tagtraum.jipes.audio.InterleavedChannelSplit.process(InterleavedChannelSplit.java:76) at com.tagtraum.jipes.audio.InterleavedChannelSplit.process(InterleavedChannelSplit.java:28) at com.tagtraum.jipes.SignalPump.process(SignalPump.java:176) at com.tagtraum.jipes.SignalPump.pump(SignalPump.java:143) at com.tagtraum.beatunes.analysis.AudioPumpAnalysisTask.a(SourceFile:273) at com.tagtraum.beatunes.analysis.AudioPumpAnalysisTask.runBefore(SourceFile:148) at com.tagtraum.beatunes.analysis.Task.run(SourceFile:745) at com.tagtraum.beatunes.analysis.Task.run(SourceFile:753) at com.tagtraum.beatunes.analysisqueue.AnalysisTaskWorker.a(SourceFile:150) at com.tagtraum.beatunes.analysisqueue.AnalysisTaskWorker$$Lambda$771/299453965.call(Unknown Source) at com.tagtraum.beatunes.library.AbstractMusicLibrary.serialExecute(SourceFile:242) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at com.tagtraum.core.wrap.WrappingProxyFactory$TunesLibraryInvocationHandler.a(SourceFile:66) at com.tagtraum.core.wrap.WrappingProxyFactory$TunesLibraryInvocationHandler.invoke(SourceFile:59) at com.sun.proxy.$Proxy4.serialExecute(Unknown Source) at com.tagtraum.beatunes.analysisqueue.AnalysisTaskWorker.run(SourceFile:1125) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) at java.util.concurrent.FutureTask.run(FutureTask.java:266) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) 2017-05-30 12:41:36,261 [3144267] [ERROR][AnalysisQueueWorker-1] com.tagtraum.beatunes.BeaTunes: OutOfMemoryError java.lang.OutOfMemoryError: Java heap space at com.tagtraum.jipes.audio.AudioBufferFunctions$AudioBufferMapFunction.map(AudioBufferFunctions.java:241) at com.tagtraum.jipes.audio.AudioBufferFunctions$AudioBufferMapFunction.map(AudioBufferFunctions.java:229) at com.tagtraum.jipes.universal.Mapping.processNext(Mapping.java:62) at com.tagtraum.jipes.AbstractSignalProcessor.process(AbstractSignalProcessor.java:123) at com.tagtraum.jipes.SignalProcessorSupport.process(SignalProcessorSupport.java:144) at com.tagtraum.jipes.SignalProcessorSupport.process(SignalProcessorSupport.java:117) at com.tagtraum.jipes.AbstractSignalProcessor.process(AbstractSignalProcessor.java:124) at com.tagtraum.jipes.SignalProcessorSupport.process(SignalProcessorSupport.java:144) at com.tagtraum.jipes.SignalProcessorSupport.process(SignalProcessorSupport.java:129) at com.tagtraum.jipes.audio.InterleavedChannelSplit.process(InterleavedChannelSplit.java:76) at com.tagtraum.jipes.audio.InterleavedChannelSplit.process(InterleavedChannelSplit.java:28) at com.tagtraum.jipes.SignalPump.process(SignalPump.java:176) at com.tagtraum.jipes.SignalPump.pump(SignalPump.java:143) at com.tagtraum.beatunes.analysis.AudioPumpAnalysisTask.a(SourceFile:273) at com.tagtraum.beatunes.analysis.AudioPumpAnalysisTask.runBefore(SourceFile:148) at com.tagtraum.beatunes.analysis.Task.run(SourceFile:745) at com.tagtraum.beatunes.analysis.Task.run(SourceFile:753) at com.tagtraum.beatunes.analysisqueue.AnalysisTaskWorker.a(SourceFile:150) at com.tagtraum.beatunes.analysisqueue.AnalysisTaskWorker$$Lambda$771/299453965.call(Unknown Source) at com.tagtraum.beatunes.library.AbstractMusicLibrary.serialExecute(SourceFile:242) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at com.tagtraum.core.wrap.WrappingProxyFactory$TunesLibraryInvocationHandler.a(SourceFile:66) at com.tagtraum.core.wrap.WrappingProxyFactory$TunesLibraryInvocationHandler.invoke(SourceFile:59) at com.sun.proxy.$Proxy4.serialExecute(Unknown Source) at com.tagtraum.beatunes.analysisqueue.AnalysisTaskWorker.run(SourceFile:1125) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) at java.util.concurrent.FutureTask.run(FutureTask.java:266) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)

Running this on a Windows 10 Creators Update. Intel Core i7-4770K w/ 16GB RAM.

Let me know if you need any more info.

Thanks,

Olly

Showing page 2 out of 2. View the first page

  1. Support Staff 31 Posted by hendrik on 31 May, 2017 05:07 PM

    hendrik's Avatar

    The changes I mentioned are now in there. If you're interested, please try out https://www.beatunes.com/download/beaTunes-5-0-0-EA2-SNAPSHOT-x64.exe

    If you do, please stop beaTunes before running the installer. Please also delete that heap dump the last run generated. Otherwise, should there be another OOME (OutOfMemoryError), the dump will not be written.

    It may make sense to check how iTunes behaves after just a few minutes of running beaTunes. Or even try to set a BPM value manually in beaTunes without running the analysis. The change should show up in iTunes pretty much right away—if things are working the way they should.

  2. 32 Posted by Olly Ainger on 31 May, 2017 08:29 PM

    Olly Ainger's Avatar

    I've gotten iTunes to hang again whilst analysing but not sure why, it
    seemed to correlate with me clicking on it after leaving it idle for about
    and hour. It looks like beaTunes was still happily interfacing with iTunes
    up until that point according to procmon, metadata itc2 files were being
    updated by iTunes.

    iTunes did a ton of registry queries for audio devices right before it
    hung. I will try leaving iTunes open tomorrow and then click on it after an
    hour of it being idle to see if the issue still occurs without beaTunes
    running as this is starting to feel more like an iTunes issue.

  3. 33 Posted by evansthompson on 31 May, 2017 09:38 PM

    evansthompson's Avatar

    FWIW, I'm on macOS with 16 GB RAM. I've allocated 4 o beaTunes and run 3 threads. Memory usage according to beaTunes | About is around 40-42%, which is higher than v4 was.

  4. Support Staff 34 Posted by hendrik on 01 Jun, 2017 06:52 AM

    hendrik's Avatar

    I will try leaving iTunes open tomorrow and then click on it after an hour of it being idle to see if the issue still occurs without beaTunes
    running as this is starting to feel more like an iTunes issue.

    Sounds like a good idea.

  5. Support Staff 35 Posted by hendrik on 01 Jun, 2017 06:54 AM

    hendrik's Avatar

    FWIW, I'm on macOS with 16 GB RAM. I've allocated 4 o beaTunes and run 3 threads. Memory usage according to beaTunes | About is around 40-42%, which is higher than v4 was.

    Memory usage during analysis depends on the tasks you selected. Instrumentation and key use much larger models in v5, which leads to more memory consumption. This is to be expected, but it should be "too" much. EA2 will be better behaved.

  6. 36 Posted by Olly Ainger on 01 Jun, 2017 12:10 PM

    Olly Ainger's Avatar

    I've left iTunes running for half a day and it's still responsive.
    There must be something causing it to hang when beaTunes is updating the
    metadata but can't see anything obvious at the moment.

  7. Support Staff 37 Posted by hendrik on 01 Jun, 2017 02:00 PM

    hendrik's Avatar

    I've left iTunes running for half a day and it's still responsive. There must be something causing it to hang when beaTunes is updating the
    metadata but can't see anything obvious at the moment.

    Thanks for testing!
    FYI: I just pushed EA2 out. See http://blog.beatunes.com/2017/06/beatunes-5-ea2.html

  8. 38 Posted by Olly Ainger on 01 Jun, 2017 02:32 PM

    Olly Ainger's Avatar

    Thanks - I will try that now.

Reply to this discussion

Internal reply

Formatting help / Preview (switch to plain text) No formatting (switch to Markdown)

Attaching KB article:

»

Attached Files

You can attach files up to 10MB

If you don't have an account yet, we need to confirm you're human and not a machine trying to post spam.

Keyboard shortcuts

Generic

? Show this help
ESC Blurs the current field

Comment Form

r Focus the comment reply box
^ + ↩ Submit the comment

You can use Command ⌘ instead of Control ^ on Mac