From owner-freebsd-gnome@FreeBSD.ORG Fri Apr 29 08:48:49 2011 Return-Path: Delivered-To: gnome@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id E8E3D106564A for ; Fri, 29 Apr 2011 08:48:48 +0000 (UTC) (envelope-from ftp51246-2575596@sh4-5.1blu.de) Received: from sh4-5.1blu.de (sh4-5.1blu.de [213.83.63.54]) by mx1.freebsd.org (Postfix) with ESMTP id 7EB2C8FC08 for ; Fri, 29 Apr 2011 08:48:48 +0000 (UTC) Received: from ftp51246-2575596 by sh4-5.1blu.de with local (Exim 4.50) id 1QFjNW-00010E-VR; Fri, 29 Apr 2011 10:48:47 +0200 Date: Fri, 29 Apr 2011 10:48:46 +0200 From: Matthias Apitz To: David Woodhouse Message-ID: <20110429084846.GA2763@sh4-5.1blu.de> References: <1303831016.6417.132.camel@macbook.infradead.org> <20110426213920.GA15678@sh4-5.1blu.de> <20110427062214.GA1159@sh4-5.1blu.de> <20110428073857.GB4359@sh4-5.1blu.de> <20110428131312.GA17412@sh4-5.1blu.de> <1303998164.2912.123.camel@macbook.infradead.org> <20110428140106.GA5664@sh4-5.1blu.de> <1303999409.2912.129.camel@macbook.infradead.org> <20110428145451.GA25158@sh4-5.1blu.de> <1304003620.4772.16.camel@macbook.infradead.org> Mime-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <1304003620.4772.16.camel@macbook.infradead.org> X-Operating-System: FreeBSD 7.0-RELEASE (i386) User-Agent: Mutt/1.5.9i Cc: gnome@freebsd.org, evolution-list@gnome.org Subject: Re: [Evolution] evolution-2.32.1 (FreeBSD HEAD) && calendar not working X-BeenThere: freebsd-gnome@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list Reply-To: Matthias Apitz List-Id: GNOME for FreeBSD -- porting and maintaining List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 29 Apr 2011 08:48:49 -0000 El día Thursday, April 28, 2011 a las 04:13:40PM +0100, David Woodhouse escribió: > On Thu, 2011-04-28 at 16:54 +0200, Matthias Apitz wrote: > > > > I've rebuild glib-2.26.1 and evo-exchange 2.32.3 (removing my changes) > > with gcc46; the problem remains: > > > > Server is up and running... > > [Thread 2997d200 (LWP 100749/e-calendar-factory) exited] > > > > Program received signal SIGSEGV, Segmentation fault. > > [Switching to Thread 29804300 (LWP 100639/initial thread)] > > 0x29e28d87 in ?? () > > (gdb) bt > > #0 0x29e28d87 in ?? () > > #1 0x290edaf8 in g_hash_table_lookup () from > > /usr/local/lib/libglib-2.0.so.0 > > #2 0x29f9e43e in e2k_autoconfig_lookup_option ( > > option=0x29fcf520 "Disable-Plaintext") at _ctype.h:106 > > Can you do that with debugging symbols for glib? That just *shouldn't* > crash; g_hash_table_lookup() is being given a valid, but empty, hash > table and should return NULL. > > The world is broken. Yes, it seems so. I've compiled all, in that order: glib20, evo-dataserver 2.32.3 and evo-exchange 2.32.3 with 'gcc46 -O0 -g' and the bt looks like always: Program received signal SIGSEGV, Segmentation fault. [Switching to Thread 29804300 (LWP 101032/initial thread)] 0x29e55d87 in ?? () (gdb) bt #0 0x29e55d87 in ?? () #1 0x2910fb4d in g_hash_table_lookup_node (hash_table=0x29850e90, key=0x29ffc520) at ghash.c:252 #2 0x2911067b in g_hash_table_lookup (hash_table=0x29850e90, key=0x29ffc520) at ghash.c:252 #3 0x29fcb43e in e2k_autoconfig_lookup_option ( option=0x29ffc520 "Disable-Plaintext") at _ctype.h:106 the key=0x29ffc520 is fine (gdb) p (char *)key $13 = 0x29ffc520 "Disable-Plaintext" and if one looks into the code for g_hash_table_lookup_node() it reads glib-2.26.1/glib/ghash.c: g_hash_table_lookup_node (GHashTable *hash_table, gconstpointer key) { ... hash_value = (* hash_table->hash_func) (key); if (G_UNLIKELY (hash_value <= 1)) hash_value = 2; (gdb) p *hash_table $15 = {size = 8, mod = 7, mask = 7, nnodes = 0, noccupied = 0, nodes = 0x2a7f9b20, hash_func = 0x29e55d87, key_equal_func = 0x29e55d55, ref_count = 1, version = 0, key_destroy_func = 0, value_destroy_func = 0} I *think* there is no correct function pointer in the hash_table because #0 is pointing in the air; but read_config() inserts one as: config_options = g_hash_table_new (e2k_ascii_strcase_hash, e2k_ascii_strcase_equal); (gdb) p e2k_ascii_strcase_hash $17 = {guint (gconstpointer)} 0x29fe16b7 (gdb) p e2k_ascii_strcase_equal $18 = {gint (gconstpointer, gconstpointer)} 0x29fe1685 What I also do not understand is that: (gdb) up #1 0x2913ab4d in g_hash_table_lookup_node (hash_table=0x29850e90, key=0x2a087520) at ghash.c:252 252 for (i = 0; i < shift; i++) i.e. the line number 252 and the code line presented by gdb does not match the place where g_hash_table_lookup_node() is in ghash.c; I'm now clueless :-( matthias -- Matthias Apitz t +49-89-61308 351 - f +49-89-61308 399 - m +49-170-4527211 e - w http://www.unixarea.de/