http://bugs.winehq.org/show_bug.cgi?id=60348 Bug ID: 60348 Summary: Reolink Client 8.21.25: repeated IUISettings2::get_TextScaleFactor calls cause stack overflow and no GUI Product: Wine Version: 11.0 Hardware: x86-64 OS: Linux Status: UNCONFIRMED Severity: normal Priority: P2 Component: -unknown Assignee: wine-bugs@list.winehq.org Reporter: daniel.jaeger@rainyday-productions.de Target Milestone: --- Distribution: --- Created attachment 82128 --> http://bugs.winehq.org/attachment.cgi?id=82128 TextScaleFactor-Loop-Error I am an electrican, not a software developer, nor a computer expert. I try to figure out how i can use the "Reolink Client 8.21.25" with my wine installed in Linux Gentoo. Therefore i used ChatGPT, also to create this text because i'll think it is useful to submit this bug. If this is stupid or less helpfull i am sorry for wasting your time: Reolink Client 8.21.25 does not display its GUI under Wine; repeated IUISettings2::get_TextScaleFactor calls eventually cause stack overflow Summary Reolink Client 8.21.25 does not display its GUI when run under Wine. The application reaches Electron's app ready state, but no window appears. Wine repeatedly reports calls to the unimplemented IUISettings2::get_TextScaleFactor() method. The calls continue with changing stack addresses until Wine reports a stack overflow. The problem is reproducible with both Proton/Wine 11.0.1 and 11.0.2. Software versions Application: Reolink Client 8.21.25 Electron: 20.3.0 Wine: Proton 11.0.2 Also tested with Proton 11.0.1: same behavior Distribution: Gentoo Linux Desktop: KDE Plasma on Wayland Wine prefix: default ~/.wine Windows version configured in winecfg: Windows 10 The Reolink application is installed in: ~/.wine/drive_c/Program Files/Reolink/Reolink.exe How to reproduce Start Reolink with: WINEPREFIX="$HOME/.wine" \ WINEDEBUG=+seh \ wine "$HOME/.wine/drive_c/Program Files/Reolink/Reolink.exe" \ --disable-gpu --no-sandbox The application prints: ------------------ app ready --------------------------- app version:8.21.25 but no GUI window is displayed. Wine then repeatedly reports: 0024:fixme:ui:uisettings2_get_TextScaleFactor iface ..., value ... stub! The value address changes on every invocation. Eventually Wine reports: 0024:fixme:ui:uisettings2_get_TextScaleFactor stack overflow 1984 bytes addr 0x6ffffff96dfe stack 0x120840 (0x120000-0x121000-0x920000) Relevant output A shortened example from the end of the log: 0024:fixme:ui:uisettings2_get_TextScaleFactor iface 0000000006C246D8, value 000000000012FAE0 stub! 0024:fixme:ui:uisettings2_get_TextScaleFactor iface 0000000006C246D8, value 000000000012F2E0 stub! 0024:fixme:ui:uisettings2_get_TextScaleFactor iface 0000000006C246D8, value 000000000012EAE0 stub! 0024:fixme:ui:uisettings2_get_TextScaleFactor iface 0000000006C246D8, value 000000000012E2E0 stub! 0024:fixme:ui:uisettings2_get_TextScaleFactor iface 0000000006C246D8, value 000000000012DAE0 stub! 0024:fixme:ui:uisettings2_get_TextScaleFactor iface 0000000006C246D8, value 000000000012D2E0 stub! ... 0024:fixme:ui:uisettings2_get_TextScaleFactor iface 0000000006C246D8, value 00000000001242E0 stub! 0024:fixme:ui:uisettings2_get_TextScaleFactor iface 0000000006C246D8, value 0000000000123AE0 stub! 0024:fixme:ui:uisettings2_get_TextScaleFactor iface 0000000006C246D8, value 00000000001232E0 stub! 0024:fixme:ui:uisettings2_get_TextScaleFactor stack overflow 1984 bytes addr 0x6ffffff96dfe stack 0x120840 (0x120000-0x121000-0x920000) Additional UISettings output Before the repeated calls, Wine also reports: 0024:fixme:ui:uisettings2_add_TextScaleFactorChanged iface ..., handler ..., cookie ... stub! This suggests that the application also attempts to register a TextScaleFactorChanged handler. Testing with --force-device-scale-factor=1 I also tested: WINEPREFIX="$HOME/.wine" \ WINEDEBUG=+seh \ wine "$HOME/.wine/drive_c/Program Files/Reolink/Reolink.exe" \ --disable-gpu --no-sandbox --force-device-scale-factor=1 The result is unchanged. The repeated get_TextScaleFactor calls still occur and eventually result in: uisettings2_get_TextScaleFactor stack overflow No GUI window is displayed. Therefore, Chromium/Electron's --force-device-scale-factor=1 does not appear to prevent the problematic behavior. Wine versions tested I initially used Proton 11.0.2: wine-11.0 (Proton-11.0-2) I then switched to Proton 11.0.1: wine-11.0 (Proton-11.0-1) The behavior was essentially identical with both versions: Reolink reaches app ready no GUI window appears IUISettings2::get_TextScaleFactor() is repeatedly called the calls eventually result in a Wine stack overflow I then switched back to Proton 11.0.2 and reproduced the same behavior again. Other observations Reolink also reports: WSALookupServiceBegin failed with: 0 and: load db settings failed err: null load db settings failed doc: null There is also a COM error concerning: {7AB36653-1796-484B-BDFA-E74F1DB7C1DC} which appears to be the Microsoft Spell Checker Factory Class. However, Reolink continues afterwards and reports: app ready app version:8.21.25 Therefore I do not currently believe that the Spell Checker COM error is the primary cause of the missing GUI. There is also an earlier: RPC_S_SERVER_UNAVAILABLE exception in the Wine SEH trace. It is handled and the application subsequently reaches app ready, so I have not assumed that this is the cause either. Expected behavior Reolink Client should display its main application window normally. Actual behavior The Electron application initializes far enough to report app ready, but no GUI window appears. At the same time, Wine repeatedly executes the unimplemented IUISettings2::get_TextScaleFactor() path and eventually reports a stack overflow. Question Could this be caused by the current incomplete implementation of IUISettings2::get_TextScaleFactor() / TextScaleFactorChanged in Wine? In particular, is there an issue with the way the E_NOTIMPL result from get_TextScaleFactor() is handled by Electron/Chromium or by the Reolink application, causing the repeated calls and eventual stack exhaustion? Would implementing IUISettings2::get_TextScaleFactor() and/or TextScaleFactorChanged in Wine be expected to resolve this, or is there a known workaround that should be used instead? I can provide the complete WINEDEBUG=+seh log and additional traces if needed. -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.