Author Topic: Qt6 Application Testing  (Read 560278 times)

Paul Smedley

  • Hero Member
  • *****
  • Posts: 2547
  • Karma: +200/-0
    • View Profile
Re: Qt6 Application Testing
« Reply #795 on: January 23, 2025, 02:43:28 am »
I'll grep the webengine code, I'd suspect it may already use clock_gettime

Paul Smedley

  • Hero Member
  • *****
  • Posts: 2547
  • Karma: +200/-0
    • View Profile
Re: Qt6 Application Testing
« Reply #796 on: January 23, 2025, 08:48:08 am »

Paul Smedley

  • Hero Member
  • *****
  • Posts: 2547
  • Karma: +200/-0
    • View Profile
Re: Qt6 Application Testing
« Reply #797 on: January 23, 2025, 08:49:09 am »
And into config.sys
set NSPR_OS2_NO_HIRES_TIMER=1
I guess in theory, this could make a difference - qt6weben does seem to use nspr4.dll

Paul Smedley

  • Hero Member
  • *****
  • Posts: 2547
  • Karma: +200/-0
    • View Profile
Re: Qt6 Application Testing
« Reply #798 on: January 23, 2025, 08:56:04 pm »
I'll grep the webengine code, I'd suspect it may already use clock_gettime
Here's one case where we're not using clock_gettime:
https://github.com/psmedley/qt6-webengine-os2/blob/main/src/3rdparty/chromium/base/third_party/libevent/os2/event-config.h#L30
https://github.com/psmedley/qt6-webengine-os2/blob/main/src/3rdparty/chromium/third_party/libxslt/os2/config.h#L11

Will change these and rebuild qt6weben.dll
https://smedley.id.au/tmp/qt6weben-6.2.6-20250124.zip enables clock_gettime fro libevent and libxslt.

Dooble can still load os2world but that's the extent of the testing.

Paul Smedley

  • Hero Member
  • *****
  • Posts: 2547
  • Karma: +200/-0
    • View Profile
Re: Qt6 Application Testing
« Reply #799 on: January 23, 2025, 08:58:55 pm »

01-21-2025  06:20:15  SYS2070  PID 006c  TID 0001  Slot 0089
C:\QT6.8\EXAMPLES\CHARTS\QMLCHARTSGALLERY\QMLCHARTSGALLERY.EXE
QMLCHARTSGALLERY->QMLPLUGN.__ZN10QQmlEngine13addImportPathERK7QString
127
------------------------------------------------------------

01-21-2025  06:20:30  SYS2070  PID 006e  TID 0001  Slot 0089
C:\QT6.8\EXAMPLES\CHARTS\QMLWEATHER\QMLWEATHER.EXE
QMLWEATHER->QMLPLUGN.__ZN10QQmlEngine13addImportPathERK7QString
127
------------------------------------------------------------

01-21-2025  06:20:32  SYS2070  PID 006f  TID 0001  Slot 0089
C:\QT6.8\EXAMPLES\CHARTS\QMLWEATHER\QMLWEATHER.EXE
QMLWEATHER->QMLPLUGN.__ZN10QQmlEngine13addImportPathERK7QString
127

https://smedley.id.au/tmp/qt6-6.8.1-os2-20250124.zip should avoid these SYS2070. qmlchartsgallery(for example) loads a window but still gives:
Code: [Select]
qrc:/qml/Main.qml:134:27: QML Component: Cannot create delegate
qrc:/qml/Main.qml: Maximum call stack size exceeded.

Paul Smedley

  • Hero Member
  • *****
  • Posts: 2547
  • Karma: +200/-0
    • View Profile
Re: Qt6 Application Testing
« Reply #800 on: January 23, 2025, 09:05:34 pm »
  Been running Dooble with this QT6Core.dll and Unix timer, but don't see any change good or bad. No change in any examples I've tried either...

Not totally unexpected, I didn't think it was the silver bullet. I also reverted the change in https://github.com/bitwiseworks/qtbase-os2/commit/1d123b849fabca6f012bc256eaaa93ed958d3628 and all tests in qpauseanimation pass. I'll spend some time tonight/tomorrow seeing what else might be disabled.

Meanwhile, off to walk the dog then log on for work.

Cheers,

Paul

David McKenna

  • Hero Member
  • *****
  • Posts: 905
  • Karma: +35/-0
    • View Profile
Re: Qt6 Application Testing
« Reply #801 on: January 23, 2025, 10:11:47 pm »
Thanks Paul!

  I am running Dooble with the updated QtWebengine and so far I don't see any negative effects - still too soon to say whether it helps at all, but in 30 min. I haven't seen the dreaded stuck 100% CPU, so maybe this helps that problem, we'll see. Can't download the updated QT file - gives a 'not found' message...

Regards,
« Last Edit: January 23, 2025, 11:06:30 pm by David McKenna »

Paul Smedley

  • Hero Member
  • *****
  • Posts: 2547
  • Karma: +200/-0
    • View Profile
Re: Qt6 Application Testing
« Reply #802 on: January 23, 2025, 11:41:18 pm »
Uggh the zip command failed, try again in a few minutes

David McKenna

  • Hero Member
  • *****
  • Posts: 905
  • Karma: +35/-0
    • View Profile
Re: Qt6 Application Testing
« Reply #803 on: January 24, 2025, 12:09:53 pm »
Paul,

  Thanks... still see SYS2070 errors on some qml and quick examples like:

01-24-2025  05:58:09  SYS2070  PID 00bd  TID 0002  Slot 008d
C:\QT6.8\EXAMPLES\QUICKCONTROLS\TEXTEDITOR\BIN\TEXTEDITOREXAMPLE.EXE
QUCOBAST->QMLPLUGN.__ZN19QQmlExtensionPlugin16initializeEngineEP10QQm
127

------------------------------------------------------------

01-24-2025  06:00:23  SYS2070  PID 00be  TID 0002  Slot 008d
C:\QT6.8\EXAMPLES\QUICK\VECTORIMAGE\BIN\VECTORIMAGEEXAMPLE.EXE
QUCOBAST->QMLPLUGN.__ZN19QQmlExtensionPlugin16initializeEngineEP10QQm
127
------------------------------------------------------------

01-24-2025  06:00:23  SYS2070  PID 00be  TID 0001  Slot 0089
C:\QT6.8\EXAMPLES\QUICK\VECTORIMAGE\BIN\VECTORIMAGEEXAMPLE.EXE
QUCOBAST->QMLPLUGN.__ZN19QQmlExtensionPlugin16initializeEngineEP10QQm
127
------------------------------------------------------------

01-24-2025  06:01:11  SYS2070  PID 00bf  TID 0002  Slot 008d
C:\QT6.8\EXAMPLES\QUICK\SHADEREFFECTS\BIN\SHADEREFFECTSEXAMPLE.EXE
QUCOBAST->QMLPLUGN.__ZN19QQmlExtensionPlugin16initializeEngineEP10QQm
127
------------------------------------------------------------

01-24-2025  06:01:11  SYS2070  PID 00bf  TID 0001  Slot 0089
C:\QT6.8\EXAMPLES\QUICK\SHADEREFFECTS\BIN\SHADEREFFECTSEXAMPLE.EXE
QUCOBAST->QMLPLUGN.__ZN19QQmlExtensionPlugin16initializeEngineEP10QQm
127

 but less than before. Some apps like Tea and LibreCAD and Focuswriter still will not run, but Scribus and NotePadNext and Media-Downloader do run...

Regards,

Remy

  • Hero Member
  • *****
  • Posts: 902
  • Karma: +14/-1
    • View Profile
Re: Qt6 Application Testing
« Reply #804 on: January 24, 2025, 01:58:07 pm »
I'll grep the webengine code, I'd suspect it may already use clock_gettime
Here's one case where we're not using clock_gettime:
https://github.com/psmedley/qt6-webengine-os2/blob/main/src/3rdparty/chromium/base/third_party/libevent/os2/event-config.h#L30
https://github.com/psmedley/qt6-webengine-os2/blob/main/src/3rdparty/chromium/third_party/libxslt/os2/config.h#L11

Will change these and rebuild qt6weben.dll
https://smedley.id.au/tmp/qt6weben-6.2.6-20250124.zip enables clock_gettime fro libevent and libxslt.

Dooble can still load os2world but that's the extent of the testing.

Seems to be better in general use (no hung when no youtube or videos)
Something I saw very often !
Playing a youtube video, swap to an other video (if ok, swap to an other) -> first symptome, sound not playing, ten video controls no more responding and video stops, high cpu and short after, system full hung (reboot needed)
My observation looks like it is going into bug when a internet session is not responding ! at this time, sound is impacted etc...
Questions I didn't have an answer
Q1: are any processes to kill hung sessions (following timeout) without impacting other sessions and running processes. Are these sessions freed from OS/2 view ?
Q2: Priority level handling between network flow and sound/video ?
- My drivers: ArcaOS uniaudio and MMRE network driver 
     

Paul Smedley

  • Hero Member
  • *****
  • Posts: 2547
  • Karma: +200/-0
    • View Profile
Re: Qt6 Application Testing
« Reply #805 on: January 24, 2025, 09:30:52 pm »
  Thanks... still see SYS2070 errors on some qml and quick examples like:

01-24-2025  05:58:09  SYS2070  PID 00bd  TID 0002  Slot 008d
C:\QT6.8\EXAMPLES\QUICKCONTROLS\TEXTEDITOR\BIN\TEXTEDITOREXAMPLE.EXE
QUCOBAST->QMLPLUGN.__ZN19QQmlExtensionPlugin16initializeEngineEP10QQm
127

If you check, you'll see there is no qucobast.dll in 6.8's qml\* so it's loading the 6.2.x which fails.... fixing now. Root cause is the issues I'm having with the failed assertion in qtdeclarative. I thought I was just missing an example, seems I'm missing at least one DLL too.

Pretty much any app built against 6.2.x that uses qmlplugn.dll will fail with 6.8.x - as the functionality in qmlplugn.dll has been split into qmlplugn.dll and qt6meta.dll

Edit: actually its not that simple, doing a full rebuild and will see what happens....
« Last Edit: January 24, 2025, 10:48:31 pm by Paul Smedley »

Paul Smedley

  • Hero Member
  • *****
  • Posts: 2547
  • Karma: +200/-0
    • View Profile
Re: Qt6 Application Testing
« Reply #806 on: January 25, 2025, 07:12:45 am »
Edit: actually its not that simple, doing a full rebuild and will see what happens....

https://smedley.id.au/tmp/qt6-6.8.1-os2-20250125.zip should be better....

I now also have all the tests building for 6.2.11 and 6.8.1.

Next I need to properly fix the:
Code: [Select]
Assertion failed: _UM_LUMP_STATUS (olump) == _UMS_FREE, file ./libc-0.1.13/src/emx/src/lib/malloc/ialloc.c, line 116
errors...

Paul Smedley

  • Hero Member
  • *****
  • Posts: 2547
  • Karma: +200/-0
    • View Profile
Re: Qt6 Application Testing
« Reply #807 on: January 25, 2025, 09:39:19 am »
Quick build of focuswriter 1.8.9 for Qt 6.8.x - https://smedley.id.au/tmp/focuswriter-1.8.9-os2-qt-6.8.x-20250125.zip

Paul Smedley

  • Hero Member
  • *****
  • Posts: 2547
  • Karma: +200/-0
    • View Profile
Re: Qt6 Application Testing
« Reply #808 on: January 25, 2025, 09:42:03 am »
Questions I didn't have an answer
Q1: are any processes to kill hung sessions (following timeout) without impacting other sessions and running processes. Are these sessions freed from OS/2 view ?
Q2: Priority level handling between network flow and sound/video ?
No idea on Q1

Q2 - there is thread priority code in https://github.com/psmedley/qt6-webengine-os2/blob/main/src/3rdparty/chromium/base/threading/platform_thread_os2.cc#L17

David McKenna

  • Hero Member
  • *****
  • Posts: 905
  • Karma: +35/-0
    • View Profile
Re: Qt6 Application Testing
« Reply #809 on: January 25, 2025, 02:29:57 pm »
Thanks again Paul. Don't see much difference with this latest QT6.8.1 - still many qml and quick examples don't work and still see sys2070 errors, although slightly different like this:


01-25-2025  07:25:21  SYS2070  PID 0060  TID 0002  Slot 006e
C:\QT6.8\EXAMPLES\CHARTS\QMLOSCILLOSCOPE\QMLOSCILLOSCOPE.EXE
QT6CHTQM->QMLPLUGN.__ZN25QQmlEngineExtensionPluginD2Ev
127
------------------------------------------------------------

01-25-2025  07:25:21  SYS2070  PID 0060  TID 0001  Slot 008d
C:\QT6.8\EXAMPLES\CHARTS\QMLOSCILLOSCOPE\QMLOSCILLOSCOPE.EXE
QT6CHTQM->QMLPLUGN.__ZN25QQmlEngineExtensionPluginD2Ev
127
------------------------------------------------------------

01-25-2025  07:25:25  SYS2070  PID 0061  TID 0002  Slot 006e
C:\QT6.8\EXAMPLES\CHARTS\QMLWEATHER\QMLWEATHER.EXE
QT6CHTQM->QMLPLUGN.__ZN25QQmlEngineExtensionPluginD2Ev
127
------------------------------------------------------------

01-25-2025  07:25:25  SYS2070  PID 0061  TID 0001  Slot 008d
C:\QT6.8\EXAMPLES\CHARTS\QMLWEATHER\QMLWEATHER.EXE
QT6CHTQM->QMLPLUGN.__ZN25QQmlEngineExtensionPluginD2Ev
127
------------------------------------------------------------

01-25-2025  08:22:23  SYS2070  PID 006c  TID 0001  Slot 008f
C:\QT6.8\EXAMPLES\QUICKCONTROLS\FLATSTYLE\BIN\FLATSTYLEEXAMPLE.EXE
FLATSTYLEEXAMPLE->QMLPLUGN.__ZN21QQmlApplicationEngineC1EP7QObject
127

 Same apps still work and don't work (thanks for the QT6.8 focuswriter build - it works fine).

Regards,