[Debian-med-packaging] Bug#1148945: camitk: autopkgtest regression with Qt 6.11.2

Manik Bhattacharjee manik.bhattacharjee at univ-grenoble-alpes.fr
Sun Oct 4 17:47:53 BST 2026


The QtPrivate code in question is called by Qt itself.

The line that segfaults in our generated code is textbook use of 
QStringList.

It looks like:

QStringList ext;

ext << "test"';

The operator << is the one segfaulting.

This segfault only happens with:

- our camitk package compiled with Qt6.10,

- the extension (including this code) library compiled with Qt 6.11 
during autopkgtest

- this code from the extension is called by camitk after loading the 
extension

I don't know enough about binary compatibility to understand why this fails.

Maybe I should just create an empty -6 patch version to trigger

package rebuild with 6.11?


Le 02/10/2026 à 23:39, Adrian Bunk a écrit :
> On Mon, Sep 28, 2026 at 06:59:17PM +0200, Manik Bhattacharjee wrote:
>> This was difficult to debug, because the test that fails does the following:
>> - generates a CamiTK extension (.cpp/.h...)
>> - compiles it as a .so library
>> - calls a tool (camitk-config) that loads the generated library.
>> - A segfault happens when a method in the generated library is called.
> I didn't notice the segfault when I reported the bug.
>
>> This works without issue when compiling the package from scratch with Qt
>> 6.11.2.
>> But running the test with the package from Sid/Testing (compiled using Qt
>> 6.10), loading the extension compiled by the test using Qt6.11.2 crashes
>> with the segfault.
>> I known that there should be binary compatibility between Qt 6.10 and 6.11,
>> but it seems that in our case a call to operator QStringList << segfaults in
>> that situation.
> The backtrace of the segfault I just looked at is:
>
> #0  0x00007ffff7cdf73a in QArrayDataPointer<char16_t>::QArrayDataPointer (this=0x6d018294456bcae8, other=<optimized out>)
>      at /usr/include/x86_64-linux-gnu/qt6/QtCore/qarraydatapointer.h:78
> #1  QString::QString (this=0x6d018294456bcae8, other=<optimized out>) at /usr/include/x86_64-linux-gnu/qt6/QtCore/qstring.h:228
> #2  QtPrivate::QMovableArrayOps<QString>::emplace<QString> (this=0x7fffffffd320, i=0) at /usr/include/x86_64-linux-gnu/qt6/QtCore/qarraydataops.h:755
> #3  0x00007fffc406d5ae in QString& QList<QString>::emplaceBack<QString>(QString&&) ()
>      at /tmp/camitk-6.0.0/debian/tests/actionAndComponentUsingViewerExtension/build/lib/camitk-6.0/components/libtestcomponents.so.6.0.
> #4  0x00007fffc406d3bb in QList<QString>::append(QString&&) ()
>      at /tmp/camitk-6.0.0/debian/tests/actionAndComponentUsingViewerExtension/build/lib/camitk-6.0/components/libtestcomponents.so.6.0.
> #5  0x00007fffc406d12b in QList<QString>::operator<<(QString&&) ()
>      at /tmp/camitk-6.0.0/debian/tests/actionAndComponentUsingViewerExtension/build/lib/camitk-6.0/components/libtestcomponents.so.6.0.
> #6  0x00007fffc406cd1a in TestComponents::getFileExtensions() const ()
>      at /tmp/camitk-6.0.0/debian/tests/actionAndComponentUsingViewerExtension/build/lib/camitk-6.0/components/libtestcomponents.so.6.0.
> #7  0x00007ffff7cf6e23 in camitk::ExtensionManager::registerNewComponentExtension (ce=<optimized out>, filename=...)
>      at ./sdk/libraries/core/ExtensionManager.cpp:323
> #8  0x00007ffff7cfac6d in camitk::ExtensionManager::loadExtension (type=type at entry=camitk::ExtensionManager::COMPONENT, fileName=...)
>      at /usr/include/x86_64-linux-gnu/qt6/QtCore/qarraydata.h:60
> #9  0x00007ffff7cfc1a8 in camitk::ExtensionManager::autoload (type=type at entry=camitk::ExtensionManager::COMPONENT)
>      at /usr/include/x86_64-linux-gnu/qt6/QtCore/qarraydata.h:60
> #10 0x00007ffff7cfe0f6 in camitk::ExtensionManager::autoload () at ./sdk/libraries/core/ExtensionManager.cpp:51
> #11 0x00007ffff7d464e4 in camitk::Application::Application
>      (this=this at entry=0x7fffffffe180, name=..., theArgc=@0x7fffffffe12c: 2, theArgv=theArgv at entry=0x7fffffffe398, autoloadExtensions=autoloadExtensions at entry=true, registerFileExtension=registerFileExtension at entry=false, useSplashScreen=false) at ./sdk/libraries/core/application/Application.cpp:144
> #12 0x0000555555558000 in main (argc=<optimized out>, argv=0x7fffffffe398) at ./sdk/applications/config/main.cpp:119
>
> The QtPrivate in #2 seems to explain the problem.
>
>> Can you try to just rebuild the package with the latest Qt ?
>> Is there something I should put in debian/control to trigger recompilation
>> for Qt version changes ?
> I've added the Debian Qt maintainers to Cc for that.
>
> The problem seems to be that an extension gets built in the autopkgtest
> that does for some reason use something from QtPrivate:: - and this is
> an extension is for a package that does not depend on qt6-base-private-abi.
>
>> Thanks,
>>
>> Manik.
> cu
> Adrian
>
> BTW: The Debian BTS does not Cc the submitter.



More information about the Debian-med-packaging mailing list