[smuxi: 1/2] Server, Frontend-GNOME: use Boehm as GC instead of SGen (closes: #1062)



commit b4b87f46ec4457ca8da31329bb9f784c6e119fc1
Author: Mirco Bauer <meebey meebey net>
Date:   Sat Jun 6 03:15:23 2015 +0200

    Server, Frontend-GNOME: use Boehm as GC instead of SGen (closes: #1062)
    
    Mono 3.2.8 (and possibly newer versions) SEGVs in Mono.Data.Sqlite when the GC
    is SGen and huge datasets are read from more than one thread at the same time
    using different databases. With Boehm this does not happen. Since Smuxi switched
    to SQLite by default this is a show stopper for the 1.0 release and thus Boehm
    will be used to workaround this issue till the Mono SGen GC or the
    Mono.Data.Sqlite binding will be fixed in a later Mono version. Or the used
    SQLite binding will be replaced with sqlite-net [0] or Hyena's SQLite binding [1].
    
     [0]: https://github.com/praeclarum/sqlite-net
     [1]: https://github.com/GNOME/hyena/tree/master/Hyena.Data.Sqlite

 src/Frontend-GNOME/smuxi-frontend-gnome.in |    6 ++++++
 src/Server/smuxi-server.in                 |    6 ++++++
 2 files changed, 12 insertions(+), 0 deletions(-)
---
diff --git a/src/Frontend-GNOME/smuxi-frontend-gnome.in b/src/Frontend-GNOME/smuxi-frontend-gnome.in
index 3422198..2c16c35 100644
--- a/src/Frontend-GNOME/smuxi-frontend-gnome.in
+++ b/src/Frontend-GNOME/smuxi-frontend-gnome.in
@@ -5,4 +5,10 @@
 MONO_TLS_SESSION_CACHE_TIMEOUT=0
 export MONO_TLS_SESSION_CACHE_TIMEOUT
 
+# HACK: forcibly disabled SGen, as it has a known SEGV bug related to the
+# Mono.Data.Sqlite binding that does not happen with the boehm GC, see:
+# https://smuxi.im/issues/show/1062
+MONO_ENV_OPTIONS=--gc=boehm
+export MONO_ENV_OPTIONS
+
 exec mono --debug "@expanded_libdir@/@PACKAGE@/smuxi-frontend-gnome.exe" "$@"
diff --git a/src/Server/smuxi-server.in b/src/Server/smuxi-server.in
index 48fc4c9..fbc7b5b 100644
--- a/src/Server/smuxi-server.in
+++ b/src/Server/smuxi-server.in
@@ -5,4 +5,10 @@
 MONO_TLS_SESSION_CACHE_TIMEOUT=0
 export MONO_TLS_SESSION_CACHE_TIMEOUT
 
+# HACK: forcibly disabled SGen, as it has a known SEGV bug related to the
+# Mono.Data.Sqlite binding that does not happen with the boehm GC, see:
+# https://smuxi.im/issues/show/1062
+MONO_ENV_OPTIONS=--gc=boehm
+export MONO_ENV_OPTIONS
+
 exec mono --debug "@expanded_libdir@/@PACKAGE@/smuxi-server.exe" "$@"


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]