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

SIGSEGV in glfw.SwapBuffers and gl.Clear on Linux #2035

Closed
sxvghd opened this issue Feb 26, 2021 · 9 comments
Closed

SIGSEGV in glfw.SwapBuffers and gl.Clear on Linux #2035

sxvghd opened this issue Feb 26, 2021 · 9 comments
Labels
bug Something isn't working information-needed Further information is requested OS:Linux Tickets affecting only Linux

Comments

@sxvghd
Copy link

sxvghd commented Feb 26, 2021

Describe the bug:

I've noticed that closing windows (on the OS level), which contain a Table widget sometimes causes the entire app to crash.
I managed to trigger it a few times with the sample code, but it seems to be kinda random on when it hits.

Traceback:

fatal error: unexpected signal during runtime execution
[signal SIGSEGV: segmentation violation code=0x1 addr=0x7f47fc13f000 pc=0x7f47fd467bb7]

runtime stack:
runtime.throw(0x7e2c5c, 0x2a)
	/usr/lib/go/src/runtime/panic.go:1116 +0x72
runtime.sigpanic()
	/usr/lib/go/src/runtime/signal_unix.go:726 +0x4ac

goroutine 11 [syscall, locked to thread]:
runtime.cgocall(0x721110, 0xc000153d78, 0x0)
	/usr/lib/go/src/runtime/cgocall.go:133 +0x5b fp=0xc000153d48 sp=0xc000153d10 pc=0x4297fb
fyne.io/fyne/v2/vendor/github.com/go-gl/glfw/v3.3/glfw._Cfunc_glfwSwapBuffers(0x24dd3b0)
	_cgo_gotypes.go:2477 +0x45 fp=0xc000153d78 sp=0xc000153d48 pc=0x6ac185
fyne.io/fyne/v2/vendor/github.com/go-gl/glfw/v3.3/glfw.(*Window).SwapBuffers.func1(0xc0000aad80)
	/home/sxvghd/.go/src/fyne.io/fyne/v2/vendor/github.com/go-gl/glfw/v3.3/glfw/context.go:41 +0x59 fp=0xc000153db0 sp=0xc000153d78 pc=0x6b0e19
fyne.io/fyne/v2/vendor/github.com/go-gl/glfw/v3.3/glfw.(*Window).SwapBuffers(0xc0000aad80)
	/home/sxvghd/.go/src/fyne.io/fyne/v2/vendor/github.com/go-gl/glfw/v3.3/glfw/context.go:41 +0x2b fp=0xc000153de8 sp=0xc000153db0 pc=0x6acc8b
fyne.io/fyne/v2/internal/driver/glfw.(*gLDriver).repaintWindow.func1()
	/home/sxvghd/.go/src/fyne.io/fyne/v2/internal/driver/glfw/loop.go:171 +0xd7 fp=0xc000153e38 sp=0xc000153de8 pc=0x6c4937
fyne.io/fyne/v2/internal/driver/glfw.(*window).RunWithContext(0xc00013c380, 0xc000153e60)
	/home/sxvghd/.go/src/fyne.io/fyne/v2/internal/driver/glfw/window.go:1186 +0x4f fp=0xc000153e50 sp=0xc000153e38 pc=0x6c300f
fyne.io/fyne/v2/internal/driver/glfw.(*gLDriver).repaintWindow(0xc0000643c0, 0xc00013c380)
	/home/sxvghd/.go/src/fyne.io/fyne/v2/internal/driver/glfw/loop.go:154 +0x65 fp=0xc000153e88 sp=0xc000153e50 pc=0x6ba165
fyne.io/fyne/v2/internal/driver/glfw.(*gLDriver).startDrawThread.func1(0xc0000643c0, 0xc000066420, 0xc0000644b0)
	/home/sxvghd/.go/src/fyne.io/fyne/v2/internal/driver/glfw/loop.go:210 +0x234 fp=0xc000153fc8 sp=0xc000153e88 pc=0x6c4c14
runtime.goexit()
	/usr/lib/go/src/runtime/asm_amd64.s:1374 +0x1 fp=0xc000153fd0 sp=0xc000153fc8 pc=0x4902c1
created by fyne.io/fyne/v2/internal/driver/glfw.(*gLDriver).startDrawThread
	/home/sxvghd/.go/src/fyne.io/fyne/v2/internal/driver/glfw/loop.go:181 +0xbd

goroutine 1 [chan send, locked to thread]:
fyne.io/fyne/v2/internal/driver/glfw.(*gLDriver).runGL(0xc0000643c0)
	/home/sxvghd/.go/src/fyne.io/fyne/v2/internal/driver/glfw/loop.go:93 +0x65e
fyne.io/fyne/v2/internal/driver/glfw.(*gLDriver).Run(0xc0000643c0)
	/home/sxvghd/.go/src/fyne.io/fyne/v2/internal/driver/glfw/driver.go:79 +0x3a
fyne.io/fyne/v2/internal/driver/glfw.(*window).ShowAndRun(0xc00013c1c0)
	/home/sxvghd/.go/src/fyne.io/fyne/v2/internal/driver/glfw/window.go:449 +0x57
main.main()
	/home/sxvghd/Temp/tmp/lol/lol.go:49 +0x65

goroutine 6 [sleep]:
time.Sleep(0x22ecb25c00)
	/usr/lib/go/src/runtime/time.go:188 +0xbf
fyne.io/fyne/v2/internal/painter.svgCacheJanitor.func1()
	/home/sxvghd/.go/src/fyne.io/fyne/v2/internal/painter/svg_cache.go:57 +0x109
sync.(*Once).doSlow(0xd65928, 0xc000016d70)
	/usr/lib/go/src/sync/once.go:66 +0xec
sync.(*Once).Do(0xd65928, 0xc000016d70)
	/usr/lib/go/src/sync/once.go:57 +0x45
created by fyne.io/fyne/v2/internal/painter.svgCacheJanitor
	/home/sxvghd/.go/src/fyne.io/fyne/v2/internal/painter/svg_cache.go:55 +0x9b

goroutine 7 [chan receive]:
fyne.io/fyne/v2/data/binding.processItems()
	/home/sxvghd/.go/src/fyne.io/fyne/v2/data/binding/queue.go:20 +0x45
created by fyne.io/fyne/v2/data/binding.init.0
	/home/sxvghd/.go/src/fyne.io/fyne/v2/data/binding/queue.go:15 +0x35

goroutine 8 [chan receive]:
fyne.io/fyne/v2/app.newAppWithDriver.func1(0xc000066240, 0xc0002ae230)
	/home/sxvghd/.go/src/fyne.io/fyne/v2/app/app.go:117 +0x3d
created by fyne.io/fyne/v2/app.newAppWithDriver
	/home/sxvghd/.go/src/fyne.io/fyne/v2/app/app.go:115 +0x1e8

goroutine 9 [syscall]:
syscall.Syscall6(0xe8, 0x7, 0xc00038fb6c, 0x7, 0xffffffffffffffff, 0x0, 0x0, 0x0, 0x0, 0x0)
	/usr/lib/go/src/syscall/asm_linux_amd64.s:41 +0x5
fyne.io/fyne/v2/vendor/golang.org/x/sys/unix.EpollWait(0x7, 0xc00038fb6c, 0x7, 0x7, 0xffffffffffffffff, 0x0, 0x0, 0x0)
	/home/sxvghd/.go/src/fyne.io/fyne/v2/vendor/golang.org/x/sys/unix/zsyscall_linux_amd64.go:76 +0x72
fyne.io/fyne/v2/vendor/github.com/fsnotify/fsnotify.(*fdPoller).wait(0xc000018de0, 0x0, 0x0, 0x0)
	/home/sxvghd/.go/src/fyne.io/fyne/v2/vendor/github.com/fsnotify/fsnotify/inotify_poller.go:86 +0x91
fyne.io/fyne/v2/vendor/github.com/fsnotify/fsnotify.(*Watcher).readEvents(0xc000064460)
	/home/sxvghd/.go/src/fyne.io/fyne/v2/vendor/github.com/fsnotify/fsnotify/inotify.go:192 +0x206
created by fyne.io/fyne/v2/vendor/github.com/fsnotify/fsnotify.NewWatcher
	/home/sxvghd/.go/src/fyne.io/fyne/v2/vendor/github.com/fsnotify/fsnotify/inotify.go:59 +0x1a8

goroutine 10 [chan receive]:
fyne.io/fyne/v2/app.watchFile.func1(0xc000064460, 0xc00001a270, 0x28, 0xc000013c00, 0xc000013c10)
	/home/sxvghd/.go/src/fyne.io/fyne/v2/app/settings_desktop.go:42 +0x5a
created by fyne.io/fyne/v2/app.watchFile
	/home/sxvghd/.go/src/fyne.io/fyne/v2/app/settings_desktop.go:41 +0xec

goroutine 13 [chan receive]:
fyne.io/fyne/v2/internal/driver/glfw.(*glCanvas).setupThemeListener.func1(0xc000066480, 0xc0002fe000)
	/home/sxvghd/.go/src/fyne.io/fyne/v2/internal/driver/glfw/canvas.go:495 +0x47
created by fyne.io/fyne/v2/internal/driver/glfw.(*glCanvas).setupThemeListener
	/home/sxvghd/.go/src/fyne.io/fyne/v2/internal/driver/glfw/canvas.go:493 +0xa6

goroutine 15 [chan receive]:
fyne.io/fyne/v2/internal/painter.SvgCacheMonitorTheme.func1(0xc0000665a0)
	/home/sxvghd/.go/src/fyne.io/fyne/v2/internal/painter/svg_cache.go:109 +0x34
created by fyne.io/fyne/v2/internal/painter.SvgCacheMonitorTheme
	/home/sxvghd/.go/src/fyne.io/fyne/v2/internal/painter/svg_cache.go:107 +0x9c

goroutine 20 [chan receive]:
fyne.io/fyne/v2/internal/driver/glfw.(*glCanvas).setupThemeListener.func1(0xc000066540, 0xc0002fe500)
	/home/sxvghd/.go/src/fyne.io/fyne/v2/internal/driver/glfw/canvas.go:495 +0x47
created by fyne.io/fyne/v2/internal/driver/glfw.(*glCanvas).setupThemeListener
	/home/sxvghd/.go/src/fyne.io/fyne/v2/internal/driver/glfw/canvas.go:493 +0xa6

goroutine 51 [chan receive]:
fyne.io/fyne/v2/internal/driver/glfw.(*glCanvas).setupThemeListener.func1(0xc000066600, 0xc0002fe400)
	/home/sxvghd/.go/src/fyne.io/fyne/v2/internal/driver/glfw/canvas.go:495 +0x47
created by fyne.io/fyne/v2/internal/driver/glfw.(*glCanvas).setupThemeListener
	/home/sxvghd/.go/src/fyne.io/fyne/v2/internal/driver/glfw/canvas.go:493 +0xa6
exit status 2

Example code:

package main

import (
	"fmt"
	"fyne.io/fyne/v2"
	"fyne.io/fyne/v2/app"
	"fyne.io/fyne/v2/widget"
	"fyne.io/fyne/v2/theme"
)

var a fyne.App

func NewWindow() fyne.Window {
	w := a.NewWindow("Hello")

    t := widget.NewTable(
        func() (int, int) { return 500, 150 },
        func() fyne.CanvasObject {
            w := widget.NewLabel("Cell 000, 000")
            return w
        },
        func(id widget.TableCellID, cell fyne.CanvasObject) {
            label := cell.(*widget.Label)
            label.Wrapping = fyne.TextWrapBreak
            switch id.Col {
            case 0:
                label.SetText(fmt.Sprintf("%d", id.Row+1))
            case 1:
                label.SetText("Supercalifragilisticexpialidocious")
            default:
                label.SetText(fmt.Sprintf("Cell %d, %d", id.Row+1, id.Col+1))
            }
        })
	t.OnSelected = func(id widget.TableCellID) {
		w := NewWindow()
		w.Show()
	}
    t.SetColumnWidth(0, 34)
    t.SetColumnWidth(1, fyne.MeasureText("Supercalifragilisticexpialidocious",theme.TextSize(),fyne.TextStyle{false,false,false}).Width+(theme.Padding()*4))
    w.SetContent(t)
	return w
}



func main() {
	a = app.New()
	w := NewWindow()
	w.ShowAndRun()
}

Device (please complete the following information):

  • OS: Void Linux amd64
  • Version: 5.10.18
  • Go version: 1.15.8
  • Fyne version: fccfd1b
@sxvghd sxvghd added the bug Something isn't working label Feb 26, 2021
@andydotxyz
Copy link
Member

Can you please test with v2.0.1 I think this was a duplicate of #1604

@andydotxyz andydotxyz added duplicate This issue or pull request already exists question A question has been asked labels Mar 10, 2021
@sxvghd
Copy link
Author

sxvghd commented Mar 10, 2021

That fyne version already had the fix for #1604, but I ran it again with 2.0.1 and sure enough, it crashed again.

I actually ran it a few times and got crashes not only in SwapBuffers() but also in Clear().

I think this is a Linux specific thing, because I can't reproduce this under Windows.

fatal error: unexpected signal during runtime execution
[signal SIGSEGV: segmentation violation code=0x1 addr=0xf8 pc=0x7fe637a7e0d0]

runtime stack:
runtime.throw(0x7e40bc, 0x2a)
	/usr/lib/go/src/runtime/panic.go:1116 +0x72
runtime.sigpanic()
	/usr/lib/go/src/runtime/signal_unix.go:726 +0x4ac

goroutine 25 [syscall, locked to thread]:
runtime.cgocall(0x723da0, 0xc00088bd30, 0x2de4640)
	/usr/lib/go/src/runtime/cgocall.go:133 +0x5b fp=0xc00088bd00 sp=0xc00088bcc8 pc=0x4297fb
fyne.io/fyne/v2/vendor/github.com/go-gl/gl/v3.2-core/gl._Cfunc_glowClear(0x7fe637837700, 0x3e4243c500004100)
	_cgo_gotypes.go:3663 +0x45 fp=0xc00088bd30 sp=0xc00088bd00 pc=0x6697a5
fyne.io/fyne/v2/vendor/github.com/go-gl/gl/v3.2-core/gl.Clear(...)
	/home/sxvghd/.go/src/fyne.io/fyne/v2/vendor/github.com/go-gl/gl/v3.2-core/gl/package.go:8667
fyne.io/fyne/v2/internal/painter/gl.(*glPainter).glClearBuffer(0xc000078240)
	/home/sxvghd/.go/src/fyne.io/fyne/v2/internal/painter/gl/gl_core.go:188 +0xe6 fp=0xc00088bd58 sp=0xc00088bd30 pc=0x68c826
fyne.io/fyne/v2/internal/painter/gl.(*glPainter).Clear(0xc000078240)
	/home/sxvghd/.go/src/fyne.io/fyne/v2/internal/painter/gl/painter.go:53 +0x2b fp=0xc00088bd70 sp=0xc00088bd58 pc=0x68d0ab
fyne.io/fyne/v2/internal/driver/glfw.(*glCanvas).paint(0xc00032c800, 0x4431400043d98000)
	/home/sxvghd/.go/src/fyne.io/fyne/v2/internal/driver/glfw/canvas.go:431 +0x8a fp=0xc00088bde8 sp=0xc00088bd70 pc=0x6b7fca
fyne.io/fyne/v2/internal/driver/glfw.(*gLDriver).repaintWindow.func1()
	/home/sxvghd/.go/src/fyne.io/fyne/v2/internal/driver/glfw/loop.go:163 +0x88 fp=0xc00088be38 sp=0xc00088bde8 pc=0x6c4de8
fyne.io/fyne/v2/internal/driver/glfw.(*window).RunWithContext(0xc0001756c0, 0xc00088be60)
	/home/sxvghd/.go/src/fyne.io/fyne/v2/internal/driver/glfw/window.go:1186 +0x4f fp=0xc00088be50 sp=0xc00088be38 pc=0x6c350f
fyne.io/fyne/v2/internal/driver/glfw.(*gLDriver).repaintWindow(0xc0001003c0, 0xc0001756c0)
	/home/sxvghd/.go/src/fyne.io/fyne/v2/internal/driver/glfw/loop.go:154 +0x65 fp=0xc00088be88 sp=0xc00088be50 pc=0x6ba665
fyne.io/fyne/v2/internal/driver/glfw.(*gLDriver).startDrawThread.func1(0xc0001003c0, 0xc0001024e0, 0xc0001004b0)
	/home/sxvghd/.go/src/fyne.io/fyne/v2/internal/driver/glfw/loop.go:210 +0x234 fp=0xc00088bfc8 sp=0xc00088be88 pc=0x6c5114
runtime.goexit()
	/usr/lib/go/src/runtime/asm_amd64.s:1374 +0x1 fp=0xc00088bfd0 sp=0xc00088bfc8 pc=0x4902c1
created by fyne.io/fyne/v2/internal/driver/glfw.(*gLDriver).startDrawThread
	/home/sxvghd/.go/src/fyne.io/fyne/v2/internal/driver/glfw/loop.go:181 +0xbd

goroutine 1 [select, locked to thread]:
fyne.io/fyne/v2/internal/driver/glfw.(*gLDriver).runGL(0xc0001003c0)
	/home/sxvghd/.go/src/fyne.io/fyne/v2/internal/driver/glfw/loop.go:90 +0x1bf
fyne.io/fyne/v2/internal/driver/glfw.(*gLDriver).Run(0xc0001003c0)
	/home/sxvghd/.go/src/fyne.io/fyne/v2/internal/driver/glfw/driver.go:79 +0x3a
fyne.io/fyne/v2/internal/driver/glfw.(*window).ShowAndRun(0xc0001741c0)
	/home/sxvghd/.go/src/fyne.io/fyne/v2/internal/driver/glfw/window.go:449 +0x57
main.main()
	/home/sxvghd/Temp/tmp/lol/lol.go:49 +0x65

goroutine 19 [sleep]:
time.Sleep(0x22ecb25c00)
	/usr/lib/go/src/runtime/time.go:188 +0xbf
fyne.io/fyne/v2/internal/painter.svgCacheJanitor.func1()
	/home/sxvghd/.go/src/fyne.io/fyne/v2/internal/painter/svg_cache.go:57 +0x109
sync.(*Once).doSlow(0xd67908, 0xc00012ccb0)
	/usr/lib/go/src/sync/once.go:66 +0xec
sync.(*Once).Do(0xd67908, 0xc00012ccb0)
	/usr/lib/go/src/sync/once.go:57 +0x45
created by fyne.io/fyne/v2/internal/painter.svgCacheJanitor
	/home/sxvghd/.go/src/fyne.io/fyne/v2/internal/painter/svg_cache.go:55 +0x9b

goroutine 20 [select]:
fyne.io/fyne/v2/data/binding.makeInfiniteQueue.func1(0xc000102120, 0xc00012e0b0)
	/home/sxvghd/.go/src/fyne.io/fyne/v2/data/binding/queue.go:36 +0x15e
created by fyne.io/fyne/v2/data/binding.makeInfiniteQueue
	/home/sxvghd/.go/src/fyne.io/fyne/v2/data/binding/queue.go:21 +0xb1

goroutine 21 [chan receive]:
fyne.io/fyne/v2/data/binding.processItems()
	/home/sxvghd/.go/src/fyne.io/fyne/v2/data/binding/queue.go:54 +0x45
created by fyne.io/fyne/v2/data/binding.init.0
	/home/sxvghd/.go/src/fyne.io/fyne/v2/data/binding/queue.go:15 +0x35

goroutine 22 [chan receive]:
fyne.io/fyne/v2/app.newAppWithDriver.func1(0xc000102300, 0xc0002e2230)
	/home/sxvghd/.go/src/fyne.io/fyne/v2/app/app.go:117 +0x3d
created by fyne.io/fyne/v2/app.newAppWithDriver
	/home/sxvghd/.go/src/fyne.io/fyne/v2/app/app.go:115 +0x1e8

goroutine 23 [syscall]:
syscall.Syscall6(0xe8, 0x7, 0xc00040fb6c, 0x7, 0xffffffffffffffff, 0x0, 0x0, 0x0, 0x0, 0x0)
	/usr/lib/go/src/syscall/asm_linux_amd64.s:41 +0x5
fyne.io/fyne/v2/vendor/golang.org/x/sys/unix.EpollWait(0x7, 0xc00040fb6c, 0x7, 0x7, 0xffffffffffffffff, 0x0, 0x0, 0x0)
	/home/sxvghd/.go/src/fyne.io/fyne/v2/vendor/golang.org/x/sys/unix/zsyscall_linux_amd64.go:76 +0x72
fyne.io/fyne/v2/vendor/github.com/fsnotify/fsnotify.(*fdPoller).wait(0xc000138c00, 0x0, 0x0, 0x0)
	/home/sxvghd/.go/src/fyne.io/fyne/v2/vendor/github.com/fsnotify/fsnotify/inotify_poller.go:86 +0x91
fyne.io/fyne/v2/vendor/github.com/fsnotify/fsnotify.(*Watcher).readEvents(0xc000100460)
	/home/sxvghd/.go/src/fyne.io/fyne/v2/vendor/github.com/fsnotify/fsnotify/inotify.go:192 +0x206
created by fyne.io/fyne/v2/vendor/github.com/fsnotify/fsnotify.NewWatcher
	/home/sxvghd/.go/src/fyne.io/fyne/v2/vendor/github.com/fsnotify/fsnotify/inotify.go:59 +0x1a8

goroutine 24 [chan receive]:
fyne.io/fyne/v2/app.watchFile.func1(0xc000100460, 0xc000128150, 0x28, 0xc000113be0, 0xc000113bf0)
	/home/sxvghd/.go/src/fyne.io/fyne/v2/app/settings_desktop.go:42 +0x5a
created by fyne.io/fyne/v2/app.watchFile
	/home/sxvghd/.go/src/fyne.io/fyne/v2/app/settings_desktop.go:41 +0xec

goroutine 26 [chan receive]:
fyne.io/fyne/v2/internal/driver/glfw.(*window).runEventQueue(0xc0001741c0)
	/home/sxvghd/.go/src/fyne.io/fyne/v2/internal/driver/glfw/window.go:1246 +0xb0
created by fyne.io/fyne/v2/internal/driver/glfw.(*gLDriver).createWindow.func1
	/home/sxvghd/.go/src/fyne.io/fyne/v2/internal/driver/glfw/window.go:1271 +0x10d

goroutine 27 [chan receive]:
fyne.io/fyne/v2/internal/driver/glfw.(*glCanvas).setupThemeListener.func1(0xc000102540, 0xc00032c000)
	/home/sxvghd/.go/src/fyne.io/fyne/v2/internal/driver/glfw/canvas.go:495 +0x47
created by fyne.io/fyne/v2/internal/driver/glfw.(*glCanvas).setupThemeListener
	/home/sxvghd/.go/src/fyne.io/fyne/v2/internal/driver/glfw/canvas.go:493 +0xa6

goroutine 29 [chan receive]:
fyne.io/fyne/v2/internal/painter.SvgCacheMonitorTheme.func1(0xc000102600)
	/home/sxvghd/.go/src/fyne.io/fyne/v2/internal/painter/svg_cache.go:109 +0x34
created by fyne.io/fyne/v2/internal/painter.SvgCacheMonitorTheme
	/home/sxvghd/.go/src/fyne.io/fyne/v2/internal/painter/svg_cache.go:107 +0x9c

goroutine 36 [chan receive]:
fyne.io/fyne/v2/internal/driver/glfw.(*glCanvas).setupThemeListener.func1(0xc000102660, 0xc00007e300)
	/home/sxvghd/.go/src/fyne.io/fyne/v2/internal/driver/glfw/canvas.go:495 +0x47
created by fyne.io/fyne/v2/internal/driver/glfw.(*glCanvas).setupThemeListener
	/home/sxvghd/.go/src/fyne.io/fyne/v2/internal/driver/glfw/canvas.go:493 +0xa6

goroutine 84 [chan receive]:
fyne.io/fyne/v2/internal/driver/glfw.(*glCanvas).setupThemeListener.func1(0xc000102ae0, 0xc00032c900)
	/home/sxvghd/.go/src/fyne.io/fyne/v2/internal/driver/glfw/canvas.go:495 +0x47
created by fyne.io/fyne/v2/internal/driver/glfw.(*glCanvas).setupThemeListener
	/home/sxvghd/.go/src/fyne.io/fyne/v2/internal/driver/glfw/canvas.go:493 +0xa6

goroutine 10 [chan receive]:
fyne.io/fyne/v2/internal/driver/glfw.(*glCanvas).setupThemeListener.func1(0xc0001026c0, 0xc00032c200)
	/home/sxvghd/.go/src/fyne.io/fyne/v2/internal/driver/glfw/canvas.go:495 +0x47
created by fyne.io/fyne/v2/internal/driver/glfw.(*glCanvas).setupThemeListener
	/home/sxvghd/.go/src/fyne.io/fyne/v2/internal/driver/glfw/canvas.go:493 +0xa6

goroutine 38 [chan receive]:
fyne.io/fyne/v2/internal/driver/glfw.(*glCanvas).setupThemeListener.func1(0xc000102720, 0xc00032c400)
	/home/sxvghd/.go/src/fyne.io/fyne/v2/internal/driver/glfw/canvas.go:495 +0x47
created by fyne.io/fyne/v2/internal/driver/glfw.(*glCanvas).setupThemeListener
	/home/sxvghd/.go/src/fyne.io/fyne/v2/internal/driver/glfw/canvas.go:493 +0xa6

goroutine 16 [chan receive]:
fyne.io/fyne/v2/internal/driver/glfw.(*glCanvas).setupThemeListener.func1(0xc0001028a0, 0xc00032ca00)
	/home/sxvghd/.go/src/fyne.io/fyne/v2/internal/driver/glfw/canvas.go:495 +0x47
created by fyne.io/fyne/v2/internal/driver/glfw.(*glCanvas).setupThemeListener
	/home/sxvghd/.go/src/fyne.io/fyne/v2/internal/driver/glfw/canvas.go:493 +0xa6

goroutine 14 [chan receive]:
fyne.io/fyne/v2/internal/driver/glfw.(*glCanvas).setupThemeListener.func1(0xc000102780, 0xc00007e100)
	/home/sxvghd/.go/src/fyne.io/fyne/v2/internal/driver/glfw/canvas.go:495 +0x47
created by fyne.io/fyne/v2/internal/driver/glfw.(*glCanvas).setupThemeListener
	/home/sxvghd/.go/src/fyne.io/fyne/v2/internal/driver/glfw/canvas.go:493 +0xa6

goroutine 40 [chan receive]:
fyne.io/fyne/v2/internal/driver/glfw.(*glCanvas).setupThemeListener.func1(0xc0001027e0, 0xc00032c500)
	/home/sxvghd/.go/src/fyne.io/fyne/v2/internal/driver/glfw/canvas.go:495 +0x47
created by fyne.io/fyne/v2/internal/driver/glfw.(*glCanvas).setupThemeListener
	/home/sxvghd/.go/src/fyne.io/fyne/v2/internal/driver/glfw/canvas.go:493 +0xa6

goroutine 67 [chan receive]:
fyne.io/fyne/v2/internal/driver/glfw.(*glCanvas).setupThemeListener.func1(0xc000102840, 0xc00032c600)
	/home/sxvghd/.go/src/fyne.io/fyne/v2/internal/driver/glfw/canvas.go:495 +0x47
created by fyne.io/fyne/v2/internal/driver/glfw.(*glCanvas).setupThemeListener
	/home/sxvghd/.go/src/fyne.io/fyne/v2/internal/driver/glfw/canvas.go:493 +0xa6

goroutine 42 [chan receive]:
fyne.io/fyne/v2/internal/driver/glfw.(*glCanvas).setupThemeListener.func1(0xc000102900, 0xc00032c700)
	/home/sxvghd/.go/src/fyne.io/fyne/v2/internal/driver/glfw/canvas.go:495 +0x47
created by fyne.io/fyne/v2/internal/driver/glfw.(*glCanvas).setupThemeListener
	/home/sxvghd/.go/src/fyne.io/fyne/v2/internal/driver/glfw/canvas.go:493 +0xa6

goroutine 33 [chan receive]:
fyne.io/fyne/v2/internal/driver/glfw.(*glCanvas).setupThemeListener.func1(0xc000102a20, 0xc00007e700)
	/home/sxvghd/.go/src/fyne.io/fyne/v2/internal/driver/glfw/canvas.go:495 +0x47
created by fyne.io/fyne/v2/internal/driver/glfw.(*glCanvas).setupThemeListener
	/home/sxvghd/.go/src/fyne.io/fyne/v2/internal/driver/glfw/canvas.go:493 +0xa6

goroutine 44 [chan receive]:
fyne.io/fyne/v2/internal/driver/glfw.(*glCanvas).setupThemeListener.func1(0xc000102960, 0xc00007e400)
	/home/sxvghd/.go/src/fyne.io/fyne/v2/internal/driver/glfw/canvas.go:495 +0x47
created by fyne.io/fyne/v2/internal/driver/glfw.(*glCanvas).setupThemeListener
	/home/sxvghd/.go/src/fyne.io/fyne/v2/internal/driver/glfw/canvas.go:493 +0xa6

goroutine 47 [chan receive]:
fyne.io/fyne/v2/internal/driver/glfw.(*glCanvas).setupThemeListener.func1(0xc0001029c0, 0xc00007e500)
	/home/sxvghd/.go/src/fyne.io/fyne/v2/internal/driver/glfw/canvas.go:495 +0x47
created by fyne.io/fyne/v2/internal/driver/glfw.(*glCanvas).setupThemeListener
	/home/sxvghd/.go/src/fyne.io/fyne/v2/internal/driver/glfw/canvas.go:493 +0xa6

goroutine 98 [chan receive]:
fyne.io/fyne/v2/internal/driver/glfw.(*glCanvas).setupThemeListener.func1(0xc000102a80, 0xc00032c800)
	/home/sxvghd/.go/src/fyne.io/fyne/v2/internal/driver/glfw/canvas.go:495 +0x47
created by fyne.io/fyne/v2/internal/driver/glfw.(*glCanvas).setupThemeListener
	/home/sxvghd/.go/src/fyne.io/fyne/v2/internal/driver/glfw/canvas.go:493 +0xa6

goroutine 70 [chan receive]:
fyne.io/fyne/v2/internal/driver/glfw.(*glCanvas).setupThemeListener.func1(0xc000102b40, 0xc00032cc00)
	/home/sxvghd/.go/src/fyne.io/fyne/v2/internal/driver/glfw/canvas.go:495 +0x47
created by fyne.io/fyne/v2/internal/driver/glfw.(*glCanvas).setupThemeListener
	/home/sxvghd/.go/src/fyne.io/fyne/v2/internal/driver/glfw/canvas.go:493 +0xa6

goroutine 103 [chan receive]:
fyne.io/fyne/v2/internal/driver/glfw.(*glCanvas).setupThemeListener.func1(0xc000102ba0, 0xc00032ce00)
	/home/sxvghd/.go/src/fyne.io/fyne/v2/internal/driver/glfw/canvas.go:495 +0x47
created by fyne.io/fyne/v2/internal/driver/glfw.(*glCanvas).setupThemeListener
	/home/sxvghd/.go/src/fyne.io/fyne/v2/internal/driver/glfw/canvas.go:493 +0xa6
exit status 2

fatal error: unexpected signal during runtime execution
[signal SIGSEGV: segmentation violation code=0x1 addr=0x7fa098055000 pc=0x7fa0b014cbb7]

runtime stack:
runtime.throw(0x7e40bc, 0x2a)
	/usr/lib/go/src/runtime/panic.go:1116 +0x72
runtime.sigpanic()
	/usr/lib/go/src/runtime/signal_unix.go:726 +0x4ac

goroutine 12 [syscall, locked to thread]:
runtime.cgocall(0x721610, 0xc0006ebd78, 0x0)
	/usr/lib/go/src/runtime/cgocall.go:133 +0x5b fp=0xc0006ebd48 sp=0xc0006ebd10 pc=0x4297fb
fyne.io/fyne/v2/vendor/github.com/go-gl/glfw/v3.3/glfw._Cfunc_glfwSwapBuffers(0x2711010)
	_cgo_gotypes.go:2477 +0x45 fp=0xc0006ebd78 sp=0xc0006ebd48 pc=0x6ac685
fyne.io/fyne/v2/vendor/github.com/go-gl/glfw/v3.3/glfw.(*Window).SwapBuffers.func1(0xc0000b3c20)
	/home/sxvghd/.go/src/fyne.io/fyne/v2/vendor/github.com/go-gl/glfw/v3.3/glfw/context.go:41 +0x59 fp=0xc0006ebdb0 sp=0xc0006ebd78 pc=0x6b1319
fyne.io/fyne/v2/vendor/github.com/go-gl/glfw/v3.3/glfw.(*Window).SwapBuffers(0xc0000b3c20)
	/home/sxvghd/.go/src/fyne.io/fyne/v2/vendor/github.com/go-gl/glfw/v3.3/glfw/context.go:41 +0x2b fp=0xc0006ebde8 sp=0xc0006ebdb0 pc=0x6ad18b
fyne.io/fyne/v2/internal/driver/glfw.(*gLDriver).repaintWindow.func1()
	/home/sxvghd/.go/src/fyne.io/fyne/v2/internal/driver/glfw/loop.go:171 +0xd7 fp=0xc0006ebe38 sp=0xc0006ebde8 pc=0x6c4e37
fyne.io/fyne/v2/internal/driver/glfw.(*window).RunWithContext(0xc00013d340, 0xc0006ebe60)
	/home/sxvghd/.go/src/fyne.io/fyne/v2/internal/driver/glfw/window.go:1186 +0x4f fp=0xc0006ebe50 sp=0xc0006ebe38 pc=0x6c350f
fyne.io/fyne/v2/internal/driver/glfw.(*gLDriver).repaintWindow(0xc0000643c0, 0xc00013d340)
	/home/sxvghd/.go/src/fyne.io/fyne/v2/internal/driver/glfw/loop.go:154 +0x65 fp=0xc0006ebe88 sp=0xc0006ebe50 pc=0x6ba665
fyne.io/fyne/v2/internal/driver/glfw.(*gLDriver).startDrawThread.func1(0xc0000643c0, 0xc0000664e0, 0xc0000644b0)
	/home/sxvghd/.go/src/fyne.io/fyne/v2/internal/driver/glfw/loop.go:210 +0x234 fp=0xc0006ebfc8 sp=0xc0006ebe88 pc=0x6c5114
runtime.goexit()
	/usr/lib/go/src/runtime/asm_amd64.s:1374 +0x1 fp=0xc0006ebfd0 sp=0xc0006ebfc8 pc=0x4902c1
created by fyne.io/fyne/v2/internal/driver/glfw.(*gLDriver).startDrawThread
	/home/sxvghd/.go/src/fyne.io/fyne/v2/internal/driver/glfw/loop.go:181 +0xbd

goroutine 1 [select, locked to thread]:
fyne.io/fyne/v2/internal/driver/glfw.(*gLDriver).runGL(0xc0000643c0)
	/home/sxvghd/.go/src/fyne.io/fyne/v2/internal/driver/glfw/loop.go:90 +0x1bf
fyne.io/fyne/v2/internal/driver/glfw.(*gLDriver).Run(0xc0000643c0)
	/home/sxvghd/.go/src/fyne.io/fyne/v2/internal/driver/glfw/driver.go:79 +0x3a
fyne.io/fyne/v2/internal/driver/glfw.(*window).ShowAndRun(0xc00013c1c0)
	/home/sxvghd/.go/src/fyne.io/fyne/v2/internal/driver/glfw/window.go:449 +0x57
main.main()
	/home/sxvghd/Temp/tmp/lol/lol.go:49 +0x65

goroutine 6 [sleep]:
time.Sleep(0x22ecb25c00)
	/usr/lib/go/src/runtime/time.go:188 +0xbf
fyne.io/fyne/v2/internal/painter.svgCacheJanitor.func1()
	/home/sxvghd/.go/src/fyne.io/fyne/v2/internal/painter/svg_cache.go:57 +0x109
sync.(*Once).doSlow(0xd67908, 0xc000016d90)
	/usr/lib/go/src/sync/once.go:66 +0xec
sync.(*Once).Do(0xd67908, 0xc000016d90)
	/usr/lib/go/src/sync/once.go:57 +0x45
created by fyne.io/fyne/v2/internal/painter.svgCacheJanitor
	/home/sxvghd/.go/src/fyne.io/fyne/v2/internal/painter/svg_cache.go:55 +0x9b

goroutine 7 [select]:
fyne.io/fyne/v2/data/binding.makeInfiniteQueue.func1(0xc000066120, 0xc0000100c0)
	/home/sxvghd/.go/src/fyne.io/fyne/v2/data/binding/queue.go:36 +0x15e
created by fyne.io/fyne/v2/data/binding.makeInfiniteQueue
	/home/sxvghd/.go/src/fyne.io/fyne/v2/data/binding/queue.go:21 +0xb1

goroutine 8 [chan receive]:
fyne.io/fyne/v2/data/binding.processItems()
	/home/sxvghd/.go/src/fyne.io/fyne/v2/data/binding/queue.go:54 +0x45
created by fyne.io/fyne/v2/data/binding.init.0
	/home/sxvghd/.go/src/fyne.io/fyne/v2/data/binding/queue.go:15 +0x35

goroutine 9 [chan receive]:
fyne.io/fyne/v2/app.newAppWithDriver.func1(0xc000066300, 0xc0002ae230)
	/home/sxvghd/.go/src/fyne.io/fyne/v2/app/app.go:117 +0x3d
created by fyne.io/fyne/v2/app.newAppWithDriver
	/home/sxvghd/.go/src/fyne.io/fyne/v2/app/app.go:115 +0x1e8

goroutine 10 [syscall]:
syscall.Syscall6(0xe8, 0x7, 0xc00038fb6c, 0x7, 0xffffffffffffffff, 0x0, 0x0, 0x0, 0x0, 0x0)
	/usr/lib/go/src/syscall/asm_linux_amd64.s:41 +0x5
fyne.io/fyne/v2/vendor/golang.org/x/sys/unix.EpollWait(0x7, 0xc00038fb6c, 0x7, 0x7, 0xffffffffffffffff, 0x0, 0x0, 0x0)
	/home/sxvghd/.go/src/fyne.io/fyne/v2/vendor/golang.org/x/sys/unix/zsyscall_linux_amd64.go:76 +0x72
fyne.io/fyne/v2/vendor/github.com/fsnotify/fsnotify.(*fdPoller).wait(0xc000018dc0, 0x0, 0x0, 0x0)
	/home/sxvghd/.go/src/fyne.io/fyne/v2/vendor/github.com/fsnotify/fsnotify/inotify_poller.go:86 +0x91
fyne.io/fyne/v2/vendor/github.com/fsnotify/fsnotify.(*Watcher).readEvents(0xc000064460)
	/home/sxvghd/.go/src/fyne.io/fyne/v2/vendor/github.com/fsnotify/fsnotify/inotify.go:192 +0x206
created by fyne.io/fyne/v2/vendor/github.com/fsnotify/fsnotify.NewWatcher
	/home/sxvghd/.go/src/fyne.io/fyne/v2/vendor/github.com/fsnotify/fsnotify/inotify.go:59 +0x1a8

goroutine 11 [chan receive]:
fyne.io/fyne/v2/app.watchFile.func1(0xc000064460, 0xc00001a270, 0x28, 0xc000013c00, 0xc000013c10)
	/home/sxvghd/.go/src/fyne.io/fyne/v2/app/settings_desktop.go:42 +0x5a
created by fyne.io/fyne/v2/app.watchFile
	/home/sxvghd/.go/src/fyne.io/fyne/v2/app/settings_desktop.go:41 +0xec

goroutine 13 [chan receive]:
fyne.io/fyne/v2/internal/driver/glfw.(*window).runEventQueue(0xc00013c1c0)
	/home/sxvghd/.go/src/fyne.io/fyne/v2/internal/driver/glfw/window.go:1246 +0xb0
created by fyne.io/fyne/v2/internal/driver/glfw.(*gLDriver).createWindow.func1
	/home/sxvghd/.go/src/fyne.io/fyne/v2/internal/driver/glfw/window.go:1271 +0x10d

goroutine 14 [chan receive]:
fyne.io/fyne/v2/internal/driver/glfw.(*glCanvas).setupThemeListener.func1(0xc000066540, 0xc0002fc000)
	/home/sxvghd/.go/src/fyne.io/fyne/v2/internal/driver/glfw/canvas.go:495 +0x47
created by fyne.io/fyne/v2/internal/driver/glfw.(*glCanvas).setupThemeListener
	/home/sxvghd/.go/src/fyne.io/fyne/v2/internal/driver/glfw/canvas.go:493 +0xa6

goroutine 16 [chan receive]:
fyne.io/fyne/v2/internal/painter.SvgCacheMonitorTheme.func1(0xc000066600)
	/home/sxvghd/.go/src/fyne.io/fyne/v2/internal/painter/svg_cache.go:109 +0x34
created by fyne.io/fyne/v2/internal/painter.SvgCacheMonitorTheme
	/home/sxvghd/.go/src/fyne.io/fyne/v2/internal/painter/svg_cache.go:107 +0x9c

goroutine 54 [chan receive]:
fyne.io/fyne/v2/internal/driver/glfw.(*glCanvas).setupThemeListener.func1(0xc000066660, 0xc00031c300)
	/home/sxvghd/.go/src/fyne.io/fyne/v2/internal/driver/glfw/canvas.go:495 +0x47
created by fyne.io/fyne/v2/internal/driver/glfw.(*glCanvas).setupThemeListener
	/home/sxvghd/.go/src/fyne.io/fyne/v2/internal/driver/glfw/canvas.go:493 +0xa6

goroutine 20 [chan receive]:
fyne.io/fyne/v2/internal/driver/glfw.(*glCanvas).setupThemeListener.func1(0xc000066720, 0xc0002fc300)
	/home/sxvghd/.go/src/fyne.io/fyne/v2/internal/driver/glfw/canvas.go:495 +0x47
created by fyne.io/fyne/v2/internal/driver/glfw.(*glCanvas).setupThemeListener
	/home/sxvghd/.go/src/fyne.io/fyne/v2/internal/driver/glfw/canvas.go:493 +0xa6

goroutine 36 [chan receive]:
fyne.io/fyne/v2/internal/driver/glfw.(*glCanvas).setupThemeListener.func1(0xc0000666c0, 0xc00031c400)
	/home/sxvghd/.go/src/fyne.io/fyne/v2/internal/driver/glfw/canvas.go:495 +0x47
created by fyne.io/fyne/v2/internal/driver/glfw.(*glCanvas).setupThemeListener
	/home/sxvghd/.go/src/fyne.io/fyne/v2/internal/driver/glfw/canvas.go:493 +0xa6

goroutine 63 [chan receive]:
fyne.io/fyne/v2/internal/driver/glfw.(*glCanvas).setupThemeListener.func1(0xc0000669c0, 0xc00031c200)
	/home/sxvghd/.go/src/fyne.io/fyne/v2/internal/driver/glfw/canvas.go:495 +0x47
created by fyne.io/fyne/v2/internal/driver/glfw.(*glCanvas).setupThemeListener
	/home/sxvghd/.go/src/fyne.io/fyne/v2/internal/driver/glfw/canvas.go:493 +0xa6
goroutine 57 [chan receive]:
fyne.io/fyne/v2/internal/driver/glfw.(*glCanvas).setupThemeListener.func1(0xc000066780, 0xc0002fc400)
	/home/sxvghd/.go/src/fyne.io/fyne/v2/internal/driver/glfw/canvas.go:495 +0x47
created by fyne.io/fyne/v2/internal/driver/glfw.(*glCanvas).setupThemeListener
	/home/sxvghd/.go/src/fyne.io/fyne/v2/internal/driver/glfw/canvas.go:493 +0xa6

goroutine 67 [chan receive]:
fyne.io/fyne/v2/internal/driver/glfw.(*glCanvas).setupThemeListener.func1(0xc000066840, 0xc0002fc500)
	/home/sxvghd/.go/src/fyne.io/fyne/v2/internal/driver/glfw/canvas.go:495 +0x47
created by fyne.io/fyne/v2/internal/driver/glfw.(*glCanvas).setupThemeListener
	/home/sxvghd/.go/src/fyne.io/fyne/v2/internal/driver/glfw/canvas.go:493 +0xa6

goroutine 59 [chan receive]:
fyne.io/fyne/v2/internal/driver/glfw.(*glCanvas).setupThemeListener.func1(0xc0000667e0, 0xc00031c600)
	/home/sxvghd/.go/src/fyne.io/fyne/v2/internal/driver/glfw/canvas.go:495 +0x47
created by fyne.io/fyne/v2/internal/driver/glfw.(*glCanvas).setupThemeListener
	/home/sxvghd/.go/src/fyne.io/fyne/v2/internal/driver/glfw/canvas.go:493 +0xa6

goroutine 39 [chan receive]:
fyne.io/fyne/v2/internal/driver/glfw.(*window).runEventQueue(0xc00013d180)
	/home/sxvghd/.go/src/fyne.io/fyne/v2/internal/driver/glfw/window.go:1246 +0xb0
created by fyne.io/fyne/v2/internal/driver/glfw.(*gLDriver).createWindow.func1
	/home/sxvghd/.go/src/fyne.io/fyne/v2/internal/driver/glfw/window.go:1271 +0x10d

goroutine 23 [chan receive]:
fyne.io/fyne/v2/internal/driver/glfw.(*glCanvas).setupThemeListener.func1(0xc0000668a0, 0xc0002fc600)
	/home/sxvghd/.go/src/fyne.io/fyne/v2/internal/driver/glfw/canvas.go:495 +0x47
created by fyne.io/fyne/v2/internal/driver/glfw.(*glCanvas).setupThemeListener
	/home/sxvghd/.go/src/fyne.io/fyne/v2/internal/driver/glfw/canvas.go:493 +0xa6

goroutine 25 [chan receive]:
fyne.io/fyne/v2/internal/driver/glfw.(*glCanvas).setupThemeListener.func1(0xc000066900, 0xc0002fc700)
	/home/sxvghd/.go/src/fyne.io/fyne/v2/internal/driver/glfw/canvas.go:495 +0x47
created by fyne.io/fyne/v2/internal/driver/glfw.(*glCanvas).setupThemeListener
	/home/sxvghd/.go/src/fyne.io/fyne/v2/internal/driver/glfw/canvas.go:493 +0xa6

goroutine 40 [chan receive]:
fyne.io/fyne/v2/internal/driver/glfw.(*glCanvas).setupThemeListener.func1(0xc000066960, 0xc0002fc800)
	/home/sxvghd/.go/src/fyne.io/fyne/v2/internal/driver/glfw/canvas.go:495 +0x47
created by fyne.io/fyne/v2/internal/driver/glfw.(*glCanvas).setupThemeListener
	/home/sxvghd/.go/src/fyne.io/fyne/v2/internal/driver/glfw/canvas.go:493 +0xa6

goroutine 82 [chan receive]:
fyne.io/fyne/v2/internal/driver/glfw.(*glCanvas).setupThemeListener.func1(0xc000066a20, 0xc00031c500)
	/home/sxvghd/.go/src/fyne.io/fyne/v2/internal/driver/glfw/canvas.go:495 +0x47
created by fyne.io/fyne/v2/internal/driver/glfw.(*glCanvas).setupThemeListener
	/home/sxvghd/.go/src/fyne.io/fyne/v2/internal/driver/glfw/canvas.go:493 +0xa6
exit status 2

Also now I'm pretty sure that the table has nothing to do with the crash, so I'll change the name of this issue.

@sxvghd sxvghd changed the title Closing a window with a table widget sometimes crashes the entire app SIGSEGV in glfw.SwapBuffers and gl.Clear on Linux Mar 10, 2021
@andydotxyz andydotxyz added OS:Linux Tickets affecting only Linux and removed duplicate This issue or pull request already exists labels Mar 10, 2021
@andydotxyz
Copy link
Member

Thanks for the info, we'll get some Linux testing on

@fpabl0
Copy link
Member

fpabl0 commented Mar 16, 2021

It also occurs on MacOS, so I don't think it is Linux specific. Unfortunately (or fortunately?), it is really hard to reproduce it 😞

@Antonboom
Copy link

Antonboom commented May 6, 2021

+1

free(): invalid pointer
SIGABRT: abort
PC=0x7f3841de2ef5 m=3 sigcode=18446744073709551610
signal arrived during cgo execution
goroutine 34 [syscall, locked to thread]:
runtime.cgocall(0xa2b0d0, 0xc003f79dc0, 0xc001439500)
	/usr/lib/go/src/runtime/cgocall.go:154 +0x5b fp=0xc003f79d90 sp=0xc003f79d58 pc=0x4297fb
github.com/go-gl/glfw/v3.3/glfw._Cfunc_glfwSwapBuffers(0x1d07a10)
	_cgo_gotypes.go:2477 +0x3c fp=0xc003f79dc0 sp=0xc003f79d90 pc=0x7f10dc
github.com/go-gl/glfw/v3.3/glfw.(*Window).SwapBuffers.func1(0xc000115710)
	xxx/vendor/github.com/go-gl/glfw/v3.3/glfw/context.go:41 +0x59 fp=0xc003f79df8 sp=0xc003f79dc0 pc=0x7f7a59
github.com/go-gl/glfw/v3.3/glfw.(*Window).SwapBuffers(0xc000115710)
	xxx/vendor/github.com/go-gl/glfw/v3.3/glfw/context.go:41 +0x2b fp=0xc003f79e30 sp=0xc003f79df8 pc=0x7f148b
fyne.io/fyne/v2/internal/driver/glfw.(*gLDriver).repaintWindow.func1()
	xxx/vendor/fyne.io/fyne/v2/internal/driver/glfw/loop.go:171 +0xd7 fp=0xc003f79e80 sp=0xc003f79e30 pc=0x80f0d7
fyne.io/fyne/v2/internal/driver/glfw.(*window).RunWithContext(0xc000128540, 0xc003f79ea8)
	xxx/vendor/fyne.io/fyne/v2/internal/driver/glfw/window.go:1202 +0x4f fp=0xc003f79e98 sp=0xc003f79e80 pc=0x80d70f
fyne.io/fyne/v2/internal/driver/glfw.(*gLDriver).repaintWindow(0xc0001a4410, 0xc000128540)
	xxx/vendor/fyne.io/fyne/v2/internal/driver/glfw/loop.go:154 +0x65 fp=0xc003f79ed0 sp=0xc003f79e98 pc=0x804765
fyne.io/fyne/v2/internal/driver/glfw.(*gLDriver).startDrawThread.func1(0xc0001a4410, 0xc000118000, 0xc00010e050)
	xxx/vendor/fyne.io/fyne/v2/internal/driver/glfw/loop.go:210 +0x309 fp=0xc003f79fc8 sp=0xc003f79ed0 pc=0x80f489
runtime.goexit()
	/usr/lib/go/src/runtime/asm_amd64.s:1371 +0x1 fp=0xc003f79fd0 sp=0xc003f79fc8 pc=0x4920c1
created by fyne.io/fyne/v2/internal/driver/glfw.(*gLDriver).startDrawThread
	xxx/vendor/fyne.io/fyne/v2/internal/driver/glfw/loop.go:181 +0xbd
goroutine 1 [select, locked to thread]:
fyne.io/fyne/v2/internal/driver/glfw.(*gLDriver).runGL(0xc0001a4410)
	xxx/vendor/fyne.io/fyne/v2/internal/driver/glfw/loop.go:90 +0x138
fyne.io/fyne/v2/internal/driver/glfw.(*gLDriver).Run(0xc0001a4410)
	xxx/vendor/fyne.io/fyne/v2/internal/driver/glfw/driver.go:80 +0x3a
fyne.io/fyne/v2/internal/driver/glfw.(*window).ShowAndRun(0xc000128000)
	xxx/vendor/fyne.io/fyne/v2/internal/driver/glfw/window.go:450 +0x3d
main.(*Casino).Run(0xc000142000)
	xxx/cmd/casino-mini/casino.go:84 +0x45
main.main()
	xxx/cmd/casino-mini/main.go:31 +0x16d

@andydotxyz
Copy link
Member

Can you please confirm Fyne version @Antonboom?

@Antonboom
Copy link

Antonboom commented May 7, 2021

fyne.io/fyne/v2 v2.0.2
› uname -a
Linux 5.11.16-arch1-1 #1 SMP PREEMPT Wed, 21 Apr 2021 17:22:13 +0000 x86_64 GNU/Linux

› go version
go version go1.16.3 linux/amd64

@zdima
Copy link
Contributor

zdima commented Jun 8, 2021

I see this crash as well on Mac M1. First I experience with my app and then also reproduced with fine example app.
I try with fine:
fyne.io/fyne/v2 v2.0.3

go version go1.16.4 darwin/arm64

For me the crash reproducible when I resizing the window. A few attempts of fast resizing will produce this stack (fine example app):

$ ./examples 
fatal error: unexpected signal during runtime execution
[signal SIGSEGV: segmentation violation code=0x2 addr=0x10 pc=0x1a15d3240]

runtime stack:
runtime.throw(0x102ad704f, 0x2a)
	/usr/local/go/src/runtime/panic.go:1117 +0x54
runtime.sigpanic()
	/usr/local/go/src/runtime/signal_unix.go:718 +0x29c

goroutine 25 [syscall, locked to thread]:
runtime.cgocall(0x102aafbac, 0x140001a3d28, 0x14040008000)
	/usr/local/go/src/runtime/cgocall.go:154 +0x50 fp=0x140001a3cf0 sp=0x140001a3cb0 pc=0x10277fc80
github.com/go-gl/gl/v3.2-core/gl._Cfunc_glowClear(0x1e392b5f4, 0x3f81010100004100)
	_cgo_gotypes.go:3663 +0x40 fp=0x140001a3d20 sp=0x140001a3cf0 pc=0x102a15920
github.com/go-gl/gl/v3.2-core/gl.Clear(...)
	/Users/xxx/go/pkg/mod/github.com/go-gl/gl@v0.0.0-20190320180904-bf2b1f2f34d7/v3.2-core/gl/package.go:8667
fyne.io/fyne/v2/internal/painter/gl.(*glPainter).glClearBuffer(0x14000384000)
	/Users/xxx/go/pkg/mod/fyne.io/fyne/v2@v2.0.3/internal/painter/gl/gl_core.go:188 +0xd8 fp=0x140001a3d50 sp=0x140001a3d20 pc=0x102a3a068
fyne.io/fyne/v2/internal/painter/gl.(*glPainter).Clear(0x14000384000)
	/Users/xxx/go/pkg/mod/fyne.io/fyne/v2@v2.0.3/internal/painter/gl/painter.go:53 +0x28 fp=0x140001a3d70 sp=0x140001a3d50 pc=0x102a3a868
fyne.io/fyne/v2/internal/driver/glfw.(*glCanvas).paint(0x14000330000, 0x444c00004483c000)
	/Users/xxx/go/pkg/mod/fyne.io/fyne/v2@v2.0.3/internal/driver/glfw/canvas.go:431 +0x68 fp=0x140001a3df0 sp=0x140001a3d70 pc=0x102a64db8
fyne.io/fyne/v2/internal/driver/glfw.(*gLDriver).repaintWindow.func1()
	/Users/xxx/go/pkg/mod/fyne.io/fyne/v2@v2.0.3/internal/driver/glfw/loop.go:163 +0x70 fp=0x140001a3e50 sp=0x140001a3df0 pc=0x102a715f0
fyne.io/fyne/v2/internal/driver/glfw.(*window).RunWithContext(0x14000114380, 0x140001a3e90)
	/Users/xxx/go/pkg/mod/fyne.io/fyne/v2@v2.0.3/internal/driver/glfw/window.go:1204 +0x50 fp=0x140001a3e70 sp=0x140001a3e50 pc=0x102a6ff80
fyne.io/fyne/v2/internal/driver/glfw.(*gLDriver).repaintWindow(0x140001003c0, 0x14000114380)
	/Users/xxx/go/pkg/mod/fyne.io/fyne/v2@v2.0.3/internal/driver/glfw/loop.go:154 +0x50 fp=0x140001a3eb0 sp=0x140001a3e70 pc=0x102a673a0
fyne.io/fyne/v2/internal/driver/glfw.(*gLDriver).startDrawThread.func1(0x140001003c0, 0x14000102480, 0x14000100460)
	/Users/xxx/go/pkg/mod/fyne.io/fyne/v2@v2.0.3/internal/driver/glfw/loop.go:210 +0x278 fp=0x140001a3fc0 sp=0x140001a3eb0 pc=0x102a71998
runtime.goexit()
	/usr/local/go/src/runtime/asm_arm64.s:1130 +0x4 fp=0x140001a3fc0 sp=0x140001a3fc0 pc=0x1027e1cb4
created by fyne.io/fyne/v2/internal/driver/glfw.(*gLDriver).startDrawThread
	/Users/xxx/go/pkg/mod/fyne.io/fyne/v2@v2.0.3/internal/driver/glfw/loop.go:181 +0xac

goroutine 1 [chan send, locked to thread]:
fyne.io/fyne/v2/internal/driver/glfw.runOnDraw(...)
	/Users/xxx/go/pkg/mod/fyne.io/fyne/v2@v2.0.3/internal/driver/glfw/loop.go:64
fyne.io/fyne/v2/internal/driver/glfw.(*window).platformResize(0x14000114380, 0x444bc000446a0000)
	/Users/xxx/go/pkg/mod/fyne.io/fyne/v2@v2.0.3/internal/driver/glfw/window_other.go:14 +0x100
fyne.io/fyne/v2/internal/driver/glfw.(*window).resized(0x14000114380, 0x1400014a870, 0x3a8, 0x32f)
	/Users/xxx/go/pkg/mod/fyne.io/fyne/v2@v2.0.3/internal/driver/glfw/window.go:550 +0xa0
github.com/go-gl/glfw/v3.3/glfw.goWindowSizeCB(0x134e67890, 0x32f000003a8)
	/Users/xxx/go/pkg/mod/github.com/go-gl/glfw/v3.3/glfw@v0.0.0-20210410170116-ea3d685f79fb/window.go:213 +0x58
github.com/go-gl/glfw/v3.3/glfw._Cfunc_glfwPollEvents()
	_cgo_gotypes.go:1474 +0x40
github.com/go-gl/glfw/v3.3/glfw.PollEvents()
	/Users/xxx/go/pkg/mod/github.com/go-gl/glfw/v3.3/glfw@v0.0.0-20210410170116-ea3d685f79fb/window.go:949 +0x20
fyne.io/fyne/v2/internal/driver/glfw.(*gLDriver).tryPollEvents(0x140001003c0)
	/Users/xxx/go/pkg/mod/fyne.io/fyne/v2@v2.0.3/internal/driver/glfw/loop.go:224 +0x3c
fyne.io/fyne/v2/internal/driver/glfw.(*gLDriver).runGL(0x140001003c0)
	/Users/xxx/go/pkg/mod/fyne.io/fyne/v2@v2.0.3/internal/driver/glfw/loop.go:102 +0x1b4
fyne.io/fyne/v2/internal/driver/glfw.(*gLDriver).Run(0x140001003c0)
	/Users/xxx/go/pkg/mod/fyne.io/fyne/v2@v2.0.3/internal/driver/glfw/driver.go:80 +0x38
fyne.io/fyne/v2/internal/driver/glfw.(*window).ShowAndRun(0x14000114380)
	/Users/xxx/go/pkg/mod/fyne.io/fyne/v2@v2.0.3/internal/driver/glfw/window.go:450 +0x38
main.main()
	/Users/xxx/WorkFolder/fyne-examples/main.go:68 +0x218

goroutine 19 [sleep]:
time.Sleep(0x22ecb25c00)
	/usr/local/go/src/runtime/time.go:193 +0xc4
fyne.io/fyne/v2/internal/painter.svgCacheJanitor.func1()
	/Users/xxx/go/pkg/mod/fyne.io/fyne/v2@v2.0.3/internal/painter/svg_cache.go:57 +0xe0
sync.(*Once).doSlow(0x1031ba3f0, 0x14000132ca0)
	/usr/local/go/src/sync/once.go:68 +0x120
sync.(*Once).Do(0x1031ba3f0, 0x14000132ca0)
	/usr/local/go/src/sync/once.go:59 +0x44
created by fyne.io/fyne/v2/internal/painter.svgCacheJanitor
	/Users/xxx/go/pkg/mod/fyne.io/fyne/v2@v2.0.3/internal/painter/svg_cache.go:55 +0x9c

goroutine 20 [select]:
fyne.io/fyne/v2/data/binding.makeInfiniteQueue.func1(0x14000102120, 0x140001340b8)
	/Users/xxx/go/pkg/mod/fyne.io/fyne/v2@v2.0.3/data/binding/queue.go:36 +0xf8
created by fyne.io/fyne/v2/data/binding.makeInfiniteQueue
	/Users/xxx/go/pkg/mod/fyne.io/fyne/v2@v2.0.3/data/binding/queue.go:21 +0xa0

goroutine 21 [chan receive]:
fyne.io/fyne/v2/data/binding.processItems()
	/Users/xxx/go/pkg/mod/fyne.io/fyne/v2@v2.0.3/data/binding/queue.go:54 +0x3c
created by fyne.io/fyne/v2/data/binding.init.0
	/Users/xxx/go/pkg/mod/fyne.io/fyne/v2@v2.0.3/data/binding/queue.go:15 +0x30

goroutine 22 [chan receive]:
fyne.io/fyne/v2/app.newAppWithDriver.func1(0x14000102300, 0x140002e0230)
	/Users/xxx/go/pkg/mod/fyne.io/fyne/v2@v2.0.3/app/app.go:120 +0x34
created by fyne.io/fyne/v2/app.newAppWithDriver
	/Users/xxx/go/pkg/mod/fyne.io/fyne/v2@v2.0.3/app/app.go:118 +0x1bc

goroutine 23 [syscall]:
syscall.syscall6(0x102a8aaf0, 0x6, 0x0, 0x0, 0x1400004ae88, 0xa, 0x1031ba500, 0x0, 0x0, 0x0)
	/usr/local/go/src/runtime/sys_darwin.go:41 +0x1c
golang.org/x/sys/unix.kevent(0x6, 0x0, 0x0, 0x1400004ae88, 0xa, 0x1031ba500, 0x0, 0x0, 0x0)
	/Users/xxx/go/pkg/mod/golang.org/x/sys@v0.0.0-20200720211630-cb9d2d5c5666/unix/zsyscall_darwin_arm64.go:292 +0x80
golang.org/x/sys/unix.Kevent(0x6, 0x0, 0x0, 0x0, 0x1400004ae88, 0xa, 0xa, 0x1031ba500, 0x14000102420, 0x0, ...)
	/Users/xxx/go/pkg/mod/golang.org/x/sys@v0.0.0-20200720211630-cb9d2d5c5666/unix/syscall_bsd.go:413 +0x60
github.com/fsnotify/fsnotify.read(0x6, 0x1400004ae88, 0xa, 0xa, 0x1031ba500, 0x1400004ae88, 0x0, 0xa, 0x0, 0x0)
	/Users/xxx/go/pkg/mod/github.com/fsnotify/fsnotify@v1.4.9/kqueue.go:511 +0x50
github.com/fsnotify/fsnotify.(*Watcher).readEvents(0x140001367e0)
	/Users/xxx/go/pkg/mod/github.com/fsnotify/fsnotify@v1.4.9/kqueue.go:274 +0x76c
created by github.com/fsnotify/fsnotify.NewWatcher
	/Users/xxx/go/pkg/mod/github.com/fsnotify/fsnotify@v1.4.9/kqueue.go:62 +0x15c

goroutine 24 [chan receive]:
fyne.io/fyne/v2/app.watchFile.func1(0x140001367e0, 0x1400014d400, 0x33, 0x14000113d10, 0x14000113d20)
	/Users/xxx/go/pkg/mod/fyne.io/fyne/v2@v2.0.3/app/settings_desktop.go:42 +0x48
created by fyne.io/fyne/v2/app.watchFile
	/Users/xxx/go/pkg/mod/fyne.io/fyne/v2@v2.0.3/app/settings_desktop.go:41 +0xd4

goroutine 26 [chan receive]:
fyne.io/fyne/v2/internal/driver/glfw.(*window).runEventQueue(0x14000114380)
	/Users/xxx/go/pkg/mod/fyne.io/fyne/v2@v2.0.3/internal/driver/glfw/window.go:1264 +0x90
created by fyne.io/fyne/v2/internal/driver/glfw.(*gLDriver).createWindow.func1
	/Users/xxx/go/pkg/mod/fyne.io/fyne/v2@v2.0.3/internal/driver/glfw/window.go:1289 +0xfc

goroutine 27 [chan receive]:
fyne.io/fyne/v2/internal/driver/glfw.(*glCanvas).setupThemeListener.func1(0x140001024e0, 0x14000330000)
	/Users/xxx/go/pkg/mod/fyne.io/fyne/v2@v2.0.3/internal/driver/glfw/canvas.go:495 +0x40
created by fyne.io/fyne/v2/internal/driver/glfw.(*glCanvas).setupThemeListener
	/Users/xxx/go/pkg/mod/fyne.io/fyne/v2@v2.0.3/internal/driver/glfw/canvas.go:493 +0x94

goroutine 29 [chan receive]:
fyne.io/fyne/v2/internal/painter.SvgCacheMonitorTheme.func1(0x14000102600)
	/Users/xxx/go/pkg/mod/fyne.io/fyne/v2@v2.0.3/internal/painter/svg_cache.go:109 +0x2c
created by fyne.io/fyne/v2/internal/painter.SvgCacheMonitorTheme
	/Users/xxx/go/pkg/mod/fyne.io/fyne/v2@v2.0.3/internal/painter/svg_cache.go:107 +0x8c

@Jacalz Jacalz added information-needed Further information is requested and removed question A question has been asked labels Nov 21, 2021
@andydotxyz
Copy link
Member

I think this is two different issues. The Table thread issue is likely resolved as we changed the threading model for render on all except M1. The M1 resize issue is tracked elsewhere.

@andydotxyz andydotxyz closed this as not planned Won't fix, can't repro, duplicate, stale Jan 3, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working information-needed Further information is requested OS:Linux Tickets affecting only Linux
Projects
None yet
Development

No branches or pull requests

6 participants