From: toni@... Date: 2014-10-07T13:15:50+00:00 Subject: [ruby-core:65470] [ruby-trunk - Bug #10335] ssl connect using net/http on solaris x86 fails with core dump Issue #10335 has been updated by Toni Schmidbauer. File ldd_engines.txt added Naohisa Goto wrote: > The function "tls1_PRF" exists in libssl.so, and I still doubt if the OpenSSL is correctly installed. > Could you please provide more information about OpenSSL? seems like i found the solution... the culprit seems to be the default optimization flags the sun studio compiler uses when compiling openssl. it's compiling openssl with -O and according to the oracle documentation http://docs.oracle.com/cd/E24457_01/html/E21990/bjapr.html#bjavm this defaults to -xO3. setting the optimization to -xO2 results in a working openssl. i still have to verify this with a more recent openssl version. thanks toni ---------------------------------------- Bug #10335: ssl connect using net/http on solaris x86 fails with core dump https://bugs.ruby-lang.org/issues/10335#change-49250 * Author: Toni Schmidbauer * Status: Feedback * Priority: Normal * Assignee: * Category: ext/openssl * Target version: * ruby -v: ruby 2.1.3p242 (2014-09-19 revision 47630) [i386-solaris2.10] * Backport: 2.0.0: UNKNOWN, 2.1: UNKNOWN ---------------------------------------- we tried to compile ruby 2.1.3 on solaris x86 with the current sun studio compiler 12.3 (for running puppet). we used the following configure options to compile openssl: ./Configure --prefix=/opt/puppet shared solaris-x86-cc we tried the following openssl version: 1.0.1e 1.0.1i 1.0.0n configure options used to compile ruby: CPPFLAGS="-I /opt/puppet/include" LDFLAGS="-R /opt/puppet/lib -L /opt/puppet/lib" ./configure --without-gcc --prefix=$(PREFIX) --enable-shared --disable-install-doc --disable-install-rdoc we tried ruby 2.0.0-p481 2.0.0-p576 2.1.3 but the following example test scripts fails with a core dump: require "net/https" require "uri" uri = URI.parse("https://") https = Net::HTTP.new(uri.host, uri.port) https.use_ssl = true https.verify_mode = OpenSSL::SSL::VERIFY_NONE request = Net::HTTP::Get.new(uri.request_uri) response = https.request(request) response.body response.status response["header-here"] # All headers are lowercaserequire 'socket' please find the ruby dump output attached to this bug report. running pstack on the core file shows: # pstack core core 'core' of 11021: /opt/puppet/bin/ruby /tmp/test.rb ----------------- lwp# 1 / thread# 1 -------------------- fedfc067 _lwp_kill (1, 6) + 7 feda3883 raise (6) + 1f fed829e1 abort (398, 85781e8, 83b1e28, 83b1e58, 81a5756, 82b36cc) + cd 080c10a5 rb_bug (82b36cc, fe9f3511) + 55 081a5756 sigsegv (b, 83b2104, 83b1f04) + 86 fedf93ef __sighndlr (b, 83b2104, 83b1f04, 81a56d0) + f fedef0cf call_user_handler (b, 83b2104, 83b1f04) + 22b fedef210 sigacthandler (b, 83b2104, 83b1f04) + 7c --- called from signal handler with signal 11 (SIGSEGV) --- fe9f3511 tls1_PRF (c030, fea18040, d, 8771188, 20, 0) + 451 fe9f4ec9 tls1_generate_master_secret (bf4229a4, 472a4e9d, f376ce83, 38d14648, b70aefec, 2615730e) + 69 3a1f69b5 ???????? () ----------------- lwp# 2 / thread# 2 -------------------- fedfbd67 __pollsys (feed3fa8, 2, 0, 0) + 7 feda100a poll (feed3fa8, 2, ffffffff) + 52 082392c5 timer_thread_sleep (82e1584, 0) + 65 082393bc thread_timer (82e1584) + 5c fedf8feb _thr_setup (febf0200) + 4e fedf92f0 _lwp_start (febf0200, 0, 0, feed3ff8, fedf92f0, febf0200) we are on Oracle Solaris 10 1/13 s10x_u11wos_24a X86 any help would be appreciated thanks toni ---Files-------------------------------- ruby_dump.txt (4.66 KB) ldd_engines.txt (4.91 KB) -- https://bugs.ruby-lang.org/