Opened 4 years ago
Closed 3 years ago
#16840 closed bug (duplicate)
Some OpenGL applications like GLInfo crash on exit under Mesa 21
Reported by: | kallisti5 | Owned by: | kallisti5 |
---|---|---|---|
Priority: | normal | Milestone: | Unscheduled |
Component: | Kits/OpenGL Kit | Version: | R1/beta2 |
Keywords: | Cc: | ||
Blocked By: | #14535 | Blocking: | |
Platform: | All |
Description
When testing the new Mesa 21 recipe, some applications like GLInfo crash on exit due to a hoard / heap error.
Likely related to the recent OpenGL dispatch work.
GLInfo: ../haiku-git/src/system/libroot/posix/malloc_hoard2/superblock.h:194:void BPrivate::superblock::putBlock(BPrivate::block*): getNumAvailable() < getNumBlocks()
Attachments (3)
Change History (16)
by , 4 years ago
Attachment: | screenshot7.png added |
---|
comment:2 by , 4 years ago
Here we go...
alloc stack trace (15): <libstdc++.so.6> _Znwm + 0x20 <libbe.so> _ZN10BScrollBarC1E5BRectPKcP5BViewff11orientation + 0xb3 <_APP_> _ZN15BColumnListView5_InitEv + 0x25d <_APP_> _ZN15BColumnListViewC1EPKcj12border_styleb + 0xba <_APP_> _ZN16CapabilitiesViewC2Ev + 0x80 <_APP_> _ZN10OpenGLViewC1Ev + 0x13e <_APP_> _ZN12OpenGLWindowC2Ev + 0xb5 <_APP_> _ZN9OpenGLApp10ReadyToRunEv + 0x1f <libbe.so> _ZN12BApplication15DispatchMessageEP8BMessageP8BHandler + 0x424 <libbe.so> _ZN7BLooper11task_looperEv + 0x26c <libbe.so> _ZN12BApplication3RunEv + 0x21 <_APP_> main + 0x25 <_APP_> _start + 0x3e 0x12c49075505 (lookup failed: Invalid Argument) 0x7fc268def260 (lookup failed: Invalid Argument) Call (thread 3096 tried accessing address 0xdfc7457fb0 which is not allocated (base: 0xdfc7457fb0, size: 72, alignment: 16, allocated by thread: 3046, freed by thread: 3096))
comment:3 by , 4 years ago
More data..
> LD_PRELOAD=libroot_debug.so MALLOC_DEBUG=ges100 GLInfo OpenGL load add-on: /boot/system/add-ons/opengl/Software Pipe OpenGL add-on registered: /boot/system/add-ons/opengl/Software Pipe GalliumContext: CreateDisplay: Using llvmpipe (LLVM 9.0.1, 256 bits) driver. Mesa: User error: GL_INVALID_OPERATION in glGetConvolutionParameteriv flags: allocation size: 72 allocation base: 0x52a92bbfb0 alignment: 16 allocating thread: 3347 freeing thread: 3395
--------------------------------------------------------------------------- Team Id #Threads Gid Uid /boot/system/apps/GLInfo 3347 38 0 0 Thread Id State Prio UTime KTime GLInfo 3347 wait 10 148 146 llvmpipe-0 3351 wait 10 0 0 llvmpipe-1 3352 wait 10 0 0 llvmpipe-2 3353 wait 10 0 0 llvmpipe-3 3354 wait 10 0 0 llvmpipe-4 3355 wait 10 0 0 llvmpipe-5 3356 wait 10 0 0 llvmpipe-6 3357 wait 10 0 0 llvmpipe-7 3358 wait 10 0 0 llvmpipe-8 3359 wait 10 0 0 llvmpipe-9 3360 wait 10 0 0 llvmpipe-10 3361 wait 10 0 0 llvmpipe-11 3362 wait 10 0 0 llvmpipe-12 3363 wait 10 0 0 llvmpipe-13 3364 wait 10 0 0 llvmpipe-14 3365 wait 10 0 0 llvmpipe-15 3366 wait 10 0 0 pthread func 3367 wait 10 0 0 pthread func 3368 wait 10 0 0 pthread func 3369 wait 10 0 0 pthread func 3370 wait 10 0 0 pthread func 3371 wait 10 0 0 pthread func 3372 wait 10 0 0 pthread func 3373 wait 10 0 0 pthread func 3374 wait 10 0 0 pthread func 3375 wait 10 0 0 pthread func 3376 wait 10 0 0 pthread func 3377 wait 10 0 0 pthread func 3378 wait 10 0 0 pthread func 3379 wait 10 0 0 pthread func 3380 wait 10 0 0 pthread func 3381 wait 10 0 0 pthread func 3382 wait 10 0 0 GLInfo:disk$0 3383 wait 10 0 0 GLInfo:disk$1 3384 wait 10 0 0 GLInfo:disk$2 3385 wait 10 0 0 GLInfo:disk$3 3386 wait 10 0 0 w>GL Info 3395 wait 15 2 9 ---------------------------------------------------------------------------
Call (thread 3395 tried accessing address 0x52a92bbfb0 which is not allocated (base: 0x52a92bbfb0, size: 72, alignment: 16, allocated by thread: 3347, freed by thread: 3395))
Path:
- The application (GLInfo 3347) allocated whatever is at 0x52a92bbfb0
- BWindow (3347 w>GL Info) accessed 0x52a92bbfb0 at exit
- 0x52a92bbfb0 was already freed by the window (3347 w>GL Info) already
Now.. what the hell is at 0x52a92bbfb0 :-)
comment:5 by , 4 years ago
Some debugging info. This prevents GLInfo from crashing on exit. Nothing else really does (disable locking, deleting glView at the end of OpenGLView(), etc)
git diff diff --git a/src/tests/kits/opengl/glinfo/OpenGLView.cpp b/src/tests/kits/opengl/glinfo/OpenGLView.cpp index d763792d91..81ff673711 100644 --- a/src/tests/kits/opengl/glinfo/OpenGLView.cpp +++ b/src/tests/kits/opengl/glinfo/OpenGLView.cpp @@ -40,7 +40,7 @@ OpenGLView::OpenGLView() BGLView* glView = new BGLView(BRect(0, 0, 1, 1), "gl info", B_FOLLOW_NONE, 0, BGL_RGB | BGL_DOUBLE); glView->Hide(); - AddChild(glView); + //AddChild(glView); glView->LockGL();
comment:6 by , 4 years ago
This also fixes the crash in GLInfo...
diff --git a/src/tests/kits/opengl/glinfo/OpenGLView.cpp b/src/tests/kits/opengl/glinfo/OpenGLView.cpp index d763792d91..89ccd639ec 100644 --- a/src/tests/kits/opengl/glinfo/OpenGLView.cpp +++ b/src/tests/kits/opengl/glinfo/OpenGLView.cpp @@ -66,6 +66,7 @@ OpenGLView::OpenGLView() .End(); glView->UnlockGL(); + RemoveChild(glView); } OpenGLView::~OpenGLView()
So.. something about the BView deconstructing with a BGLView child still "attached"
comment:8 by , 4 years ago
@X512 , any progress on this one? SDL2 apps like qemu are also crashing. I have a backtrace that might help (see screenshot)
comment:9 by , 4 years ago
Does it works with older libsdl2 version with my patch applied (https://github.com/haikuports/haikuports/pull/4535)?
comment:10 by , 3 years ago
@X512 SDL in addition to native GLView apps are crashing. Do you know a solution for things like GLTeapot?
comment:11 by , 3 years ago
in addition to native GLView apps are crashing.
Does it crash in the same place?
I am still use my builds of Mesa and libsdl2 instead of HaikuPorts and it works fine. I have not tracked yet what have been done without me with HaikuPorts patchsets, maybe something is broken there.
comment:12 by , 3 years ago
stock upstream mesa sources on Haiku. This has been happening since merging https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8323
All the examples above are native Be applications.
comment:13 by , 3 years ago
Blocked By: | 14535 added |
---|---|
Resolution: | → duplicate |
Status: | new → closed |
According to #14535 it already crashes with Mesa 17, which I think means the bug is, in fact, not in Mesa at all?