[507056] Fix potential leak and lower the default target pixels number

After experimenting with the values of _Pref_DiagramExportSizeMax using
the ExportDiagramAsImagesTest. Setting the limit to 
* 100 Millions of pixels => the test fails quickly with an OOM
*  50 - heap usage goes up to 1.9Gb
*  30 - heap usage goes up to 1.6Gb
*  20 - heap usage goes up to 1.2Gb
*  10 - heap usage goes up to 1.2Gb

Seems like 10 millions of pixels would be a sweet spot as it brings a
more than noticeable improvement in resolution and have a reasonnable
cost but on some Linux platforms. On the other hand the tests results
are varying vastly depending on the OS, platform and/or versions of
underlying libraries like Cairo.

After experimenting with those different values it seems 10 millions of
pixels as a target -- by default -- leads to VM crash (double free()
calls in native code) which are likely to be related to specific
versions of GTK and Cairo (we have consistently seen this on ubuntu
machines but not on other distributions). 

After many tests it appears 4.125M is the maximum value we could find
which doesn't lead to those crashes. As such this commit lower the
target to 4.125M pixels and adapt the test as no case is supposed to
fail anymore.

Bug: 507056
Change-Id: Iaba6b641499bed6d8a9d48ea4ae8387e7bfa6829
Signed-off-by: Cedric Brun <cedric.brun@obeo.fr>
3 files changed
tree: db2f7e02fdcee54e313f66e189b5049a4e9b59cf
  1. packaging/
  2. plugins/
  3. releng/
  4. .gitattributes
  5. .gitignore
  6. .travis.yml
  7. build.sh
  8. CONTRIBUTING.md
  9. pom.xml
  10. README.md
README.md

Eclipse Sirius

Build Status

Sirius enables the specification of a modeling workbench in terms of graphical, table or tree editors with validation rules and actions using declarative descriptions.

For more details see the project page and the main wiki page.

Building

The build uses Tycho. To launch a complete build, issue

mvn clean package

from the top-level directory. The resulting update-site (p2 repository) can be found in packaging/org.eclipse.sirius.update/target/repository.

By default the build uses a Neon-based target platform. You can specify a different platform like this:

mvn clean package -Dplatform-version-name=name

where name can be any of the following values:

  • mars (Eclipse 4.5)
  • neon (Eclipse 4.6, the default and reference target platform)
  • canary (uses nightly builds of all our dependencies, only used for testing)

The corresponding target platform definitions can be found in releng/org.eclipse.sirius.targets.