RHEL Engineering is moving the tracking of its product development work on RHEL 6 through RHEL 9 to Red Hat Jira (issues.redhat.com). If you're a Red Hat customer, please continue to file support cases via the Red Hat customer portal. If you're not, please head to the "RHEL project" in Red Hat Jira and file new tickets here. Individual Bugzilla bugs in the statuses "NEW", "ASSIGNED", and "POST" are being migrated throughout September 2023. Bugs of Red Hat partners with an assigned Engineering Partner Manager (EPM) are migrated in late September as per pre-agreed dates. Bugs against components "kernel", "kernel-rt", and "kpatch" are only migrated if still in "NEW" or "ASSIGNED". If you cannot log in to RH Jira, please consult article #7032570. That failing, please send an e-mail to the RH Jira admins at rh-issues@redhat.com to troubleshoot your issue as a user management inquiry. The email creates a ServiceNow ticket with Red Hat. Individual Bugzilla bugs that are migrated will be moved to status "CLOSED", resolution "MIGRATED", and set with "MigratedToJIRA" in "Keywords". The link to the successor Jira issue will be found under "Links", have a little "two-footprint" icon next to it, and direct you to the "RHEL project" in Red Hat Jira (issue links are of type "https://issues.redhat.com/browse/RHEL-XXXX", where "X" is a digit). This same link will be available in a blue banner at the top of the page informing you that that bug has been migrated.
Bug 1975437 - js-d3-flame-graph: FTBFS in Red Hat Enterprise Linux 9 CentOS Stream
Summary: js-d3-flame-graph: FTBFS in Red Hat Enterprise Linux 9 CentOS Stream
Keywords:
Status: CLOSED CURRENTRELEASE
Alias: None
Product: Red Hat Enterprise Linux 9
Classification: Red Hat
Component: js-d3-flame-graph
Version: CentOS Stream
Hardware: Unspecified
OS: Unspecified
unspecified
unspecified
Target Milestone: beta
: ---
Assignee: Andreas Gerstmayr
QA Contact: Jan Kurik
Apurva Bhide
URL:
Whiteboard:
: 1953085 (view as bug list)
Depends On:
Blocks: RHEL9BetaFTBFS
TreeView+ depends on / blocked
 
Reported: 2021-06-23 16:34 UTC by Mohan Boddu
Modified: 2021-12-07 21:46 UTC (History)
5 users (show)

Fixed In Version: js-d3-flame-graph-3.0.2-6.el9
Doc Type: No Doc Update
Doc Text:
Clone Of:
Environment:
Last Closed: 2021-12-07 21:44:43 UTC
Type: ---
Target Upstream Version:
Embargoed:


Attachments (Terms of Use)
build.log (8.42 KB, text/plain)
2021-06-23 16:34 UTC, Mohan Boddu
no flags Details
root.log (32.00 KB, text/plain)
2021-06-23 16:34 UTC, Mohan Boddu
no flags Details
state.log (1.13 KB, text/plain)
2021-06-23 16:34 UTC, Mohan Boddu
no flags Details

Description Mohan Boddu 2021-06-23 16:34:14 UTC
js-d3-flame-graph failed to build from source in Red Hat Enterprise Linux 9 CentOS Stream

https://kojihub.stream.rdu2.redhat.com//koji/taskinfo?taskID=324285


Please fix js-d3-flame-graph at your earliest convenience and set the bug's status to
ASSIGNED when you start fixing it.

Comment 1 Mohan Boddu 2021-06-23 16:34:17 UTC
Created attachment 1793544 [details]
build.log

Comment 2 Mohan Boddu 2021-06-23 16:34:19 UTC
Created attachment 1793545 [details]
root.log

file root.log too big, will only attach last 32768 bytes

Comment 3 Mohan Boddu 2021-06-23 16:34:20 UTC
Created attachment 1793546 [details]
state.log

Comment 4 Andreas Gerstmayr 2021-06-23 17:15:22 UTC
+ ./node_modules/webpack/bin/webpack.js --mode production
Error: error:0308010C:digital envelope routines::unsupported
    at new Hash (node:internal/crypto/hash:67:19)
    at Object.createHash (node:crypto:130:10)
    at module.exports (/builddir/build/BUILD/d3-flame-graph-3.0.2/node_modules/webpack/lib/util/createHash.js:135:53)
    at NormalModule._initBuildHash (/builddir/build/BUILD/d3-flame-graph-3.0.2/node_modules/webpack/lib/NormalModule.js:417:16)

  opensslErrorStack: [ 'error:03000086:digital envelope routines::initialization error' ],
  library: 'digital envelope routines',
  reason: 'unsupported',
  code: 'ERR_OSSL_EVP_UNSUPPORTED'


Looking at the webpack code (the JS bundler) [1] [2] [3], it's executing

    require("crypto").createHash("md4")

Does the Node.js/OpenSSL implementation in CentOS stream not support the md4 hash function anymore?
The js-d3-flame-graph package itself doesn't need any crypto or hash functions, I assume the hash function above is used in webpack internally for caching purposes or sth like that.

I guess I could just change the hash function, but as this is the default for webpack, the same error will affect most/all packages built with webpack?


[1] https://github.com/webpack/webpack/blob/v4.42.0/lib/NormalModule.js
[2] https://github.com/webpack/webpack/blob/v4.42.0/lib/util/createHash.js
[3] https://v4.webpack.js.org/configuration/output/#outputhashfunction

Cheers,
Andreas

Comment 5 Andreas Gerstmayr 2021-06-30 13:56:02 UTC
fyi: the RPM of the rebuild is 100% identical to the previous builds (only the build process changed)

Comment 9 Jan Kurik 2021-07-01 06:42:50 UTC
*** Bug 1953085 has been marked as a duplicate of this bug. ***

Comment 10 Martin Pitt 2021-09-20 14:08:29 UTC
agerstmayr incidentally I stumbled over the exact same failure in our cockpit starter-kit Fedora Rawhide build this morning:
https://download.copr.fedorainfracloud.org/results/packit/cockpit-project-starter-kit-494/fedora-rawhide-x86_64/02828853-cockpit-starter-kit/builder-live.log.gz
(from https://copr.fedorainfracloud.org/coprs/packit/cockpit-project-starter-kit-494/build/2828853/)

This must have regressed less than 4 days ago, as back then we still had an all-successful build:
https://github.com/cockpit-project/starter-kit/pull/492

This smells like a regression in npm/node with OpenSSL 3 (which explains why this this was also reported to happen on RHEL 9 for 389-console by Mark Reynolds). As your referenced erratum only contains a js-3d-flamegraph package, not an npm/node one, I take it you  found a workaround? Do you happen to have a pointer?

Thanks!

Comment 12 Martin Pitt 2021-09-21 06:00:58 UTC
Thanks Andreas! Unfortunately in current webpack 5 there are not two, but 21(!) hardcoded createHash("md4") places, see [1]. But at least I now have a pointer where to look.

[1] https://github.com/webpack/webpack/issues/13572#issuecomment-923653464

Comment 13 Martin Pitt 2021-09-21 08:02:58 UTC
For everyone who is following along here: I figured out a generic hack, see https://github.com/webpack/webpack/issues/13572#issuecomment-923736472

Comment 14 Andreas Gerstmayr 2021-09-21 14:25:55 UTC
(In reply to Martin Pitt from comment #12)
> Thanks Andreas! Unfortunately in current webpack 5 there are not two, but
> 21(!) hardcoded createHash("md4") places, see [1]. But at least I now have a
> pointer where to look.

afaics it depends on which Webpack plugins you're using, in the js-d3-flame-graph case I had to only patch this one occurrence (and set the config option).

> For everyone who is following along here: I figured out a generic hack, see https://github.com/webpack/webpack/issues/13572#issuecomment-923736472

That's a nice one, more robust than my hardcoded patch, which can break any time when updating webpack. I'll drop my static patch and integrate your patch in the next rebase :)


Note You need to log in before you can comment on or make changes to this bug.