Also I managed to install mutter debug symbols now, a better stack trace
showing that the error may come from free_glx_pixmap:

#0  __pthread_kill_implementation (no_tid=0, signo=5, threadid=<optimized out>) 
at ./nptl/pthread_kill.c:44
#1  __pthread_kill_internal (signo=5, threadid=<optimized out>) at 
./nptl/pthread_kill.c:78
#2  __GI___pthread_kill (threadid=<optimized out>, signo=signo@entry=5) at 
./nptl/pthread_kill.c:89
#3  0x00007f62b5842866 in __GI_raise (sig=5) at ../sysdeps/posix/raise.c:26
#4  0x0000562470b03bda in ??? ()
#5  0x00007f62b5842910 in <signal handler called> () at 
/lib/x86_64-linux-gnu/libc.so.6
#6  0x00007f62b62e5867 in g_log_structured_array () at 
/lib/x86_64-linux-gnu/libglib-2.0.so.0
#7  0x00007f62b62e5b52 in g_log_default_handler () at 
/lib/x86_64-linux-gnu/libglib-2.0.so.0
#8  0x00007f62b62e69e2 in g_logv () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
#9  0x00007f62b62e6ca3 in g_log () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
#10 0x00007f62b68ab59e in display_error_event (error=0x7ffdc2b64df0, 
xdisplay=0x562471d040d0) at ../mtk/mtk/mtk-x11-errors.c:116
#11 mtk_x_error (xdisplay=0x562471d040d0, error=0x7ffdc2b64df0) at 
../mtk/mtk/mtk-x11-errors.c:139
#12 0x00007f62b5704a5b in _XError (dpy=dpy@entry=0x562471d040d0, 
rep=rep@entry=0x7ffdc2b64ef0) at ../../src/XlibInt.c:1503
#13 0x00007f62b1f63adb in __glXSendError (dpy=0x562471d040d0, 
errorCode=<optimized out>, resourceID=0, minorCode=<optimized out>, 
coreX11error=0) at ../src/GLX/libglx.c:805
#14 0x00007f62b5f0962f in free_glx_pixmap (glx_tex_pixmap=0x562474714500, 
context=<optimized out>) at ../cogl/cogl/winsys/cogl-winsys-glx.c:1203
#15 0x00007f62b5f09d29 in _cogl_winsys_texture_pixmap_x11_free 
(tex_pixmap=0x390) at ../cogl/cogl/winsys/cogl-winsys-glx.c:1224
#16 0x00007f62b5f0734e in _cogl_texture_pixmap_x11_free 
(tex_pixmap=0x56247509abf0) at 
../cogl/cogl/winsys/cogl-texture-pixmap-x11.c:1067
#17 _cogl_object_texture_pixmap_x11_indirect_free (obj=0x56247509abf0) at 
../cogl/cogl/winsys/cogl-texture-pixmap-x11.c:71
#18 0x00007f62b5ee347b in _cogl_pipeline_layer_free (layer=0x562475744090) at 
../cogl/cogl/cogl-pipeline-layer.c:706
#19 _cogl_object_pipeline_layer_indirect_free (obj=0x562475744090) at 
../cogl/cogl/cogl-pipeline-layer.c:57
#20 0x00007f62b5ee29d5 in _cogl_pipeline_node_unparent_real 
(node=0x562475765340) at ../cogl/cogl/cogl-node.c:92
#21 0x00007f62b5ee3460 in _cogl_pipeline_layer_unparent (layer=0x562475765340) 
at ../cogl/cogl/cogl-pipeline-layer.c:443
#22 _cogl_pipeline_layer_free (layer=0x562475765340) at 
../cogl/cogl/cogl-pipeline-layer.c:702
#23 _cogl_object_pipeline_layer_indirect_free (obj=0x562475765340) at 
../cogl/cogl/cogl-pipeline-layer.c:57
#24 0x00007f62b5ee29d5 in _cogl_pipeline_node_unparent_real 
(node=0x562471bef190) at ../cogl/cogl/cogl-node.c:92
#25 0x00007f62b5ee3460 in _cogl_pipeline_layer_unparent (layer=0x562471bef190) 
at ../cogl/cogl/cogl-pipeline-layer.c:443
#26 _cogl_pipeline_layer_free (layer=0x562471bef190) at 
../cogl/cogl/cogl-pipeline-layer.c:702
#27 _cogl_object_pipeline_layer_indirect_free (obj=0x562471bef190) at 
../cogl/cogl/cogl-pipeline-layer.c:57
#28 0x00007f62b62d99a0 in g_list_foreach () at 
/lib/x86_64-linux-gnu/libglib-2.0.so.0
#29 0x00007f62b62d9f9f in g_list_free_full () at 
/lib/x86_64-linux-gnu/libglib-2.0.so.0
#30 0x00007f62b5ee9c0a in _cogl_pipeline_free (pipeline=0x56247444fc60) at 
../cogl/cogl/cogl-pipeline.c:386
#31 _cogl_object_pipeline_indirect_free (obj=0x56247444fc60) at 
../cogl/cogl/cogl-pipeline.c:69
#32 0x00007f62b5ed00e2 in _cogl_pipeline_flush_gl_state
    (ctx=ctx@entry=0x562472024690, pipeline=pipeline@entry=0x5624779ecc80, 
framebuffer=framebuffer@entry=0x5624720b97b0, with_color_attrib=1, 
unknown_color_alpha=<optimized out>)
    at ../cogl/cogl/driver/gl/cogl-pipeline-opengl.c:1099
#33 0x00007f62b5ed0723 in _cogl_gl_flush_attributes_state
    (framebuffer=0x5624720b97b0, pipeline=0x5624779ecc80, 
layers_state=0x7ffdc2b65220, flags=<optimized out>, attributes=0x562475ef9970, 
n_attributes=4)
    at ../cogl/cogl/driver/gl/cogl-attribute-gl.c:256
#34 0x00007f62b5ee99eb in _cogl_flush_attributes_state
    (framebuffer=0x5624720b97b0, pipeline=0x5624779ecc80, 
flags=(COGL_DRAW_SKIP_JOURNAL_FLUSH | COGL_DRAW_SKIP_PIPELINE_VALIDATION | 
COGL_DRAW_SKIP_FRAMEBUFFER_FLUSH), attributes=0x562475ef9970, n_attributes=4) 
at ../cogl/cogl/cogl-attribute.c:626
#35 0x00007f62b5ec9ea4 in cogl_gl_framebuffer_draw_attributes
    (driver=<optimized out>, pipeline=<optimized out>, 
mode=COGL_VERTICES_MODE_TRIANGLE_FAN, first_vertex=0, n_vertices=4, 
attributes=<optimized out>, n_attributes=4, flags=(COGL_DRAW_SKIP_JOURNAL_FLUSH 
| COGL_DRAW_SKIP_PIPELINE_VALIDATION | COGL_DRAW_SKIP_FRAMEBUFFER_FLUSH)) at 
../cogl/cogl/driver/gl/cogl-framebuffer-gl.c:332
#36 0x00007f62b5f012c2 in cogl_framebuffer_driver_draw_attributes
    (flags=(COGL_DRAW_SKIP_JOURNAL_FLUSH | COGL_DRAW_SKIP_PIPELINE_VALIDATION | 
COGL_DRAW_SKIP_FRAMEBUFFER_FLUSH), n_attributes=<optimized out>, 
attributes=0x562475ef9970, n_vertices=4, first_vertex=<optimized out>, 
mode=COGL_VERTICES_MODE_TRIANGLE_FAN, pipeline=<optimized out>, 
driver=<optimized out>) at ../cogl/cogl/cogl-framebuffer-driver.c:113
#37 _cogl_framebuffer_draw_attributes
    (flags=(COGL_DRAW_SKIP_JOURNAL_FLUSH | COGL_DRAW_SKIP_PIPELINE_VALIDATION | 
COGL_DRAW_SKIP_FRAMEBUFFER_FLUSH), n_attributes=<optimized out>, 
attributes=0x562475ef9970, n_vertices=4, first_vertex=<optimized out>, 
mode=COGL_VERTICES_MODE_TRIANGLE_FAN, pipeline=<optimized out>, 
framebuffer=0x5624720b97b0) at ../cogl/cogl/cogl-framebuffer.c:2421
#38 _cogl_journal_flush_modelview_and_entries (batch_start=<optimized out>, 
batch_len=1, data=data@entry=0x7ffdc2b65500) at ../cogl/cogl/cogl-journal.c:312
#39 0x00007f62b5f01417 in batch_and_call (data=<optimized out>, 
batch_callback=<optimized out>, can_batch_callback=<optimized out>, 
n_entries=<optimized out>, entries=<optimized out>)
    at ../cogl/cogl/cogl-journal.c:260
#40 0x00007f62b5f01716 in batch_and_call (data=<optimized out>, 
batch_callback=<optimized out>, can_batch_callback=<optimized out>, 
n_entries=<optimized out>, entries=<optimized out>)
    at ../cogl/cogl/cogl-journal.c:253
#41 batch_and_call
    (data=0x7ffdc2b65500, batch_callback=0x7f62b5f01370 
<_cogl_journal_flush_pipeline_and_entries>, can_batch_callback=<optimized out>, 
n_entries=<optimized out>, entries=<optimized out>)
    at ../cogl/cogl/cogl-journal.c:229
#42 _cogl_journal_flush_texcoord_vbo_offsets_and_entries 
(batch_start=<optimized out>, batch_len=<optimized out>, 
data=data@entry=0x7ffdc2b65500) at ../cogl/cogl/cogl-journal.c:535
#43 0x00007f62b5f01942 in batch_and_call (data=<optimized out>, 
batch_callback=<optimized out>, can_batch_callback=<optimized out>, 
n_entries=<optimized out>, entries=<optimized out>)
    at ../cogl/cogl/cogl-journal.c:253
#44 batch_and_call
    (data=0x7ffdc2b65500, batch_callback=0x7f62b5f01630 
<_cogl_journal_flush_texcoord_vbo_offsets_and_entries>, 
can_batch_callback=<optimized out>, n_entries=4, entries=<optimized out>)
    at ../cogl/cogl/cogl-journal.c:229
#45 _cogl_journal_flush_vbo_offsets_and_entries (batch_start=<optimized out>, 
batch_len=4, data=<optimized out>) at ../cogl/cogl/cogl-journal.c:643
#46 0x00007f62b5f01e99 in batch_and_call (data=<optimized out>, 
batch_callback=<optimized out>, can_batch_callback=<optimized out>, 
n_entries=<optimized out>, entries=<optimized out>)
    at ../cogl/cogl/cogl-journal.c:260
#47 0x00007f62b5f01fd9 in batch_and_call (data=<optimized out>, 
batch_callback=<optimized out>, can_batch_callback=<optimized out>, 
n_entries=<optimized out>, entries=<optimized out>)
    at ../cogl/cogl/cogl-journal.c:260
#48 0x00007f62b5f02113 in batch_and_call (data=<optimized out>, 
batch_callback=<optimized out>, can_batch_callback=<optimized out>, 
n_entries=<optimized out>, entries=<optimized out>)
    at ../cogl/cogl/cogl-journal.c:260
#49 batch_and_call (data=0x7ffdc2b65500, batch_callback=0x7f62b5f01f00 
<_cogl_journal_flush_dither_and_entries>, can_batch_callback=<optimized out>, 
n_entries=4, entries=0x562473f61ad0)
    at ../cogl/cogl/cogl-journal.c:229
#50 _cogl_journal_flush_viewport_and_entries (batch_start=0x562473f61ad0, 
batch_len=<optimized out>, data=data@entry=0x7ffdc2b65500) at 
../cogl/cogl/cogl-journal.c:1095
#51 0x00007f62b5f02cb3 in batch_and_call (data=<optimized out>, 
batch_callback=<optimized out>, can_batch_callback=<optimized out>, 
n_entries=<optimized out>, entries=<optimized out>)
    at ../cogl/cogl/cogl-journal.c:260
#52 batch_and_call
    (data=0x7ffdc2b65500, batch_callback=0x7f62b5f02010 
<_cogl_journal_flush_viewport_and_entries>, can_batch_callback=<optimized out>, 
n_entries=<optimized out>, entries=<optimized out>)
    at ../cogl/cogl/cogl-journal.c:229
#53 _cogl_journal_flush (journal=<optimized out>) at 
../cogl/cogl/cogl-journal.c:1455
#54 0x00007f62b5f03102 in _cogl_journal_flush (journal=<optimized out>) at 
../cogl/cogl/cogl-framebuffer.c:894
#55 0x00007f62b5f05c96 in cogl_onscreen_swap_buffers_with_damage 
(onscreen=0x5624720b97b0, rectangles=0x7ffdc2b65620, n_rectangles=0, 
info=0x562474b10c50, user_data=0x5624726b5e00)
    at ../cogl/cogl/cogl-onscreen.c:332
#56 0x00007f62b5ca4e70 in paint_damage_region (queued_redraw_clip=0x0, 
swap_region=0x56247205b0d0, view=0x562472024690, stage_window=0x7ffdc2b65620) 
at ../src/backends/meta-stage-impl.c:164
#57 meta_stage_impl_redraw_view_primary (frame=0x7f62b5ca4bd8 
<meta_stage_impl_redraw_view+456>, stage_view=<optimized out>, 
stage_impl=0x7ffdc2b65620)
    at ../src/backends/meta-stage-impl.c:702
#58 meta_stage_impl_redraw_view (stage_window=0x7ffdc2b65620, 
stage_view=<optimized out>, frame=0x7f62b5ca4bd8 
<meta_stage_impl_redraw_view+456>) at ../src/backends/meta-stage-impl.c:796
#59 0xa2d392435351fd00 in ??? ()
#60 0x0000000000000000 in ??? ()

And source:

static void
free_glx_pixmap (CoglContext *context,
                 CoglTexturePixmapGLX *glx_tex_pixmap)
{
  CoglRenderer *renderer;
  CoglXlibRenderer *xlib_renderer;
  CoglGLXRenderer *glx_renderer;

  renderer = context->display->renderer;
  xlib_renderer = _cogl_xlib_renderer_get_data (renderer);
  glx_renderer = renderer->winsys;

  if (glx_tex_pixmap->left.pixmap_bound)
    glx_renderer->glXReleaseTexImage (xlib_renderer->xdpy,
                                      glx_tex_pixmap->glx_pixmap,
                                      GLX_FRONT_LEFT_EXT);
  if (glx_tex_pixmap->right.pixmap_bound)
    glx_renderer->glXReleaseTexImage (xlib_renderer->xdpy,
                                      glx_tex_pixmap->glx_pixmap,
                                      GLX_FRONT_RIGHT_EXT);

  /* FIXME - we need to trap errors and synchronize here because
   * of ordering issues between the XPixmap destruction and the
   * GLXPixmap destruction.
   *
   * If the X pixmap is destroyed, the GLX pixmap is destroyed as
   * well immediately, and thus, when Cogl calls glXDestroyPixmap()
   * it'll cause a BadDrawable error.
   *
   * this is technically a bug in the X server, which should not
   * destroy either pixmaps until the call to glXDestroyPixmap(); so
   * at some point we should revisit this code and remove the
   * trap+sync after verifying that the destruction is indeed safe.
   *
   * for reference, see:
   *   http://bugzilla.clutter-project.org/show_bug.cgi?id=2324
   */
  mtk_x11_error_trap_push (xlib_renderer->xdpy);


** Bug watch added: bugzilla.clutter-project.org/ #2324
   http://bugzilla.clutter-project.org/show_bug.cgi?id=2324

-- 
You received this bug notification because you are a member of Desktop
Packages, which is subscribed to gnome-shell in Ubuntu.
https://bugs.launchpad.net/bugs/2049368

Title:
  gnome-shell crashed with X error 161 (major 152, minor 23)

Status in gnome-shell package in Ubuntu:
  Incomplete

Bug description:
  Casual browsing, and then boom "Oh no! Something has gone wrong"
  screen. Ubuntu 23.10, Lenovo ThinkPad P14s gen4 amd, AMDGPU open
  source drivers, also I switched to X Server from the default Wayland
  because of Wayland bugs.

  A stack trace frame I got manually, but I didn't persist much:

  ```
  ─── Stack 
───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────(138
 results) [2033/2675]
  [12] from 0x00007f62b1f63adb in __glXSendError+155 at ../src/GLX/libglx.c:805 
                                                                                
                                
  arg dpy = 0x562471d040d0, errorCode = <optimized out>, resourceID = 0, 
minorCode = <optimized out>, coreX11error = 0                                   
                                       
  [13] from 0x00007f62b5f0962f                                                  
                                                                                
                                
  (no arguments)                                                                
                                                                                
                                
  [14] from 0x00007f62b5f09d29                                                  
                                                                                
                                
  (no arguments)                                                                
                                                                                
                                
  [15] from 0x00007f62b5f0734e                                                  
                                                                                
                                
  (no arguments)                                                                
                                                                                
                                
  [16] from 0x00007f62b5ee347b                                                  
                                                                                
                                
  (no arguments)                                                                
                                                                                
                                
  [+]                                                                           
                                                                                
                                
  ─── Source 
───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
  789     if (dpyInfo == NULL || !dpyInfo->glxSupported) {                      
                                                                                
                                
  790         return;                                                           
                                                                                
                                
  791     }                                                                     
                                                                                
                                
  792                                                                           
                                                                                
                                
  793     LockDisplay(dpy);                                                     
                                                                                
                                
  794                                                                           
                                                                                
                                
  795     error.type = X_Error;                                                 
                                                                                
                                
  796     error.errorCode = errorCode;                                          
                                                                                
                                
  797     error.sequenceNumber = dpy->request;                                  
                                                                                
                                
  798     error.resourceID = resourceID;                                        
                                                                                
                                
  799     error.minorCode = minorCode;                                          
                                                                                
                                
  800     error.majorCode = dpyInfo->glxMajorOpcode;                            
                                                                                
                                
  801     if (!coreX11error) {                                                  
                                                                                
                                
  802         error.errorCode += dpyInfo->glxFirstError;                        
                                                                                
                                
  803     }                                                                     
                                                                                
                                
  804                                                                           
                                                                                
                                
  805     _XError(dpy, &error);                                                 
                                                                                
                                
  806                                                                           
                                                                                
                                
  807     UnlockDisplay(dpy);                                                   
                                                                                
                                
  808 }                                                                         
                                                                                
                                
  809                                                                           
                                                                                
                                
  810 static void NotifyXError(Display *dpy, unsigned char errorCode,           
                                                                                
                                
  811         XID resourceID, unsigned char minorCode, Bool coreX11error,       
                                                                                
                                
  812         __GLXvendorInfo *vendor)                                          
                                                                                
                                
  813 {                                                                         
                                                                                
                                
  814     if (vendor != NULL && vendor->glxvc->notifyError != NULL) {           
                                                                                
                                
  815         Bool ret = vendor->glxvc->notifyError(dpy, errorCode, resourceID, 
                                                                                
                                
  816                 minorCode, coreX11error);                                 
                                                                                
                                
  817         if (!ret) {                                                       
                                                                                
                                
  818             return;                                                       
                                                                                
                                
  819         }                                                                 
                                                                                
                                
  820     }                                                                     
                                                                                
                                
  821     __glXSendError(dpy, errorCode, resourceID, minorCode, coreX11error);  
                                                                                
                                
  
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
  >>> p error                                                                   
                                                                                
                                
  $1 = {                                                                        
                                                                                
                                
    type = 0 '\000',                                                            
                                                                                
                                
    errorCode = 161 '\241',                                                     
                                                                                
                                
    sequenceNumber = 36705,                                                     
                                                                                
                                
    resourceID = 0,                                                             
                                                                                
                                
    minorCode = 23,                                                             
                                                                                
                                
    majorCode = 152 '\230',                                                     
                                                                                
                                
    pad1 = 182 '\266',
    pad3 = 32610,
    pad4 = 0,
    pad5 = 0,
    pad6 = 3056388541,
    pad7 = 32610
  }
  ```

  ProblemType: Bug
  DistroRelease: Ubuntu 23.10
  Package: gnome-shell 45.1-0ubuntu1
  ProcVersionSignature: Ubuntu 6.5.0-14.14-generic 6.5.3
  Uname: Linux 6.5.0-14-generic x86_64
  ApportVersion: 2.27.0-0ubuntu5
  Architecture: amd64
  CasperMD5CheckResult: pass
  CurrentDesktop: ubuntu:GNOME
  Date: Mon Jan 15 09:43:27 2024
  DisplayManager: gdm3
  InstallationDate: Installed on 2023-11-25 (51 days ago)
  InstallationMedia: Ubuntu 23.10.1 "Mantic Minotaur" - Release amd64 
(20231016.1)
  RelatedPackageVersions: mutter-common 45.2-0ubuntu2~really45.0
  SourcePackage: gnome-shell
  UpgradeStatus: No upgrade log present (probably fresh install)

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/gnome-shell/+bug/2049368/+subscriptions


-- 
Mailing list: https://launchpad.net/~desktop-packages
Post to     : [email protected]
Unsubscribe : https://launchpad.net/~desktop-packages
More help   : https://help.launchpad.net/ListHelp

Reply via email to