From owner-freebsd-ports@freebsd.org Thu Apr 25 21:13:26 2019 Return-Path: Delivered-To: freebsd-ports@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 2177D15A2A29 for ; Thu, 25 Apr 2019 21:13:26 +0000 (UTC) (envelope-from marcelbonnet@gmail.com) Received: from mail-oi1-x241.google.com (mail-oi1-x241.google.com [IPv6:2607:f8b0:4864:20::241]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (2048 bits) client-digest SHA256) (Client CN "smtp.gmail.com", Issuer "GTS CA 1O1" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 1E9C96C130; Thu, 25 Apr 2019 21:13:25 +0000 (UTC) (envelope-from marcelbonnet@gmail.com) Received: by mail-oi1-x241.google.com with SMTP id v23so1097111oif.8; Thu, 25 Apr 2019 14:13:25 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=clojdXpYI2QoSl5sUYN5XEtKbamZqSXSHm+d3EzGZB0=; b=neA+HGT/sM8vXLPLbXPe40zYlS9VV9G9bfhsQrGxG7lyIRTDT8SHWI7eL2zKEUaFJn TFp2tnmm0NAFRLtMEBYxXMnVkWTsQgGgiuIqSo78f4+ZngQZDv39g8XhsU4zxFJp2/X+ ARru7LTk3xRpiFur9kHWRBBYUOZLCpxNY9Z1AWonfB1Enm1nOSiUK1eblQE66lD9YNE4 VX0raN1WJ27M/rhC38ko9J6OKPNtWB6h0jTwNVxkTUXe/SA3Vh3GqUYaybA8FQxWK3Ri IyVf+9vS9mgCQ6ArVMPav8T8VqJDhkQD29osN/EPwr51JgNcRrP24kWadTGKtGMKkByO DR3g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=clojdXpYI2QoSl5sUYN5XEtKbamZqSXSHm+d3EzGZB0=; b=hITBGBD8YEF+Wx+zgNntZUJwL9xWT68x+yOC6kzTTkloMrXnViJKR/jsMIOttzaOmB evk/3iSquXllXNk6aG56UFZnXVVftSEOUf27+5glPT6A+OG4IS6+E6y/xxvvK4ZSK+MS RcY+urdVAHS5/gZbwOYdHnHWxEcF26rltcQ2xIqwEBvtUC3XkReq+pQwCSNd+LTHFt/c 4mf1nj2bZzIR1+1GQHxK3/ckf7M3idU4UTg/ftnbUhTu98Z2dAq15L3cb0hoE2lE/DVZ YqiUz+y9Xgl9YiwH7nEJZquMlsUm2jW6+2dLsNJADPwNKWp27doYESQY/YcKXwbm3Ak7 8Ftg== X-Gm-Message-State: APjAAAX2rwkcmSzvGh47opNJRbE8TZSqqekj3vYcVGNCdVcRznfJkiTE jVeLvGVCzsrd/7Je49L8JTY/ZN+kEc3PwKfqAYc= X-Google-Smtp-Source: APXvYqxDaSo9vIgGXEHfDwIxDSotagMBHsVSgVan7rvKqHa1poYgONeFiuJmK+VNF7A8jh4Y9ThYXfdE9wwZjLzioSY= X-Received: by 2002:aca:ea54:: with SMTP id i81mr4822501oih.115.1556226804295; Thu, 25 Apr 2019 14:13:24 -0700 (PDT) MIME-Version: 1.0 References: <67841009-B4BC-4F0A-BB53-77487EE19CBD@lassitu.de> <20190423160110.GS72200@home.opsec.eu> <0D187548-4221-4DA5-9A22-8478D9FB32F3@lassitu.de> <20190424205044.ll3rsu3hhfwxrxof@atuin.in.mat.cc> <0AEC703C-5ACE-44BD-A9D3-70ABBA8785EB@lassitu.de> In-Reply-To: From: Marcel Bonnet Date: Thu, 25 Apr 2019 18:12:48 -0300 Message-ID: Subject: Re: PHP 7.2: SIGSEGV in OpenSSL To: Stefan Bethke Cc: Mathieu Arnold , Kurt Jaeger , FreeBSD Ports X-Rspamd-Queue-Id: 1E9C96C130 X-Spamd-Bar: ---- Authentication-Results: mx1.freebsd.org; dkim=pass header.d=gmail.com header.s=20161025 header.b=neA+HGT/; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (mx1.freebsd.org: domain of marcelbonnet@gmail.com designates 2607:f8b0:4864:20::241 as permitted sender) smtp.mailfrom=marcelbonnet@gmail.com X-Spamd-Result: default: False [-4.23 / 15.00]; ARC_NA(0.00)[]; NEURAL_HAM_MEDIUM(-0.99)[-0.993,0]; R_DKIM_ALLOW(-0.20)[gmail.com:s=20161025]; FROM_HAS_DN(0.00)[]; RCPT_COUNT_THREE(0.00)[4]; R_SPF_ALLOW(-0.20)[+ip6:2607:f8b0:4000::/36]; FREEMAIL_FROM(0.00)[gmail.com]; MIME_GOOD(-0.10)[multipart/alternative,text/plain]; RCVD_TLS_LAST(0.00)[]; NEURAL_HAM_LONG(-1.00)[-1.000,0]; TO_MATCH_ENVRCPT_SOME(0.00)[]; TO_DN_ALL(0.00)[]; MX_GOOD(-0.01)[cached: alt3.gmail-smtp-in.l.google.com]; DKIM_TRACE(0.00)[gmail.com:+]; DMARC_POLICY_ALLOW(-0.50)[gmail.com,none]; RCVD_IN_DNSWL_NONE(0.00)[1.4.2.0.0.0.0.0.0.0.0.0.0.0.0.0.0.2.0.0.4.6.8.4.0.b.8.f.7.0.6.2.list.dnswl.org : 127.0.5.0]; IP_SCORE(-0.77)[ip: (1.63), ipnet: 2607:f8b0::/32(-3.15), asn: 15169(-2.25), country: US(-0.06)]; NEURAL_HAM_SHORT(-0.46)[-0.463,0]; FROM_EQ_ENVFROM(0.00)[]; MIME_TRACE(0.00)[0:+,1:+]; FREEMAIL_ENVFROM(0.00)[gmail.com]; ASN(0.00)[asn:15169, ipnet:2607:f8b0::/32, country:US]; RCVD_COUNT_TWO(0.00)[2]; DWL_DNSWL_NONE(0.00)[gmail.com.dwl.dnswl.org : 127.0.5.0] Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Content-Filtered-By: Mailman/MimeDel 2.1.29 X-BeenThere: freebsd-ports@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Porting software to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 25 Apr 2019 21:13:26 -0000 Hi. I installed more extensions and noticed that ldap.so, indeed must follow openssl to avoid Segmentation Fault. mod_php73-7.3.4 php73-7.3.4 php73-bcmath-7.3.4 php73-bz2-7.3.4 php73-ctype-7.3.4 php73-curl-7.3.4 php73-dom-7.3.4 php73-exif-7.3.4 php73-extensions-1.0 php73-fileinfo-7.3.4 php73-filter-7.3.4 php73-gd-7.3.4 php73-gettext-7.3.4 php73-hash-7.3.4 php73-iconv-7.3.4 php73-intl-7.3.4 php73-json-7.3.4 php73-ldap-7.3.4 php73-mbstring-7.3.4 php73-opcache-7.3.4 php73-openssl-7.3.4 php73-pdo-7.3.4 php73-pdo_mysql-7.3.4 php73-pdo_sqlite-7.3.4 php73-phar-7.3.4 php73-posix-7.3.4 php73-session-7.3.4 php73-simplexml-7.3.4 php73-soap-7.3.4 php73-sockets-7.3.4 php73-sqlite3-7.3.4 php73-tokenizer-7.3.4 php73-xml-7.3.4 php73-xmlreader-7.3.4 php73-xmlwriter-7.3.4 php73-zip-7.3.4 php73-zlib-7.3.4 extension=3Dsession.so extension=3Dfileinfo.so extension=3Dsimplexml.so extension=3Dctype.so extension=3Dmbstring.so extension=3Dtokenizer.so extension=3Dfilter.so extension=3Dxmlwriter.so extension=3Dgd.so extension=3Dgettext.so extension=3Diconv.so extension=3Dexif.so extension=3Dzlib.so extension=3Dbz2.so extension=3Dopenssl.so ; LDAP and CURL must be loaded after openssl extension=3Dldap.so extension=3Dcurl.so extension=3Ddom.so extension=3Dhash.so extension=3Dxmlreader.so extension=3Dbcmath.so extension=3Dsoap.so extension=3Dpdo.so extension=3Dpdo_mysql.so extension=3Dpdo_sqlite.so extension=3Dsockets.so extension=3Dxml.so ; additional extension(s) not known by fixphpextorder.sh extension=3Dintl.so extension=3Djson.so extension=3Dposix.so extension=3Dsqlite3.so extension=3Dzip.so extension=3Dphar.so On Thu, 25 Apr 2019 at 17:07, Marcel Bonnet wrote: > > > On Wed, 24 Apr 2019 at 18:03, Stefan Bethke wrote: > >> Am 24.04.2019 um 22:50 schrieb Mathieu Arnold : >> >> On Wed, Apr 24, 2019 at 06:34:06PM +0200, Stefan Bethke wrote: >> >> Am 23.04.2019 um 18:01 schrieb Kurt Jaeger : >> >> Hi! >> >> Did you find a solution? Please let me know. >> >> >> There's a well-known problem in the sequence in which php modules >> are loaded. I don't know if this is the case here as well, >> but that's what we do: >> >> fetch -o fixphpextorder \ >> https://people.freebsd.org/~ohauer/scripts/fixphpextorder.sh >> chmod 755 fixphpextorder >> >> cd /usr/local/etc/php >> cat ext-*ini > extensions.ini >> fixphpextorder >> mv extensions.ini.new extensions.ini >> rm ext-*ini >> >> Please test and report if it fixes the problem. >> >> >> Thanks Kurt, it appears to fix (or at least work around) the problem. >> >> Why is the default load order broken? Why does it not affect everyone? >> >> I moved all the individual inis into a bak subdir, and now only have an >> extensions.ini. >> >> If I understand correctly, mod_php/PHP reads the individual inis in >> order. Why aren=E2=80=99t they in the right order? Can this be fixed in = the ports >> for the PHP modules? >> >> >> Could you give the order that works for you, so that we can try to >> figure out which module is making it break ? >> >> Because there is no "right" order, there is an order that can work for >> most people, and from time to time, two libs have conflicting symbols, >> but it is not possible to detect that. So I made up an order that >> should be ok, but some time is not. >> >> >> This is the order I=E2=80=99m actively using now: >> $ cat extensions.ini >> extension=3Dsession.so >> extension=3Dfileinfo.so >> extension=3Dldap.so >> extension=3Dsimplexml.so >> extension=3Dctype.so >> extension=3Dmbstring.so >> extension=3Dtokenizer.so >> extension=3Dfilter.so >> extension=3Dpgsql.so >> extension=3Dmcrypt.so >> extension=3Dgd.so >> extension=3Dgettext.so >> extension=3Diconv.so >> extension=3Dzlib.so >> extension=3Dcurl.so >> extension=3Dxmlrpc.so >> extension=3Dbz2.so >> extension=3Dopenssl.so >> extension=3Ddom.so >> extension=3Dhash.so >> extension=3Dwddx.so >> extension=3Dmemcache.so >> extension=3Dsoap.so >> extension=3Dpdo.so >> extension=3Dpdo_mysql.so >> extension=3Dmysqli.so >> extension=3Dsockets.so >> extension=3Dxml.so >> ; additional extension(s) not known by fixphpextorder.sh >> extension=3Dintl.so >> extension=3Djson.so >> extension=3Dsqlite3.so >> extension=3Dzip.so >> extension=3Dmemcached.so >> extension=3Dpdo_pgsql.so >> extension=3Dphar.so >> >> This is the order as installed by the ports (at least I think that=E2=80= =99s the >> order PHP will read the files): >> $ cat $(echo bak/*.ini|sort) >> zend_extension=3Dopcache.so >> extension=3Dsession.so >> extension=3Dbz2.so >> extension=3Dctype.so >> extension=3Dcurl.so >> extension=3Ddom.so >> extension=3Dfileinfo.so >> extension=3Dfilter.so >> extension=3Dgd.so >> extension=3Dgettext.so >> extension=3Dhash.so >> extension=3Diconv.so >> extension=3Dintl.so >> extension=3Djson.so >> extension=3Dldap.so >> extension=3Dmbstring.so >> extension=3Dmcrypt.so >> extension=3Dmysqli.so >> extension=3Dopenssl.so >> extension=3Dpdo.so >> extension=3Dpgsql.so >> extension=3Dsimplexml.so >> extension=3Dsoap.so >> extension=3Dsockets.so >> extension=3Dsqlite3.so >> extension=3Dtokenizer.so >> extension=3Dxml.so >> extension=3Dzip.so >> extension=3Dzlib.so >> extension=3Dmemcache.so >> extension=3Dmemcached.so >> extension=3Dpdo_mysql.so >> extension=3Dpdo_pgsql.so >> extension=3Dphar.so >> extension=3Dwddx.so >> extension=3Dxmlrpc.so >> >> This is the contents of bak (the former contents of /usr/local/etc/php): >> $ ls bak >> ext-10-opcache.ini ext-20-intl.ini ext-20-sqlite3.ini >> ext-18-session.ini ext-20-json.ini ext-20-tokenizer.ini >> ext-20-bz2.ini ext-20-ldap.ini ext-20-xml.ini >> ext-20-ctype.ini ext-20-mbstring.ini ext-20-zip.ini >> ext-20-curl.ini ext-20-mcrypt.ini ext-20-zlib.ini >> ext-20-dom.ini ext-20-mysqli.ini ext-30-memcache.ini >> ext-20-fileinfo.ini ext-20-openssl.ini ext-30-memcached.ini >> ext-20-filter.ini ext-20-pdo.ini ext-30-pdo_mysql.ini >> ext-20-gd.ini ext-20-pgsql.ini ext-30-pdo_pgsql.ini >> ext-20-gettext.ini ext-20-simplexml.ini ext-30-phar.ini >> ext-20-hash.ini ext-20-soap.ini ext-30-wddx.ini >> ext-20-iconv.ini ext-20-sockets.ini ext-30-xmlrpc.ini >> >> >> These are the PHP packages I have installed, minus the web apps: >> $ pkg info -r php72 >> php72-7.2.17_2: >> php72-xml-7.2.17_2 >> php72-hash-7.2.17_2 >> php72-session-7.2.17_2 >> php72-openssl-7.2.17_2 >> php72-xmlrpc-7.2.17_2 >> php72-mysqli-7.2.17_2 >> php72-mbstring-7.2.17_2 >> php72-phar-7.2.17_2 >> php72-ctype-7.2.17_2 >> php72-tokenizer-7.2.17_2 >> php72-json-7.2.17_2 >> php72-filter-7.2.17_2 >> php72-gd-7.2.17_2 >> php72-zlib-7.2.17_2 >> php72-zip-7.2.17_2 >> php72-bz2-7.2.17_2 >> php72-iconv-7.2.17_2 >> php72-fileinfo-7.2.17_2 >> php72-pgsql-7.2.17_2 >> php72-opcache-7.2.17_2 >> php72-wddx-7.2.17_2 >> php72-simplexml-7.2.17_2 >> php72-dom-7.2.17_2 >> php72-pecl-mcrypt-1.0.2 >> php72-soap-7.2.17_2 >> php72-ldap-7.2.17_2 >> php72-curl-7.2.17_2 >> php72-sqlite3-7.2.17_2 >> php72-pdo-7.2.17_2 >> php72-memcache-4.0.3 >> php72-pecl-memcached-3.1.3 >> php72-sockets-7.2.17_2 >> php72-intl-7.2.17_2 >> php72-gettext-7.2.17_2 >> php72-pdo_pgsql-7.2.17_2 >> php72-pdo_mysql-7.2.17_2 >> >> >> >> -- >> Stefan Bethke Fon +49 151 14070811 >> >> Thank you so much, fellows! > > These are the extensions currently installed: > [@machine php #] pkg info -iqox php73 > lang/php73 > devel/php-composer > textproc/php73-ctype > ftp/php73-curl > security/php73-filter > security/php73-hash > devel/php73-intl > devel/php73-json > converters/php73-mbstring > www/php73-opcache > security/php73-openssl > archivers/php73-phar > > The fixphpextorder script did not work. So, I tried to change the order o= f > any extension that seemed to require openssl . Reading the coredump, I > supposed some lib was not finding openssl into the stack. > So I put curl.so below openssl.so , and now it works. > > [@machine php #] cat extensions.ini > extension=3Dctype.so > extension=3Dmbstring.so > extension=3Dfilter.so > extension=3Dopenssl.so > extension=3Dcurl.so > extension=3Dhash.so > ; additional extension(s) not known by fixphpextorder.sh > extension=3Dintl.so > extension=3Djson.so > extension=3Dphar.so > > Cheers, > > -- > Marcel Bonnet > > --=20 Marcel Bonnet github.com/marcelbonnet/