2

I'm working on an embedded system that runs a custom Linux platform and it appears that the Xorg process is leaking memory. According to top, Xorg's virtual memory grows until the system crashes. According to /proc/$pid/status, its VmPeak will grow uncontrollably, but its VmSize will remain small. Contents of /proc/$pid/status follow:

Name:   Xorg
State:  S (sleeping)
Tgid:   610
Pid:    610
PPid:   605
TracerPid:  0
Uid:    0   0   0   0
Gid:    0   0   0   0
FDSize: 32
Groups: 0 
VmPeak:   102628 kB
VmSize:    18020 kB
VmLck:         0 kB
VmPin:         0 kB
VmHWM:      8172 kB
VmRSS:      8172 kB
VmData:     2140 kB
VmStk:       136 kB
VmExe:      1808 kB
VmLib:     10064 kB
VmPTE:       116 kB
VmSwap:        0 kB
Threads:    1
SigQ:   1/16047
SigPnd: 0000000000000000
ShdPnd: 0000000000000000
SigBlk: 0000000000000000
SigIgn: 0000000000301000
SigCgt: 00000001d18066cf
CapInh: 0000000000000000
CapPrm: ffffffffffffffff
CapEff: ffffffffffffffff
CapBnd: ffffffffffffffff
Cpus_allowed:   3
Cpus_allowed_list:  0-1
Mems_allowed:   1
Mems_allowed_list:  0
voluntary_ctxt_switches:    2839
nonvoluntary_ctxt_switches: 109

My theory is that gtkextra (specifically gtkplot) is not correctly cleaning up its pixmap buffer, since the leak occurs only when an object created with gtkplot is rendered to the screen. I've looked everywhere I can think of for some documentation of an incompatibility or someone else encountering this error and come up empty, and I'm hoping that there's some flag in xorg.conf I can toggle to fix the issue, but I'm not exactly holding my breath. The version of xorg/xserver I use is 1.11.2 and the version of gtkextra is 3.0.1. My question is this: is there some known config value I could change in xorg.conf to prevent this problem, or are my versions incompatible? The scarcity of people struggling with this bug makes me suspect I'm making some configuration error.

longneck
  • 22,793
  • 4
  • 50
  • 84

0 Answers0