----- Original Message ----- > Thanks for the cross post David. Yes, net-dev is the best place to > discuss this issue ( bcc'ing off jdk7u-dev ). > > Thanks for reporting this issue Christian. I haven't looked at the > proposed patch yet, but I agree we may want to simplify this if > possible > ( handling the synchronization at the Java level ). We also need to > add > support for gnome3 system proxies in the near future. We need to > ensure > we don't further complicate that. >
We already have support for GNOME3 system proxies (now actually at the Glib level) in IcedTea and I intend to post an upstream version of this in the next few weeks. > I filed CR 7188755: "Crash due to missing synchronization on > gconf_client in DefaultProxySelector.c", to track this issue. > > -Chris. > > > > On 02/08/12 15:44, David Holmes wrote: > > Hi Christian, > > > > Probably best to discuss this on the net-dev@openjdk.java.net list > > (cc'd). > > > > Two comments from me (I'm not on net-dev): > > > > 1. CHECK_NULL does a return so you will be leaving the monitor > > locked if > > you encounter any nulls. > > > > 2. Is it simpler to add synchronization at the Java level? (I don't > > know > > how this code is used) > > > > David Holmes > > > > On 2/08/2012 8:54 PM, Christian Schulte wrote: > >> Hi, > >> > >> using the system property 'java.net.useSystemProxies', JDK 7 > >> crashes on > >> OpenBSD 5.2. > >> > >> $ /usr/local/jre-1.7.0/bin/java -version > >> openjdk version "1.7.0_03" > >> OpenJDK Runtime Environment (build 1.7.0_03-b04) > >> OpenJDK Server VM (build 22.1-b02, mixed mode) > >> > >> $ /usr/local/jre-1.7.0/bin/java -cp . Crash > >> 2538: assertion failed "allocator->lock_loc == NULL" file > >> "/usr/ports/pobj/dbus-1.6.2/dbus-1.6.2/dbus/dbus-dataslot.c" line > >> 79 > >> function _dbus_data_slot_allocator_alloc > >> 2538: assertion failed "allocator->lock_loc == NULL" file > >> "/usr/ports/pobj/dbus-1.6.2/dbus-1.6.2/dbus/dbus-dataslot.c" line > >> 79 > >> function _dbus_data_slot_allocator_alloc > >> 2538: assertion failed "allocator->lock_loc == NULL" file > >> "/usr/ports/pobj/dbus-1.6.2/dbus-1.6.2/dbus/dbus-dataslot.c" line > >> 79 > >> function _dbus_data_slot_allocator_alloc > >> 2538: assertion failed "allocator->lock_loc == NULL" file > >> "/usr/ports/pobj/dbus-1.6.2/dbus-1.6.2/dbus/dbus-dataslot.c" line > >> 79 > >> function _dbus_data_slot_allocator_alloc > >> D-Bus not compiled with backtrace support so unable to print a > >> backtrace > >> D-Bus not compiled with backtrace support so unable to print a > >> backtrace > >> > >> $ /usr/local/jre-1.7.0/bin/java -cp . Crash > >> 27421: assertion failed "!(connection)->have_connection_lock" file > >> "/usr/ports/pobj/dbus-1.6.2/dbus-1.6.2/dbus/dbus-connection.c" > >> line 1133 > >> function _dbus_connection_acquire_io_path > >> D-Bus not compiled with backtrace support so unable to print a > >> backtrace > >> Abort trap (core dumped) > >> > >> Looking at > >> 'openjdk/jdk/src/solaris/native/sun/net/spi/DefaultProxySelector.c', > >> there is a 'static void* gconf_client' which is initialized by > >> calling > >> 'gconf_client_get_default' from 'libgconf-2'. Uses of that client > >> are > >> not protected against concurrent accesses by multiple threads > >> although > >> that gconf client is not thread-safe. Trying to add some > >> protection > >> myself resulted in the attached patch. Rebuilding JDK 1.7 with > >> this > >> patch applied, the 'gconf'/'dbus' related crashes no longer > >> happen. > >> > >> Regards, > >> > -- Andrew :) Free Java Software Engineer Red Hat, Inc. (http://www.redhat.com) PGP Key: 248BDC07 (https://keys.indymedia.org/) Fingerprint = EC5A 1F5E C0AD 1D15 8F1F 8F91 3B96 A578 248B DC07