FreeCAD / FreeCAD/AddonManager

26.3 Addon Manager Segfault: QNetworkAccessManager - QObject

Open
#492 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
Python
Stars
18
Forks
29
Avg merge
1d 15h
Merged PRs (30d)
22

Description

I've run into this segfault on 26.3 several times now. I can tell you where I run into it, but I cannot yet reliably reproduce it on demand.

When I go into the AddonManager, it usually happens when the catalog download hits 57%. The progress bar and % counter freeze. The catalog will still display and I can navigate around a bit, but after I close the Addon Manager, if I open it again, it will SegFault. The last time, it did not require getting stuck at 57%, but it still segfaulted.

Here are the lines output by the python console in FreeCAD:

15:08:01 QObject: Cannot create children for a parent that is in a different thread.
(Parent is QNetworkAccessManager(0x7934bc0032e0), parent's thread is QThread(0x6224d8527250), current thread is ConnectionChecker(0x6224cf6438a0)
15:08:03 QObject: Cannot create children for a parent that is in a different thread.
(Parent is QNetworkAccessManager(0x7934bc0032e0), parent's thread is QThread(0x6224d8527250), current thread is CreateAddonListWorker(0x6224d87ca960)
15:08:03 QObject: Cannot create children for a parent that is in a different thread.
(Parent is QNetworkAccessManager(0x7934bc0032e0), parent's thread is QThread(0x6224d8527250), current thread is CreateAddonListWorker(0x6224d87ca960)
15:08:04 QObject: Cannot create children for a parent that is in a different thread.
(Parent is QNetworkAccessManager(0x7934bc0032e0), parent's thread is QThread(0x6224d8527250), current thread is GetBasicAddonStatsWorker(0x6224d8902fd0)
15:08:05 QObject: Cannot create children for a parent that is in a different thread.
(Parent is QNetworkAccessManager(0x7934bc0032e0), parent's thread is QThread(0x6224d8527250), current thread is GetBasicAddonStatsWorker(0x6224d8902fd0)
15:08:05 QObject: Cannot create children for a parent that is in a different thread.
(Parent is QNetworkAccessManager(0x7934bc0032e0), parent's thread is QThread(0x6224d8527250), current thread is GetBasicAddonStatsWorker(0x6224d8902fd0)

Here is the backtrace:

#0 pthread_kill
#1 raise
#2 FreeCAD crashHandler
#3
#4 QTimer::start()
#5 QObject::event(QEvent*)
#6 QApplicationPrivate::notify_helper(...)
#7 Gui::GUIApplication::notify(...)
#8 QCoreApplication::notifyInternal2(...)
#9 QCoreApplicationPrivate::sendPostedEvents(...)
#10 postEventSourceDispatch(...)
#11 g_main_dispatch()
#12 g_main_context_iterate_unlocked()
#13 g_main_context_iteration()
#14 QEventDispatcherGlib::processEvents(...)
#15 PySide6.QtCore
#16 Python call to QCoreApplication.processEvents()
#17 ConnectionChecker.run()
#18 QThreadPrivate::start()

Here is my FreeCAD build information from Help-> About:

OS: Linux Mint 22.3 (X-Cinnamon/cinnamon/xcb)
Architecture: x86_64
Version: 26.3.0dev.48363 +1 (Git)
Build date: 2026/09/02 06:41:46
Build type: Release
Branch: historical-python-store-test
Hash: 9ca8f05179a7e992000bcced36f457dba2b086de
Python 3.11.14, Qt 6.8.3, Coin 4.0.10 (bundled), Pivy 0.6.11 (bundled), Vtk 9.3.1, boost 1_86, Eigen3 3.4.0, PySide 6.8.3
shiboken 6.8.3, xerces-c 3.3.0, Clipper2 , OCC 7.8.1
Locale: English/United States (en_US)
Stylesheet/Theme/QtStyle: FreeCAD.qss/FreeCAD Dark/
QPA/File dialog/Color dialog: xcb/via Qt/via Qt
Navigation Style/Orbit Style/Rotation Mode: OpenSCAD/Trackball/Drag at cursor
Logical DPI/Physical DPI/Pixel Ratio: 96/129.444/1
OpenGL version/vendor/renderer: 4.6 (Compatibility Profile) Mesa 25.2.8-0ubuntu0.24.04.2/AMD/AMD Radeon 890M Graphics (radeonsi, gfx1150, LLVM 20.1.2, DRM 3.64, 6.17.0-1032-oem)
Installed mods:
* Assembly4 0.61.1
* Curves workbench 0.6.81
* Fasteners Workbench 0.5.65

I have a full analysis via Codex 5.6 Sol, but if you're not interested, I won't offer it.

Contributor guide

No contributing guide indexed for this repository

Research direction

Start with the ConnectionChecker.run, CreateAddonListWorker, and GetBasicAddonStatsWorker paths named in the backtrace, then trace how their QNetworkAccessManager is accessed across threads. Reproduce the catalog download freeze around 57% and the Addon Manager reopen sequence while capturing the QObject warnings and backtrace. Done means the reported sequence no longer produces cross-thread warnings or a segfault.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
desktop
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Active
Clarity
Needs clarification
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.