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.
see discussion on jdk7u-dev, and subsequently on net-dev mailing lists:
http://mail.openjdk.java.net/pipermail/jdk7u-dev/2012-August/003911.html
http://mail.openjdk.java.net/pipermail/net-dev/2012-August/004610.html