citgm icon indicating copy to clipboard operation
citgm copied to clipboard

Re-enable "got"

Open targos opened this issue 4 years ago • 9 comments

Skipped in https://github.com/nodejs/citgm/pull/795

Node.js v14.10.0 just broke the module: https://github.com/nodejs/node/issues/35116

targos avatar Sep 09 '20 06:09 targos

citgm got against v14.9.0: https://ci.nodejs.org/job/citgm-smoker-nobuild/935/

richardlau avatar Sep 09 '20 13:09 richardlau

https://ci.nodejs.org/job/citgm-smoker-pipeline/121/

richardlau avatar Sep 11 '20 01:09 richardlau

It looks like the tests are broken on macOS and flaky otherwise?

targos avatar Sep 11 '20 12:09 targos

Looks like it is flaky on AIX and Ubuntu1804. I've started another run just to check: https://ci.nodejs.org/job/citgm-smoker-pipeline/122/

For macOS, 10.14 is timing out. Our 10.14 macs appear to be generally slow -- I don't think we've worked out why as it should be the same set up (via Orka) as the 10.15 machines (cc @AshCripps).

It does look one test is broken on macOS 10.15:

   https.ts  https request with expired certificate
   Rejected promise returned by test. Reason:
   Error {
     message: `Invalid openssl exit code: 1
     % openssl x509 -req -sha256 -days -1 -in /Users/iojs/tmp/citgm_tmp/6c71821d-852e-4a26-b762-dc7f1362e6f3/npm_config_tmp/87d41d380a85709a673f0aefce00efbdf65bc57d -CA /Users/iojs/tmp/citgm_tmp/6c71821d-852e-4a26-b762-dc7f1362e6f3/npm_config_tmp/7041f249bfd7599593ca6502cafb16db1ed995a6 -CAkey /Users/iojs/tmp/citgm_tmp/6c71821d-852e-4a26-b762-dc7f1362e6f3/npm_config_tmp/96e139c0d53bb9187dadd0ab29b49d9eee663eb9 -CAcreateserial
     bad number of days: too small
     usage: x509 args
      -inform arg     - input format - default PEM (one of DER, NET or PEM)
      -outform arg    - output format - default PEM (one of DER, NET or PEM)
      -keyform arg    - private key format - default PEM
      -CAform arg     - CA format - default PEM
      -CAkeyform arg  - CA key format - default PEM
      -in arg         - input file - default stdin
      -out arg        - output file - default stdout
      -passin arg     - private key password source
      -serial         - print serial number value
      -subject_hash   - print subject hash value
      -subject_hash_old   - print old-style (MD5) subject hash value
      -issuer_hash    - print issuer hash value
      -issuer_hash_old    - print old-style (MD5) issuer hash value
      -hash           - synonym for -subject_hash
      -subject        - print subject DN
      -issuer         - print issuer DN
      -email          - print email address(es)
      -startdate      - notBefore field
      -enddate        - notAfter field
      -purpose        - print out certificate purposes
      -dates          - both Before and After dates
      -modulus        - print the RSA key modulus
      -pubkey         - output the public key
      -fingerprint    - print the certificate fingerprint
      -alias          - output certificate alias
      -noout          - no certificate output
      -ocspid         - print OCSP hash values for the subject name and public key
      -ocsp_uri       - print OCSP Responder URL(s)
      -trustout       - output a "trusted" certificate
      -clrtrust       - clear all trusted purposes
      -clrreject      - clear all rejected purposes
      -addtrust arg   - trust certificate for a given purpose
      -addreject arg  - reject certificate for a given purpose
      -setalias arg   - set certificate alias
      -days arg       - How long till expiry of a signed certificate - def 30 days
      -checkend arg   - check whether the cert expires in the next arg seconds
                        exit 1 if so, 0 if not
      -signkey arg    - self sign cert with arg
      -x509toreq      - output a certification request object
      -req            - input is a certificate request, sign and output.
      -CA arg         - set the CA certificate, must be PEM format.
      -CAkey arg      - set the CA key, must be PEM format
                        missing, it is assumed to be in the CA file.
      -CAcreateserial - create serial number file if it does not exist
      -CAserial arg   - serial file
      -set_serial     - serial number to use
      -text           - print the certificate in text form
      -C              - print out C code forms
      -md5/-sha1      - digest to use
      -extfile        - configuration file with X509V3 extensions to add
      -extensions     - section from config file with X509V3 extensions to add
      -clrext         - delete extensions before signing and input certificate
      -nameopt arg    - various certificate name options
      -certopt arg    - various certificate text options
     `,
   }
    -certopt arg    - various certificate text options
    done (node_modules/pem/lib/openssl.js:158:27)
    ChildProcess.<anonymous> (node_modules/pem/lib/openssl.js:175:7)
    maybeClose (internal/child_process.js:1047:16)
    Socket.<anonymous> (internal/child_process.js:438:11)

I think re-enabling with flaky on AIX and Ubuntu and skipping on macOS would be a good start.

richardlau avatar Sep 11 '20 13:09 richardlau

This PR should address nearly all the issues: https://github.com/sindresorhus/got/pull/1461

The only issue not resolved are:

  • The EOF errors on Node.JS v12 on aix71-ppc64: https://ci.nodejs.org/job/citgm-smoker-nobuild/nodes=aix71-ppc64/940/testReport/junit/(root)/citgm/got_v11_6_2/
  • The ERR_OSSL_ASN1_WRONG_TAG error on Node.JS v12 on ubuntu 18.04: https://ci.nodejs.org/job/citgm-smoker-nobuild/nodes=ubuntu1804-64/940/testReport/(root)/citgm/got_v11_6_2/

About the ERR_OSSL_ASN1_WRONG_TAG I don't know what happened, I'm unable to reproduce it in docker (ubuntu:bionic, Node.JS v12.18.3 and OpenSSL 1.1.1-1ubuntu2.1~18.04.6)

Giotino avatar Sep 11 '20 13:09 Giotino

@richardlau I've an update on the "compatibility" of Got with CITGM.

The current master branch of Got has the fixes needed to run on CITGM.

https://travis-ci.com/github/sindresorhus/got/builds/184382788 (we also tested it on older ubuntu versions and macOS 10.14, but we removed the tests from the CI).

The ERR_OSSL_ASN1_WRONG_TAG error seems to be a rare OpenSSL error (might be due to the pem module), in my testing I've never saw it before today (I re-ran the tests, without any modification, and it disappeared).

About the EOF errors on aix71-ppc64 currently I've no way of testing it, I think I could set-up something with QEMU...

Giotino avatar Sep 15 '20 13:09 Giotino

Another CI: https://ci.nodejs.org/job/citgm-smoker-pipeline/123/

richardlau avatar Sep 18 '20 11:09 richardlau

Another CI: ci.nodejs.org/job/citgm-smoker-pipeline/123

I see you ran CITGM on the NPM release of Got, but actually the fixes are only on the master branch, we have not yet released and update on NPM.

Giotino avatar Sep 18 '20 12:09 Giotino

CI: https://github.com/nodejs/citgm/actions/runs/629234453

targos avatar Mar 07 '21 09:03 targos