Bug 482904 - Okular segfaults when changing languages for voice
Summary: Okular segfaults when changing languages for voice
Status: RESOLVED WORKSFORME
Alias: None
Product: okular
Classification: Applications
Component: general (show other bugs)
Version: unspecified
Platform: Manjaro Linux
: NOR crash
Target Milestone: ---
Assignee: Okular developers
URL:
Keywords: qt6
Depends on:
Blocks:
 
Reported: 2024-03-08 18:25 UTC by Pratham Gandhi
Modified: 2024-04-18 03:47 UTC (History)
2 users (show)

See Also:
Latest Commit:
Version Fixed In:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Pratham Gandhi 2024-03-08 18:25:51 UTC
SUMMARY

When you try to change the voice for tts after having it speak at least once and have it speak again in a different voice, okular will segfault.

Attaching the dump from address sanitizer:
AddressSanitizer:DEADLYSIGNAL
=================================================================
==210696==ERROR: AddressSanitizer: SEGV on unknown address 0x000000043e93 (pc 0x7fac9b0c3a51 bp 0x7fac9b47a1ab sp 0x7fac9bca05d0 T27)
==210696==The signal is caused by a READ memory access.
    #0 0x7fac9b0c3a51 in feat_set (/usr/lib/qt6/plugins/texttospeech/../../../libflite.so.1+0x15a51) (BuildId: 0e2a7bfdf452f147252174342fe4ecba0025d90d)
    #1 0x7fac9b47499b  (/usr/lib/qt6/plugins/texttospeech/libqtexttospeech_flite.so+0xb99b) (BuildId: 29e2c9357edb2c021b1994addcc167a73d58d4a3)
    #2 0x7faccee542c6 in QObject::event(QEvent*) (/usr/lib/libQt6Core.so.6+0x17c2c6) (BuildId: b7de086c703c3347ad87118effe4f0429fb6fef8)
    #3 0x7faccfe5238a in QApplicationPrivate::notify_helper(QObject*, QEvent*) (/usr/lib/libQt6Widgets.so.6+0xf438a) (BuildId: 9042b7a7402bce90a3c5ef04990d5ad1adafe229)
    #4 0x7faccee11817 in QCoreApplication::notifyInternal2(QObject*, QEvent*) (/usr/lib/libQt6Core.so.6+0x139817) (BuildId: b7de086c703c3347ad87118effe4f0429fb6fef8)
    #5 0x7faccee11b9a in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) (/usr/lib/libQt6Core.so.6+0x139b9a) (BuildId: b7de086c703c3347ad87118effe4f0429fb6fef8)
    #6 0x7faccf04d8a3  (/usr/lib/libQt6Core.so.6+0x3758a3) (BuildId: b7de086c703c3347ad87118effe4f0429fb6fef8)
    #7 0x7faccd584f68  (/usr/lib/libglib-2.0.so.0+0x59f68) (BuildId: adcf94ff81298387baa7b55fa88c9ba80b3283a6)
    #8 0x7faccd5e33a6  (/usr/lib/libglib-2.0.so.0+0xb83a6) (BuildId: adcf94ff81298387baa7b55fa88c9ba80b3283a6)
    #9 0x7faccd583161 in g_main_context_iteration (/usr/lib/libglib-2.0.so.0+0x58161) (BuildId: adcf94ff81298387baa7b55fa88c9ba80b3283a6)
    #10 0x7faccf04b9c3 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (/usr/lib/libQt6Core.so.6+0x3739c3) (BuildId: b7de086c703c3347ad87118effe4f0429fb6fef8)
    #11 0x7faccee1bd6d in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (/usr/lib/libQt6Core.so.6+0x143d6d) (BuildId: b7de086c703c3347ad87118effe4f0429fb6fef8)
    #12 0x7facceef916e in QThread::run() (/usr/lib/libQt6Core.so.6+0x22116e) (BuildId: b7de086c703c3347ad87118effe4f0429fb6fef8)
    #13 0x7faccef78bd2  (/usr/lib/libQt6Core.so.6+0x2a0bd2) (BuildId: b7de086c703c3347ad87118effe4f0429fb6fef8)
    #14 0x7facce7a8559  (/usr/lib/libc.so.6+0x8f559) (BuildId: 0865c4b9ba13e0094e8b45b78dfc7a2971f536d2)
    #15 0x7facce825a3b  (/usr/lib/libc.so.6+0x10ca3b) (BuildId: 0865c4b9ba13e0094e8b45b78dfc7a2971f536d2)

AddressSanitizer can not provide additional info.
SUMMARY: AddressSanitizer: SEGV (/usr/lib/qt6/plugins/texttospeech/../../../libflite.so.1+0x15a51) (BuildId: 0e2a7bfdf452f147252174342fe4ecba0025d90d) in feat_set
Thread T27 (QThread) created by T0 here:
    #0 0x7facd1740497 in __interceptor_pthread_create /usr/src/debug/gcc/gcc/libsanitizer/asan/asan_interceptors.cpp:208
    #1 0x7faccef7bf96 in QThread::start(QThread::Priority) (/usr/lib/libQt6Core.so.6+0x2a3f96) (BuildId: b7de086c703c3347ad87118effe4f0429fb6fef8)

==210696==ABORTING


STEPS TO REPRODUCE
1.  Have some text spoken. You can do it either with selection, or speak current page or any other alternative.
2.  In Configure Okular << Accessibility, change the voice. My testing was done with flite and the voices I had were slt and kal16.
3. Have text spoken again. Okular will crash with a segfault.

OBSERVED RESULT
Segfault.

EXPECTED RESULT
The text should be spoken with changed voice.

SOFTWARE/OS VERSIONS
Linux: Manjaro (unstable branch)
(available in About System)
DE used : XFCE
KDE Frameworks Version: 6.0.0
Qt Version: 6.6.2

ADDITIONAL INFORMATION
I tried debugging around a bit in the Okular source, but no values seem to be going null. Could be an issue with the qt texttospeech plugin?
Comment 1 Albert Astals Cid 2024-03-19 23:21:45 UTC
Could perfectly be an issue in qt yes.

Can you try giving valgrind a go to see if it gives you some more interesting information?
Comment 2 Bug Janitor Service 2024-04-03 03:47:04 UTC
Dear Bug Submitter,

This bug has been in NEEDSINFO status with no change for at least
15 days. Please provide the requested information as soon as
possible and set the bug status as REPORTED. Due to regular bug
tracker maintenance, if the bug is still in NEEDSINFO status with
no change in 30 days the bug will be closed as RESOLVED > WORKSFORME
due to lack of needed information.

For more information about our bug triaging procedures please read the
wiki located here:
https://community.kde.org/Guidelines_and_HOWTOs/Bug_triaging

If you have already provided the requested information, please
mark the bug as REPORTED so that the KDE team knows that the bug is
ready to be confirmed.

Thank you for helping us make KDE software even better for everyone!
Comment 3 Bug Janitor Service 2024-04-18 03:47:38 UTC
This bug has been in NEEDSINFO status with no change for at least
30 days. The bug is now closed as RESOLVED > WORKSFORME
due to lack of needed information.

For more information about our bug triaging procedures please read the
wiki located here:
https://community.kde.org/Guidelines_and_HOWTOs/Bug_triaging

Thank you for helping us make KDE software even better for everyone!