infloop.m4a testfile is crashing

Bug #1594169 reported by Daniel Schürmann
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Mixxx
Fix Released
Undecided
Unassigned

Bug Description

log from Ubuntu 64 with current master:

Debug [AnalyzerQueue 1]: SoundSourceProvider "Nero FAAD2" created a SoundSource for file "file:///home/daniel/Downloads/taglib-1.10/tests/data/infloop.m4a" of type "m4a"
ReadAtom: "/home/daniel/Downloads/taglib-1.10/tests/data/infloop.m4a": invalid atom size, extends outside parent atom - skipping to end of "gnre" "data" 53192 vs 49514
ReadAtom: "/home/daniel/Downloads/taglib-1.10/tests/data/infloop.m4a": invalid atom size, extends outside parent atom - skipping to end of "" "free" 53240 vs 53192
ReadBytes: read failed: errno: 0 (src/mp4file_io.cpp,94)
Warning [CachingReaderWorker 2]: Failed to read MP4 input data for sample block 1 ( min = 1 , max = 11632 )
Warning [CachingReaderWorker 2]: Failed to read chunk samples: actual = 0 , expected = 8192
terminate called after throwing an instance of 'std::bad_alloc'
  what(): std::bad_alloc
Abgebrochen (Speicherabzug geschrieben)

Revision history for this message
Daniel Schürmann (daschuer) wrote :
Revision history for this message
Daniel Schürmann (daschuer) wrote :

Backtrace:

terminate called after throwing an instance of 'std::bad_alloc'
  what(): std::bad_alloc

Program received signal SIGABRT, Aborted.
[Switching to Thread 0x7fff90834700 (LWP 5363)]
0x00007ffff0c2dc37 in __GI_raise (sig=sig@entry=6)
    at ../nptl/sysdeps/unix/sysv/linux/raise.c:56
56 ../nptl/sysdeps/unix/sysv/linux/raise.c: Datei oder Verzeichnis nicht gefunden.
(gdb) bt
#0 0x00007ffff0c2dc37 in __GI_raise (sig=sig@entry=6)
    at ../nptl/sysdeps/unix/sysv/linux/raise.c:56
#1 0x00007ffff0c31028 in __GI_abort () at abort.c:89
#2 0x00007ffff1539c1d in __gnu_cxx::__verbose_terminate_handler() ()
   from /usr/lib/x86_64-linux-gnu/libstdc++.so.6
#3 0x00007ffff1537ca6 in ?? () from /usr/lib/x86_64-linux-gnu/libstdc++.so.6
#4 0x00007ffff1537cf1 in std::terminate() ()
   from /usr/lib/x86_64-linux-gnu/libstdc++.so.6
#5 0x00007ffff1537f56 in __cxa_rethrow ()
   from /usr/lib/x86_64-linux-gnu/libstdc++.so.6
#6 0x0000000000aeabc0 in Mixxx::SoundSource::open (this=0x7fff7c003000,
    audioSrcCfg=...) at src/sources/soundsource.cpp:31
#7 0x0000000000b0f93a in SoundSourceProxy::openAudioSource (
    this=this@entry=0x7fff90833ce0, audioSrcCfg=...)
    at src/sources/soundsourceproxy.cpp:580
#8 0x00000000004cd8e1 in AnalyzerQueue::run (this=0x3468af0)
    at src/analyzer/analyzerqueue.cpp:325
#9 0x00007ffff4ec232f in QThreadPrivate::start (arg=0x3468af0)
    at thread/qthread_unix.cpp:349
#10 0x00007ffff2c8f184 in start_thread (arg=0x7fff90834700)
    at pthread_create.c:312
#11 0x00007ffff0cf137d in clone ()
    at ../sysdeps/unix/sysv/linux/x86_64/clone.S:111

Changed in mixxx:
assignee: nobody → Uwe Klotz (uklotzde)
status: New → In Progress
Revision history for this message
Uwe Klotz (uklotzde-deactivatedaccount) wrote :

No crash on Fedora 23 and TagLib 1.11 even though the warning messages about the corrupt file are identical. Maybe a memory corruption bug in TagLib 1.10 that has been fixed in 1.11?

I will use Valgrind for a deeper analysis.

Revision history for this message
Uwe Klotz (uklotzde-deactivatedaccount) wrote :

Plays 4:30 of silence, because the file is corrupt. But Mixxx doesn't crash and Valgrind doesn't report any memory corruption bugs.

Could you please try to rebuild the plugins? If this doesn't help you may try to upgrade Taglib from 1.10 to 1.11.

Revision history for this message
Daniel Schürmann (daschuer) wrote :

Thank your for your investigations.

I have rebuild the libsoundsourcem4a.so and I have switched to TagLib 1.11.
No Luck.

Since the file is from the Taglib test suite, I assume that there is no issue in Taglib.

Maybe libfaad2 has an issue? Mine is 2.7-8. Which Version do you have?

Revision history for this message
Uwe Klotz (uklotzde-deactivatedaccount) wrote :

gcc (GCC) 5.3.1 20160406 (Red Hat 5.3.1-6)

Name : faad2
Arch : x86_64
Epoch : 1
Version : 2.7
Release : 6.fc22
Repo : rpmfusion-free

I will try it again soon with gcc 6.x after upgrading to Fedora 24.

Revision history for this message
Uwe Klotz (uklotzde-deactivatedaccount) wrote :

Since the actual crash happens when opening the file and not when reading tags it might be caused by different versions or compiler settings of libfaad2.

Revision history for this message
Uwe Klotz (uklotzde-deactivatedaccount) wrote :

gcc version 6.1.1 20160510 (Red Hat 6.1.1-2) (GCC)

Name : faad2-libs
Arch : x86_64
Epoch : 1
Version : 2.7
Release : 6.fc24
Size : 268 k
Repo : @System
From repo : rpmfusion-free-updates-testing

Rebuilt on Fedora 24. Works as expected like before, no crash.

Revision history for this message
Daniel Schürmann (daschuer) wrote :

Interesting. I will try to dig this down on my side.

Revision history for this message
Daniel Schürmann (daschuer) wrote :
Revision history for this message
Uwe Klotz (uklotzde-deactivatedaccount) wrote :

The function MP4GetTrackMaxSampleSize() is provided by libmp4v2:

Name : libmp4v2
Arch : x86_64
Epoch : 0
Version : 2.1.0
Release : 0.6.trunkREV507.fc24

Both Fedora 23 and 24 use this version.

Revision history for this message
Uwe Klotz (uklotzde-deactivatedaccount) wrote :

I've found some references about the corresponding MP4 property and will amend Daniel's bug fix.

Revision history for this message
Uwe Klotz (uklotzde-deactivatedaccount) wrote :
Changed in mixxx:
status: In Progress → Fix Committed
Changed in mixxx:
milestone: none → 2.1.0
Changed in mixxx:
status: Fix Committed → Fix Released
Revision history for this message
Swiftb0y (swiftb0y) wrote :

Mixxx now uses GitHub for bug tracking. This bug has been migrated to:
https://github.com/mixxxdj/mixxx/issues/8577

lock status: Metadata changes locked and limited to project staff
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.