Dear Maintainer, I was testing Debian 11 Bullseye on a Thinkpad T530 with UEFI/GPT and LVM. When the new volume group was being created, the error 'Create a new partition table (type gpt_ on '/dev/debian-vg') is shown. Once this is closed, calamares installer closes and results in failure.
I'm seeing a similar problem here, but I think the problem is deeper. Starting in BIOS mode on a kde i386 live image. The existing disk on my test system has an LVM setup on it. I've told calamares to wipe the whole disk and do a fresh installation, but it looks like the code to work out the existing disks has got confused and it thinks that the whole disk is /dev/debian-vg rather than /dev/sda. Three attachments here: * partitions.txt is the output of "fdisk -l" at the start * Screenshot_20210814_174257.png shows calamares just before I hit "Install" * Screenshot_20210814_174916.png shows the error message
calamares and now it's working fine.
Just a ping to the BTS to avoid auto-rm, I'll file this bug with upstream soon.
Upstream maintainer here. Thanks Steve McIntyre for useful screenshots and fdisk output. It's given me something to work with. (Mostly, I manage to crash the installer with a segfault while trying to set up something like your disk) The Calamares version in Debian is 3.2.36. That's from february. Upstream has a 2-week release cycle which doesn't mesh really well with Debian. Calamares 3.2.45 (from early november) had a bunch of LVM-related fixes, and the changelog mentions many other things related to partitioning in the meantime. What I do: - boot VM in BIOS mode - dd 64MB of zeros to my (virtual) disk - start the installer - click through to the partitioning page - create a new partition table, MBR. - create a partition on the disk, primary partition, LVM PV as type, whole disk. OK that dialog. - click "New Volume Group" button, check the box for the new PV, give it a label, click OK. - installer vanishes without a trace, segmentation fault. This still happens -- well, there's an ASSERT triggered instead -- on the latest Calamares, so while I can't reproduce the specific issue, I can find other things that need work (in a general sense "all the LVM functionality", which only works well in an unfortunately-narrow set of circumstances). Feel free to file an upstream issue (Jonathan Carter pinged me on IRC to point me at this downstream one) with specific steps to reproduce the issues you've been having, though. [ade]
Hi Adriaan The latest calamares version in Debian unstable is 3.2.44, although at the time this bug was filed, the same issue could be reproduced with the latest upstream version. I'll upload 3.2.45 soon and check again, my guess is that I'll have the same result as you. thanks for following up!
I have tried to get some symbols before. Launched with: # gdb -batch -n -ex 'set pagination off' -ex run -ex bt -ex 'bt full' -ex 'thread apply all bt full' --args calamares -d 1> normal.txt 2>errs.txt user@debian:~$ apt list --installed | grep calamares WARNING: apt does not have a stable CLI interface. Use with caution in scripts. calamares-settings-debian/stable,now 11.0.5-2 all [installed,automatic] calamares/stable,now 3.2.36-1 i386 [installed,automatic] user@debian:~$ Thread 1 (Thread 0xb20307c0 (LWP 19575) "calamares"): #0 0xac0c552c in PartitionCoreModule::partitionModelForDevice(Device const*) const () from /usr/lib/i386-linux-gnu/calamares/modules/partition/libcalamares_viewmodule_partition.so No symbol table info available. #1 0xac0ee6b4 in PartitionPage::updateFromCurrentDevice() () from /usr/lib/i386-linux-gnu/calamares/modules/partition/libcalamares_viewmodule_partition.so No symbol table info available. #2 0xb66e377e in ?? () from /lib/i386-linux-gnu/sse2/libQt5Core.so.5 No symbol table info available. #3 0xb788c251 in QComboBox::currentTextChanged(QString const&) () from /lib/i386-linux-gnu/libQt5Widgets.so.5 No symbol table info available. #4 0xb788ea6a in ?? () from /lib/i386-linux-gnu/libQt5Widgets.so.5 No symbol table info available. #5 0xb789044f in ?? () from /lib/i386-linux-gnu/libQt5Widgets.so.5 No symbol table info available. #6 0xb78905f3 in ?? () from /lib/i386-linux-gnu/libQt5Widgets.so.5 No symbol table info available. #7 0xb789586c in ?? () from /lib/i386-linux-gnu/libQt5Widgets.so.5 No symbol table info available. #8 0xb66e37b2 in ?? () from /lib/i386-linux-gnu/sse2/libQt5Core.so.5 No symbol table info available. #9 0xb6640321 in QAbstractItemModel::modelReset(QAbstractItemModel::QPrivateSignal) () from /lib/i386-linux-gnu/sse2/libQt5Core.so.5 No symbol table info available. #10 0xb6642bd7 in QAbstractItemModel::endResetModel() () from /lib/i386-linux-gnu/sse2/libQt5Core.so.5 No symbol table info available. #11 0xac0c281e in DeviceModel::addDevice(Device*) () from /usr/lib/i386-linux-gnu/calamares/modules/partition/libcalamares_viewmodule_partition.so No symbol table info available. #12 0xac0c8aa9 in PartitionCoreModule::createVolumeGroup(QString&, QVector<Partition const*>, int) () from /usr/lib/i386-linux-gnu/calamares/modules/partition/libcalamares_viewmodule_partition.so No symbol table info available. #13 0xac0eed73 in PartitionPage::onNewVolumeGroupClicked() () from /usr/lib/i386-linux-gnu/calamares/modules/partition/libcalamares_viewmodule_partition.so No symbol table info available. #14 0xb66e377e in ?? () from /lib/i386-linux-gnu/sse2/libQt5Core.so.5 No symbol table info available. #15 0xb7878d59 in QAbstractButton::clicked(bool) () from /lib/i386-linux-gnu/libQt5Widgets.so.5 No symbol table info available. #16 0xb7879893 in ?? () from /lib/i386-linux-gnu/libQt5Widgets.so.5 No symbol table info available. #17 0xb787b2ed in ?? () from /lib/i386-linux-gnu/libQt5Widgets.so.5 No symbol table info available. #18 0xb787b503 in QAbstractButton::mouseReleaseEvent(QMouseEvent*) () from /lib/i386-linux-gnu/libQt5Widgets.so.5 No symbol table info available. #19 0xb77bee8f in QWidget::event(QEvent*) () from /lib/i386-linux-gnu/libQt5Widgets.so.5 No symbol table info available. #20 0xb787c33a in QAbstractButton::event(QEvent*) () from /lib/i386-linux-gnu/libQt5Widgets.so.5 No symbol table info available. #21 0xb7926f76 in QPushButton::event(QEvent*) () from /lib/i386-linux-gnu/libQt5Widgets.so.5 No symbol table info available. #22 0xb7779976 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /lib/i386-linux-gnu/libQt5Widgets.so.5 No symbol table info available. #23 0xb7780e1d in QApplication::notify(QObject*, QEvent*) () from /lib/i386-linux-gnu/libQt5Widgets.so.5 No symbol table info available. #24 0xb66a99ca in QCoreApplication::notifyInternal2(QObject*, QEvent*) () from /lib/i386-linux-gnu/sse2/libQt5Core.so.5 No symbol table info available. #25 0xb66a9c68 in QCoreApplication::sendSpontaneousEvent(QObject*, QEvent*) () from /lib/i386-linux-gnu/sse2/libQt5Core.so.5 No symbol table info available. #26 0xb777fdbd in QApplicationPrivate::sendMouseEvent(QWidget*, QMouseEvent*, QWidget*, QWidget*, QWidget**, QPointer<QWidget>&, bool, bool) () from /lib/i386-linux-gnu/libQt5Widgets.so.5 No symbol table info available. #27 0xb77d92bd in ?? () from /lib/i386-linux-gnu/libQt5Widgets.so.5 No symbol table info available. #28 0xb77dcb2c in ?? () from /lib/i386-linux-gnu/libQt5Widgets.so.5 No symbol table info available. #29 0xb7779976 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /lib/i386-linux-gnu/libQt5Widgets.so.5 No symbol table info available. #30 0xb7780ad4 in QApplication::notify(QObject*, QEvent*) () from /lib/i386-linux-gnu/libQt5Widgets.so.5 No symbol table info available. #31 0xb66a99ca in QCoreApplication::notifyInternal2(QObject*, QEvent*) () from /lib/i386-linux-gnu/sse2/libQt5Core.so.5 No symbol table info available. #32 0xb66a9c68 in QCoreApplication::sendSpontaneousEvent(QObject*, QEvent*) () from /lib/i386-linux-gnu/sse2/libQt5Core.so.5 No symbol table info available. #33 0xb6a8954d in QGuiApplicationPrivate::processMouseEvent(QWindowSystemInterfacePrivate::MouseEvent*) () from /lib/i386-linux-gnu/sse2/libQt5Gui.so.5 No symbol table info available. #34 0xb6a8a9b9 in QGuiApplicationPrivate::processWindowSystemEvent(QWindowSystemInterfacePrivate::WindowSystemEvent*) () from /lib/i386-linux-gnu/sse2/libQt5Gui.so.5 No symbol table info available. #35 0xb6a59fd4 in QWindowSystemInterface::sendWindowSystemEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /lib/i386-linux-gnu/sse2/libQt5Gui.so.5 No symbol table info available. #36 0xb1a6fefb in ?? () from /lib/i386-linux-gnu/libQt5XcbQpa.so.5 No symbol table info available. #37 0xb46178cd in g_main_context_dispatch () from /lib/i386-linux-gnu/libglib-2.0.so.0 No symbol table info available. #38 0xb4617b69 in ?? () from /lib/i386-linux-gnu/libglib-2.0.so.0 No symbol table info available. #39 0xb4617c34 in g_main_context_iteration () from /lib/i386-linux-gnu/libglib-2.0.so.0 No symbol table info available. #40 0xb67079b2 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /lib/i386-linux-gnu/sse2/libQt5Core.so.5 No symbol table info available. #41 0xb1a70371 in ?? () from /lib/i386-linux-gnu/libQt5XcbQpa.so.5 No symbol table info available. #42 0xb66a802e in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /lib/i386-linux-gnu/sse2/libQt5Core.so
Had forget the step to add the debug repository in /etc/apt/sources.list
Here again... same calamares:
Thread 1 "calamares" received signal SIGSEGV, Segmentation fault.
PartitionCoreModule::partitionModelForDevice (this=0xd60490, device=0x13da150)
at /usr/include/i386-linux-gnu/qt5/QtCore/qscopedpointer.h:138
138 /usr/include/i386-linux-gnu/qt5/QtCore/qscopedpointer.h: No such file or directory.
(gdb) bt
#0 PartitionCoreModule::partitionModelForDevice (this=0xd60490,
device=0x13da150)
at /usr/include/i386-linux-gnu/qt5/QtCore/qscopedpointer.h:138
#1 0xac1b66b4 in PartitionPage::updateFromCurrentDevice (this=0x1328f60)
at ./src/modules/partition/gui/PartitionPage.cpp:569
#2 0xb66e377e in ?? () from /lib/i386-linux-gnu/sse2/libQt5Core.so.5
#3 0xb788c251 in QComboBox::currentTextChanged(QString const&) ()
from /lib/i386-linux-gnu/libQt5Widgets.so.5
#4 0xb788ea6a in ?? () from /lib/i386-linux-gnu/libQt5Widgets.so.5
#5 0xb789044f in ?? () from /lib/i386-linux-gnu/libQt5Widgets.so.5
#6 0xb78905f3 in ?? () from /lib/i386-linux-gnu/libQt5Widgets.so.5
#7 0xb789586c in ?? () from /lib/i386-linux-gnu/libQt5Widgets.so.5
#8 0xb66e37b2 in ?? () from /lib/i386-linux-gnu/sse2/libQt5Core.so.5
#9 0xb6640321 in QAbstractItemModel::modelReset(QAbstractItemModel::QPrivateSignal) () from /lib/i386-linux-gnu/sse2/libQt5Core.so.5
#10 0xb6642bd7 in QAbstractItemModel::endResetModel() ()
from /lib/i386-linux-gnu/sse2/libQt5Core.so.5
#11 0xac18a81e in DeviceModel::addDevice (this=0xd776b0,
device=<optimized out>) at ./src/modules/partition/core/DeviceModel.cpp:144
#12 0xac190aa9 in PartitionCoreModule::createVolumeGroup (this=0xd60490,
vgName=..., pvList=..., peSize=4)
at ./src/modules/partition/core/PartitionCoreModule.cpp:419
#13 0xac1b6d73 in PartitionPage::onNewVolumeGroupClicked (this=0x1328f60)
Still a problem in Debian Testing.
paul@albukerk:~$ dpkg -l|grep calamares
ii calamares 3.2.59-1 amd64 distribution-independent installer framework
ii calamares-dbgsym 3.2.59-1 amd64 debug symbols for calamares
ii calamares-settings-debian 12.0.2-1 all Debian theme and settings for the Calamares Installer
[Detaching after fork from child process 15314]
[Thread 0x7fffead06640 (LWP 14943) exited]
--Type <RET> for more, q to quit, c to continue without paging--
Thread 1 "calamares" received signal SIGSEGV, Segmentation fault.
PartitionCoreModule::partitionModelForDevice (this=<optimized out>,
device=device@entry=0x555558686040)
at /usr/include/x86_64-linux-gnu/qt5/QtCore/qscopedpointer.h:138
138 /usr/include/x86_64-linux-gnu/qt5/QtCore/qscopedpointer.h: Aucun fichier ou dossier de ce type.
(gdb) bt
#0 PartitionCoreModule::partitionModelForDevice (this=<optimized out>,
device=device@entry=0x555558686040)
at /usr/include/x86_64-linux-gnu/qt5/QtCore/qscopedpointer.h:138
#1 0x00007fffc9956498 in PartitionPage::updateFromCurrentDevice (
this=0x7fffec006cd0) at ./src/modules/partition/gui/PartitionPage.cpp:584
#2 0x00007ffff5ee6133 in QtPrivate::QSlotObjectBase::call (a=0x7fffffffce90,
r=0x7fffec006cd0, this=0x555558639290)
at ../../include/QtCore/../../src/corelib/kernel/qobjectdefs_impl.h:398
#3 doActivate<false> (sender=0x55555859f400, signal_index=14,
argv=0x7fffffffce90) at kernel/qobject.cpp:3886
#4 0x00007ffff5edf5ff in QMetaObject::activate (
sender=sender@entry=0x55555859f400,
m=m@entry=0x7ffff7c825e0 <QComboBox::staticMetaObject>,
local_signal_index=local_signal_index@entry=7,
argv=argv@entry=0x7fffffffce90) at kernel/qobject.cpp:3946
#5 0x00007ffff7867e15 in QComboBox::currentTextChanged (
this=this@entry=0x55555859f400, _t1=...) at .moc/moc_qcombobox.cpp:552
#6 0x00007ffff786a643 in QComboBoxPrivate::_q_emitCurrentIndexChanged (
this=this@entry=0x5555585fdf10, index=...) at widgets/qcombobox.cpp:1481
#7 0x00007ffff786cf45 in QComboBoxPrivate::setCurrentIndex (
this=this@entry=0x5555585fdf10, mi=...) at widgets/qcombobox.cpp:2326
#8 0x00007ffff786d0c0 in QComboBoxPrivate::trySetValidIndex (
this=this@entry=0x5555585fdf10) at widgets/qcombobox.cpp:315
--Type <RET> for more, q to quit, c to continue without paging--
#9 0x00007ffff7871080 in QComboBoxPrivate::_q_modelReset (this=0x5555585fdf10)
at widgets/qcombobox.cpp:296
#10 0x00007ffff5ee6168 in doActivate<false> (sender=0x555555b76080,
signal_index=21, argv=0x7fffffffd150) at kernel/qobject.cpp:3898
#11 0x00007ffff5edf5ff in QMetaObject::activate (
sender=sender@entry=0x555555b76080,
m=m@entry=0x7ffff6147680 <QAbstractItemModel::staticMetaObject>,
local_signal_index=local_signal_index@entry=18,
argv=argv@entry=0x7fffffffd150) at kernel/qobject.cpp:3946
#12 0x00007ffff5e4a94d in QAbstractItemModel::modelReset (
this=this@entry=0x555555b76080, _t1=...)
at .moc/moc_qabstractitemmodel.cpp:648
#13 0x00007ffff5e4cacb in QAbstractItemModel::endResetModel (
this=this@entry=0x555555b76080) at itemmodels/qabstractitemmodel.cpp:3304
#14 0x00007fffc9920b55 in DeviceModel::addDevice (this=0x555555b76080,
device=<optimized out>, device@entry=0x555558686040)
at ./src/modules/partition/core/DeviceModel.cpp:142
#15 0x00007fffc99294c5 in PartitionCoreModule::createVolumeGroup (
this=0x555555d9c100, vgName=..., pvList=..., peSize=4)
at ./src/modules/partition/core/PartitionCoreModule.cpp:428
#16 0x00007fffc9956db3 in PartitionPage::onNewVolumeGroupClicked (
this=0x7fffec006cd0) at ./src/modules/partition/gui/PartitionPage.cpp:324
#17 0x00007ffff5ee6133 in QtPrivate::QSlotObjectBase::call (a=0x7fffffffd410,
--Type <RET> for more, q to quit, c to continue without paging--
r=0x7fffec006cd0, this=0x55555863db40)
at ../../include/QtCore/../../src/corelib/kernel/qobjectdefs_impl.h:398
#18 doActivate<false> (sender=0x55555862f210, signal_index=9,
argv=0x7fffffffd410) at kernel/qobject.cpp:3886
#19 0x00007ffff5edf5ff in QMetaObject::activate (
sender=sender@entry=0x55555862f210,
m=m@entry=0x7ffff7c80180 <QAbstractButton::staticMetaObject>,
local_signal_index=local_signal_index@entry=2,
argv=argv@entry=0x7fffffffd410) at kernel/qobject.cpp:3946
#20 0x00007ffff7856352 in QAbstractButton::clicked (
this=this@entry=0x55555862f210, _t1=<optimized out>)
at .moc/moc_qabstractbutton.cpp:308
#21 0x00007ffff78565ca in QAbstractButtonPrivate::emitClicked (
this=0x55555862f250) at widgets/qabstractbutton.cpp:415
#22 0x00007ffff7858190 in QAbstractButtonPrivate::click (this=0x55555862f250)
at widgets/qabstractbutton.cpp:408
#23 0x00007ffff78583b3 in QAbstractButton::mouseReleaseEvent (
this=0x55555862f210, e=0x7fffffffd9b0) at widgets/qabstractbutton.cpp:1044
#24 0x00007ffff77a54ce in QWidget::event (this=0x55555862f210,
event=0x7fffffffd9b0) at kernel/qwidget.cpp:9019
#25 0x00007ffff77636bf in QApplicationPrivate::notify_helper (
this=this@entry=0x5555557b9140, receiver=receiver@entry=0x55555862f210,
e=e@entry=0x7fffffffd9b0) at kernel/qapplication.cpp:3632
--Type <RET> for more, q to quit, c to continue without paging--
(gdb) disassemble
Dump of assembler code for function _ZNK19PartitionCoreModule23partitionModelForDeviceEPK6Device:
0x00007fffc9924e00 <+0>: sub $0x8,%rsp
0x00007fffc9924e04 <+4>: call 0x7fffc98ff810 <_ZNK19PartitionCoreModule13infoForDeviceEPK6Device@plt>
=> 0x00007fffc9924e09 <+9>: mov 0x8(%rax),%rax
0x00007fffc9924e0d <+13>: add $0x8,%rsp
0x00007fffc9924e11 <+17>: ret
End of assembler dump.
(gdb)
Maybe it helps: (gdb) info registers rax 0x0 0 rbx 0x7fffffffcd60 140737488342368 rcx 0x7fffcc004ab0 140736615959216 rdx 0x7fffcc004ac0 140736615959232 rsi 0x555558686040 93825043816512 rdi 0x555555d9c100 93825000915200 rbp 0x555558686040 0x555558686040 rsp 0x7fffffffcd10 0x7fffffffcd10 r8 0x0 0 r9 0x55555863d5d0 93825043518928 r10 0xffffffff 4294967295 r11 0x9 9 r12 0x7fffec006cd0 140737152838864 r13 0x7fffffffcd40 140737488342336 r14 0x7ffff5e4c500 140737318798592 r15 0x7fffffffce20 140737488342560 rip 0x7fffc9924e09 0x7fffc9924e09 <PartitionCoreModule::partitionModelForDevice(Device const*) const+9> eflags 0x10246 [ PF ZF IF RF ] cs 0x33 51 ss 0x2b 43 ds 0x0 0 es 0x0 0 --Type <RET> for more, q to quit, c to continue without paging--c fs 0x0 0 gs 0x0 0 (gdb)
So... that would be in ~/mycala/calamares-3.2.59/src/modules/partition/gui/PartitionPage.cpp line 584
"void
PartitionPage::updateFromCurrentDevice()
{
QModelIndex index = m_core->deviceModel()->index( m_ui->deviceComboBox->currentIndex(), 0 );
if ( !index.isValid() )
{
return;
}
Device* device = m_core->deviceModel()->deviceForIndex( index );
QAbstractItemModel* oldModel = m_ui->partitionTreeView->model();
if ( oldModel )
{
disconnect( oldModel, nullptr, this, nullptr );
}
PartitionModel* model = m_core->partitionModelForDevice( device );
m_ui->partitionBarsView->setModel( model );
m_ui->partitionLabelsView->setModel( model );
m_ui->partitionTreeView->setModel( model );
m_ui->partitionTreeView->expandAll();
"
on the PartitionModel* model = m_core->partitionModelForDevice( device );
also... I might not be ok to do it like that but from:
https://code.woboq.org/qt5/qtbase/src/corelib/tools/qscopedpointer.h.html
it would be on: qtbase/src/corelib/tools/qscopedpointer.h:138
T *data() const noexcept
{
return d;
}
where documentation for qscopedPointer is at:
https://doc.qt.io/qt-6/qscopedpointer.html
My guess would be related to the ax value being returned would be a null pointer...
but I really do not much programming.