[crossfire] Valgrind results

Andreas Kirschbaum kirschbaum at myrealbox.com
Sat Mar 26 15:04:44 CST 2005

Alex Schultz wrote:
      Ah... so most of this leakage likely is the combination of both bugs:
      the server keeps sending face 0 over and over, that counts to the
      client as a face update, and each time face 0 is sent, the old face 0
      (which is exactly the same anyways) isn't freed properly. Is that
Yes, that is the problem.

      I also seem to be seeing the X memory usage increasing alot with CF,
      which appears to be upstream leaks triggered by cfclient. As I
      understand, the leaks in X itself aren't being tracked by valgrind as
      that memory isn't owned by cfclient, and running all of X in valgrind
      would be impractically slow. So exactly why cf is causing X itself to
      leak may be more difficult to track down.
I don't think the X server itself has a memory leak. The problem is that
the crossfire client requests many X resources which makes the X server
allocate memory. And because the client leaks the old handles when
allocating a new resources, the X server itself cannot free the old
resources until the client exits.

After the crossfire client exits, these resources are freed by the X
server. But as far as I know, the (virtual) memory usage of an Unix
processes normally does not shrink. Therefore the X server's memory
usage does not shrink after the crossfire client exits.


More information about the crossfire mailing list