blueprint dependency graph rendering should not run graphviz as a subprocess

Bug #211568 reported by Curtis Hovey
4
Affects Status Importance Assigned to Milestone
Launchpad itself
Triaged
Low
Unassigned

Bug Description

The renderGraphvizGraph() method should use python bindings to create the
image map and PNG images. The subprocess.Popen approach used is
susceptible to OSErrors as seen in bug 208228.

Revision history for this message
Curtis Hovey (sinzui) wrote :

I'm setting this importance to low because I don't think there are
good options for binding at this time. I am implementing a work-around
for the OSErrors.

Changed in blueprint:
importance: Undecided → Low
status: New → Confirmed
Revision history for this message
James Henstridge (jamesh) wrote :

If the app server can't allocate memory to fork a process, then something is very wrong with the app server. Once we've identified and fixed the memory leak, if we still see the that OOPS then it might be worth considering this.

Bringing things like this in process has the risk of introducing memory leaks or crashes into the app server (see the problems with the lxml dependency of hwdb, for instance), so it isn't always obvious that in process is better.

Revision history for this message
Curtis Hovey (sinzui) wrote : Re: [Bug 211568] Re: The dependency graph code should using python bindings
  • unnamed Edit (189 bytes, application/pgp-signature; name=signature.asc)

On Fri, 2008-04-04 at 02:26 +0000, James Henstridge wrote:
> Bringing things like this in process has the risk of introducing memory
> leaks or crashes into the app server (see the problems with the lxml
> dependency of hwdb, for instance), so it isn't always obvious that in
> process is better.

Good argument.

--

__C U R T I S C. H O V E Y_______
Guilty of stealing everything I am.

Curtis Hovey (sinzui)
tags: added: tech-debt
Curtis Hovey (sinzui)
visibility: private → public
Revision history for this message
Robert Collins (lifeless) wrote : Re: The dependency graph code should using python bindings

An alternative is a graph *rendering* service which can be isolated (making it easier to detect memory leaks) and load balanced (so that if it leaks only one very specific backend will be interrupted).

summary: - The dependency graph code should using python bindings
+ blueprint dependency graph rendering should not run graphviz as a
+ subprocess
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Bug attachments

Remote bug watches

Bug watches keep track of this bug in other bug trackers.