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

data race #58

Closed
gucio321 opened this issue Dec 12, 2022 · 4 comments · Fixed by #98
Closed

data race #58

gucio321 opened this issue Dec 12, 2022 · 4 comments · Fixed by #98
Labels
bug Something isn't working

Comments

@gucio321
Copy link
Collaborator

gucio321 commented Dec 12, 2022

STATUS

output of -race build of examples/ for c134d03284e7663121db54071010751d5e2de168
[examples (0) ]$ go run -race .
fatal error: checkptr: pointer arithmetic computed bad pointer value

goroutine 1 [running, locked to thread]:
runtime.throw({0x93d1da?, 0x5465f9?})
	/usr/local/go/src/runtime/panic.go:1047 +0x5d fp=0xc0000a3a68 sp=0xc0000a3a38 pc=0x51785d
runtime.checkptrArithmetic(0x623dc0?, {0x0?, 0x1c309f8?, 0x0?})
	/usr/local/go/src/runtime/checkptr.go:52 +0xbb fp=0xc0000a3a98 sp=0xc0000a3a68 pc=0x4eae1b
github.com/AllenDang/cimgui-go.ImageV.func1(0x1, {0x5cd5cc?, 0x0?}, {0x3ce1d00?, 0x0?}, {0x3ce1d00?, 0x0?}, {0x0?, 0x0?, 0x0?, ...}, ...)
	/home/mszeptuch/git/cimgui-go/cimgui_funcs.go:3892 +0xae fp=0xc0000a3b28 sp=0xc0000a3a98 pc=0x5c9f6e
github.com/AllenDang/cimgui-go.ImageV(0xc00001a1e5?, {0xb?, 0x0?}, {0xa3c20?, 0xc0?}, {0x1?, 0x0?}, {0x1?, 0x0?, 0x1c30ac0?, ...}, ...)
	/home/mszeptuch/git/cimgui-go/cimgui_funcs.go:3892 +0xf6 fp=0xc0000a3bb8 sp=0xc0000a3b28 pc=0x5c9dd6
main.showPictureLoadingDemo()
	/home/mszeptuch/git/cimgui-go/examples/main.go:80 +0x1aa fp=0xc0000a3c40 sp=0xc0000a3bb8 pc=0x5d11aa
main.loop()
	/home/mszeptuch/git/cimgui-go/examples/main.go:104 +0x2a fp=0xc0000a3c58 sp=0xc0000a3c40 pc=0x5d146a
github.com/AllenDang/cimgui-go.glfwWindowLoopCallback(...)
	/home/mszeptuch/git/cimgui-go/backend.go:95
_cgoexp_3a92ce97b578_glfwWindowLoopCallback(0x0?)
	_cgo_gotypes.go:58033 +0x51 fp=0xc0000a3c70 sp=0xc0000a3c58 pc=0x5cde31
runtime.cgocallbackg1(0x5cdde0, 0xc0000a3e28?, 0x0)
	/usr/local/go/src/runtime/cgocall.go:316 +0x2ce fp=0xc0000a3d40 sp=0xc0000a3c70 pc=0x4e79ae
runtime.cgocallbackg(0xc0000061a0?, 0x300000002?, 0xc0000061a0?)
	/usr/local/go/src/runtime/cgocall.go:235 +0x109 fp=0xc0000a3dd0 sp=0xc0000a3d40 pc=0x4e7629
runtime.cgocallbackg(0x5cdde0, 0x7ffc195f1c4f, 0x0)
	<autogenerated>:1 +0x2f fp=0xc0000a3df8 sp=0xc0000a3dd0 pc=0x54778f
runtime.cgocallback(0x4e74b2, 0x5d1bd0, 0xc0000a3e88)
	/usr/local/go/src/runtime/asm_amd64.s:994 +0xb4 fp=0xc0000a3e20 sp=0xc0000a3df8 pc=0x544c54
runtime.systemstack_switch()
	/usr/local/go/src/runtime/asm_amd64.s:459 fp=0xc0000a3e28 sp=0xc0000a3e20 pc=0x542c60
runtime.cgocall(0x5d1bd0, 0xc0000a3e88)
	/usr/local/go/src/runtime/cgocall.go:168 +0x92 fp=0xc0000a3e60 sp=0xc0000a3e28 pc=0x4e74b2
github.com/AllenDang/cimgui-go._Cfunc_igRunLoop(0x346bb80, 0x5d1950, 0x5d1990, 0x5d19d0, 0x5d1a50)
	_cgo_gotypes.go:15724 +0x79 fp=0xc0000a3e88 sp=0xc0000a3e60 pc=0x5c6fb9
github.com/AllenDang/cimgui-go.GLFWwindow.Run.func1(0x346bb80)
	/home/mszeptuch/git/cimgui-go/backend.go:77 +0xf4 fp=0xc0000a3ee8 sp=0xc0000a3e88 pc=0x5c90d4
github.com/AllenDang/cimgui-go.GLFWwindow.Run(0x93767b?, 0x93e0e8)
	/home/mszeptuch/git/cimgui-go/backend.go:77 +0x66 fp=0xc0000a3f08 sp=0xc0000a3ee8 pc=0x5c8fa6
main.main()
	/home/mszeptuch/git/cimgui-go/examples/main.go:130 +0x298 fp=0xc0000a3f80 sp=0xc0000a3f08 pc=0x5d1798
runtime.main()
	/usr/local/go/src/runtime/proc.go:250 +0x212 fp=0xc0000a3fe0 sp=0xc0000a3f80 pc=0x51a0b2
runtime.goexit()
	/usr/local/go/src/runtime/asm_amd64.s:1594 +0x1 fp=0xc0000a3fe8 sp=0xc0000a3fe0 pc=0x544e81

goroutine 2 [force gc (idle)]:
runtime.gopark(0x0?, 0x0?, 0x0?, 0x0?, 0x0?)
	/usr/local/go/src/runtime/proc.go:363 +0xd6 fp=0xc000060fb0 sp=0xc000060f90 pc=0x51a476
runtime.goparkunlock(...)
	/usr/local/go/src/runtime/proc.go:369
runtime.forcegchelper()
	/usr/local/go/src/runtime/proc.go:302 +0xad fp=0xc000060fe0 sp=0xc000060fb0 pc=0x51a30d
runtime.goexit()
	/usr/local/go/src/runtime/asm_amd64.s:1594 +0x1 fp=0xc000060fe8 sp=0xc000060fe0 pc=0x544e81
created by runtime.init.6
	/usr/local/go/src/runtime/proc.go:290 +0x25

goroutine 3 [GC sweep wait]:
runtime.gopark(0x0?, 0x0?, 0x0?, 0x0?, 0x0?)
	/usr/local/go/src/runtime/proc.go:363 +0xd6 fp=0xc000061790 sp=0xc000061770 pc=0x51a476
runtime.goparkunlock(...)
	/usr/local/go/src/runtime/proc.go:369
runtime.bgsweep(0x0?)
	/usr/local/go/src/runtime/mgcsweep.go:278 +0x8e fp=0xc0000617c8 sp=0xc000061790 pc=0x50740e
runtime.gcenable.func1()
	/usr/local/go/src/runtime/mgc.go:178 +0x26 fp=0xc0000617e0 sp=0xc0000617c8 pc=0x4fc2e6
runtime.goexit()
	/usr/local/go/src/runtime/asm_amd64.s:1594 +0x1 fp=0xc0000617e8 sp=0xc0000617e0 pc=0x544e81
created by runtime.gcenable
	/usr/local/go/src/runtime/mgc.go:178 +0x6b

goroutine 4 [GC scavenge wait]:
runtime.gopark(0xc000088000?, 0x95f2a8?, 0x1?, 0x0?, 0x0?)
	/usr/local/go/src/runtime/proc.go:363 +0xd6 fp=0xc000061f70 sp=0xc000061f50 pc=0x51a476
runtime.goparkunlock(...)
	/usr/local/go/src/runtime/proc.go:369
runtime.(*scavengerState).park(0xad7a20)
	/usr/local/go/src/runtime/mgcscavenge.go:389 +0x53 fp=0xc000061fa0 sp=0xc000061f70 pc=0x5054d3
runtime.bgscavenge(0x0?)
	/usr/local/go/src/runtime/mgcscavenge.go:617 +0x45 fp=0xc000061fc8 sp=0xc000061fa0 pc=0x505a85
runtime.gcenable.func2()
	/usr/local/go/src/runtime/mgc.go:179 +0x26 fp=0xc000061fe0 sp=0xc000061fc8 pc=0x4fc286
runtime.goexit()
	/usr/local/go/src/runtime/asm_amd64.s:1594 +0x1 fp=0xc000061fe8 sp=0xc000061fe0 pc=0x544e81
created by runtime.gcenable
	/usr/local/go/src/runtime/mgc.go:179 +0xaa

goroutine 5 [finalizer wait]:
runtime.gopark(0xc000007860?, 0x0?, 0x0?, 0x5?, 0xc000060770?)
	/usr/local/go/src/runtime/proc.go:363 +0xd6 fp=0xc000060628 sp=0xc000060608 pc=0x51a476
runtime.goparkunlock(...)
	/usr/local/go/src/runtime/proc.go:369
runtime.runfinq()
	/usr/local/go/src/runtime/mfinal.go:180 +0x145 fp=0xc0000607e0 sp=0xc000060628 pc=0x4fb405
runtime.goexit()
	/usr/local/go/src/runtime/asm_amd64.s:1594 +0x1 fp=0xc0000607e8 sp=0xc0000607e0 pc=0x544e81
created by runtime.createfing
	/usr/local/go/src/runtime/mfinal.go:157 +0x45
exit status 2

If I remember correctly, here was the fix: AllenDang/giu#30

@gucio321 gucio321 changed the title race conditions data race Dec 12, 2022
@runrc
Copy link

runrc commented Jan 19, 2023

Unfortunately this issue is a bit of show stopper for a concurrent GIU application, where using -race to catch data race issue is very important. Will this be resolved soon?

@gucio321 gucio321 added the bug Something isn't working label Jan 20, 2023
@gucio321
Copy link
Collaborator Author

We need to find out what exactly is wrong and correct our codegenerator to avoid these issues.
@AllenDang can you remine me what was the solution in giu?

@gucio321
Copy link
Collaborator Author

ok, I think it was here: AllenDang/imgui-go@4326262

@gucio321
Copy link
Collaborator Author

Oh, lol
I suppose, that I accidently fixed that 🙃
the problem was with uintptr in TextureID.

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

Successfully merging a pull request may close this issue.

2 participants