Continuation of #1052
I'll try to create a minimal reproduction soon. for now here's a profile what's happening in this test:
> pnpm i
> pnpm build
> pnpm test:teavm-wasm
see it force exits after 10s.
Statistical profiling result from .\isolate-000002CE513A1000-62360-v8.log, (650 ticks, 0 unaccounted, 0 excluded).
[Shared libraries]:
ticks total nonlib name
623 95.8% C:\WINDOWS\SYSTEM32\ntdll.dll
9 1.4% C:\Users\kriese\scoop\apps\nodejs-lts\current\node.exe
[JavaScript]:
ticks total nonlib name
12 1.8% 66.7% JS: *java.math.Division::monReduction
4 0.6% 22.2% JS: *java.math.Multiplication::square
1 0.2% 5.6% JS: *java.math.Multiplication::multPAP
1 0.2% 5.6% JS: *java.math.BitLevel::shiftRight
[C++]:
ticks total nonlib name
[Summary]:
ticks total nonlib name
18 2.8% 100.0% JavaScript
0 0.0% 0.0% C++
0 0.0% 0.0% GC
632 97.2% Shared libraries
[C++ entry points]:
ticks cpp total name
[Bottom up (heavy) profile]:
Note: percentage shows a share of a particular caller in the total
amount of its parent calls.
Callers occupying less than 1.0% are not shown.
ticks parent name
623 95.8% C:\WINDOWS\SYSTEM32\ntdll.dll
12 1.8% JS: *java.math.Division::monReduction
10 83.3% JS: java.math.Division::slidingWindow
10 100.0% JS: java.math.Division::oddModPow
10 100.0% JS: java.math.BigInteger::modPow
9 90.0% JS: org.bouncycastle.math.Primes::enhancedMRProbablePrimeTest
9 100.0% JS: org.bouncycastle.crypto.params.RSAKeyParameters::validate
1 10.0% JS: org.bouncycastle.crypto.engines.RSACoreEngine::processBlock
1 100.0% JS: org.bouncycastle.crypto.engines.RSABlindedEngine::processInput
2 16.7% JS: *java.math.Division::slidingWindow
2 100.0% JS: java.math.Division::oddModPow
2 100.0% JS: java.math.BigInteger::modPow
2 100.0% JS: org.bouncycastle.crypto.engines.RSACoreEngine::processBlock
2 100.0% JS: org.bouncycastle.crypto.engines.RSABlindedEngine::processInput
9 1.4% C:\Users\kriese\scoop\apps\nodejs-lts\current\node.exe
4 44.4% JS: ^compileForInternalLoader node:internal/bootstrap/realm:384:27
4 100.0% JS: ^requireBuiltin node:internal/bootstrap/realm:421:24
1 25.0% JS: ~getRandomValues node:internal/crypto/webcrypto:962:25
1 100.0% JS: ~<anonymous> :1:20
1 100.0% JS: java.security.SecureRandom::nextBytes
1 25.0% JS: ~<anonymous> node:internal/streams/compose:1:1
1 100.0% JS: ^compileForInternalLoader node:internal/bootstrap/realm:384:27
1 100.0% JS: ^requireBuiltin node:internal/bootstrap/realm:421:24
1 25.0% JS: ~<anonymous> node:internal/modules/esm/loader:1:1
1 100.0% JS: ^compileForInternalLoader node:internal/bootstrap/realm:384:27
1 100.0% JS: ^requireBuiltin node:internal/bootstrap/realm:421:24
1 25.0% JS: ~#createModuleJob node:internal/modules/esm/loader:616:19
1 100.0% JS: ~#getJobFromResolveResult node:internal/modules/esm/loader:337:27
1 100.0% JS: ~getModuleJobForImport node:internal/modules/esm/loader:309:30
3 33.3% C:\Users\kriese\scoop\apps\nodejs-lts\current\node.exe
1 33.3% JS: org.bouncycastle.math.raw.Nat::fromBigInteger
1 100.0% JS: org.bouncycastle.util.BigIntegers::modOddInverse
1 100.0% JS: org.bouncycastle.bcpg.RSASecretBCPGKey::<init>
1 100.0% JS: org.bouncycastle.openpgp.PGPSecretKey::extractPrivateKey
1 33.3% JS: org.bouncycastle.crypto.modes.CFBBlockCipher::getAlgorithmName
1 100.0% JS: org.bouncycastle.crypto.modes.CFBBlockCipher::getAlgorithmName@caller
1 100.0% JS: org.bouncycastle.crypto.DefaultBufferedBlockCipher::<init>
1 100.0% JS: org.bouncycastle.openpgp.operator.bc.BcUtil::createStreamCipher
1 33.3% C:\Users\kriese\scoop\apps\nodejs-lts\current\node.exe
1 100.0% JS: ~undestroy node:internal/streams/destroy:173:19
1 100.0% JS: ~initSocketHandle node:net:318:26
1 100.0% JS: ~Socket node:net:362:16
1 11.1% JS: ~load file:///C:/Users/kriese/projects/gh/renovatebot/pgp/dist/teavm/lib.wasm-runtime.js:736:20
1 100.0% C:\Users\kriese\scoop\apps\nodejs-lts\current\node.exe
Continuation of #1052
I'll try to create a minimal reproduction soon. for now here's a profile what's happening in this test:
see it force exits after 10s.