-
-
Notifications
You must be signed in to change notification settings - Fork 1k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
mod-pitchshifter, Capo - Crash #6494
Comments
Possibly mod-audio/mod-pitchshifter#12 |
#15 0x00007fffac688e9c in lmms::Lv2Effect::processAudioBuffer(std::array<float, 2ul>, short) (this=0x7ffff2793880, buf=0x7ffff2793080, frames=256)
at /home/zonkmachine/builds/lmms/plugins/Lv2Effect/Lv2Effect.cpp:79
outSum = 4.6355770498214659e-310
corrupt = 85
d = 0
w = 0 From backtrace 2 above. Why does the bool corrupt come up with a value of 85? |
Valgrind
Looks like it's in Capo and not lmms, though I'm not experienced with Valgrind. I don't know how to turn on a debug build in mod-pitchshifter. Test file: capobitinvader.mmp.zip $~/builds/lmms/build$ valgrind --smc-check=all --error-limit=no --leak-check=no ./lmms render ~/Documents/lmms/projects/capobitinvader.mmp -o test
==33755== Memcheck, a memory error detector
==33755== Copyright (C) 2002-2017, and GNU GPL'd, by Julian Seward et al.
==33755== Using Valgrind-3.18.1 and LibVEX; rerun with -h for copyright info
==33755== Command: ./lmms render /home/zonkmachine/Documents/lmms/projects/capobitinvader.mmp -o test
==33755==
*** WEAK-JACK: initializing
*** WEAK-JACK: OK. (0)
...
|------------ | 23% / PSAnalysis: using plugin-provided wisdom file
PSSinthesis: using plugin-provided wisdom file
PSAnalysis: using plugin-provided wisdom file
PSSinthesis: using plugin-provided wisdom file
|----------------- | 32% | PSAnalysis: using plugin-provided wisdom file
|------------------ | 34% / PSSinthesis: using plugin-provided wisdom file
==33755== Thread 10 lmms::ProjectRen:
==33755== Invalid write of size 8
==33755== at 0x48527ED: memset (in /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so)
==33755== by 0x1CF00139: PSSinthesis::Sinthesis(double) (in /usr/local/lib/lv2/mod-capo.lv2/mod-capo.so)
==33755== by 0x1CEF331B: Capo::run(void*, unsigned int) (in /usr/local/lib/lv2/mod-capo.lv2/mod-capo.so)
==33755== by 0x444728: lilv_instance_run (lilv.h:1948)
==33755== by 0x445AE1: lmms::Lv2Proc::run(short) (Lv2Proc.cpp:334)
==33755== by 0x43C8E7: lmms::Lv2ControlBase::run(short) (Lv2ControlBase.cpp:151)
==33755== by 0x1BFE9E9B: lmms::Lv2Effect::processAudioBuffer(std::array<float, 2ul>*, short) (Lv2Effect.cpp:79)
==33755== by 0x3AAC7B: lmms::EffectChain::processAudioBuffer(std::array<float, 2ul>*, short, bool) (EffectChain.cpp:201)
==33755== by 0x3B367B: lmms::MixerChannel::doProcessing() (Mixer.cpp:173)
==33755== by 0x36113E: lmms::ThreadableJob::process() (ThreadableJob.h:77)
==33755== by 0x3609EB: lmms::AudioEngineWorkerThread::JobQueue::run() (AudioEngineWorkerThread.cpp:88)
==33755== by 0x360CEC: lmms::AudioEngineWorkerThread::startAndWaitForJobs() (AudioEngineWorkerThread.cpp:161)
==33755== Address 0x17a3ad50 is 16 bytes after a block of size 32 alloc'd
==33755== at 0x4848899: malloc (in /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so)
==33755== by 0x6DA3EE5: sord_add (in /usr/lib/x86_64-linux-gnu/libsord-0.so.0.16.8)
==33755== by 0x6DA49B9: sord_inserter_write_statement (in /usr/lib/x86_64-linux-gnu/libsord-0.so.0.16.8)
==33755== by 0x6D91699: ??? (in /usr/lib/x86_64-linux-gnu/libserd-0.so.0.30.10)
==33755== by 0x6D887EC: ??? (in /usr/lib/x86_64-linux-gnu/libserd-0.so.0.30.10)
==33755== by 0x6D89EE5: ??? (in /usr/lib/x86_64-linux-gnu/libserd-0.so.0.30.10)
==33755== by 0x6D8A520: ??? (in /usr/lib/x86_64-linux-gnu/libserd-0.so.0.30.10)
==33755== by 0x6D887AE: ??? (in /usr/lib/x86_64-linux-gnu/libserd-0.so.0.30.10)
==33755== by 0x6D89EE5: ??? (in /usr/lib/x86_64-linux-gnu/libserd-0.so.0.30.10)
==33755== by 0x6D8A520: ??? (in /usr/lib/x86_64-linux-gnu/libserd-0.so.0.30.10)
==33755== by 0x6D887AE: ??? (in /usr/lib/x86_64-linux-gnu/libserd-0.so.0.30.10)
==33755== by 0x6D8A35B: ??? (in /usr/lib/x86_64-linux-gnu/libserd-0.so.0.30.10)
==33755==
==33755== Invalid write of size 8
==33755== at 0x48527F7: memset (in /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so)
==33755== by 0x1CF00139: PSSinthesis::Sinthesis(double) (in /usr/local/lib/lv2/mod-capo.lv2/mod-capo.so)
==33755== by 0x1CEF331B: Capo::run(void*, unsigned int) (in /usr/local/lib/lv2/mod-capo.lv2/mod-capo.so)
==33755== by 0x444728: lilv_instance_run (lilv.h:1948)
==33755== by 0x445AE1: lmms::Lv2Proc::run(short) (Lv2Proc.cpp:334)
==33755== by 0x43C8E7: lmms::Lv2ControlBase::run(short) (Lv2ControlBase.cpp:151)
==33755== by 0x1BFE9E9B: lmms::Lv2Effect::processAudioBuffer(std::array<float, 2ul>*, short) (Lv2Effect.cpp:79)
==33755== by 0x3AAC7B: lmms::EffectChain::processAudioBuffer(std::array<float, 2ul>*, short, bool) (EffectChain.cpp:201)
==33755== by 0x3B367B: lmms::MixerChannel::doProcessing() (Mixer.cpp:173)
==33755== by 0x36113E: lmms::ThreadableJob::process() (ThreadableJob.h:77)
==33755== by 0x3609EB: lmms::AudioEngineWorkerThread::JobQueue::run() (AudioEngineWorkerThread.cpp:88)
==33755== by 0x360CEC: lmms::AudioEngineWorkerThread::startAndWaitForJobs() (AudioEngineWorkerThread.cpp:161)
==33755== Address 0x17a3ad58 is 24 bytes after a block of size 32 in arena "client"
==33755==
valgrind: m_mallocfree.c:303 (get_bszB_as_is): Assertion 'bszB_lo == bszB_hi' failed.
valgrind: Heap block lo/hi size mismatch: lo = 96, hi = 0.
This is probably caused by your program erroneously writing past the
end of a heap block and corrupting heap metadata. If you fix any
invalid writes reported by Memcheck, this assertion failure will
probably go away. Please try that before reporting this as a bug.
host stacktrace:
==33755== at 0x5804284A: ??? (in /usr/libexec/valgrind/memcheck-amd64-linux)
==33755== by 0x58042977: ??? (in /usr/libexec/valgrind/memcheck-amd64-linux)
==33755== by 0x58042B1B: ??? (in /usr/libexec/valgrind/memcheck-amd64-linux)
==33755== by 0x5804C8CF: ??? (in /usr/libexec/valgrind/memcheck-amd64-linux)
==33755== by 0x5803AE9A: ??? (in /usr/libexec/valgrind/memcheck-amd64-linux)
==33755== by 0x580395B7: ??? (in /usr/libexec/valgrind/memcheck-amd64-linux)
==33755== by 0x5803DF3D: ??? (in /usr/libexec/valgrind/memcheck-amd64-linux)
==33755== by 0x58038868: ??? (in /usr/libexec/valgrind/memcheck-amd64-linux)
==33755== by 0x100428E518: ???
==33755== by 0x1012E38F1F: ???
==33755== by 0x581FCD83: ??? (in /usr/libexec/valgrind/memcheck-amd64-linux)
==33755== by 0x1012E38F07: ???
==33755== by 0x1012E38F1F: ???
==33755== by 0x9: ???
==33755== by 0x2DA6: ???
...
Thread 10: status = VgTs_Runnable (lwpid 33775)
==33755== at 0x48527FB: memset (in /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so)
==33755== by 0x1CF00139: PSSinthesis::Sinthesis(double) (in /usr/local/lib/lv2/mod-capo.lv2/mod-capo.so)
==33755== by 0x1CEF331B: Capo::run(void*, unsigned int) (in /usr/local/lib/lv2/mod-capo.lv2/mod-capo.so)
==33755== by 0x444728: lilv_instance_run (lilv.h:1948)
==33755== by 0x445AE1: lmms::Lv2Proc::run(short) (Lv2Proc.cpp:334)
==33755== by 0x43C8E7: lmms::Lv2ControlBase::run(short) (Lv2ControlBase.cpp:151)
==33755== by 0x1BFE9E9B: lmms::Lv2Effect::processAudioBuffer(std::array<float, 2ul>*, short) (Lv2Effect.cpp:79)
==33755== by 0x3AAC7B: lmms::EffectChain::processAudioBuffer(std::array<float, 2ul>*, short, bool) (EffectChain.cpp:201)
==33755== by 0x3B367B: lmms::MixerChannel::doProcessing() (Mixer.cpp:173)
==33755== by 0x36113E: lmms::ThreadableJob::process() (ThreadableJob.h:77)
==33755== by 0x3609EB: lmms::AudioEngineWorkerThread::JobQueue::run() (AudioEngineWorkerThread.cpp:88)
==33755== by 0x360CEC: lmms::AudioEngineWorkerThread::startAndWaitForJobs() (AudioEngineWorkerThread.cpp:161)
==33755== by 0x3B5178: lmms::Mixer::masterMix(std::array<float, 2ul>*) (Mixer.cpp:647)
==33755== by 0x358AE6: lmms::AudioEngine::renderNextBuffer() (AudioEngine.cpp:427)
==33755== by 0x34A124: lmms::AudioEngine::nextBuffer() (AudioEngine.h:345)
==33755== by 0x42ADC0: lmms::AudioDevice::getNextBuffer(std::array<float, 2ul>*) (AudioDevice.cpp:85)
==33755== by 0x42AD23: lmms::AudioDevice::processNextBuffer() (AudioDevice.cpp:68)
==33755== by 0x3FC17B: lmms::ProjectRenderer::run() (ProjectRenderer.cpp:188)
==33755== by 0x6010CA0: ??? (in /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.15.3)
==33755== by 0x686AB42: start_thread (pthread_create.c:442)
==33755== by 0x68FBBB3: clone (clone.S:100)
client stack range: [0x39205000 0x39A03FFF] client SP: 0x39A03758
valgrind stack range: [0x1012D39000 0x1012E38FFF] top usage: 6920 of 1048576
Note: see also the FAQ in the source distribution.
It contains workarounds to several common problems.
In particular, if Valgrind aborted or crashed after
identifying problems in your program, there's a good chance
that fixing those problems will prevent Valgrind aborting or
crashing, especially if it happened in m_mallocfree.c.
If that doesn't help, please report this bug to: www.valgrind.org
In the bug report, send all the above text, the valgrind
version, and what OS and version you are using. Thanks. |
Closed upstream in mod-audio/mod-pitchshifter@efd26e6 |
Crash with Capo from the mod-pitchshifter plugins. https://github.com/moddevices/mod-pitchshifter
Steps to reproduce
Insert a Capo pitch shifter into a track and change fidelity/steps while playing.
Affected LMMS versions
On master (4821606) with LV2_BUF_SIZE__powerOf2BlockLength supported as described in #6492
The crashes don't seem to occur on buffer sizes 64 and 128
There is a
free(): invalid pointer
in the log ahead of the crash on the first backtrace andmalloc_consolidate(): invalid chunk size
in the second one so I think this could be the plugin doing something it shouldn't.bt full
Click to expand
bt full
Click to expand
The text was updated successfully, but these errors were encountered: