Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Application soft crashes when using vue-virtual-scroller on Linux #3849

Open
ysmilda opened this issue Oct 22, 2024 · 1 comment
Open

Application soft crashes when using vue-virtual-scroller on Linux #3849

ysmilda opened this issue Oct 22, 2024 · 1 comment
Labels
Bug Something isn't working

Comments

@ysmilda
Copy link

ysmilda commented Oct 22, 2024

Description

In my frontend I make use of the vue-virtual-scroller. This works fine in the dev view at localhost:34115 and on a Windows build. However when rendering this component on a Linux build it crashes the instance rendering a grey screen and hanging the inspector window.

To Reproduce

  1. Create a new wails instance with wails init -n myproject -t vue-ts
  2. Add the vue-virtual-scroller component
  3. Create Linux build (wails build -tags webkit2_41)
  4. Observe behaviour while rendering

Expected behaviour

The component to be rendered correctly on Linux just like on Windows.

Screenshots

No response

Attempted Fixes

As my system runs on Ubuntu 24.04 I added -tags webkit2_41 to the build and dev commands to get it to run (semi) properly. Additionally due to this bug I added WEBKIT_DISABLE_DMABUF_RENDERER=1 to the calls.

Both of these might affect how the result is displayed, however there is no logging indicating a crash and the window is still up and running. To further investigate this issue it would be nice to be able to take a look at the output of webkit (if that is something that exists).

System Details

# Wails
Version         | v2.9.2
Package Manager | apt   

# System
┌──────────────────────────────────────────────────────────────────────────┐
| OS           | Ubuntu                                                    |
| Version      | 24.04                                                     |
| ID           | ubuntu                                                    |
| Go Version   | go1.23.2                                                  |
| Platform     | linux                                                     |
| Architecture | amd64                                                     |
| CPU          | 12th Gen Intel(R) Core(TM) i7-12700                       |
| GPU 1        | Unknown                                                   |
| GPU 2        | AlderLake-S GT1 (Intel Corporation) - Driver: i915        |
| GPU 3        | GA104GL [RTX A4000] (NVIDIA Corporation) - Driver: nvidia |
| Memory       | 31GB                                                      |
└──────────────────────────────────────────────────────────────────────────┘

# Dependencies
┌───────────────────────────────────────────────────────────────┐
| Dependency | Package Name    | Status    | Version            |
| *docker    | docker.io       | Installed | 27.3.1             |
| gcc        | build-essential | Installed | 12.10ubuntu1       |
| libgtk-3   | libgtk-3-dev    | Installed | 3.24.41-4ubuntu1.2 |
| libwebkit  | Unknown         | Not Found |                    |
| npm        | npm             | Installed | 10.9.0             |
| *nsis      | nsis            | Available | 3.09-4ubuntu1      |
| pkg-config | pkg-config      | Installed | 1.8.1              |
└─────────────────── * - Optional Dependency ───────────────────┘

Additional context

No response

@ysmilda ysmilda added the Bug Something isn't working label Oct 22, 2024
@ysmilda
Copy link
Author

ysmilda commented Oct 23, 2024

When building a binary with wails build -tags webkit2_41 it crashes as soon as the vue-virtual-scroller element is rendered with the following output:

SIGSEGV: segmentation violation
PC=0x7989f22ae326 m=0 sigcode=1 addr=0x0
signal arrived during cgo execution

goroutine 1 gp=0xc0000061c0 m=0 mp=0xd6a2e0 [syscall, locked to thread]:
runtime.cgocall(0x7dc810, 0xc000033e78)
        /home/linuxbrew/.linuxbrew/Cellar/go/1.23.2/libexec/src/runtime/cgocall.go:167 +0x4b fp=0xc000033e50 sp=0xc000033e18 pc=0x47306b
github.com/wailsapp/wails/v2/internal/frontend/desktop/linux._Cfunc_gtk_main()
        _cgo_gotypes.go:1145 +0x3f fp=0xc000033e78 sp=0xc000033e50 pc=0x7c6a1f
github.com/wailsapp/wails/v2/internal/frontend/desktop/linux.(*Frontend).RunMainLoop(0xc0001a4d80?)
        /home/yorick/go/pkg/mod/github.com/wailsapp/wails/[email protected]/internal/frontend/desktop/linux/frontend.go:130 +0xf fp=0xc000033e88 sp=0xc000033e78 pc=0x7c892f
github.com/wailsapp/wails/v2/internal/app.(*App).Run(0xc00020c000)
        /home/yorick/go/pkg/mod/github.com/wailsapp/wails/[email protected]/internal/app/app_production.go:19 +0x54 fp=0xc000033ec0 sp=0xc000033e88 pc=0x7d8454
github.com/wailsapp/wails/v2/pkg/application.(*Application).Run(0xc00007f080)
        /home/yorick/go/pkg/mod/github.com/wailsapp/wails/[email protected]/pkg/application/application.go:73 +0xac fp=0xc000033ee0 sp=0xc000033ec0 pc=0x7d980c
github.com/wailsapp/wails/v2.Run(0xc00018c160?)
        /home/yorick/go/pkg/mod/github.com/wailsapp/wails/[email protected]/wails.go:14 +0x9a fp=0xc000033f08 sp=0xc000033ee0 pc=0x7d997a
main.main()
        /home/yorick/Develop/dss/go-configurator/main.go:25 +0x23a fp=0xc000033f50 sp=0xc000033f08 pc=0x7daa7a
runtime.main()
        /home/linuxbrew/.linuxbrew/Cellar/go/1.23.2/libexec/src/runtime/proc.go:272 +0x28b fp=0xc000033fe0 sp=0xc000033f50 pc=0x444e0b
runtime.goexit({})
        /home/linuxbrew/.linuxbrew/Cellar/go/1.23.2/libexec/src/runtime/asm_amd64.s:1700 +0x1 fp=0xc000033fe8 sp=0xc000033fe0 pc=0x480d61

< tons of other goroutine stack traces >

rax    0x18b5160
rbx    0x79898a020140
rcx    0x3
rdx    0x7989f22aa570
rdi    0x0
rsi    0x7fff7ac575a0
rbp    0x7fff7ac57530
rsp    0x7fff7ac57508
r8     0x17b6010
r9     0x7
r10    0x19a7d70
r11    0x1c3123da830947c9
r12    0x7fff7ac575a0
r13    0x79898a0f8180
r14    0x7fff7ac57608
r15    0x7fff7ac57610
rip    0x7989f22ae326
rflags 0x10246
cs     0x33
fs     0x0
gs     0x0

It seems that the call to C.gtk_main() fails at that point, but I'm not quite sure on how to continue from there.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Bug Something isn't working
Projects
None yet
Development

No branches or pull requests

1 participant