wails icon indicating copy to clipboard operation
wails copied to clipboard

App crash on 1.23 sdk (cross compile from ubuntu to windows) if OpenDirectoryDialog

Open mediawall opened this issue 1 year ago • 3 comments
trafficstars

Description

// Greet returns a greeting for the given name
func (a *App) Greet(name string) string {
	runtime.OpenDirectoryDialog(a.ctx, runtime.OpenDialogOptions{
		Title: "test",
	})
	return fmt.Sprintf("Hello %s, It's show time!", name)
}

app will crash with stack trace

Exception 0xc0000005 0x1 0x150 0x7ffcbd93823b
PC=0x7ffcbd93823b

runtime.cgocall(0xacfec0, 0x15716a8)
        ~/go/1.23/src/runtime/cgocall.go:167 +0x3e fp=0xc000206cb8 sp=0xc000206c50 pc=0xabff1e
syscall.SyscallN(0x0?, {0xc000206d00?, 0x0?, 0xc000206c8c?})
        ~/go/1.23/src/runtime/syscall_windows.go:519 +0x5d fp=0xc000206ce0 sp=0xc000206cb8 pc=0xaca5dd
syscall.Syscall(0x0?, 0x0?, 0x0?, 0x0?, 0x0?)
        ~/go/1.23/src/runtime/syscall_windows.go:458 +0x2f fp=0xc000206d28 sp=0xc000206ce0 pc=0xaca1af
github.com/wailsapp/wails/v2/internal/go-common-file-dialog/cfd.(*iUnknownVtbl).release(0x7ffcbd9b97b8, 0x1d7fb61ccd0)
        ~/go/pkg/mod/github.com/wailsapp/wails/[email protected]/internal/go-common-file-dialog/cfd/vtblCommonFunc.go:22 +0x5d fp=0xc000206dc8 sp=0xc000206d28 pc=0xff8c9d
github.com/wailsapp/wails/v2/internal/go-common-file-dialog/cfd.(*iFileOpenDialog).Release(0x1d7fb61ccd0)
        ~/go/pkg/mod/github.com/wailsapp/wails/[email protected]/internal/go-common-file-dialog/cfd/iFileOpenDialog.go:93 +0x34 fp=0xc000206e10 sp=0xc000206dc8 pc=0xff6634
github.com/wailsapp/wails/v2/internal/frontend/desktop/windows.(*Frontend).showCfdDialog.func1.1()
        ~/go/pkg/mod/github.com/wailsapp/wails/[email protected]/internal/frontend/desktop/windows/dialog.go:146 +0x2c fp=0xc000206e60 sp=0xc000206e10 pc=0x109f8ac
runtime.deferreturn()
        ~/go/1.23/src/runtime/panic.go:605 +0x5e fp=0xc000206ef0 sp=0xc000206e60 pc=0xa8febe
github.com/wailsapp/wails/v2/internal/frontend/desktop/windows.(*Frontend).showCfdDialog.func1()
        ~/go/pkg/mod/github.com/wailsapp/wails/[email protected]/internal/frontend/desktop/windows/dialog.go:156 +0x4e9 fp=0xc0002070e0 sp=0xc000206ef0 pc=0x109f829
github.com/wailsapp/wails/v2/internal/frontend/desktop/windows.invokeSync[...].func1()
        ~/go/pkg/mod/github.com/wailsapp/wails/[email protected]/internal/frontend/desktop/windows/window.go:331 +0x55 fp=0xc000207160 sp=0xc0002070e0 pc=0x10ae175
github.com/wailsapp/wails/v2/internal/frontend/desktop/windows/winc.(*ControlBase).invokeCallbacks(0xc000086c40)
        ~/go/pkg/mod/github.com/wailsapp/wails/[email protected]/internal/frontend/desktop/windows/winc/controlbase.go:550 +0x2f3 fp=0xc0002072b8 sp=0xc000207160 pc=0xfe29f3
github.com/wailsapp/wails/v2/internal/frontend/desktop/windows.(*Window).github.com/wailsapp/wails/v2/internal/frontend/desktop/windows/winc.invokeCallbacks(0xc000086c40)
        <autogenerated>:1 +0x28 fp=0xc0002072d8 sp=0xc0002072b8 pc=0x10b06a8
github.com/wailsapp/wails/v2/internal/frontend/desktop/windows/winc.generalWndProc(0x702a4, 0xc240, 0x0, 0x0)
        ~/go/pkg/mod/github.com/wailsapp/wails/[email protected]/internal/frontend/desktop/windows/winc/wndproc.go:148 +0xf47 fp=0xc0002074c8 sp=0xc0002072d8 pc=0xfe97a7
runtime.call32(0x0, 0x12111c0, 0xc000207528, 0x0, 0x0, 0x20, 0xc000207760)
        ~/go/1.23/src/runtime/asm_amd64.s:776 +0x48 fp=0xc0002074f8 sp=0xc0002074c8 pc=0xaccc88
runtime.callbackWrap(0x7d1c3ff4e0)
        ~/go/1.23/src/runtime/syscall_windows.go:396 +0x266 fp=0xc0002078e8 sp=0xc0002074f8 pc=0xaaee86
runtime.cgocallbackg1(0xaaec20, 0x7d1c3ff4e0, 0x0)
        ~/go/1.23/src/runtime/cgocall.go:437 +0x234 fp=0xc0002079a0 sp=0xc0002078e8 pc=0xa5a274
runtime.cgocallbackg(0xaaec20, 0x7d1c3ff4e0, 0x0)
        ~/go/1.23/src/runtime/cgocall.go:356 +0x127 fp=0xc000207a20 sp=0xc0002079a0 pc=0xa59f87
runtime.cgocallbackg(0xaaec20, 0x7d1c3ff4e0, 0x0)
        <autogenerated>:1 +0x2e fp=0xc000207a48 sp=0xc000207a20 pc=0xad44ae
runtime.cgocallback(0xc000207ad8, 0xabff52, 0xacfec0)
        ~/go/1.23/src/runtime/asm_amd64.s:1084 +0xec fp=0xc000207a70 sp=0xc000207a48 pc=0xace48c
runtime.systemstack_switch()
        ~/go/1.23/src/runtime/asm_amd64.s:479 +0x8 fp=0xc000207a80 sp=0xc000207a70 pc=0xacc6c8
runtime.cgocall(0xacfec0, 0x15716a8)
        ~/go/1.23/src/runtime/cgocall.go:185 +0x72 fp=0xc000207ae8 sp=0xc000207a80 pc=0xabff52
syscall.SyscallN(0xc000089180?, {0xc00000a8b8?, 0x3f004002000000?, 0xc000207b60?})
        ~/go/1.23/src/runtime/syscall_windows.go:519 +0x5d fp=0xc000207b10 sp=0xc000207ae8 pc=0xaca5dd
syscall.(*Proc).Call(0xc000089180, {0xc00000a8b8, 0x1, 0x1})
        ~/go/1.23/src/syscall/dll_windows.go:166 +0x7e fp=0xc000207ba0 sp=0xc000207b10 pc=0xaf475e
syscall.(*LazyProc).Call(0xc0001465d0, {0xc00000a8b8, 0x1, 0x1})
        ~/go/1.23/src/syscall/dll_windows.go:286 +0x95 fp=0xc000207c38 sp=0xc000207ba0 pc=0xaf5175
github.com/wailsapp/wails/v2/internal/frontend/desktop/windows/winc/w32.DispatchMessage(0x1d7fb5c91c0)
        ~/go/pkg/mod/github.com/wailsapp/wails/[email protected]/internal/frontend/desktop/windows/winc/w32/user32.go:364 +0x8f fp=0xc000207ce0 sp=0xc000207c38 pc=0xfd7daf
github.com/wailsapp/wails/v2/internal/frontend/desktop/windows/winc.RunMainLoop()
        ~/go/pkg/mod/github.com/wailsapp/wails/[email protected]/internal/frontend/desktop/windows/winc/app.go:84 +0x107 fp=0xc000207d80 sp=0xc000207ce0 pc=0xfdd887
github.com/wailsapp/wails/v2/internal/frontend/desktop/windows.(*Frontend).RunMainLoop(0xc000220000)
        ~/go/pkg/mod/github.com/wailsapp/wails/[email protected]/internal/frontend/desktop/windows/frontend.go:212 +0x14 fp=0xc000207d90 sp=0xc000207d80 pc=0x10a1c34
github.com/wailsapp/wails/v2/internal/app.(*App).Run(0xc0000fa1e0)
        ~/go/pkg/mod/github.com/wailsapp/wails/[email protected]/internal/app/app_production.go:19 +0x72 fp=0xc000207df8 sp=0xc000207d90 pc=0x10b9212
github.com/wailsapp/wails/v2/pkg/application.(*Application).Run(0xc000122820)
        ~/go/pkg/mod/github.com/wailsapp/wails/[email protected]/pkg/application/application.go:73 +0x18f fp=0xc000207e88 sp=0xc000207df8 pc=0x10bb10f
github.com/wailsapp/wails/v2.Run(0xc00020e000)
        ~/go/pkg/mod/github.com/wailsapp/wails/[email protected]/wails.go:14 +0x2f fp=0xc000207ec8 sp=0xc000207e88 pc=0x10bb54f
main.main()
        ~/Projects/del/testwails3/testdlg/main.go:19 +0x359 fp=0xc000207f78 sp=0xc000207ec8 pc=0x10bbb59
runtime.main()
        ~/go/1.23/src/runtime/proc.go:272 +0x227 fp=0xc000207fe0 sp=0xc000207f78 pc=0xa93be7
runtime.goexit({})
        ~/go/1.23/src/runtime/asm_amd64.s:1700 +0x1 fp=0xc000207fe8 sp=0xc000207fe0 pc=0xace6e1

To Reproduce

wails init -n test -t vue replace Greet method above build on ubuntu with command: wails build -s -platform windows/amd64 -debug

if sdk is 1.22.6, the app is correct to run. if sdk is 1.23, the app will crash

Expected behaviour

run correctly on sdk 1.23

Screenshots

No response

Attempted Fixes

No response

System Details

# Wails
Version         | v2.9.1
Package Manager | apt   

# System
┌──────────────────────────────────────────────────────────────────────────────────┐
| OS           | Ubuntu                                                            |
| Version      | 22.04                                                             |
| ID           | ubuntu                                                            |
| Go Version   | go1.22.4                                                          |
| Platform     | linux                                                             |
| Architecture | amd64                                                             |
| CPU          | Intel(R) Core(TM) i7-6850K CPU @ 3.60GHz                          |
| GPU          | GP102 [GeForce GTX 1080 Ti] (NVIDIA Corporation) - Driver: nvidia |
| Memory       | 98GB                                                              |
└──────────────────────────────────────────────────────────────────────────────────┘

# Dependencies
┌──────────────────────────────────────────────────────────────────────────┐
| Dependency | Package Name          | Status    | Version                 |
| *docker    | docker.io             | Installed | 27.1.2                  |
| gcc        | build-essential       | Installed | 12.9ubuntu3             |
| libgtk-3   | libgtk-3-dev          | Installed | 3.24.33-1ubuntu2.2      |
| libwebkit  | libwebkit2gtk-4.0-dev | Installed | 2.44.2-0ubuntu0.22.04.1 |
| npm        | npm                   | Installed | 9.2.0                   |
| *nsis      | nsis                  | Installed | v3.08-2                 |
| pkg-config | pkg-config            | Installed | 0.29.2-1ubuntu3         |
└──────────────────────── * - Optional Dependency ─────────────────────────┘

Additional context

No response

mediawall avatar Aug 14 '24 16:08 mediawall

[0815/180804.687:ERROR:window_impl.cc(121)] Failed to unregister class Chrome_WidgetWin_0. Error = 1412 I also encountered this problem, and it was a must-see

Jansson-GH avatar Aug 15 '24 10:08 Jansson-GH

Can confirm that go 1.23.0 on Windows crashes when using the file dialogs. 1.22.6 works fine.

kettek avatar Aug 16 '24 08:08 kettek

Added to the list of things Go 1.23 broke :(

leaanthony avatar Aug 18 '24 11:08 leaanthony

@kettek @Jansson-GH @mediawall @scp-66 @StephanMa @lsrKids @levinit @xray-bit - Please try the above PR to see if this fixes your problem. If you are unsure how to do this, please follow this guide. Let us know how you get on 👍

leaanthony avatar Aug 27 '24 20:08 leaanthony

~WAIT: Might be a user-error, double-checking~

~Unfortunately crashes.~

It works, forgot to update go.mod to refer to cloned repo. Open file and save dialogs worked fine.

kettek avatar Aug 27 '24 21:08 kettek

It works for me <3

cyberxnomad avatar Aug 28 '24 02:08 cyberxnomad

It works for me

Jansson-GH avatar Aug 28 '24 02:08 Jansson-GH

@kettek how to update? And what is your OS ver?

require (
	github.com/wailsapp/wails/v2 v2.9.1
)

wails doctor

# Wails
Version | v2.9.1

# System
┌──────────────────────────────────────────────────────────────────────────────────┐
| OS           | Windows 10 Home                                                   |
| Version      | 2009 (Build: 22631)                                               |
| ID           | 23H2                                                              |
| Go Version   | go1.23.0                                                          |
| Platform     | windows                                                           |
| Architecture | amd64                                                             |
| CPU          | Intel(R) Core(TM) i3-10110U CPU @ 2.10GHz                         |
| GPU          | Intel(R) UHD Graphics (Intel Corporation) - Driver: 30.0.101.1122 |
| Memory       | 8GB                                                               |
└──────────────────────────────────────────────────────────────────────────────────┘

# Dependencies
┌───────────────────────────────────────────────────────┐
| Dependency | Package Name | Status    | Version       |
| WebView2   | N/A          | Installed | 128.0.2739.42 |
| Nodejs     | N/A          | Installed | 20.17.0       |
| npm        | N/A          | Installed | 10.8.2        |
| *upx       | N/A          | Installed | upx 4.2.4     |
| *nsis      | N/A          | Installed | v3.10         |
└─────────────── * - Optional Dependency ───────────────┘

levinit avatar Aug 28 '24 02:08 levinit

Basically same as yours. Follow https://wails.io/docs/guides/local-development/#testing-a-pr and https://wails.io/docs/guides/local-development/#updating-your-project

kettek avatar Aug 28 '24 02:08 kettek

Basically same as yours. Follow https://wails.io/docs/guides/local-development/#testing-a-pr and https://wails.io/docs/guides/local-development/#updating-your-project

thx @leaanthony it works with https://github.com/wailsapp/wails/pull/3707

wails 2.91, windows 11, go 1.23.

levinit avatar Aug 28 '24 08:08 levinit