加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Linux > 正文

linux – python 3.3中的BadIDChoice RENDER和X上显示的tk / tcl

发布时间:2020-12-13 17:00:29 所属栏目:Linux 来源:网络整理
导读:我有一个相当复杂的GUI,通过在 linux上运行的 python的tkinter编写,其中一个组件(具有经常更新的Text小部件)导致GUI不经常崩溃(每天一次). 通过X11和Gnome 2.28.2在Mac OSX上运行的guis显示为具有相同的行为.我的python版本是3.3,tk / tcl版本是8.5.我得到的
我有一个相当复杂的GUI,通过在 linux上运行的 python的tkinter编写,其中一个组件(具有经常更新的Text小部件)导致GUI不经常崩溃(每天一次).

通过X11和Gnome 2.28.2在Mac OSX上运行的guis显示为具有相同的行为.我的python版本是3.3,tk / tcl版本是8.5.我得到的错误是:

X Error of failed request:  BadIDChoice (invalid resource ID chosen for this connection)
  Major opcode of failed request:  148 (RENDER)
  Minor opcode of failed request:  4 (RenderCreatePicture)
  Resource id in failed request:  0x116517f
  Serial number of failed request:  15106831
  Current serial number in output stream:  15106872

一个strace看起来像:

11:03:29.632041 recvfrom(13,0x3bae1d4,4096,0) = -1 EAGAIN (Resource temporarily unavailable)
11:03:29.632059 recvfrom(13,0) = -1 EAGAIN (Resource temporarily unavailable)
11:03:29.632147 poll([{fd=13,events=POLLIN|POLLOUT}],1,-1) = 1 ([{fd=13,revents=POLLOUT}])
11:03:29.632164 writev(13,[{"22445D30436117274361i422427n3f340301v340"...,5032},{NULL,0},{"",0}],3) = 5032
11:03:29.632193 poll([{fd=13,events=POLLIN}],revents=POLLIN}])
11:03:29.637040 recvfrom(13,"16302276x30436142241`1633031243304342210377177"...,NULL,NULL) = 136
11:03:29.637135 open("/usr/share/X11/XErrorDB",O_RDONLY) = 35
11:03:29.637217 fstat(35,{st_mode=S_IFREG|0644,st_size=41532,...}) = 0
11:03:29.637360 read(35,"!n! Copyright 1993,1995,1998  "...,41532) = 41532
11:03:29.637387 close(35)               = 0
11:03:29.637820 write(2,"X Error of failed request:  BadI"...,91) = 91
...

我的GUI是单线程的(并使用after()调用来监视I / O的套接字).

有谁知道什么可能是错的?有没有更好的调试,我可以做出来找出X错误部分的含义?

解决方法

使用以下日志偶尔崩溃(每天一次)……
X Error of failed request:  BadIDChoice (invalid resource ID chosen for this connection)
  Major opcode of failed request:  148 (RENDER)
  Minor opcode of failed request:  4 (RenderCreatePicture)

…似乎是xcb中已知问题的标志性签名,如下面的线程中的mentioned:

07001

它的补丁可以在here获得.
根据git历史记录,这个xcb bug应该在libX11-1.1.99.2及更高版本(?8年前)中修复.

有关进一步参考,请参见email-thread with the complete discussion.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读