Tcl Source Code

View Ticket
Login
2017-06-27
06:48 Deleted ticket [b200333437]: X Error of failed request: BadLength (poly request too large or internal Xlib length error) plus 7 other changes artifact: 9466c83b4b user: oehhar
2017-06-26
17:59 New ticket [b200333437]. artifact: d0db023361 user: jlc

Ticket UUID: b200333437946d147c44cfb319df2803ee5724bd
Title: X Error of failed request: BadLength (poly request too large or internal Xlib length error)
Type: Bug Version: tk-8.6.6
Submitter: jlc Created on: 2017-06-26 17:59:36
Subsystem: None Assigned To: nobody
Priority: 5 Medium Severity: Critical
Status: Deleted Last Modified: 2017-06-27 06:48:37
Resolution: Invalid Closed By: oehhar
    Closed on: 2017-06-27 06:48:37
Description:
When font metrics is returning fixed fonts, it fails with the X Error in the
summary.  It is reproducible with this test script on Fedora 25:

foreach family [font families] {
    if {[font metrics \"$family\" -fixed]} {puts $family}
}

The test code returns fixed fonts then this error:

X Error of failed request:  BadLength (poly request too large or internal Xlib length error)
  Major opcode of failed request:  138 (RENDER)
  Minor opcode of failed request:  20 (RenderAddGlyphs)
  Serial number of failed request:  454
  Current serial number in output stream:  519

The problem is indicated by using strace on the test script:

open("/usr/share/X11/XErrorDB", O_RDONLY) = 4
fstat(4, {st_mode=S_IFREG|0644, st_size=42077, ...}) = 0
read(4, "!\n! Copyright 1993, 1995, 1998  "..., 42077) = 42077
close(4)                                = 0
write(2, "X Error of failed request:  BadL"..., 95X Error of failed request:  BadLength (poly request too large or internal Xlib length error)
  ) = 95
write(2, "Major opcode of failed request: "..., 36Major opcode of failed request:  138) = 36
write(2, " (RENDER)\n", 10 (RENDER)
)             = 10
write(2, "  ", 2  )                       = 2
write(2, "Minor opcode of failed request: "..., 35Minor opcode of failed request:  20) = 35
write(2, " (RenderAddGlyphs)", 18 (RenderAddGlyphs))      = 18
write(2, "\n", 1
)                       = 1
write(2, "  ", 2  )                       = 2
write(2, "Serial number of failed request:"..., 37Serial number of failed request:  454) = 37

The problem seems to be the size of /usr/share/X11/XErrorDB.  It is 42077 characters on Fedora 25.

I have tcl-8.6.6-1.fc25.x86_64 and tk-8.6.6-1.fc25.x86_64 installed on Fedora 25.
User Comments: oehhar added on 2017-06-27 06:48:37:

Transfered to Tk Tracker: https://core.tcl.tk/tk/tktview/3767882e066523dc9ae4475dbdcb6c33dfe57c6b