Hi guys
Sorry as it seems to be related to the openssl version shipped with the docker hub image for php:7.2.19-alpine. I'm using the php:7.4-alpine image and it seems that the segfault is not showing again.
I've just found out that cURL is also failing with the segfault when querying the remote file.
/usr/src/myapp/dist $ curl "https://packages.drupal.org/8/packages.json" -vvv
* Trying 151.101.134.217:443...
* TCP_NODELAY set
* Connected to packages.drupal.org (151.101.134.217) port 443 (#0)
* ALPN, offering h2
* ALPN, offering http/1.1
* successfully set certificate verify locations:
* CAfile: /etc/ssl/certs/ca-certificates.crt
CApath: none
* TLSv1.3 (OUT), TLS handshake, Client hello (1):
* TLSv1.3 (IN), TLS handshake, Server hello (2):
* TLSv1.2 (IN), TLS handshake, Certificate (11):
* TLSv1.2 (IN), TLS handshake, Server key exchange (12):
* TLSv1.2 (IN), TLS handshake, Server finished (14):
* TLSv1.2 (OUT), TLS handshake, Client key exchange (16):
* TLSv1.2 (OUT), TLS change cipher, Change cipher spec (1):
* TLSv1.2 (OUT), TLS handshake, Finished (20):
* TLSv1.2 (IN), TLS handshake, Finished (20):
* SSL connection using TLSv1.2 / ECDHE-RSA-CHACHA20-POLY1305
* ALPN, server accepted to use h2
* Server certificate:
* subject: CN=*.drupal.org
* start date: May 13 20:50:13 2024 GMT
* expire date: Jun 14 20:50:12 2025 GMT
* subjectAltName: host "packages.drupal.org" matched cert's "*.drupal.org"
* issuer: C=BE; O=GlobalSign nv-sa; CN=GlobalSign Atlas R3 DV TLS CA 2024 Q2
* SSL certificate verify ok.
* Using HTTP2, server supports multi-use
* Connection state changed (HTTP/2 confirmed)
* Copying HTTP/2 data in stream buffer to connection buffer after upgrade: len=0
* Using Stream ID: 1 (easy handle 0xaaaad4b22220)
> GET /8/packages.json HTTP/2
> Host: packages.drupal.org
> User-Agent: curl/7.65.1
> Accept: */*
>
* Connection state changed (MAX_CONCURRENT_STREAMS == 100)!
Segmentation fault
I will investigate more if this is an issue of my dev platform or something related to OpenSSL.
"composer install" works just because there is a composer.lock file. It's what "composer create project" does.
The problem is that you cannot update with "composer update" or install additional plugins with "composer require", as it queries packages.drupal.org/8/packages.json and the file does not exist.
If I remove everything from drupal/recommended-project and just keep composer.json, the segfault arises again
/usr/src/myapp/dist $ composer install -vvv
Running 2.2.24 (2024-06-10 22:51:52) with PHP 7.2.19 on Linux / 6.10.4-linuxkit
Reading ./composer.json (/usr/src/myapp/dist/composer.json)
Loading config file ./composer.json (/usr/src/myapp/dist/composer.json)
Checked CA file /etc/pki/tls/certs/ca-bundle.crt does not exist or it is not a file.
Checked directory /etc/pki/tls/certs/ca-bundle.crt does not exist or it is not a directory.
Checked CA file /etc/ssl/certs/ca-certificates.crt: valid
Executing command (/usr/src/myapp/dist): git branch -a --no-color --no-abbrev -v
Executing command (/usr/src/myapp/dist): git describe --exact-match --tags
Executing command (CWD): git --version
Executing command (/usr/src/myapp/dist): git log --pretty="%H" -n1 HEAD
Executing command (/usr/src/myapp/dist): hg branch
Executing command (/usr/src/myapp/dist): fossil branch list
Executing command (/usr/src/myapp/dist): fossil tag list
Executing command (/usr/src/myapp/dist): svn info --xml
Failed to initialize global composer: Composer could not find the config file: /var/cache/composer/composer.json
No composer.lock file present. Updating dependencies to latest instead of installing from lock file. See https://getcomposer.org/install for more information.
Loading composer repositories with package information
Downloading https://packages.drupal.org/8/packages.json
Segmentation fault
Even without installing plugins
/usr/src/myapp/dist $ composer install --no-plugins -vvv
Running 2.2.24 (2024-06-10 22:51:52) with PHP 7.2.19 on Linux / 6.10.4-linuxkit
Reading ./composer.json (/usr/src/myapp/dist/composer.json)
Loading config file ./composer.json (/usr/src/myapp/dist/composer.json)
Checked CA file /etc/pki/tls/certs/ca-bundle.crt does not exist or it is not a file.
Checked directory /etc/pki/tls/certs/ca-bundle.crt does not exist or it is not a directory.
Checked CA file /etc/ssl/certs/ca-certificates.crt: valid
Executing command (/usr/src/myapp/dist): git branch -a --no-color --no-abbrev -v
Executing command (/usr/src/myapp/dist): git describe --exact-match --tags
Executing command (CWD): git --version
Executing command (/usr/src/myapp/dist): git log --pretty="%H" -n1 HEAD
Executing command (/usr/src/myapp/dist): hg branch
Executing command (/usr/src/myapp/dist): fossil branch list
Executing command (/usr/src/myapp/dist): fossil tag list
Executing command (/usr/src/myapp/dist): svn info --xml
Failed to initialize global composer: Composer could not find the config file: /var/cache/composer/composer.json
No composer.lock file present. Updating dependencies to latest instead of installing from lock file. See https://getcomposer.org/install for more information.
Loading composer repositories with package information
Downloading https://packages.drupal.org/8/packages.json
Segmentation fault
I guess that although using composer 2, the file https://packages.drupal.org/8/packages.json should be present.
Yes, I've followed the documentation from @bramdriesen, but as @drumm said, those modules like drupal/token do not exist on Packagist.
Does the https://packages.drupal.org/8 works with Composer 2? I've been trying yesterday all day long withouth success, I get a segmentation fault whenever I do any composer operation. How can I be sure that that repository is working with Composer 2?
Thanks!
Wow, this one hit me hard. I wasn't aware of the Composer 1 deprecation until my customer requested me to add a new module to its D8 installation for cookie management. Now I cannot bring up the site in my dev environment because https://packages.drupal.org/8/packages.json data has been removed.
I've tried everything I found in the documentation with no success. It's impossible to migrate to Composer2 because a lot of the D8 modules like drupal/token ( https://www.drupal.org/project/token/releases/8.x-1.10 → ) are non existing in packagist.
What is the way you'd recommend to go through? Should I download all the modules as ZIPs and try to set them up locally?
Thanks!