serialplot icon indicating copy to clipboard operation
serialplot copied to clipboard

Bug : QObject::startTimer: Timers cannot be started from another thread

Open doom-fr opened this issue 2 years ago • 3 comments

(Thanks for this useful tool !)

I have some segmentation faults (it's recurrent but not systematic).

[Warning] "L’interface « org.freedesktop.DBus.Properties » n’existe pas pour l’objet à l’emplacement /org/freedesktop/NetworkManager/ActiveConnection/46"
QObject: Cannot create children for a parent that is in a different thread.
(Parent is QStatusBar(0x562e492c7a60), parent's thread is QThread(0x562e49098bd0), current thread is QThread(0x562e49277720)
[Warning] QObject::killTimer: Timers cannot be stopped from another thread
QObject::killTimer: Timers cannot be stopped from another thread
QObject::startTimer: Timers cannot be started from another thread
[Warning] QObject::~QObject: Timers cannot be stopped from another thread
QObject::startTimer: Timers cannot be started from another thread
Erreur de segmentation (core dumped)

I'm using AppImage on Linux Ubuntu

./serialplot-0.12.0-x86_64.AppImage 
Warning: Ignoring XDG_SESSION_TYPE=wayland on Gnome. Use QT_QPA_PLATFORM=wayland to run on Wayland anyway.
[Debug] SerialPlot 0.12.0
[Debug] Revision 7c0005be1c54
cat /etc/issue
Ubuntu 21.10 \n \l

doom-fr avatar May 09 '22 20:05 doom-fr

I've tried running SP in 21.10 vm, tried a few things, couldn't reproduce.

There was a bug reported in the past that contains the 'timer' errors: https://todo.sr.ht/~hyozd/serialplot/9 That one (not sure if still happens) was definitely related to the 'update check' feature. Maybe you can try to disable automatic update checks and see if problem still happens? BTW automatic update checks are triggered at the first start of the application in a day.

hyOzd avatar May 28 '22 09:05 hyOzd

Yes. This happens when it tries to check for updates. [Error] Invalid timestamp format option: "" [Warning] QSslSocket: cannot resolve EVP_PKEY_base_id [Warning] QSslSocket: cannot resolve SSL_get_peer_certificate [Debug] SerialPlot 0.12.0 [Debug] Revision 7c0005be1c54 [Warning] QSslSocket: cannot call unresolved function SSL_get_peer_certificate QObject::connect: Cannot queue arguments of type 'QTextBlock' (Make sure 'QTextBlock' is registered using qRegisterMetaType().) QObject::connect: Cannot queue arguments of type 'QTextCursor' (Make sure 'QTextCursor' is registered using qRegisterMetaType().) QObject: Cannot create children for a parent that is in a different thread. (Parent is QStatusBar(0x55e19fc31370), parent's thread is QThread(0x55e19f927bd0), current thread is QThread(0x55e19fcd3350) [Error] Update error: "Network error: SSL handshake failed" QObject::killTimer: Timers cannot be stopped from another thread QObject::startTimer: Timers cannot be started from another thread [Warning] QObject::killTimer: Timers cannot be stopped from another thread QObject::killTimer: Timers cannot be stopped from another thread QObject::startTimer: Timers cannot be started from another thread [Warning] QObject::~QObject: Timers cannot be stopped from another thread QObject::startTimer: Timers cannot be started from another thread Ошибка сегментирования (образ памяти сброшен на диск) Workaround is:

  1. After start quickly open port to start receiving data.
  2. Very quick click "Help->Check Update"
  3. Remove checkbox "Check Updates periodically"

Or, maybe, developer can write what can we change in ~/.config/serialplot/serialplot.conf to disable update check.

Ogurezzz avatar Jul 26 '23 12:07 Ogurezzz

@Ogurezzz the relevant key should be named "periodic check" under the "UpdateCheck" group.

hyOzd avatar Jul 26 '23 12:07 hyOzd