diff --git a/.kiro/specs/contributor-scan/pre-push-runtime-followup.md b/.kiro/specs/contributor-scan/pre-push-runtime-followup.md index 4a2b08a..481e143 100644 --- a/.kiro/specs/contributor-scan/pre-push-runtime-followup.md +++ b/.kiro/specs/contributor-scan/pre-push-runtime-followup.md @@ -89,3 +89,19 @@ The partial-census correction now preserves actual counts and missing filenames, with missing/empty/malformed census still preventing completed questions. Runtime amortization and VAmPI context/witness evidence remain open. Source: [Joern 4.0.625 AstGenRunner](https://raw.githubusercontent.com/joernio/joern/v4.0.625/joern-cli/frontends/jssrc2cpg/src/main/scala/io/joern/jssrc2cpg/utils/AstGenRunner.scala). + +## 2026-09-14 post-census measurement and lifecycle experiment + +The full new profile establishes compatible graph/query reuse on identical tips +(18.521–18.874s), but all 18 other transactions time out and 0/24 target checks complete. +The isolated local-session census probe is promising: four warm requests take 0.221–0.467s +versus 14.292s for disposable execution, with confirmed hanging-operation cancellation +and process-group reaping in 0.043s. Startup and load still cost 12.805s and 3.636s. +The first transport attempt correctly failed on HTTP success without a response payload; +all attempts are retained. No production session integration or query equivalence is claimed. + +[Remediation research](release-remediation-research.md) records the exact results and +the shared context-contract gaps: missing non-taint family producers, global vendor and +line-correspondence vetoes, and unresolved query-to-operation identity. Preserve the gaps +until actual question-owned dependency/correspondence evidence can resolve them. Task 8.3 +and independent qualification remain blocked; the alpha's eligibility remains disabled. diff --git a/.kiro/specs/contributor-scan/release-remediation-research.md b/.kiro/specs/contributor-scan/release-remediation-research.md new file mode 100644 index 0000000..24cedea --- /dev/null +++ b/.kiro/specs/contributor-scan/release-remediation-research.md @@ -0,0 +1,174 @@ +# Release remediation research — 2026-09-14 + +Status: investigation under the maintainer's instruction to continue towards release. +This record does not approve rollout, replace the existing design, or mark a production +remediation complete. The published candidate is `v1.2.0-alpha.1`, commit `04f8880`. + +## Summary + +Two independent constraints remain after task 2.19 restored Node's complete named census: +engine lifecycle cost and the scope of completeness evidence. A faster engine cannot +repair missing context; suppressing completeness gaps cannot prove useful detection. +Both belong in the existing contributor-scan boundary, with comparison/admission changes +owned by pre-push-safety-net. The ranker continues to select all analysis work. + +## Engine lifecycle investigation + +The earlier task 2.3 decision rejected server mode on the measured large C workload: +evaluation dominated its elapsed time. That decision remains valid for that measurement. +It does not establish the best lifecycle for small, frequently changed API repositories. + +The fresh Node priming transaction reopened the declared inputs and completed in 338.157s. +Its two frontends took 5.536s and 5.451s; overlays 15.779s and 15.239s; standalone census +13.716s and 13.708s. Each of eight query invocations took another 13.264–22.783s. These +are individual process receipts, not estimates of exclusive JVM startup time. The remaining +transaction time includes Python orchestration, cache publication and other work and must +not be attributed to the JVM without a separate measurement. + +The first identical-tip replay took 18.874s with two graph hits, 1,512 query hits, and no +engine subprocesses. Thus compatible persistence now works on this workload. Every head +question still has incomplete change context; base questions have `graph_incomplete` from +the vendor boundary described below. Identical-tip timing is not changed-code qualification. + +Joern documents a local interpreter server with synchronous and asynchronous query APIs: +[official server contract](https://docs.joern.io/server/). This supplies a candidate transport, +not a sandbox. Before adopting it, probe the actual pinned 4.0.625 image in a disposable, +network-disabled container with no published ports, a private graph copy and process-group +cleanup. Compare an actual named census against disposable script execution, record startup, +load and repeated request times separately, and test cancellation of an in-flight request. +A census microbenchmark cannot establish security-query equivalence or hook p95. + +### Completed lifecycle probe + +[Full receipts and all three instruments](../../../benchmarks/measurements/2026-09-14-joern-session-lifecycle.json) +retain the failed first attempt as well as both successful file-receipt attempts. +The first attempt received HTTP `success=true` with an empty stdout for the census; +the `println` payload went to the process log. It failed rather than interpreting that +response as a zero. The repaired instrument writes a fresh private result file per +request and checks a unique receipt before accepting its census. + +The final attempt reopened all 44 source files (95,411 bytes), verified the cached graph +digest, loaded a private copy, and matched names, counts and overlays against disposable +execution. It confirmed entry into a deliberately hanging operation before cancellation, +then verified the entire process group disappeared. The cached graph remained unchanged. + +| Final attempt phase | Observed seconds | +|---|---:| +| Disposable census invocation | 14.292 | +| Server startup through usable request | 12.805 | +| Graph load | 3.636 | +| First census request | 1.402 | +| Four warm census requests | 0.339, 0.467, 0.353, 0.221 | +| Kill and process-group reaping | 0.043 | + +Decision: a transaction-owned local session is a promising candidate for the owner +implementation. The adapter needs explicit request receipts; HTTP status alone is not +an answer contract. This probe does not cover full taint/dominance/config equivalence, +multiple graph epochs, concurrent transactions, overlays in-session or production +failure recovery. It neither overturns the large-C evaluation result nor proves 30s p95. + +### Completed full runtime profile + +The [post-census scorecard](../../../benchmarks/measurements/2026-09-14-nodegoat-post-census-feasibility.json) +and its compressed 115-file evidence bundle retain all 21 planned transactions plus +priming, raw scans, process traces, CLI output and exact instruments. All 22 scan artifacts +match the frozen runtime/core provenance; recomputing the scorecard reproduced its result. +There were no missing cases or instrument failures. Eighteen transactions timed out; +the three identical-tip cases took 18.521–18.874s. Completion remains 0/24 target checks; +maximum observed cancellation/report overrun was 0.8732s. Runtime and rollout remain NO-GO. + +Verification: seven runtime-scorecard tests pass; JSON/bundle round-trip, hashes, population, +provenance and scorecard recomputation pass. Production source is unchanged from the +released alpha; this is evidence validation, not a new full implementation verification. + +## Completeness diagnosis + +### Missing family context producer + +`model/scan.py:_evidence_pass` dispatches only taint queries and records their context by +the exact family-specific question identity. `affected_context` requires `context_summary` +and readable method extents for every question. Neither `dominance.sc` nor `config.sc` +exports that contract. Consequently access-control and configuration questions cannot +complete change context through the production path. This is deterministic missing +integration, not evidence that the ranker selected the wrong region. + +Do not copy taint context into other families: dominance deliberately evaluates sibling +operations across a file; configuration has different scope; source, sink and guard +summaries have different obligations. A producer must describe the actual scope of the +query it accompanies. Missing extents, unresolved external calls and unsupported reasoning +remain explicit. Context relationships alone never prove an exploitable flow or guard loss. + +### Exclusion is currently a global completion veto + +`model/partitions.py` records `vendor_semantics_unresolved` when it excludes any vendor +path. `model/scan.py` includes that reason in `graph_gaps`, changing every otherwise +completed outcome to `graph_incomplete`. In the fresh Node prime, this is the only base +degradation, despite a complete 44-file first-party census and successful query receipts. + +Vendor exclusion must remain physical. The missing contract is which question actually +requires excluded semantics. Distinguish input-integrity failures, which invalidate the +affected graph, from an excluded dependency whose relevance needs query evidence. Only +an explicit, complete dependency proof or versioned summary can discharge that question's +boundary; lack of a recorded dependency is not such proof. + +### Line ambiguity propagates beyond the affected correspondence + +`push/snapshot.py` conservatively omits non-unique unchanged lines and records a file-level +`ambiguous_line_correspondence`. `model/regions.py:affected_context` inherits any existing +boundary into every question. `push/policy.py:compare_evidence` also rejects a candidate +when any transaction context boundary exists. Repeated unchanged lines can therefore +invalidate an otherwise distinct, uniquely mapped operation elsewhere. + +Retain ambiguous mappings as unavailable. A future repair must bind the required base/head +correspondence to the specific operation and dependency context, with absent, renamed, +removed-guard and ambiguous-operation controls. Aggregate coverage must retain every gap. +Do not delete the ambiguity check or treat lexical alignment as a semantic proof. + +Comparison currently also requires all selected base questions to complete, no base +degradations, and no non-tier-zero deferred question. That prevents a complete target +comparison from surviving an unrelated unsupported family. Any amendment must establish +the complete base counterpart and its required scope explicitly; a missing raw finding +in an incomplete base scan cannot establish novelty. This change belongs to the push +comparison policy, consuming evidence ownership supplied by the shared scan contract. + +### Query identity and witness identity differ + +The Node contribution target is selected through a file-fallback injection question +(`function=None`), while raw rows report `2` at lines 32–34. The declared benchmark +target is `handleContributionsUpdate`. VAmPI similarly has a raw SQLI site without an exact +function target question. The benchmark correctly refuses exact-target completion today. +Production normalization must carry verified query-to-operation provenance; do not inject +benchmark function names into regions or change the denominator to count coincident sites. + +## Bounded remediation sequence + +1. Finish and preserve the unchanged seven-class runtime profile, including all failures. + Run the isolated lifecycle probe afterwards so the experiments do not contend for CPU. +2. Use those results to choose one engine lifecycle amendment. If a session is promising, + keep it transaction-owned inside the existing backend: one deadline, serialized requests, + explicit graph identity/epoch, private leases, failure poisoning, kill-and-reap cancellation, + and fresh census on each answer. No resident laptop service is implied. Compare every + shipped query kind with the disposable path before any production switch. +3. Specify question-owned completeness across scan and comparison boundaries. First add + authentic family context producers, then dependency/correspondence ownership, with paired + PHP/JavaScript normalized controls and VAmPI regressions. Unknown ownership remains a + blocker. A family that cannot provide this evidence stays experimental. +4. Refreeze runtime and semantic identities. Rerun changed-code latency/completion and the + independent reviewed vulnerable/fixed/benign populations together. Regenerate eligibility + only after the existing joint gates pass; then repeat packaged acceptance validation. + +This sequence separates runtime transport from evidence semantics. It adds no detector, +second IR, language-specific rank boost, vendor graph expansion or differential CPG mutation. + +## Verification needed for implementation + +| Boundary | Required evidence | +|---|---| +| `cpg/backend.py`, candidate local session transport | Actual pinned launch/API; full query equivalence; malformed/absent response; switched graph isolation; concurrent transactions; deadline, crash and orphan cleanup | +| `cpg/queries/{taint,dominance,config}.sc`, `model/scan.py` | Context from actual query scope; authentic per-family methods; answered-empty distinct from unavailable; unchanged rank decisions | +| `model/contracts.py`, `model/regions.py`, `model/partitions.py` | Explicit gap ownership; first-party input failures remain blocking; dependent vendor/unknown paths unresolved; unrelated exclusion never silently proves completeness | +| `push/snapshot.py`, `push/policy.py` | Exact operation correspondence; guard deletion; same-named and ambiguous operations; incomplete base cannot establish novelty; aggregate partial coverage retained | +| Evaluation and eligibility | Frozen identities and populations; unchanged 30s/2s and precision/recall/completion gates; no capability enabled by a microbenchmark | + +Production changes require task-local review and fresh ordinary scan gates, runtime smoke, +and downstream acceptance evidence. This research record is not that verification. diff --git a/.kiro/specs/pre-push-safety-net/spec.json b/.kiro/specs/pre-push-safety-net/spec.json index 07b4492..55fc69c 100644 --- a/.kiro/specs/pre-push-safety-net/spec.json +++ b/.kiro/specs/pre-push-safety-net/spec.json @@ -1,7 +1,7 @@ { "feature_name": "pre-push-safety-net", "created_at": "2026-09-12T15:35:00Z", - "updated_at": "2026-09-14T06:10:56.975614+00:00", + "updated_at": "2026-09-14T11:13:56.805180+00:00", "language": "en", "phase": "implementation", "approvals": { @@ -136,7 +136,7 @@ "blocked_tasks": [ "8.3" ], - "feasibility": "NO-GO: all 21 frozen NodeGoat transactions timed out; 0/24 declared target checks completed. Cancellation/reporting remained below 2 seconds. Priming did not qualify graph reuse; named census and engine lifecycle work routed to contributor-scan.", + "feasibility": "NO-GO: post-census profile measured all 21 cases; 18 timed out, three identical-tip replays completed in 18.521\u201318.874s with valid reuse; 0/24 target checks completed. Maximum cancellation/report overrun 0.874s. See 2026-09-14-nodegoat-post-census-feasibility.json.", "qualification": "NO-GO: eligibility implementation and evidence delivered; required independent populations and verified VAmPI transitive witness remain missing. Zero capabilities enabled.", "validation": { "decision": "NO-GO", @@ -149,7 +149,8 @@ "status": "VERIFIED", "record": "../contributor-scan/census-repair-verification.md", "effect": "Node 44/44 input census restored; partial/missing census remains explicitly unresolved. Existing eligibility stale; runtime/context/independent qualification remain NO-GO." - } + }, + "remediation_research": "../contributor-scan/release-remediation-research.md" }, "release": { "tag": "v1.2.0-alpha.1", diff --git a/.kiro/specs/pre-push-safety-net/status.md b/.kiro/specs/pre-push-safety-net/status.md index 976c989..6d5f1d9 100644 --- a/.kiro/specs/pre-push-safety-net/status.md +++ b/.kiro/specs/pre-push-safety-net/status.md @@ -21,11 +21,11 @@ gates and a packaged native PHP/JavaScript partition smoke. See ## Rollout blockers -1. **Useful checks within the deadline are unproven.** The last full representative - runtime profile timed out on all 21 Node transactions, completing 0/24 declared target - checks. Cancellation/reporting stayed below the two-second allowance. The subsequent - census repair is verified, but the full changed-code runtime/coverage profile has not - passed under its new identities. Amortize engine startup/loading work and rerun the +1. **Useful checks within the deadline are unproven.** The fresh post-census profile + completed all 21 measurements: all 18 changed/cold/growth/multi-ref transactions timed + out; the three identical-tip replays took 18.521–18.874s with valid graph/query reuse. + Still 0/24 declared target checks completed. Maximum observed cancellation/report + overrun was 0.874s, below the two-second allowance. Amortize engine startup/loading work and rerun the frozen seven-class profile; require warm p95 <=30s and >=95% completed supported checks. 2. **Target and change-context evidence remains incomplete.** VAmPI preserves raw findings at all three known sites, but the exact SQLI function question/transitive witness and @@ -60,5 +60,14 @@ quality evaluation and packaged hook validation. Keep task 8.3 unchecked and the in implementation until those mandatory results are established. Evidence: [group 8 validation](validation-group-8.md), -[runtime scorecard](../../../benchmarks/measurements/2026-09-13-nodegoat-feasibility.json), +[post-census runtime scorecard](../../../benchmarks/measurements/2026-09-14-nodegoat-post-census-feasibility.json), [census repair](../../../benchmarks/measurements/2026-09-14-node-census-repair.json). + +The owner investigation now distinguishes missing family context producers, globally +propagated vendor/correspondence gaps, and query-to-operation identity. See +[remediation research](../contributor-scan/release-remediation-research.md). These are +next implementation prerequisites, not completed fixes or changed acceptance gates. + +An isolated Joern session probe matched the full Node census with four warm requests in +0.221–0.467s and verified cancellation/reaping in 0.043s. It identifies a promising engine +lifecycle change; full-query equivalence and changed-code performance remain unverified. diff --git a/.kiro/steering/safety-net.md b/.kiro/steering/safety-net.md index bcd5b02..59881a1 100644 --- a/.kiro/steering/safety-net.md +++ b/.kiro/steering/safety-net.md @@ -120,3 +120,12 @@ questions. Native PHP/JavaScript partition smoke and 1321 tests pass. Runtime/co identity changed, so prior eligibility is stale and remains disabled. This repairs one shared prerequisite; pre-push 8.3, runtime amortization, VAmPI context/transitive evidence and independent qualification remain open. No ranker retune or rollout GO. + +The 2026-09-14 post-census profile now verifies identical-tip reuse (18.521–18.874s, +two graph hits and 1,512 query hits per repeat), while all 18 other transactions time +out and 0/24 target checks complete. The separate local-session census experiment is +promising but does not qualify security queries or hook latency. The contributor-scan +`release-remediation-research.md` records missing family context producers, global +vendor/correspondence completeness vetoes, and query-to-operation identity as the next +shared-contract work. Resolving a boundary requires evidence of its relevance and scope; +do not simply drop completeness checks to increase admissions. Rollout remains NO-GO. diff --git a/benchmarks/measurements/2026-09-14-joern-session-lifecycle.json b/benchmarks/measurements/2026-09-14-joern-session-lifecycle.json new file mode 100644 index 0000000..fc8ac01 --- /dev/null +++ b/benchmarks/measurements/2026-09-14-joern-session-lifecycle.json @@ -0,0 +1,1787 @@ +{ + "schema_version": 1, + "candidate_commit": "04f888019b4549853efb949c26adc7b0a24aadab", + "image": "sha256:e6f8dc6cc7547f7118bd058687de676e0fcf741799d1d3839b3e8648ce190fbb", + "scope": "Joern 4.0.625 census lifecycle only; no full-query equivalence, changed-code hook latency or capability qualification", + "environment": { + "network": "none", + "published_ports": [], + "server_host": "127.0.0.1", + "memory_limit_bytes": 3221225472, + "heap_mb": 1536, + "user": "1000", + "init_reaping": true + }, + "attempts": [ + { + "id": "v1", + "instrument": "\"\"\"Isolated lifecycle experiment; not a production backend or hook benchmark.\"\"\"\nimport hashlib\nimport json\nimport os\nfrom pathlib import Path\nimport signal\nimport socket\nimport subprocess\nimport tempfile\nimport time\nimport urllib.error\nimport urllib.request\n\nfrom openultrasast.cpg.backend import extract_payload\n\nOUT = Path('/results/session-probe-v1')\nOUT.mkdir(exist_ok=False)\nROOT = Path('/results/post-census-runtime-v1')\nrecord = {'schema_version': 1, 'purpose': 'census lifecycle only; no detector or hook qualification', 'requests': []}\n\ndef save():\n (OUT / 'result.json').write_text(json.dumps(record, indent=2) + '\\n')\n\ndef query(code, timeout=90):\n start = time.monotonic()\n request = urllib.request.Request('http://127.0.0.1:18081/query-sync', data=json.dumps({'query': code}).encode(), headers={'Content-Type': 'application/json'})\n with urllib.request.urlopen(request, timeout=timeout) as response:\n data = json.load(response)\n record['requests'].append({'seconds': time.monotonic()-start, 'query': code, 'response': data})\n save()\n assert data.get('success') is True or data.get('success') == 'true', data\n return data\n\nproc = None\ntry:\n graph = None\n for manifest in sorted((ROOT / 'artifacts').glob('*/manifest.json')):\n data = json.loads(manifest.read_bytes())\n meta = data.get('metadata', {})\n if meta.get('source_bytes') == 95411 and meta.get('completeness') == 'complete':\n graph = manifest.parent / 'payload'\n graph_bytes = graph.read_bytes()\n assert hashlib.sha256(graph_bytes).hexdigest() == data['sha256'] == meta['graph_digest']\n record['graph_manifest'] = data\n break\n assert graph is not None, 'no verified Node head graph'\n source = Path('/cache/nodegoat/c5cb68a7084e/app/routes/contributions.js')\n raw = source.read_bytes()\n assert raw\n record['input_probe'] = {'path': str(source), 'bytes': len(raw), 'sha256': hashlib.sha256(raw).hexdigest()}\n source_root = source.parents[2]\n sources = [(name, (source_root / name).read_bytes()) for name in record['graph_manifest']['metadata']['source_paths']]\n record['source_receipts'] = [{'path': name, 'bytes': len(raw), 'sha256': hashlib.sha256(raw).hexdigest()} for name, raw in sources]\n assert sum(len(raw) for _, raw in sources) == 95411\n record['graph_bytes'] = len(graph_bytes)\n print(json.dumps(record['input_probe']), flush=True)\n with tempfile.TemporaryDirectory(prefix='session-probe-') as scratch_name:\n scratch = Path(scratch_name)\n target = scratch / 'cpg.bin'\n target.write_bytes(graph_bytes)\n server_scratch = scratch / 'server'\n server_scratch.mkdir()\n env = dict(os.environ, JAVA_TOOL_OPTIONS='-Xmx1536m')\n start = time.monotonic()\n baseline = subprocess.run(['joern', '--script', '/app/src/openultrasast/cpg/queries/census.sc', '--param', f'cpgFile={target}'], cwd=scratch, env=env, capture_output=True, text=True, timeout=90)\n record['disposable_census'] = {'seconds': time.monotonic()-start, 'exit_code': baseline.returncode, 'stdout': baseline.stdout, 'stderr': baseline.stderr}\n save()\n assert baseline.returncode == 0, 'baseline process failed'\n expected = extract_payload(baseline.stdout)\n assert isinstance(expected, dict) and int(expected['files']) == 44 and int(expected['methods']) > 0, expected\n target.write_bytes(graph_bytes)\n log = (OUT / 'server.log').open('w')\n start = time.monotonic()\n proc = subprocess.Popen(['joern', '--server', '--server-host', '127.0.0.1', '--server-port', '18081'], cwd=server_scratch, env=env, stdout=log, stderr=subprocess.STDOUT, start_new_session=True)\n while True:\n assert proc.poll() is None, 'server exited during startup'\n try:\n with socket.create_connection(('127.0.0.1', 18081), timeout=0.2):\n pass\n break\n except OSError:\n if time.monotonic()-start > 90:\n raise TimeoutError('server startup')\n time.sleep(0.2)\n query('println(\"OUSAST_READY\")')\n record['server_startup_seconds'] = time.monotonic()-start\n query('importCpg(' + json.dumps(str(target)) + ')')\n expression = 'println(\"---OUSAST-CPG-BEGIN---\"); println(ujson.write(ujson.Obj(\"files\" -> cpg.file.size.toString, \"methods\" -> cpg.method.size.toString, \"calls\" -> cpg.call.size.toString, \"file_names\" -> ujson.Arr.from(cpg.file.name.l), \"overlays\" -> cpg.metaData.overlays.l.mkString(\",\")))); println(\"---OUSAST-CPG-END---\")'\n for i in range(5):\n answer = query(expression)\n actual = extract_payload(answer['stdout'])\n assert isinstance(actual, dict), actual\n for key in ('files', 'methods', 'calls', 'overlays'):\n assert actual[key] == expected[key], (key, actual, expected)\n assert sorted(actual['file_names']) == sorted(expected['file_names'])\n record['census_equivalent'] = True\n try:\n query('Thread.sleep(10000); println(\"SHOULD_NOT_FINISH\")', timeout=1)\n raise AssertionError('hanging request unexpectedly returned')\n except TimeoutError:\n pass\n start = time.monotonic()\n os.killpg(proc.pid, signal.SIGKILL)\n proc.wait(timeout=2)\n while True:\n try:\n os.killpg(proc.pid, 0)\n except ProcessLookupError:\n break\n if time.monotonic()-start > 2:\n raise AssertionError('process group survived cancellation')\n time.sleep(0.02)\n record['cancellation_seconds'] = time.monotonic()-start\n proc = None\n log.close()\n assert hashlib.sha256(graph.read_bytes()).hexdigest() == record['graph_manifest']['sha256']\n record['status'] = 'PASS_LIFECYCLE_PROBE_ONLY'\nexcept BaseException as exc:\n record['status'] = 'INSTRUMENT_FAILURE'\n record['error'] = repr(exc)\n raise\nfinally:\n if proc is not None and proc.poll() is None:\n os.killpg(proc.pid, signal.SIGKILL)\n proc.wait(timeout=2)\n save()\n", + "instrument_sha256": "967a26c9093ae4dbc4b036bc785172990c965a03755c0ba0c72f987fc757474d", + "result": { + "schema_version": 1, + "purpose": "census lifecycle only; no detector or hook qualification", + "requests": [ + { + "seconds": 0.4128529760055244, + "query": "println(\"OUSAST_READY\")", + "response": { + "success": true, + "stdout": "\u001b[33mlazy\u001b[0m \u001b[33mval\u001b[0m \u001b[36mgiven_Colors\u001b[0m: replpp.Colors\n\u001b[33mval\u001b[0m \u001b[36mresolver\u001b[0m: \u001b[32mICallResolver\u001b[0m = io.shiftleft.semanticcpg.language.NoResolve$@1dab94bc\n\u001b[33mval\u001b[0m \u001b[36mfinder\u001b[0m: \u001b[32mNodeExtensionFinder\u001b[0m = io.shiftleft.semanticcpg.language.DefaultNodeExtensionFinder$@61dac810\n\u001b[33mval\u001b[0m \u001b[36msarifConfig\u001b[0m: \u001b[32mSarifConfig\u001b[0m = SarifConfig(\n toolName = \"Joern\",\n toolFullName = Some(value = \"Joern - The Bug Hunter's Workbench\"),\n toolInformationUri = Some(value = https://joern.io),\n organization = Some(value = \"Joern.io\"),\n semanticVersion = None,\n sarifVersion = V2_1_0,\n resultConverter = io.shiftleft.semanticcpg.sarif.v2_1_0.JoernScanResultToSarifConverter@527c79f4,\n customSerializers = List(\n org.json4s.CustomSerializer@79a7e2a8,\n org.json4s.CustomSerializer@44573dd0,\n org.json4s.CustomSerializer@7675a11f,\n org.json4s.CustomSerializer@1b8a4c52,\n org.json4s.CustomSerializer@5d7e4f29,\n org.json4s.CustomSerializer@203a50eb,\n org.json4s.CustomSerializer@7b9c70aa,\n org.json4s.CustomSerializer@32bd5b57,\n org.json4s.CustomSerializer@1d955d2e\n )\n)\n// defined class OptsDynamic\n\u001b[33mval\u001b[0m \u001b[36mopts\u001b[0m: \u001b[32mOptsDynamic\u001b[0m = OptsDynamic@1ed37e51\ndef _diffGraph: DiffGraphBuilder\ndef diffGraph: DiffGraphBuilder\n// defined class OverlaysDynamic\n\u001b[33mval\u001b[0m \u001b[36mrun\u001b[0m: \u001b[32mOverlaysDynamic\u001b[0m = \n\u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u252c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510\n\u2502name \u2502description \u2502\n\u251c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2524\n\u2502dumpcpg14 \u2502Dump Code Property Graph (2014) to out/ \u2502\n\u2502dumpcdg \u2502Dump control dependence graph to out/ \u2502\n\u2502scan \u2502Joern Code Scanner \u2502\n\u2502commit \u2502Apply current custom diffgraph \u2502\n\u2502dumpddg \u2502Dump data dependence graphs to out/ \u2502\n\u2502base \u2502base layer (linked frontend CPG) \u2502\n\u2502controlflow \u2502Control flow layer (including dominators and CDG edges)\u2502\n\u2502dumpast \u2502Dump abstract syntax trees to out/ \u2502\n\u2502dumppdg \u2502Dump program dependence graph to out/ \u2502\n\u2502callgraph \u2502Call graph layer \u2502\n\u2502ossdataflow \u2502Layer to support the OSS lightweight data flow tracker \u2502\n\u2502dumpcfg \u2502Dump control flow graph to out/ \u2502\n\u2502typerelations\u2502Type relations layer (hierarchy and aliases) \u2502\n\u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518\n// defined class Helper\n\u001b[33mval\u001b[0m \u001b[36mhelp\u001b[0m: \u001b[32mHelper\u001b[0m = Welcome to the interactive help system. Below you find\na table of all available top-level commands. To get\nmore detailed help on a specific command, just type\n\n`help.`.\n\nTry `help.importCode` to begin with.\n\u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u252c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u252c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510\n\u2502command \u2502description \u2502example \u2502\n\u251c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2524\n\u2502close \u2502Close project by name \u2502close(projectName) \u2502\n\u2502cpg \u2502CPG of the active project \u2502cpg.method.l \u2502\n\u2502delete \u2502Close and remove project from disk \u2502delete(projectName) \u2502\n\u2502exit \u2502Exit the REPL \u2502 \u2502\n\u2502importCode \u2502Create new project from code \u2502importCode(\"example.jar\")\u2502\n\u2502importCpg \u2502Create new project from existing CPG \u2502importCpg(\"cpg.bin.zip\") \u2502\n\u2502open \u2502Open project by name \u2502open(\"projectName\") \u2502\n\u2502openForInputPath\u2502Open project for input path \u2502 \u2502\n\u2502project \u2502Currently active project \u2502project \u2502\n\u2502run \u2502Run analyzer on active CPG \u2502run.securityprofile \u2502\n\u2502save \u2502Write all changes to disk \u2502save \u2502\n\u2502switchWorkspace \u2502Close current workspace and open a different one\u2502 \u2502\n\u2502workspace \u2502Access to the workspace directory \u2502workspace \u2502\n\u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518\nossDataFlowOptions:\n io.joern.dataflowengineoss.layers.dataflows.OssDataFlowOptions = io.joern.dataflowengineoss.layers.dataflows.OssDataFlowOptions@7019ed73\n", + "uuid": "eb7f9d73-ce45-45af-bee4-103fb0d422ee" + } + }, + { + "seconds": 3.6644894930068403, + "query": "importCpg(\"/tmp/session-probe-8hw4bxz9/cpg.bin\")", + "response": { + "success": true, + "stdout": "\u001b[33mval\u001b[0m \u001b[36mres0\u001b[0m: \u001b[32mOption\u001b[0m[\u001b[32mCpg\u001b[0m] = Some(value = Cpg[Graph[19863 nodes]])\n", + "uuid": "1e0dcc16-a25d-4249-a20a-5920467419a2" + } + }, + { + "seconds": 1.382782840053551, + "query": "println(\"---OUSAST-CPG-BEGIN---\"); println(ujson.write(ujson.Obj(\"files\" -> cpg.file.size.toString, \"methods\" -> cpg.method.size.toString, \"calls\" -> cpg.call.size.toString, \"file_names\" -> ujson.Arr.from(cpg.file.name.l), \"overlays\" -> cpg.metaData.overlays.l.mkString(\",\")))); println(\"---OUSAST-CPG-END---\")", + "response": { + "success": true, + "stdout": "", + "uuid": "ff3cb3f7-59f5-4273-8694-39968c401d96" + } + } + ], + "graph_manifest": { + "complete": true, + "key": "07185611945033bf128c962ae71a70f1196345f9525ebaead472f62d6f045028", + "metadata": { + "census": { + "calls": 4134, + "files": 44, + "methods": 579 + }, + "completeness": "complete", + "diagnostics": [], + "graph_digest": "ecb311e3fe1fe500d8f6269916d5cf835a44db25318449750583fc8f3e6de462", + "identity": { + "declarations_digest": "285af83095d6e43bbb0b995cd46e7b65a109d715ec6b6a5fd4367dcea8c406fd", + "engine_version": "4.0.625", + "exclusions_digest": "eab75a523f55acc077e1024b46236ab585ee9e79a4e7563b0204dcab4fcc6183", + "frontend": "jssrc2cpg", + "frontend_options": [ + [ + "include_tests", + "True" + ], + [ + "include_build_configs", + "True" + ], + [ + "installation", + "c9860f63eb08efd404b60cd7d23c65798028f8684e915fe7472e1dc4763a23e5" + ], + [ + "java_options", + "default" + ] + ], + "frontend_version": "4.0.625", + "language": "javascript", + "overlay_options": [ + [ + "implementation", + "b1b5bf7b5609ea930a06addb404840b12b7c0e36cdd083ea0d11ede01f8f6647" + ] + ], + "overlay_semantics": [ + "dataflowOss" + ], + "source_digest": "dea287382ca0cf5074b9e85c7823792738bbc5c8bb8a3e4ed06ebc0a2cc13149", + "unit": "repository" + }, + "source_bytes": 95411, + "source_paths": [ + "Gruntfile.js", + "app/assets/js/chart/chart-data-morris.js", + "app/assets/js/tour/redirects-steps.js", + "app/data/allocations-dao.js", + "app/data/benefits-dao.js", + "app/data/contributions-dao.js", + "app/data/memos-dao.js", + "app/data/profile-dao.js", + "app/data/research-dao.js", + "app/data/user-dao.js", + "app/routes/allocations.js", + "app/routes/benefits.js", + "app/routes/contributions.js", + "app/routes/error.js", + "app/routes/index.js", + "app/routes/memos.js", + "app/routes/profile.js", + "app/routes/research.js", + "app/routes/session.js", + "app/routes/tutorial.js", + "artifacts/db-reset.js", + "config/config.js", + "config/env/all.js", + "config/env/development.js", + "config/env/production.js", + "config/env/test.js", + "server.js", + "test/e2e/integration/allocations_spec.js", + "test/e2e/integration/benefits_spec.js", + "test/e2e/integration/contributions_spec.js", + "test/e2e/integration/dashboard_spec.js", + "test/e2e/integration/general_spec.js", + "test/e2e/integration/learn_spec.js", + "test/e2e/integration/login_spec.js", + "test/e2e/integration/logout_spec.js", + "test/e2e/integration/memos_spec.js", + "test/e2e/integration/profile_spec.js", + "test/e2e/integration/research_spec.js", + "test/e2e/integration/signup_spec.js", + "test/e2e/integration/tutorial_spec.js", + "test/e2e/plugins/index.js", + "test/e2e/support/commands.js", + "test/e2e/support/index.js", + "test/security/profile-test.js" + ], + "source_root": "/tmp/ousast-input-iczx7vvd" + }, + "receipt": "297ca4188e5a0a00229097d4a9a44d8978a7be659890b900ae976186dbcf15dd", + "sha256": "ecb311e3fe1fe500d8f6269916d5cf835a44db25318449750583fc8f3e6de462", + "size": 727481, + "version": 1 + }, + "input_probe": { + "path": "/cache/nodegoat/c5cb68a7084e/app/routes/contributions.js", + "bytes": 2485, + "sha256": "196bdeaa22da4cfe8a851b1b932710b2fcedd21f14ed75d70b739ba759a01003" + }, + "source_receipts": [ + { + "path": "Gruntfile.js", + "bytes": 6359, + "sha256": "2e9fd032cbc6a5594d90c76448ce37b98be0f0d3ef7a66e6b4aabbc674293af6" + }, + { + "path": "app/assets/js/chart/chart-data-morris.js", + "bytes": 3718, + "sha256": "a5511ae7a5614f9f2dd89625bce94d6b794a675dae4987259d087a8d2e8e2693" + }, + { + "path": "app/assets/js/tour/redirects-steps.js", + "bytes": 648, + "sha256": "16babf9b88e186cb4e2a7ab896a78494f6d4a88737c903eb1e23e35579ac651b" + }, + { + "path": "app/data/allocations-dao.js", + "bytes": 3928, + "sha256": "c6aebc971ce7f9c8b2a8f0864a500497de25a3ea0318ef94ecd57cadf6e789ea" + }, + { + "path": "app/data/benefits-dao.js", + "bytes": 1240, + "sha256": "0ac30b097e016eeffb10e1c72d9c657153d3ce67e7b3f4756b2cb127d94181d7" + }, + { + "path": "app/data/contributions-dao.js", + "bytes": 2791, + "sha256": "363065e8b3c32f0997ce2dcb17341eb3e40b7f43b00b72c576dfebf73f551c85" + }, + { + "path": "app/data/memos-dao.js", + "bytes": 1107, + "sha256": "6582195bd913c2d60d63e9b519f9508a3319e07e158fd0c6f31dcbc50a80e8cf" + }, + { + "path": "app/data/profile-dao.js", + "bytes": 3506, + "sha256": "80429a5df579867401a59b1cbd9c1d74f88d5548780fbd909e9504876c1968cc" + }, + { + "path": "app/data/research-dao.js", + "bytes": 750, + "sha256": "f1cf267e56080fc94943ad7d83802b4e9db9420687fac49f84dbc0e45dfa88ac" + }, + { + "path": "app/data/user-dao.js", + "bytes": 4078, + "sha256": "577fb140933a50e010a4bbcb74e975f678d7f3a989467e4d113926f35c042e64" + }, + { + "path": "app/routes/allocations.js", + "bytes": 915, + "sha256": "b5b7da1a6b595799cf6cca402756dd9a3f6e2a8b5d712c1989d23b7f01f349a6" + }, + { + "path": "app/routes/benefits.js", + "bytes": 1340, + "sha256": "bc5516b35ba21884915b88b3f810441e616f068d8a0cf756b143185d5aeda2d2" + }, + { + "path": "app/routes/contributions.js", + "bytes": 2485, + "sha256": "196bdeaa22da4cfe8a851b1b932710b2fcedd21f14ed75d70b739ba759a01003" + }, + { + "path": "app/routes/error.js", + "bytes": 281, + "sha256": "452dc61f9f06a31ea4305edb2e573fc940428615841533b59320792fcfb6fb3f" + }, + { + "path": "app/routes/index.js", + "bytes": 3149, + "sha256": "3ab970b2888bc1501515db24a83cc7851ac9c09d00948c652300401515185eb5" + }, + { + "path": "app/routes/memos.js", + "bytes": 824, + "sha256": "c3543f308f24083436e25e3a72210ad31e611db5c93268d8dd0e340095e132c9" + }, + { + "path": "app/routes/profile.js", + "bytes": 3633, + "sha256": "18575bf3d3710906e57e09e6036e40fd3986bdcca436ed0e2a2875b41f0f2aca" + }, + { + "path": "app/routes/research.js", + "bytes": 1071, + "sha256": "e399f3c70436fa160f00835626bf50f88980268fcd143436af97c9d2297c1d92" + }, + { + "path": "app/routes/session.js", + "bytes": 10199, + "sha256": "e53e38b6eea76b026efaacde07f694e7a2eca005de4083fb74f9393d432a5b25" + }, + { + "path": "app/routes/tutorial.js", + "bytes": 637, + "sha256": "502e0b959b37cbc844d15eadd7a78a40b5281155fcf8d532f0e4abdd2fee8eb9" + }, + { + "path": "artifacts/db-reset.js", + "bytes": 4183, + "sha256": "df5d947ef23786683ab0d5f3c5ed5ef3f25ab93ce7610448c6db79b446168aa9" + }, + { + "path": "config/config.js", + "bytes": 487, + "sha256": "b84b1bf634159caffdef50fe826077e60dbde1e381ceb148ff3b869e789b6962" + }, + { + "path": "config/env/all.js", + "bytes": 365, + "sha256": "31a71288f0d830799da9c39e1b1ad10b0e989282bcf9a31bb48f8f618f37f6ad" + }, + { + "path": "config/env/development.js", + "bytes": 636, + "sha256": "1829bc509dcc6a6eb58b0eee49901df530b9cceafa2ed37e855beacec4971f08" + }, + { + "path": "config/env/production.js", + "bytes": 21, + "sha256": "8222b8169ee86f25cdccd84d340340060ae3f0cff55e2ea9d344d7c332733b71" + }, + { + "path": "config/env/test.js", + "bytes": 318, + "sha256": "b48cd5c17fc9639c1c4198fced69b438c2b0c7fe70e80f0113bcd0d86cd583a5" + }, + { + "path": "server.js", + "bytes": 4860, + "sha256": "48ec5e8f9668b230caf6af27f4a4ffbdcd8b702b376a6bbcc951217917c6ea2e" + }, + { + "path": "test/e2e/integration/allocations_spec.js", + "bytes": 1062, + "sha256": "d345f97bc2c3c9e559d98f3e108ab568303c7509dbe707c4cc49f811d5f94db7" + }, + { + "path": "test/e2e/integration/benefits_spec.js", + "bytes": 1228, + "sha256": "e4eb2765b08769e86b140dceee3091a5466da13933400272076b6de693b5cb71" + }, + { + "path": "test/e2e/integration/contributions_spec.js", + "bytes": 1160, + "sha256": "8504f4cbbe578b91f112b7effffb0e43823af9648c5b406ded5a0d65fb4bbde3" + }, + { + "path": "test/e2e/integration/dashboard_spec.js", + "bytes": 933, + "sha256": "96ef5e6d8b75787ac9a44fcd5f918cd3493680e74c70c45b381fe4416fa7f4f8" + }, + { + "path": "test/e2e/integration/general_spec.js", + "bytes": 2044, + "sha256": "5364de581df32c99964f63baa8486fcd32b922c9f327192f3a1e81ca6cd0ceff" + }, + { + "path": "test/e2e/integration/learn_spec.js", + "bytes": 471, + "sha256": "05e6bf11c5e773cd22861dbe18bced293024a7400c3a89b2c0e111bb88d8eaa1" + }, + { + "path": "test/e2e/integration/login_spec.js", + "bytes": 2377, + "sha256": "e1433dfab270ac3f7b32f4ee904d781c2bb2581804177a0cafc488f6c79efb25" + }, + { + "path": "test/e2e/integration/logout_spec.js", + "bytes": 737, + "sha256": "31ebf201e7d899baf8acd1d50c3fc4e42a5636c263982e5e517a1eaf3e35518f" + }, + { + "path": "test/e2e/integration/memos_spec.js", + "bytes": 991, + "sha256": "625a08e3c9f80cf46f3fe81c2acde3dc76d955bde10aa7c68498b6830b7a86b4" + }, + { + "path": "test/e2e/integration/profile_spec.js", + "bytes": 1509, + "sha256": "e22ce888656d18e020ca2775396e000cc899bdac255a1503f9af2c4ef18ffef0" + }, + { + "path": "test/e2e/integration/research_spec.js", + "bytes": 1108, + "sha256": "4e81ed0c2cf42da656217c1e38a35f9257d0a09467ffbe25d9d19930df05ed3a" + }, + { + "path": "test/e2e/integration/signup_spec.js", + "bytes": 1734, + "sha256": "27c56206888e1d664f852090ed943dc746638724743f7d5fb12d35e39136d22f" + }, + { + "path": "test/e2e/integration/tutorial_spec.js", + "bytes": 1819, + "sha256": "2664d921df2c716695df8c216e93b76a9b09376100ee8bc5c3f4354f0ebdb8a6" + }, + { + "path": "test/e2e/plugins/index.js", + "bytes": 788, + "sha256": "1fd870a6602782c27f87cd1aaaae24da269b20408612f718125b4471242f6e83" + }, + { + "path": "test/e2e/support/commands.js", + "bytes": 839, + "sha256": "967bdb0f97ec8277d952de4273c1bf2fcc000b1eb08de533a80e34157f65e499" + }, + { + "path": "test/e2e/support/index.js", + "bytes": 27, + "sha256": "a74243373740a95e3e3691087776e652ba954fcfd96130c4c374279a7310683d" + }, + { + "path": "test/security/profile-test.js", + "bytes": 13055, + "sha256": "17b6d02097d2fdfaebcdae31e70620fe691b5cabbcd99829d7c8d72ac3d4239a" + } + ], + "graph_bytes": 727481, + "disposable_census": { + "seconds": 15.415338277001865, + "exit_code": 0, + "stdout": "ERROR StatusConsoleListener Could not determine local host name\n java.net.UnknownHostException: fe09bc0236a4: fe09bc0236a4: Temporary failure in name resolution\n\tat java.base/java.net.InetAddress.getLocalHost(Unknown Source)\n\tat org.apache.logging.log4j.core.util.NetUtils.getLocalHostname(NetUtils.java:56)\n\tat org.apache.logging.log4j.core.LoggerContext.lambda$setConfiguration$0(LoggerContext.java:615)\n\tat java.base/java.util.concurrent.ConcurrentHashMap.computeIfAbsent(Unknown Source)\n\tat org.apache.logging.log4j.core.LoggerContext.setConfiguration(LoggerContext.java:615)\n\tat org.apache.logging.log4j.core.LoggerContext.reconfigure(LoggerContext.java:694)\n\tat org.apache.logging.log4j.core.LoggerContext.reconfigure(LoggerContext.java:711)\n\tat org.apache.logging.log4j.core.LoggerContext.start(LoggerContext.java:253)\n\tat org.apache.logging.log4j.core.impl.Log4jContextFactory.getContext(Log4jContextFactory.java:155)\n\tat org.apache.logging.log4j.core.impl.Log4jContextFactory.getContext(Log4jContextFactory.java:47)\n\tat org.apache.logging.log4j.LogManager.getContext(LogManager.java:196)\n\tat org.apache.logging.log4j.spi.AbstractLoggerAdapter.getContext(AbstractLoggerAdapter.java:137)\n\tat org.apache.logging.slf4j.Log4jLoggerFactory.getContext(Log4jLoggerFactory.java:61)\n\tat org.apache.logging.log4j.spi.AbstractLoggerAdapter.getLogger(AbstractLoggerAdapter.java:47)\n\tat org.apache.logging.slf4j.Log4jLoggerFactory.getLogger(Log4jLoggerFactory.java:33)\n\tat org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:447)\n\tat org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:472)\n\tat io.shiftleft.semanticcpg.sarif.SarifSchema$.(SarifSchema.scala:10)\n\tat io.shiftleft.semanticcpg.sarif.SarifConfig$.$lessinit$greater$default$8(SarifConfig.scala:38)\n\tat ScalaReplPP$.(wrapped-script12435363677634397242.sc:21)\n\tat ScalaReplPP.main(wrapped-script12435363677634397242.sc)\n\tat java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(Unknown Source)\n\tat java.base/java.lang.reflect.Method.invoke(Unknown Source)\n\tat replpp.scripting.ScriptingDriver.$anonfun$2(ScriptingDriver.scala:60)\n\tat replpp.util.SimpleDriver.compile$$anonfun$1(SimpleDriver.scala:81)\n\tat scala.util.Try$.apply(Try.scala:195)\n\tat replpp.util.SimpleDriver.compile(SimpleDriver.scala:83)\n\tat replpp.scripting.ScriptingDriver.compileAndRun(ScriptingDriver.scala:53)\n\tat replpp.scripting.NonForkingScriptRunner$.exec(NonForkingScriptRunner.scala:48)\n\tat replpp.scripting.NonForkingScriptRunner$.main(NonForkingScriptRunner.scala:21)\n\tat replpp.scripting.NonForkingScriptRunner.main(NonForkingScriptRunner.scala)\nCaused by: java.net.UnknownHostException: fe09bc0236a4: Temporary failure in name resolution\n\tat java.base/java.net.Inet6AddressImpl.lookupAllHostAddr(Native Method)\n\tat java.base/java.net.Inet6AddressImpl.lookupAllHostAddr(Unknown Source)\n\tat java.base/java.net.InetAddress$PlatformResolver.lookupByName(Unknown Source)\n\tat java.base/java.net.InetAddress.getAddressesFromNameService(Unknown Source)\n\tat java.base/java.net.InetAddress$NameServiceAddresses.get(Unknown Source)\n\tat java.base/java.net.InetAddress.getAllByName0(Unknown Source)\n\t... 31 more\n[INFO ] initialising from existing storage (/tmp/session-probe-8hw4bxz9/workspace/cpg.bin/cpg.bin.tmp)\n[INFO ] Start of pass: io.joern.x2cpg.frontendspecific.jssrc2cpg.JavaScriptInheritanceNamePass\n[INFO ] Pass io.joern.x2cpg.frontendspecific.jssrc2cpg.JavaScriptInheritanceNamePass completed in 41 ms (68% on mutations). 0 + 0 changes committed from 0 parts.\n[INFO ] Start of pass: io.joern.x2cpg.frontendspecific.jssrc2cpg.ConstClosurePass\n[INFO ] Pass io.joern.x2cpg.frontendspecific.jssrc2cpg.ConstClosurePass completed in 195 ms (9% on mutations). 39 + 0 changes committed from 1 parts.\n[INFO ] Start of pass: io.joern.x2cpg.frontendspecific.jssrc2cpg.JavaScriptImportResolverPass\n[INFO ] Pass io.joern.x2cpg.frontendspecific.jssrc2cpg.JavaScriptImportResolverPass completed in 146 ms (9% on mutations). 274 + 0 changes committed from 116 parts.\n[INFO ] Start of pass: io.joern.x2cpg.frontendspecific.jssrc2cpg.JavaScriptTypeRecovery\n[INFO ] Pass io.joern.x2cpg.frontendspecific.jssrc2cpg.JavaScriptTypeRecovery completed in 745 ms (6% on mutations). 3130 + 0 changes committed from 44 parts.\n[INFO ] Start of pass: io.joern.x2cpg.frontendspecific.jssrc2cpg.JavaScriptTypeRecovery\n[INFO ] Pass io.joern.x2cpg.frontendspecific.jssrc2cpg.JavaScriptTypeRecovery completed in 278 ms (9% on mutations). 3750 + 0 changes committed from 44 parts.\n[INFO ] Start of pass: io.joern.x2cpg.frontendspecific.jssrc2cpg.JavaScriptTypeHintCallLinker\n[INFO ] Pass io.joern.x2cpg.frontendspecific.jssrc2cpg.JavaScriptTypeHintCallLinker completed in 102 ms (15% on mutations). 272 + 0 changes committed from 1 parts.\n[INFO ] Start of pass: io.joern.x2cpg.frontendspecific.jssrc2cpg.ObjectPropertyCallLinker\n[INFO ] Pass io.joern.x2cpg.frontendspecific.jssrc2cpg.ObjectPropertyCallLinker completed in 29 ms (24% on mutations). 0 + 0 changes committed from 1 parts.\n[INFO ] Start of pass: io.joern.x2cpg.passes.callgraph.NaiveCallLinker\n[INFO ] Pass io.joern.x2cpg.passes.callgraph.NaiveCallLinker completed in 25 ms (21% on mutations). 42 + 0 changes committed from 1 parts.\n---OUSAST-CPG-BEGIN---\n{\"files\":\"44\",\"methods\":\"579\",\"calls\":\"4134\",\"file_names\":[\"Gruntfile.js\",\"app/assets/js/chart/chart-data-morris.js\",\"app/assets/js/tour/redirects-steps.js\",\"app/data/allocations-dao.js\",\"app/data/benefits-dao.js\",\"app/data/contributions-dao.js\",\"app/data/memos-dao.js\",\"app/data/profile-dao.js\",\"app/data/research-dao.js\",\"app/data/user-dao.js\",\"app/routes/allocations.js\",\"app/routes/benefits.js\",\"app/routes/contributions.js\",\"app/routes/error.js\",\"app/routes/index.js\",\"app/routes/memos.js\",\"app/routes/profile.js\",\"app/routes/research.js\",\"app/routes/session.js\",\"app/routes/tutorial.js\",\"artifacts/db-reset.js\",\"config/config.js\",\"config/env/all.js\",\"config/env/development.js\",\"config/env/production.js\",\"config/env/test.js\",\"server.js\",\"test/e2e/integration/allocations_spec.js\",\"test/e2e/integration/benefits_spec.js\",\"test/e2e/integration/contributions_spec.js\",\"test/e2e/integration/dashboard_spec.js\",\"test/e2e/integration/general_spec.js\",\"test/e2e/integration/learn_spec.js\",\"test/e2e/integration/login_spec.js\",\"test/e2e/integration/logout_spec.js\",\"test/e2e/integration/memos_spec.js\",\"test/e2e/integration/profile_spec.js\",\"test/e2e/integration/research_spec.js\",\"test/e2e/integration/signup_spec.js\",\"test/e2e/integration/tutorial_spec.js\",\"test/e2e/plugins/index.js\",\"test/e2e/support/commands.js\",\"test/e2e/support/index.js\",\"test/security/profile-test.js\"],\"overlays\":\"base,controlflow,typerel,callgraph,dataflowOss\",\"maxHeapMB\":\"1536\"}\n---OUSAST-CPG-END---\n[INFO ] writing to storage at `/tmp/session-probe-8hw4bxz9/workspace/cpg.bin/cpg.bin.tmp`\n[INFO ] closed graph at /tmp/session-probe-8hw4bxz9/workspace/cpg.bin/cpg.bin.tmp\n", + "stderr": "Picked up JAVA_TOOL_OPTIONS: -Xmx1536m\nPicked up JAVA_TOOL_OPTIONS: -Xmx1536m\nexecuting /app/src/openultrasast/cpg/queries/census.sc with params=Map(cpgFile -> /tmp/session-probe-8hw4bxz9/cpg.bin)\nCreating project `cpg.bin` for CPG at `/tmp/session-probe-8hw4bxz9/cpg.bin`\nCreating working copy of CPG to be safe\nLoading base CPG from: /tmp/session-probe-8hw4bxz9/workspace/cpg.bin/cpg.bin.tmp\nOverlay dataflowOss already exists - skipping\nThe graph has been modified. You may want to use the `save` command to persist changes to disk. All changes will also be saved collectively on exit\nclosing/saving project `cpg.bin`\n" + }, + "server_startup_seconds": 12.902201440068893, + "status": "INSTRUMENT_FAILURE", + "error": "AssertionError(None)" + }, + "server_log": "Picked up JAVA_TOOL_OPTIONS: -Xmx1536m\nERROR StatusConsoleListener Could not determine local host name\n java.net.UnknownHostException: fe09bc0236a4: fe09bc0236a4: Temporary failure in name resolution\n\tat java.base/java.net.InetAddress.getLocalHost(Unknown Source)\n\tat org.apache.logging.log4j.core.util.NetUtils.getLocalHostname(NetUtils.java:56)\n\tat org.apache.logging.log4j.core.LoggerContext.lambda$setConfiguration$0(LoggerContext.java:615)\n\tat java.base/java.util.concurrent.ConcurrentHashMap.computeIfAbsent(Unknown Source)\n\tat org.apache.logging.log4j.core.LoggerContext.setConfiguration(LoggerContext.java:615)\n\tat org.apache.logging.log4j.core.LoggerContext.reconfigure(LoggerContext.java:694)\n\tat org.apache.logging.log4j.core.LoggerContext.reconfigure(LoggerContext.java:711)\n\tat org.apache.logging.log4j.core.LoggerContext.start(LoggerContext.java:253)\n\tat org.apache.logging.log4j.core.impl.Log4jContextFactory.getContext(Log4jContextFactory.java:155)\n\tat org.apache.logging.log4j.core.impl.Log4jContextFactory.getContext(Log4jContextFactory.java:47)\n\tat org.apache.logging.log4j.LogManager.getContext(LogManager.java:196)\n\tat org.apache.logging.log4j.spi.AbstractLoggerAdapter.getContext(AbstractLoggerAdapter.java:137)\n\tat org.apache.logging.slf4j.Log4jLoggerFactory.getContext(Log4jLoggerFactory.java:61)\n\tat org.apache.logging.log4j.spi.AbstractLoggerAdapter.getLogger(AbstractLoggerAdapter.java:47)\n\tat org.apache.logging.slf4j.Log4jLoggerFactory.getLogger(Log4jLoggerFactory.java:33)\n\tat org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:447)\n\tat org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:472)\n\tat replpp.server.ReplServer$.(ReplServer.scala:16)\n\tat io.joern.console.ServerHandling.startHttpServer(BridgeBase.scala:477)\n\tat io.joern.console.ServerHandling.startHttpServer$(BridgeBase.scala:464)\n\tat io.joern.joerncli.console.ReplBridge$.startHttpServer(ReplBridge.scala:5)\n\tat io.joern.console.BridgeBase.run(BridgeBase.scala:239)\n\tat io.joern.console.BridgeBase.run$(BridgeBase.scala:55)\n\tat io.joern.joerncli.console.ReplBridge$.run(ReplBridge.scala:5)\n\tat io.joern.joerncli.console.ReplBridge$.main(ReplBridge.scala:10)\n\tat io.joern.joerncli.console.ReplBridge.main(ReplBridge.scala)\nCaused by: java.net.UnknownHostException: fe09bc0236a4: Temporary failure in name resolution\n\tat java.base/java.net.Inet6AddressImpl.lookupAllHostAddr(Native Method)\n\tat java.base/java.net.Inet6AddressImpl.lookupAllHostAddr(Unknown Source)\n\tat java.base/java.net.InetAddress$PlatformResolver.lookupByName(Unknown Source)\n\tat java.base/java.net.InetAddress.getAddressesFromNameService(Unknown Source)\n\tat java.base/java.net.InetAddress$NameServiceAddresses.get(Unknown Source)\n\tat java.base/java.net.InetAddress.getAllByName0(Unknown Source)\n\t... 26 more\nusing jar from inherited classpath: /opt/joern-cli/lib/org.scala-lang.tasty-core_3-3.8.3.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/org.apache.logging.log4j.log4j-core-2.20.0.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/com.fasterxml.jackson.core.jackson-core-2.17.2.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/io.joern.rubysrc2cpg-4.0.625.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/io.joern.dataflowengineoss-4.0.625.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/io.joern.flatgraph-formats_3-0.1.34.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/io.joern.flatgraph-odb-convert_3-0.1.34.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/com.lihaoyi.cask_3-0.9.5.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/com.lihaoyi.upickle-core_3-4.1.0.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/io.shiftleft.overflowdb-core_3-1.194.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/org.json4s.json4s-native_3-4.0.7.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/com.lihaoyi.castor_3-0.3.0.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/io.undertow.undertow-core-2.3.18.Final.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/io.joern.flatgraph-help_3-0.1.34.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/org.jboss.xnio.xnio-api-3.8.16.Final.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/org.msgpack.msgpack-core-0.9.1.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/commons-io.commons-io-2.22.0.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/org.wildfly.client.wildfly-client-config-1.0.1.Final.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/com.lihaoyi.fansi_3-0.5.1.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/org.apache.maven.maven-artifact-3.9.16.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/io.shiftleft.codepropertygraph-domain-classes_3-1.7.74.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/org.typelevel.cats-kernel_3-2.9.0.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/org.json4s.json4s-core_3-4.0.7.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/com.lihaoyi.geny_3-1.1.1.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/com.michaelpollmeier.scala-repl-pp_3.8.3-0.6.4.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/com.ibm.icu.icu4j-61.1.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/com.github.pathikrit.better-files_3-3.9.2.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/org.typelevel.cats-core_3-2.9.0.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/com.lihaoyi.upickle-implicits_3-4.0.2.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/org.antlr.ST4-4.1.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/org.typelevel.cats-effect-kernel_3-3.5.4.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/io.shiftleft.codepropertygraph-protos_3-1.7.74.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/org.scala-lang.modules.scala-xml_3-2.3.0.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/net.oneandone.reflections8.reflections8-0.11.7.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/org.glassfish.javax.json-1.0.4.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/org.antlr.antlr-runtime-3.5.2.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/org.json4s.json4s-scalap_3-4.0.7.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/com.lihaoyi.ujson_3-4.1.0.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/org.apache.commons.commons-compress-1.26.2.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/org.apache.logging.log4j.log4j-api-2.20.0.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/com.lihaoyi.upack_3-4.0.2.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/org.apache.commons.commons-exec-1.4.0.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/com.michaelpollmeier.versionsort-1.0.11.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/io.joern.semanticcpg-4.0.625.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/commons-codec.commons-codec-1.17.0.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/org.json4s.json4s-ast_3-4.0.7.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/org.typelevel.cats-effect_3-3.5.4.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/org.reflections.reflections-0.10.2.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/io.joern.flatgraph-core_3-0.1.34.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/org.scala-lang.scala3-repl_3-3.8.3.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/com.github.tototoshi.scala-csv_3-2.0.0.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/org.jboss.xnio.xnio-nio-3.8.16.Final.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/com.lihaoyi.cask-util_3-0.9.5.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/io.get-coursier.interface-1.0.28.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/org.scala-lang.scala3-library_3-3.8.3.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/io.joern.joern-cli-4.0.625.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/org.zeroturnaround.zt-zip-1.17.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/com.lihaoyi.upickle_3-4.0.2.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/com.lihaoyi.requests_3-0.8.0.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/org.javassist.javassist-3.28.0-GA.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/io.joern.console-4.0.625.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/org.apache.commons.commons-lang3-3.17.0.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/org.codehaus.plexus.plexus-utils-3.6.1.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/org.virtuslab.using_directives-1.1.4.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/org.java-websocket.Java-WebSocket-1.5.3.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/org.json4s.json4s-native-core_3-4.0.7.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/org.jruby.jruby-complete-9.4.15.0.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/org.slf4j.slf4j-api-2.0.17.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/org.jline.jline-terminal-3.29.0.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/org.jline.jline-terminal-jni-3.29.0.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/com.h2database.h2-mvstore-1.4.200.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/org.scala-sbt.util-interface-1.10.7.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/com.thoughtworks.paranamer.paranamer-2.8.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/com.lihaoyi.sourcecode_3-0.4.4.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/org.typelevel.cats-effect-std_3-3.5.4.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/com.michaelpollmeier.scala-repl-pp-server_3.8.3-0.6.4.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/io.shiftleft.codepropertygraph_3-1.7.74.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/com.github.luben.zstd-jni-1.5.7-11.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/com.lihaoyi.os-lib_3-0.10.1.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/org.antlr.antlr4-4.7.2.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/org.scala-lang.modules.scala-parallel-collections_3-1.0.4.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/org.apache.commons.commons-text-1.13.0.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/com.google.code.findbugs.jsr305-3.0.2.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/org.scala-lang.scala3-interfaces-3.8.3.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/com.google.protobuf.protobuf-java-3.20.1.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/io.joern.macros-4.0.625.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/org.jline.jline-native-3.29.0.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/com.michaelpollmeier.scala-repl-pp-shaded-libs_3-0.6.4.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/org.jboss.threads.jboss-threads-3.5.0.Final.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/net.sf.trove4j.core-3.1.0.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/org.abego.treelayout.org.abego.treelayout.core-1.0.3.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/org.wildfly.common.wildfly-common-1.5.4.Final.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/org.jline.jline-reader-3.29.0.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/com.typesafe.config-1.4.3.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/org.scala-lang.modules.scala-asm-9.9.0-scala-1.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/org.scala-lang.scala3-compiler_3-3.8.3.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/org.antlr.antlr4-runtime-4.7.2.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/com.lihaoyi.pprint_3-0.9.3.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/org.scala-sbt.compiler-interface-1.10.7.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/org.jboss.logging.jboss-logging-3.4.3.Final.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/com.github.scopt.scopt_3-4.1.0.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/io.spray.spray-json_3-1.3.6.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/org.scala-lang.scala-library-3.8.3.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/org.apache.logging.log4j.log4j-slf4j2-impl-2.20.0.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/io.joern.x2cpg-4.0.625.jar\nclasspath entries from config >\n/opt/joern-cli/lib/com.fasterxml.jackson.core.jackson-core-2.17.2.jar\n/opt/joern-cli/lib/com.github.luben.zstd-jni-1.5.7-11.jar\n/opt/joern-cli/lib/com.github.pathikrit.better-files_3-3.9.2.jar\n/opt/joern-cli/lib/com.github.scopt.scopt_3-4.1.0.jar\n/opt/joern-cli/lib/com.github.tototoshi.scala-csv_3-2.0.0.jar\n/opt/joern-cli/lib/com.google.code.findbugs.jsr305-3.0.2.jar\n/opt/joern-cli/lib/com.google.protobuf.protobuf-java-3.20.1.jar\n/opt/joern-cli/lib/com.h2database.h2-mvstore-1.4.200.jar\n/opt/joern-cli/lib/com.ibm.icu.icu4j-61.1.jar\n/opt/joern-cli/lib/com.lihaoyi.cask-util_3-0.9.5.jar\n/opt/joern-cli/lib/com.lihaoyi.cask_3-0.9.5.jar\n/opt/joern-cli/lib/com.lihaoyi.castor_3-0.3.0.jar\n/opt/joern-cli/lib/com.lihaoyi.fansi_3-0.5.1.jar\n/opt/joern-cli/lib/com.lihaoyi.geny_3-1.1.1.jar\n/opt/joern-cli/lib/com.lihaoyi.os-lib_3-0.10.1.jar\n/opt/joern-cli/lib/com.lihaoyi.pprint_3-0.9.3.jar\n/opt/joern-cli/lib/com.lihaoyi.requests_3-0.8.0.jar\n/opt/joern-cli/lib/com.lihaoyi.sourcecode_3-0.4.4.jar\n/opt/joern-cli/lib/com.lihaoyi.ujson_3-4.1.0.jar\n/opt/joern-cli/lib/com.lihaoyi.upack_3-4.0.2.jar\n/opt/joern-cli/lib/com.lihaoyi.upickle-core_3-4.1.0.jar\n/opt/joern-cli/lib/com.lihaoyi.upickle-implicits_3-4.0.2.jar\n/opt/joern-cli/lib/com.lihaoyi.upickle_3-4.0.2.jar\n/opt/joern-cli/lib/com.michaelpollmeier.scala-repl-pp-server_3.8.3-0.6.4.jar\n/opt/joern-cli/lib/com.michaelpollmeier.scala-repl-pp-shaded-libs_3-0.6.4.jar\n/opt/joern-cli/lib/com.michaelpollmeier.scala-repl-pp_3.8.3-0.6.4.jar\n/opt/joern-cli/lib/com.michaelpollmeier.versionsort-1.0.11.jar\n/opt/joern-cli/lib/com.thoughtworks.paranamer.paranamer-2.8.jar\n/opt/joern-cli/lib/com.typesafe.config-1.4.3.jar\n/opt/joern-cli/lib/commons-codec.commons-codec-1.17.0.jar\n/opt/joern-cli/lib/commons-io.commons-io-2.22.0.jar\n/opt/joern-cli/lib/io.get-coursier.interface-1.0.28.jar\n/opt/joern-cli/lib/io.joern.console-4.0.625.jar\n/opt/joern-cli/lib/io.joern.dataflowengineoss-4.0.625.jar\n/opt/joern-cli/lib/io.joern.flatgraph-core_3-0.1.34.jar\n/opt/joern-cli/lib/io.joern.flatgraph-formats_3-0.1.34.jar\n/opt/joern-cli/lib/io.joern.flatgraph-help_3-0.1.34.jar\n/opt/joern-cli/lib/io.joern.flatgraph-odb-convert_3-0.1.34.jar\n/opt/joern-cli/lib/io.joern.joern-cli-4.0.625.jar\n/opt/joern-cli/lib/io.joern.macros-4.0.625.jar\n/opt/joern-cli/lib/io.joern.rubysrc2cpg-4.0.625.jar\n/opt/joern-cli/lib/io.joern.semanticcpg-4.0.625.jar\n/opt/joern-cli/lib/io.joern.x2cpg-4.0.625.jar\n/opt/joern-cli/lib/io.shiftleft.codepropertygraph-domain-classes_3-1.7.74.jar\n/opt/joern-cli/lib/io.shiftleft.codepropertygraph-protos_3-1.7.74.jar\n/opt/joern-cli/lib/io.shiftleft.codepropertygraph_3-1.7.74.jar\n/opt/joern-cli/lib/io.shiftleft.overflowdb-core_3-1.194.jar\n/opt/joern-cli/lib/io.spray.spray-json_3-1.3.6.jar\n/opt/joern-cli/lib/io.undertow.undertow-core-2.3.18.Final.jar\n/opt/joern-cli/lib/net.oneandone.reflections8.reflections8-0.11.7.jar\n/opt/joern-cli/lib/net.sf.trove4j.core-3.1.0.jar\n/opt/joern-cli/lib/org.abego.treelayout.org.abego.treelayout.core-1.0.3.jar\n/opt/joern-cli/lib/org.antlr.ST4-4.1.jar\n/opt/joern-cli/lib/org.antlr.antlr-runtime-3.5.2.jar\n/opt/joern-cli/lib/org.antlr.antlr4-4.7.2.jar\n/opt/joern-cli/lib/org.antlr.antlr4-runtime-4.7.2.jar\n/opt/joern-cli/lib/org.apache.commons.commons-compress-1.26.2.jar\n/opt/joern-cli/lib/org.apache.commons.commons-exec-1.4.0.jar\n/opt/joern-cli/lib/org.apache.commons.commons-lang3-3.17.0.jar\n/opt/joern-cli/lib/org.apache.commons.commons-text-1.13.0.jar\n/opt/joern-cli/lib/org.apache.logging.log4j.log4j-api-2.20.0.jar\n/opt/joern-cli/lib/org.apache.logging.log4j.log4j-core-2.20.0.jar\n/opt/joern-cli/lib/org.apache.logging.log4j.log4j-slf4j2-impl-2.20.0.jar\n/opt/joern-cli/lib/org.apache.maven.maven-artifact-3.9.16.jar\n/opt/joern-cli/lib/org.codehaus.plexus.plexus-utils-3.6.1.jar\n/opt/joern-cli/lib/org.glassfish.javax.json-1.0.4.jar\n/opt/joern-cli/lib/org.java-websocket.Java-WebSocket-1.5.3.jar\n/opt/joern-cli/lib/org.javassist.javassist-3.28.0-GA.jar\n/opt/joern-cli/lib/org.jboss.logging.jboss-logging-3.4.3.Final.jar\n/opt/joern-cli/lib/org.jboss.threads.jboss-threads-3.5.0.Final.jar\n/opt/joern-cli/lib/org.jboss.xnio.xnio-api-3.8.16.Final.jar\n/opt/joern-cli/lib/org.jboss.xnio.xnio-nio-3.8.16.Final.jar\n/opt/joern-cli/lib/org.jline.jline-native-3.29.0.jar\n/opt/joern-cli/lib/org.jline.jline-reader-3.29.0.jar\n/opt/joern-cli/lib/org.jline.jline-terminal-3.29.0.jar\n/opt/joern-cli/lib/org.jline.jline-terminal-jni-3.29.0.jar\n/opt/joern-cli/lib/org.jruby.jruby-complete-9.4.15.0.jar\n/opt/joern-cli/lib/org.json4s.json4s-ast_3-4.0.7.jar\n/opt/joern-cli/lib/org.json4s.json4s-core_3-4.0.7.jar\n/opt/joern-cli/lib/org.json4s.json4s-native-core_3-4.0.7.jar\n/opt/joern-cli/lib/org.json4s.json4s-native_3-4.0.7.jar\n/opt/joern-cli/lib/org.json4s.json4s-scalap_3-4.0.7.jar\n/opt/joern-cli/lib/org.msgpack.msgpack-core-0.9.1.jar\n/opt/joern-cli/lib/org.reflections.reflections-0.10.2.jar\n/opt/joern-cli/lib/org.scala-lang.modules.scala-asm-9.9.0-scala-1.jar\n/opt/joern-cli/lib/org.scala-lang.modules.scala-parallel-collections_3-1.0.4.jar\n/opt/joern-cli/lib/org.scala-lang.modules.scala-xml_3-2.3.0.jar\n/opt/joern-cli/lib/org.scala-lang.scala-library-3.8.3.jar\n/opt/joern-cli/lib/org.scala-lang.scala3-compiler_3-3.8.3.jar\n/opt/joern-cli/lib/org.scala-lang.scala3-interfaces-3.8.3.jar\n/opt/joern-cli/lib/org.scala-lang.scala3-library_3-3.8.3.jar\n/opt/joern-cli/lib/org.scala-lang.scala3-repl_3-3.8.3.jar\n/opt/joern-cli/lib/org.scala-lang.tasty-core_3-3.8.3.jar\n/opt/joern-cli/lib/org.scala-sbt.compiler-interface-1.10.7.jar\n/opt/joern-cli/lib/org.scala-sbt.util-interface-1.10.7.jar\n/opt/joern-cli/lib/org.slf4j.slf4j-api-2.0.17.jar\n/opt/joern-cli/lib/org.typelevel.cats-core_3-2.9.0.jar\n/opt/joern-cli/lib/org.typelevel.cats-effect-kernel_3-3.5.4.jar\n/opt/joern-cli/lib/org.typelevel.cats-effect-std_3-3.5.4.jar\n/opt/joern-cli/lib/org.typelevel.cats-effect_3-3.5.4.jar\n/opt/joern-cli/lib/org.typelevel.cats-kernel_3-2.9.0.jar\n/opt/joern-cli/lib/org.virtuslab.using_directives-1.1.4.jar\n/opt/joern-cli/lib/org.wildfly.client.wildfly-client-config-1.0.1.Final.jar\n/opt/joern-cli/lib/org.wildfly.common.wildfly-common-1.5.4.Final.jar\n/opt/joern-cli/lib/org.zeroturnaround.zt-zip-1.17.jar\n< classpath entries from config\nERROR StatusConsoleListener Could not determine local host name\n java.net.UnknownHostException: fe09bc0236a4: fe09bc0236a4: Temporary failure in name resolution\n\tat java.base/java.net.InetAddress.getLocalHost(Unknown Source)\n\tat org.apache.logging.log4j.core.util.NetUtils.getLocalHostname(NetUtils.java:56)\n\tat org.apache.logging.log4j.core.LoggerContext.lambda$setConfiguration$0(LoggerContext.java:615)\n\tat java.base/java.util.concurrent.ConcurrentHashMap.computeIfAbsent(Unknown Source)\n\tat org.apache.logging.log4j.core.LoggerContext.setConfiguration(LoggerContext.java:615)\n\tat org.apache.logging.log4j.core.LoggerContext.reconfigure(LoggerContext.java:694)\n\tat org.apache.logging.log4j.core.LoggerContext.reconfigure(LoggerContext.java:711)\n\tat org.apache.logging.log4j.core.LoggerContext.start(LoggerContext.java:253)\n\tat org.apache.logging.log4j.core.impl.Log4jContextFactory.getContext(Log4jContextFactory.java:155)\n\tat org.apache.logging.log4j.core.impl.Log4jContextFactory.getContext(Log4jContextFactory.java:47)\n\tat org.apache.logging.log4j.LogManager.getContext(LogManager.java:196)\n\tat org.apache.logging.log4j.spi.AbstractLoggerAdapter.getContext(AbstractLoggerAdapter.java:137)\n\tat org.apache.logging.slf4j.Log4jLoggerFactory.getContext(Log4jLoggerFactory.java:61)\n\tat org.apache.logging.log4j.spi.AbstractLoggerAdapter.getLogger(AbstractLoggerAdapter.java:47)\n\tat org.apache.logging.slf4j.Log4jLoggerFactory.getLogger(Log4jLoggerFactory.java:33)\n\tat org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:447)\n\tat org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:472)\n\tat io.shiftleft.semanticcpg.sarif.SarifSchema$.(SarifSchema.scala:10)\n\tat io.shiftleft.semanticcpg.sarif.SarifConfig$.$lessinit$greater$default$8(SarifConfig.scala:38)\n\tat rs$line$1$.(rs$line$1:14)\n\tat rs$line$1.help(rs$line$1)\n\tat java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(Unknown Source)\n\tat java.base/java.lang.reflect.Method.invoke(Unknown Source)\n\tat replpp.Rendering.$anonfun$4(Rendering.scala:102)\n\tat scala.Option.flatMap(Option.scala:285)\n\tat replpp.Rendering.valueOf(Rendering.scala:102)\n\tat replpp.Rendering.renderVal(Rendering.scala:142)\n\tat replpp.DottyReplDriver.$anonfun$8(DottyReplDriver.scala:397)\n\tat scala.runtime.function.JProcedure1.apply(JProcedure1.java:15)\n\tat scala.runtime.function.JProcedure1.apply(JProcedure1.java:10)\n\tat scala.collection.immutable.List.foreach(List.scala:327)\n\tat replpp.DottyReplDriver.extractAndFormatMembers$1(DottyReplDriver.scala:397)\n\tat replpp.DottyReplDriver.renderDefinitions$$anonfun$2(DottyReplDriver.scala:435)\n\tat scala.Option.map(Option.scala:244)\n\tat replpp.DottyReplDriver.renderDefinitions(DottyReplDriver.scala:434)\n\tat replpp.DottyReplDriver.compile$$anonfun$2(DottyReplDriver.scala:339)\n\tat scala.util.Either.fold(Either.scala:199)\n\tat replpp.DottyReplDriver.compile(DottyReplDriver.scala:321)\n\tat replpp.DottyReplDriver.interpret(DottyReplDriver.scala:280)\n\tat replpp.ReplDriverBase.interpretInput(ReplDriverBase.scala:49)\n\tat replpp.server.ReplDriver.execute(EmbeddedRepl.scala:89)\n\tat replpp.server.EmbeddedRepl.(EmbeddedRepl.scala:30)\n\tat replpp.server.ReplServer$.startHttpServer(ReplServer.scala:27)\n\tat io.joern.console.ServerHandling.startHttpServer(BridgeBase.scala:483)\n\tat io.joern.console.ServerHandling.startHttpServer$(BridgeBase.scala:464)\n\tat io.joern.joerncli.console.ReplBridge$.startHttpServer(ReplBridge.scala:5)\n\tat io.joern.console.BridgeBase.run(BridgeBase.scala:239)\n\tat io.joern.console.BridgeBase.run$(BridgeBase.scala:55)\n\tat io.joern.joerncli.console.ReplBridge$.run(ReplBridge.scala:5)\n\tat io.joern.joerncli.console.ReplBridge$.main(ReplBridge.scala:10)\n\tat io.joern.joerncli.console.ReplBridge.main(ReplBridge.scala)\nCaused by: java.net.UnknownHostException: fe09bc0236a4: Temporary failure in name resolution\n\tat java.base/java.net.Inet6AddressImpl.lookupAllHostAddr(Native Method)\n\tat java.base/java.net.Inet6AddressImpl.lookupAllHostAddr(Unknown Source)\n\tat java.base/java.net.InetAddress$PlatformResolver.lookupByName(Unknown Source)\n\tat java.base/java.net.InetAddress.getAddressesFromNameService(Unknown Source)\n\tat java.base/java.net.InetAddress$NameServiceAddresses.get(Unknown Source)\n\tat java.base/java.net.InetAddress.getAllByName0(Unknown Source)\n\t... 51 more\nSep 14, 2026 11:13:49 AM org.jline.utils.Log logr\nWARNING: Unable to create a system terminal, creating a dumb terminal (enable debug logging for more information)\nSep 14, 2026 11:13:49 AM org.jline.utils.Log logr\nWARNING: Unable to create a system terminal, creating a dumb terminal (enable debug logging for more information)\nOUSAST_READY\nCreating project `cpg.bin` for CPG at `/tmp/session-probe-8hw4bxz9/cpg.bin`\nCreating working copy of CPG to be safe\nLoading base CPG from: /tmp/session-probe-8hw4bxz9/server/workspace/cpg.bin/cpg.bin.tmp\nOverlay dataflowOss already exists - skipping\nThe graph has been modified. You may want to use the `save` command to persist changes to disk. All changes will also be saved collectively on exit\n---OUSAST-CPG-BEGIN---\n{\"files\":\"44\",\"methods\":\"579\",\"calls\":\"4134\",\"file_names\":[\"Gruntfile.js\",\"app/assets/js/chart/chart-data-morris.js\",\"app/assets/js/tour/redirects-steps.js\",\"app/data/allocations-dao.js\",\"app/data/benefits-dao.js\",\"app/data/contributions-dao.js\",\"app/data/memos-dao.js\",\"app/data/profile-dao.js\",\"app/data/research-dao.js\",\"app/data/user-dao.js\",\"app/routes/allocations.js\",\"app/routes/benefits.js\",\"app/routes/contributions.js\",\"app/routes/error.js\",\"app/routes/index.js\",\"app/routes/memos.js\",\"app/routes/profile.js\",\"app/routes/research.js\",\"app/routes/session.js\",\"app/routes/tutorial.js\",\"artifacts/db-reset.js\",\"config/config.js\",\"config/env/all.js\",\"config/env/development.js\",\"config/env/production.js\",\"config/env/test.js\",\"server.js\",\"test/e2e/integration/allocations_spec.js\",\"test/e2e/integration/benefits_spec.js\",\"test/e2e/integration/contributions_spec.js\",\"test/e2e/integration/dashboard_spec.js\",\"test/e2e/integration/general_spec.js\",\"test/e2e/integration/learn_spec.js\",\"test/e2e/integration/login_spec.js\",\"test/e2e/integration/logout_spec.js\",\"test/e2e/integration/memos_spec.js\",\"test/e2e/integration/profile_spec.js\",\"test/e2e/integration/research_spec.js\",\"test/e2e/integration/signup_spec.js\",\"test/e2e/integration/tutorial_spec.js\",\"test/e2e/plugins/index.js\",\"test/e2e/support/commands.js\",\"test/e2e/support/index.js\",\"test/security/profile-test.js\"],\"overlays\":\"base,controlflow,typerel,callgraph,dataflowOss\"}\n---OUSAST-CPG-END---\n" + }, + { + "id": "v2", + "instrument": "\"\"\"Isolated lifecycle experiment; not a production backend or hook benchmark.\"\"\"\nimport hashlib\nimport json\nimport os\nfrom pathlib import Path\nimport signal\nimport socket\nimport subprocess\nimport tempfile\nimport time\nimport urllib.error\nimport urllib.request\n\nfrom openultrasast.cpg.backend import extract_payload\n\nOUT = Path('/results/session-probe-v2')\nOUT.mkdir(exist_ok=False)\nROOT = Path('/results/post-census-runtime-v1')\nrecord = {'schema_version': 1, 'purpose': 'census lifecycle only; no detector or hook qualification', 'requests': []}\n\ndef save():\n (OUT / 'result.json').write_text(json.dumps(record, indent=2) + '\\n')\n\ndef query(code, timeout=90):\n start = time.monotonic()\n request = urllib.request.Request('http://127.0.0.1:18081/query-sync', data=json.dumps({'query': code}).encode(), headers={'Content-Type': 'application/json'})\n with urllib.request.urlopen(request, timeout=timeout) as response:\n data = json.load(response)\n record['requests'].append({'seconds': time.monotonic()-start, 'query': code, 'response': data})\n save()\n assert data.get('success') is True or data.get('success') == 'true', data\n return data\n\nproc = None\ntry:\n graph = None\n for manifest in sorted((ROOT / 'artifacts').glob('*/manifest.json')):\n data = json.loads(manifest.read_bytes())\n meta = data.get('metadata', {})\n if meta.get('source_bytes') == 95411 and meta.get('completeness') == 'complete':\n graph = manifest.parent / 'payload'\n graph_bytes = graph.read_bytes()\n assert hashlib.sha256(graph_bytes).hexdigest() == data['sha256'] == meta['graph_digest']\n record['graph_manifest'] = data\n break\n assert graph is not None, 'no verified Node head graph'\n source = Path('/cache/nodegoat/c5cb68a7084e/app/routes/contributions.js')\n raw = source.read_bytes()\n assert raw\n record['input_probe'] = {'path': str(source), 'bytes': len(raw), 'sha256': hashlib.sha256(raw).hexdigest()}\n source_root = source.parents[2]\n sources = [(name, (source_root / name).read_bytes()) for name in record['graph_manifest']['metadata']['source_paths']]\n record['source_receipts'] = [{'path': name, 'bytes': len(raw), 'sha256': hashlib.sha256(raw).hexdigest()} for name, raw in sources]\n assert sum(len(raw) for _, raw in sources) == 95411\n record['graph_bytes'] = len(graph_bytes)\n print(json.dumps(record['input_probe']), flush=True)\n with tempfile.TemporaryDirectory(prefix='session-probe-') as scratch_name:\n scratch = Path(scratch_name)\n target = scratch / 'cpg.bin'\n target.write_bytes(graph_bytes)\n server_scratch = scratch / 'server'\n server_scratch.mkdir()\n env = dict(os.environ, JAVA_TOOL_OPTIONS='-Xmx1536m')\n start = time.monotonic()\n baseline = subprocess.run(['joern', '--script', '/app/src/openultrasast/cpg/queries/census.sc', '--param', f'cpgFile={target}'], cwd=scratch, env=env, capture_output=True, text=True, timeout=90)\n record['disposable_census'] = {'seconds': time.monotonic()-start, 'exit_code': baseline.returncode, 'stdout': baseline.stdout, 'stderr': baseline.stderr}\n save()\n assert baseline.returncode == 0, 'baseline process failed'\n expected = extract_payload(baseline.stdout)\n assert isinstance(expected, dict) and int(expected['files']) == 44 and int(expected['methods']) > 0, expected\n target.write_bytes(graph_bytes)\n log = (OUT / 'server.log').open('w')\n start = time.monotonic()\n proc = subprocess.Popen(['joern', '--server', '--server-host', '127.0.0.1', '--server-port', '18081'], cwd=server_scratch, env=env, stdout=log, stderr=subprocess.STDOUT, start_new_session=True)\n while True:\n assert proc.poll() is None, 'server exited during startup'\n try:\n with socket.create_connection(('127.0.0.1', 18081), timeout=0.2):\n pass\n break\n except OSError:\n if time.monotonic()-start > 90:\n raise TimeoutError('server startup')\n time.sleep(0.2)\n query('println(\"OUSAST_READY\")')\n record['server_startup_seconds'] = time.monotonic()-start\n query('importCpg(' + json.dumps(str(target)) + ')')\n for i in range(5):\n output = scratch / f'census-{i}.json'\n nonce = f'{proc.pid}:{i}'\n assert not output.exists()\n value = 'ujson.write(ujson.Obj(\"receipt\" -> ' + json.dumps(nonce) + ', \"files\" -> cpg.file.size.toString, \"methods\" -> cpg.method.size.toString, \"calls\" -> cpg.call.size.toString, \"file_names\" -> ujson.Arr.from(cpg.file.name.l), \"overlays\" -> cpg.metaData.overlays.l.mkString(\",\")))'\n query('java.nio.file.Files.writeString(java.nio.file.Path.of(' + json.dumps(str(output)) + '), ' + value + ')')\n actual = json.loads(output.read_bytes())\n record['requests'][-1]['file_receipt'] = actual\n assert isinstance(actual, dict), actual\n assert actual['receipt'] == nonce\n for key in ('files', 'methods', 'calls', 'overlays'):\n assert actual[key] == expected[key], (key, actual, expected)\n assert sorted(actual['file_names']) == sorted(expected['file_names'])\n record['census_equivalent'] = True\n try:\n query('Thread.sleep(10000); println(\"SHOULD_NOT_FINISH\")', timeout=1)\n raise AssertionError('hanging request unexpectedly returned')\n except TimeoutError:\n pass\n start = time.monotonic()\n os.killpg(proc.pid, signal.SIGKILL)\n proc.wait(timeout=2)\n while True:\n try:\n os.killpg(proc.pid, 0)\n except ProcessLookupError:\n break\n if time.monotonic()-start > 2:\n raise AssertionError('process group survived cancellation')\n time.sleep(0.02)\n record['cancellation_seconds'] = time.monotonic()-start\n proc = None\n log.close()\n assert hashlib.sha256(graph.read_bytes()).hexdigest() == record['graph_manifest']['sha256']\n record['status'] = 'PASS_LIFECYCLE_PROBE_ONLY'\nexcept BaseException as exc:\n record['status'] = 'INSTRUMENT_FAILURE'\n record['error'] = repr(exc)\n raise\nfinally:\n if proc is not None and proc.poll() is None:\n os.killpg(proc.pid, signal.SIGKILL)\n proc.wait(timeout=2)\n save()\n", + "instrument_sha256": "db72156f699930f9b86b2c0d16a27e77f518c99ccd31d66dab19e10ff6c65af4", + "result": { + "schema_version": 1, + "purpose": "census lifecycle only; no detector or hook qualification", + "requests": [ + { + "seconds": 0.2846673959866166, + "query": "println(\"OUSAST_READY\")", + "response": { + "success": true, + "stdout": "\u001b[33mlazy\u001b[0m \u001b[33mval\u001b[0m \u001b[36mgiven_Colors\u001b[0m: replpp.Colors\n\u001b[33mval\u001b[0m \u001b[36mresolver\u001b[0m: \u001b[32mICallResolver\u001b[0m = io.shiftleft.semanticcpg.language.NoResolve$@1dab94bc\n\u001b[33mval\u001b[0m \u001b[36mfinder\u001b[0m: \u001b[32mNodeExtensionFinder\u001b[0m = io.shiftleft.semanticcpg.language.DefaultNodeExtensionFinder$@61dac810\n\u001b[33mval\u001b[0m \u001b[36msarifConfig\u001b[0m: \u001b[32mSarifConfig\u001b[0m = SarifConfig(\n toolName = \"Joern\",\n toolFullName = Some(value = \"Joern - The Bug Hunter's Workbench\"),\n toolInformationUri = Some(value = https://joern.io),\n organization = Some(value = \"Joern.io\"),\n semanticVersion = None,\n sarifVersion = V2_1_0,\n resultConverter = io.shiftleft.semanticcpg.sarif.v2_1_0.JoernScanResultToSarifConverter@527c79f4,\n customSerializers = List(\n org.json4s.CustomSerializer@79a7e2a8,\n org.json4s.CustomSerializer@44573dd0,\n org.json4s.CustomSerializer@7675a11f,\n org.json4s.CustomSerializer@1b8a4c52,\n org.json4s.CustomSerializer@5d7e4f29,\n org.json4s.CustomSerializer@203a50eb,\n org.json4s.CustomSerializer@7b9c70aa,\n org.json4s.CustomSerializer@32bd5b57,\n org.json4s.CustomSerializer@1d955d2e\n )\n)\n// defined class OptsDynamic\n\u001b[33mval\u001b[0m \u001b[36mopts\u001b[0m: \u001b[32mOptsDynamic\u001b[0m = OptsDynamic@1ed37e51\ndef _diffGraph: DiffGraphBuilder\ndef diffGraph: DiffGraphBuilder\n// defined class OverlaysDynamic\n\u001b[33mval\u001b[0m \u001b[36mrun\u001b[0m: \u001b[32mOverlaysDynamic\u001b[0m = \n\u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u252c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510\n\u2502name \u2502description \u2502\n\u251c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2524\n\u2502dumpcpg14 \u2502Dump Code Property Graph (2014) to out/ \u2502\n\u2502dumpcdg \u2502Dump control dependence graph to out/ \u2502\n\u2502scan \u2502Joern Code Scanner \u2502\n\u2502commit \u2502Apply current custom diffgraph \u2502\n\u2502dumpddg \u2502Dump data dependence graphs to out/ \u2502\n\u2502base \u2502base layer (linked frontend CPG) \u2502\n\u2502controlflow \u2502Control flow layer (including dominators and CDG edges)\u2502\n\u2502dumpast \u2502Dump abstract syntax trees to out/ \u2502\n\u2502dumppdg \u2502Dump program dependence graph to out/ \u2502\n\u2502callgraph \u2502Call graph layer \u2502\n\u2502ossdataflow \u2502Layer to support the OSS lightweight data flow tracker \u2502\n\u2502dumpcfg \u2502Dump control flow graph to out/ \u2502\n\u2502typerelations\u2502Type relations layer (hierarchy and aliases) \u2502\n\u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518\n// defined class Helper\n\u001b[33mval\u001b[0m \u001b[36mhelp\u001b[0m: \u001b[32mHelper\u001b[0m = Welcome to the interactive help system. Below you find\na table of all available top-level commands. To get\nmore detailed help on a specific command, just type\n\n`help.`.\n\nTry `help.importCode` to begin with.\n\u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u252c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u252c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510\n\u2502command \u2502description \u2502example \u2502\n\u251c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2524\n\u2502close \u2502Close project by name \u2502close(projectName) \u2502\n\u2502cpg \u2502CPG of the active project \u2502cpg.method.l \u2502\n\u2502delete \u2502Close and remove project from disk \u2502delete(projectName) \u2502\n\u2502exit \u2502Exit the REPL \u2502 \u2502\n\u2502importCode \u2502Create new project from code \u2502importCode(\"example.jar\")\u2502\n\u2502importCpg \u2502Create new project from existing CPG \u2502importCpg(\"cpg.bin.zip\") \u2502\n\u2502open \u2502Open project by name \u2502open(\"projectName\") \u2502\n\u2502openForInputPath\u2502Open project for input path \u2502 \u2502\n\u2502project \u2502Currently active project \u2502project \u2502\n\u2502run \u2502Run analyzer on active CPG \u2502run.securityprofile \u2502\n\u2502save \u2502Write all changes to disk \u2502save \u2502\n\u2502switchWorkspace \u2502Close current workspace and open a different one\u2502 \u2502\n\u2502workspace \u2502Access to the workspace directory \u2502workspace \u2502\n\u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518\nossDataFlowOptions:\n io.joern.dataflowengineoss.layers.dataflows.OssDataFlowOptions = io.joern.dataflowengineoss.layers.dataflows.OssDataFlowOptions@7019ed73\n", + "uuid": "99fe40be-2b63-4ec5-bbbe-c4fa0d78522d" + } + }, + { + "seconds": 3.2794300430687144, + "query": "importCpg(\"/tmp/session-probe-6hk0u5l6/cpg.bin\")", + "response": { + "success": true, + "stdout": "\u001b[33mval\u001b[0m \u001b[36mres0\u001b[0m: \u001b[32mOption\u001b[0m[\u001b[32mCpg\u001b[0m] = Some(value = Cpg[Graph[19863 nodes]])\n", + "uuid": "86ad2255-4d31-4177-b6cd-be86950bbae5" + } + }, + { + "seconds": 1.2805163289885968, + "query": "java.nio.file.Files.writeString(java.nio.file.Path.of(\"/tmp/session-probe-6hk0u5l6/census-0.json\"), ujson.write(ujson.Obj(\"receipt\" -> \"108:0\", \"files\" -> cpg.file.size.toString, \"methods\" -> cpg.method.size.toString, \"calls\" -> cpg.call.size.toString, \"file_names\" -> ujson.Arr.from(cpg.file.name.l), \"overlays\" -> cpg.metaData.overlays.l.mkString(\",\"))))", + "response": { + "success": true, + "stdout": "\u001b[33mval\u001b[0m \u001b[36mres1\u001b[0m: java.nio.file.Path = /tmp/session-probe-6hk0u5l6/census-0.json\n", + "uuid": "24196931-f85b-4e66-96ff-714ca7b9cce2" + }, + "file_receipt": { + "receipt": "108:0", + "files": "44", + "methods": "579", + "calls": "4134", + "file_names": [ + "Gruntfile.js", + "app/assets/js/chart/chart-data-morris.js", + "app/assets/js/tour/redirects-steps.js", + "app/data/allocations-dao.js", + "app/data/benefits-dao.js", + "app/data/contributions-dao.js", + "app/data/memos-dao.js", + "app/data/profile-dao.js", + "app/data/research-dao.js", + "app/data/user-dao.js", + "app/routes/allocations.js", + "app/routes/benefits.js", + "app/routes/contributions.js", + "app/routes/error.js", + "app/routes/index.js", + "app/routes/memos.js", + "app/routes/profile.js", + "app/routes/research.js", + "app/routes/session.js", + "app/routes/tutorial.js", + "artifacts/db-reset.js", + "config/config.js", + "config/env/all.js", + "config/env/development.js", + "config/env/production.js", + "config/env/test.js", + "server.js", + "test/e2e/integration/allocations_spec.js", + "test/e2e/integration/benefits_spec.js", + "test/e2e/integration/contributions_spec.js", + "test/e2e/integration/dashboard_spec.js", + "test/e2e/integration/general_spec.js", + "test/e2e/integration/learn_spec.js", + "test/e2e/integration/login_spec.js", + "test/e2e/integration/logout_spec.js", + "test/e2e/integration/memos_spec.js", + "test/e2e/integration/profile_spec.js", + "test/e2e/integration/research_spec.js", + "test/e2e/integration/signup_spec.js", + "test/e2e/integration/tutorial_spec.js", + "test/e2e/plugins/index.js", + "test/e2e/support/commands.js", + "test/e2e/support/index.js", + "test/security/profile-test.js" + ], + "overlays": "base,controlflow,typerel,callgraph,dataflowOss" + } + }, + { + "seconds": 0.39168700901791453, + "query": "java.nio.file.Files.writeString(java.nio.file.Path.of(\"/tmp/session-probe-6hk0u5l6/census-1.json\"), ujson.write(ujson.Obj(\"receipt\" -> \"108:1\", \"files\" -> cpg.file.size.toString, \"methods\" -> cpg.method.size.toString, \"calls\" -> cpg.call.size.toString, \"file_names\" -> ujson.Arr.from(cpg.file.name.l), \"overlays\" -> cpg.metaData.overlays.l.mkString(\",\"))))", + "response": { + "success": true, + "stdout": "\u001b[33mval\u001b[0m \u001b[36mres2\u001b[0m: java.nio.file.Path = /tmp/session-probe-6hk0u5l6/census-1.json\n", + "uuid": "c0011f7c-c970-4f64-a0ac-62174a0e4fba" + }, + "file_receipt": { + "receipt": "108:1", + "files": "44", + "methods": "579", + "calls": "4134", + "file_names": [ + "Gruntfile.js", + "app/assets/js/chart/chart-data-morris.js", + "app/assets/js/tour/redirects-steps.js", + "app/data/allocations-dao.js", + "app/data/benefits-dao.js", + "app/data/contributions-dao.js", + "app/data/memos-dao.js", + "app/data/profile-dao.js", + "app/data/research-dao.js", + "app/data/user-dao.js", + "app/routes/allocations.js", + "app/routes/benefits.js", + "app/routes/contributions.js", + "app/routes/error.js", + "app/routes/index.js", + "app/routes/memos.js", + "app/routes/profile.js", + "app/routes/research.js", + "app/routes/session.js", + "app/routes/tutorial.js", + "artifacts/db-reset.js", + "config/config.js", + "config/env/all.js", + "config/env/development.js", + "config/env/production.js", + "config/env/test.js", + "server.js", + "test/e2e/integration/allocations_spec.js", + "test/e2e/integration/benefits_spec.js", + "test/e2e/integration/contributions_spec.js", + "test/e2e/integration/dashboard_spec.js", + "test/e2e/integration/general_spec.js", + "test/e2e/integration/learn_spec.js", + "test/e2e/integration/login_spec.js", + "test/e2e/integration/logout_spec.js", + "test/e2e/integration/memos_spec.js", + "test/e2e/integration/profile_spec.js", + "test/e2e/integration/research_spec.js", + "test/e2e/integration/signup_spec.js", + "test/e2e/integration/tutorial_spec.js", + "test/e2e/plugins/index.js", + "test/e2e/support/commands.js", + "test/e2e/support/index.js", + "test/security/profile-test.js" + ], + "overlays": "base,controlflow,typerel,callgraph,dataflowOss" + } + }, + { + "seconds": 0.22911434608977288, + "query": "java.nio.file.Files.writeString(java.nio.file.Path.of(\"/tmp/session-probe-6hk0u5l6/census-2.json\"), ujson.write(ujson.Obj(\"receipt\" -> \"108:2\", \"files\" -> cpg.file.size.toString, \"methods\" -> cpg.method.size.toString, \"calls\" -> cpg.call.size.toString, \"file_names\" -> ujson.Arr.from(cpg.file.name.l), \"overlays\" -> cpg.metaData.overlays.l.mkString(\",\"))))", + "response": { + "success": true, + "stdout": "\u001b[33mval\u001b[0m \u001b[36mres3\u001b[0m: java.nio.file.Path = /tmp/session-probe-6hk0u5l6/census-2.json\n", + "uuid": "593ec3a1-b391-4687-9d01-d673cbf1e922" + }, + "file_receipt": { + "receipt": "108:2", + "files": "44", + "methods": "579", + "calls": "4134", + "file_names": [ + "Gruntfile.js", + "app/assets/js/chart/chart-data-morris.js", + "app/assets/js/tour/redirects-steps.js", + "app/data/allocations-dao.js", + "app/data/benefits-dao.js", + "app/data/contributions-dao.js", + "app/data/memos-dao.js", + "app/data/profile-dao.js", + "app/data/research-dao.js", + "app/data/user-dao.js", + "app/routes/allocations.js", + "app/routes/benefits.js", + "app/routes/contributions.js", + "app/routes/error.js", + "app/routes/index.js", + "app/routes/memos.js", + "app/routes/profile.js", + "app/routes/research.js", + "app/routes/session.js", + "app/routes/tutorial.js", + "artifacts/db-reset.js", + "config/config.js", + "config/env/all.js", + "config/env/development.js", + "config/env/production.js", + "config/env/test.js", + "server.js", + "test/e2e/integration/allocations_spec.js", + "test/e2e/integration/benefits_spec.js", + "test/e2e/integration/contributions_spec.js", + "test/e2e/integration/dashboard_spec.js", + "test/e2e/integration/general_spec.js", + "test/e2e/integration/learn_spec.js", + "test/e2e/integration/login_spec.js", + "test/e2e/integration/logout_spec.js", + "test/e2e/integration/memos_spec.js", + "test/e2e/integration/profile_spec.js", + "test/e2e/integration/research_spec.js", + "test/e2e/integration/signup_spec.js", + "test/e2e/integration/tutorial_spec.js", + "test/e2e/plugins/index.js", + "test/e2e/support/commands.js", + "test/e2e/support/index.js", + "test/security/profile-test.js" + ], + "overlays": "base,controlflow,typerel,callgraph,dataflowOss" + } + }, + { + "seconds": 0.20450362900737673, + "query": "java.nio.file.Files.writeString(java.nio.file.Path.of(\"/tmp/session-probe-6hk0u5l6/census-3.json\"), ujson.write(ujson.Obj(\"receipt\" -> \"108:3\", \"files\" -> cpg.file.size.toString, \"methods\" -> cpg.method.size.toString, \"calls\" -> cpg.call.size.toString, \"file_names\" -> ujson.Arr.from(cpg.file.name.l), \"overlays\" -> cpg.metaData.overlays.l.mkString(\",\"))))", + "response": { + "success": true, + "stdout": "\u001b[33mval\u001b[0m \u001b[36mres4\u001b[0m: java.nio.file.Path = /tmp/session-probe-6hk0u5l6/census-3.json\n", + "uuid": "f5627e1b-ab8f-48d4-b77e-b45e81ad0b33" + }, + "file_receipt": { + "receipt": "108:3", + "files": "44", + "methods": "579", + "calls": "4134", + "file_names": [ + "Gruntfile.js", + "app/assets/js/chart/chart-data-morris.js", + "app/assets/js/tour/redirects-steps.js", + "app/data/allocations-dao.js", + "app/data/benefits-dao.js", + "app/data/contributions-dao.js", + "app/data/memos-dao.js", + "app/data/profile-dao.js", + "app/data/research-dao.js", + "app/data/user-dao.js", + "app/routes/allocations.js", + "app/routes/benefits.js", + "app/routes/contributions.js", + "app/routes/error.js", + "app/routes/index.js", + "app/routes/memos.js", + "app/routes/profile.js", + "app/routes/research.js", + "app/routes/session.js", + "app/routes/tutorial.js", + "artifacts/db-reset.js", + "config/config.js", + "config/env/all.js", + "config/env/development.js", + "config/env/production.js", + "config/env/test.js", + "server.js", + "test/e2e/integration/allocations_spec.js", + "test/e2e/integration/benefits_spec.js", + "test/e2e/integration/contributions_spec.js", + "test/e2e/integration/dashboard_spec.js", + "test/e2e/integration/general_spec.js", + "test/e2e/integration/learn_spec.js", + "test/e2e/integration/login_spec.js", + "test/e2e/integration/logout_spec.js", + "test/e2e/integration/memos_spec.js", + "test/e2e/integration/profile_spec.js", + "test/e2e/integration/research_spec.js", + "test/e2e/integration/signup_spec.js", + "test/e2e/integration/tutorial_spec.js", + "test/e2e/plugins/index.js", + "test/e2e/support/commands.js", + "test/e2e/support/index.js", + "test/security/profile-test.js" + ], + "overlays": "base,controlflow,typerel,callgraph,dataflowOss" + } + }, + { + "seconds": 0.22233186708763242, + "query": "java.nio.file.Files.writeString(java.nio.file.Path.of(\"/tmp/session-probe-6hk0u5l6/census-4.json\"), ujson.write(ujson.Obj(\"receipt\" -> \"108:4\", \"files\" -> cpg.file.size.toString, \"methods\" -> cpg.method.size.toString, \"calls\" -> cpg.call.size.toString, \"file_names\" -> ujson.Arr.from(cpg.file.name.l), \"overlays\" -> cpg.metaData.overlays.l.mkString(\",\"))))", + "response": { + "success": true, + "stdout": "\u001b[33mval\u001b[0m \u001b[36mres5\u001b[0m: java.nio.file.Path = /tmp/session-probe-6hk0u5l6/census-4.json\n", + "uuid": "d1c63313-c38a-42a0-87c4-8671c54fe0a6" + }, + "file_receipt": { + "receipt": "108:4", + "files": "44", + "methods": "579", + "calls": "4134", + "file_names": [ + "Gruntfile.js", + "app/assets/js/chart/chart-data-morris.js", + "app/assets/js/tour/redirects-steps.js", + "app/data/allocations-dao.js", + "app/data/benefits-dao.js", + "app/data/contributions-dao.js", + "app/data/memos-dao.js", + "app/data/profile-dao.js", + "app/data/research-dao.js", + "app/data/user-dao.js", + "app/routes/allocations.js", + "app/routes/benefits.js", + "app/routes/contributions.js", + "app/routes/error.js", + "app/routes/index.js", + "app/routes/memos.js", + "app/routes/profile.js", + "app/routes/research.js", + "app/routes/session.js", + "app/routes/tutorial.js", + "artifacts/db-reset.js", + "config/config.js", + "config/env/all.js", + "config/env/development.js", + "config/env/production.js", + "config/env/test.js", + "server.js", + "test/e2e/integration/allocations_spec.js", + "test/e2e/integration/benefits_spec.js", + "test/e2e/integration/contributions_spec.js", + "test/e2e/integration/dashboard_spec.js", + "test/e2e/integration/general_spec.js", + "test/e2e/integration/learn_spec.js", + "test/e2e/integration/login_spec.js", + "test/e2e/integration/logout_spec.js", + "test/e2e/integration/memos_spec.js", + "test/e2e/integration/profile_spec.js", + "test/e2e/integration/research_spec.js", + "test/e2e/integration/signup_spec.js", + "test/e2e/integration/tutorial_spec.js", + "test/e2e/plugins/index.js", + "test/e2e/support/commands.js", + "test/e2e/support/index.js", + "test/security/profile-test.js" + ], + "overlays": "base,controlflow,typerel,callgraph,dataflowOss" + } + } + ], + "graph_manifest": { + "complete": true, + "key": "07185611945033bf128c962ae71a70f1196345f9525ebaead472f62d6f045028", + "metadata": { + "census": { + "calls": 4134, + "files": 44, + "methods": 579 + }, + "completeness": "complete", + "diagnostics": [], + "graph_digest": "ecb311e3fe1fe500d8f6269916d5cf835a44db25318449750583fc8f3e6de462", + "identity": { + "declarations_digest": "285af83095d6e43bbb0b995cd46e7b65a109d715ec6b6a5fd4367dcea8c406fd", + "engine_version": "4.0.625", + "exclusions_digest": "eab75a523f55acc077e1024b46236ab585ee9e79a4e7563b0204dcab4fcc6183", + "frontend": "jssrc2cpg", + "frontend_options": [ + [ + "include_tests", + "True" + ], + [ + "include_build_configs", + "True" + ], + [ + "installation", + "c9860f63eb08efd404b60cd7d23c65798028f8684e915fe7472e1dc4763a23e5" + ], + [ + "java_options", + "default" + ] + ], + "frontend_version": "4.0.625", + "language": "javascript", + "overlay_options": [ + [ + "implementation", + "b1b5bf7b5609ea930a06addb404840b12b7c0e36cdd083ea0d11ede01f8f6647" + ] + ], + "overlay_semantics": [ + "dataflowOss" + ], + "source_digest": "dea287382ca0cf5074b9e85c7823792738bbc5c8bb8a3e4ed06ebc0a2cc13149", + "unit": "repository" + }, + "source_bytes": 95411, + "source_paths": [ + "Gruntfile.js", + "app/assets/js/chart/chart-data-morris.js", + "app/assets/js/tour/redirects-steps.js", + "app/data/allocations-dao.js", + "app/data/benefits-dao.js", + "app/data/contributions-dao.js", + "app/data/memos-dao.js", + "app/data/profile-dao.js", + "app/data/research-dao.js", + "app/data/user-dao.js", + "app/routes/allocations.js", + "app/routes/benefits.js", + "app/routes/contributions.js", + "app/routes/error.js", + "app/routes/index.js", + "app/routes/memos.js", + "app/routes/profile.js", + "app/routes/research.js", + "app/routes/session.js", + "app/routes/tutorial.js", + "artifacts/db-reset.js", + "config/config.js", + "config/env/all.js", + "config/env/development.js", + "config/env/production.js", + "config/env/test.js", + "server.js", + "test/e2e/integration/allocations_spec.js", + "test/e2e/integration/benefits_spec.js", + "test/e2e/integration/contributions_spec.js", + "test/e2e/integration/dashboard_spec.js", + "test/e2e/integration/general_spec.js", + "test/e2e/integration/learn_spec.js", + "test/e2e/integration/login_spec.js", + "test/e2e/integration/logout_spec.js", + "test/e2e/integration/memos_spec.js", + "test/e2e/integration/profile_spec.js", + "test/e2e/integration/research_spec.js", + "test/e2e/integration/signup_spec.js", + "test/e2e/integration/tutorial_spec.js", + "test/e2e/plugins/index.js", + "test/e2e/support/commands.js", + "test/e2e/support/index.js", + "test/security/profile-test.js" + ], + "source_root": "/tmp/ousast-input-iczx7vvd" + }, + "receipt": "297ca4188e5a0a00229097d4a9a44d8978a7be659890b900ae976186dbcf15dd", + "sha256": "ecb311e3fe1fe500d8f6269916d5cf835a44db25318449750583fc8f3e6de462", + "size": 727481, + "version": 1 + }, + "input_probe": { + "path": "/cache/nodegoat/c5cb68a7084e/app/routes/contributions.js", + "bytes": 2485, + "sha256": "196bdeaa22da4cfe8a851b1b932710b2fcedd21f14ed75d70b739ba759a01003" + }, + "source_receipts": [ + { + "path": "Gruntfile.js", + "bytes": 6359, + "sha256": "2e9fd032cbc6a5594d90c76448ce37b98be0f0d3ef7a66e6b4aabbc674293af6" + }, + { + "path": "app/assets/js/chart/chart-data-morris.js", + "bytes": 3718, + "sha256": "a5511ae7a5614f9f2dd89625bce94d6b794a675dae4987259d087a8d2e8e2693" + }, + { + "path": "app/assets/js/tour/redirects-steps.js", + "bytes": 648, + "sha256": "16babf9b88e186cb4e2a7ab896a78494f6d4a88737c903eb1e23e35579ac651b" + }, + { + "path": "app/data/allocations-dao.js", + "bytes": 3928, + "sha256": "c6aebc971ce7f9c8b2a8f0864a500497de25a3ea0318ef94ecd57cadf6e789ea" + }, + { + "path": "app/data/benefits-dao.js", + "bytes": 1240, + "sha256": "0ac30b097e016eeffb10e1c72d9c657153d3ce67e7b3f4756b2cb127d94181d7" + }, + { + "path": "app/data/contributions-dao.js", + "bytes": 2791, + "sha256": "363065e8b3c32f0997ce2dcb17341eb3e40b7f43b00b72c576dfebf73f551c85" + }, + { + "path": "app/data/memos-dao.js", + "bytes": 1107, + "sha256": "6582195bd913c2d60d63e9b519f9508a3319e07e158fd0c6f31dcbc50a80e8cf" + }, + { + "path": "app/data/profile-dao.js", + "bytes": 3506, + "sha256": "80429a5df579867401a59b1cbd9c1d74f88d5548780fbd909e9504876c1968cc" + }, + { + "path": "app/data/research-dao.js", + "bytes": 750, + "sha256": "f1cf267e56080fc94943ad7d83802b4e9db9420687fac49f84dbc0e45dfa88ac" + }, + { + "path": "app/data/user-dao.js", + "bytes": 4078, + "sha256": "577fb140933a50e010a4bbcb74e975f678d7f3a989467e4d113926f35c042e64" + }, + { + "path": "app/routes/allocations.js", + "bytes": 915, + "sha256": "b5b7da1a6b595799cf6cca402756dd9a3f6e2a8b5d712c1989d23b7f01f349a6" + }, + { + "path": "app/routes/benefits.js", + "bytes": 1340, + "sha256": "bc5516b35ba21884915b88b3f810441e616f068d8a0cf756b143185d5aeda2d2" + }, + { + "path": "app/routes/contributions.js", + "bytes": 2485, + "sha256": "196bdeaa22da4cfe8a851b1b932710b2fcedd21f14ed75d70b739ba759a01003" + }, + { + "path": "app/routes/error.js", + "bytes": 281, + "sha256": "452dc61f9f06a31ea4305edb2e573fc940428615841533b59320792fcfb6fb3f" + }, + { + "path": "app/routes/index.js", + "bytes": 3149, + "sha256": "3ab970b2888bc1501515db24a83cc7851ac9c09d00948c652300401515185eb5" + }, + { + "path": "app/routes/memos.js", + "bytes": 824, + "sha256": "c3543f308f24083436e25e3a72210ad31e611db5c93268d8dd0e340095e132c9" + }, + { + "path": "app/routes/profile.js", + "bytes": 3633, + "sha256": "18575bf3d3710906e57e09e6036e40fd3986bdcca436ed0e2a2875b41f0f2aca" + }, + { + "path": "app/routes/research.js", + "bytes": 1071, + "sha256": "e399f3c70436fa160f00835626bf50f88980268fcd143436af97c9d2297c1d92" + }, + { + "path": "app/routes/session.js", + "bytes": 10199, + "sha256": "e53e38b6eea76b026efaacde07f694e7a2eca005de4083fb74f9393d432a5b25" + }, + { + "path": "app/routes/tutorial.js", + "bytes": 637, + "sha256": "502e0b959b37cbc844d15eadd7a78a40b5281155fcf8d532f0e4abdd2fee8eb9" + }, + { + "path": "artifacts/db-reset.js", + "bytes": 4183, + "sha256": "df5d947ef23786683ab0d5f3c5ed5ef3f25ab93ce7610448c6db79b446168aa9" + }, + { + "path": "config/config.js", + "bytes": 487, + "sha256": "b84b1bf634159caffdef50fe826077e60dbde1e381ceb148ff3b869e789b6962" + }, + { + "path": "config/env/all.js", + "bytes": 365, + "sha256": "31a71288f0d830799da9c39e1b1ad10b0e989282bcf9a31bb48f8f618f37f6ad" + }, + { + "path": "config/env/development.js", + "bytes": 636, + "sha256": "1829bc509dcc6a6eb58b0eee49901df530b9cceafa2ed37e855beacec4971f08" + }, + { + "path": "config/env/production.js", + "bytes": 21, + "sha256": "8222b8169ee86f25cdccd84d340340060ae3f0cff55e2ea9d344d7c332733b71" + }, + { + "path": "config/env/test.js", + "bytes": 318, + "sha256": "b48cd5c17fc9639c1c4198fced69b438c2b0c7fe70e80f0113bcd0d86cd583a5" + }, + { + "path": "server.js", + "bytes": 4860, + "sha256": "48ec5e8f9668b230caf6af27f4a4ffbdcd8b702b376a6bbcc951217917c6ea2e" + }, + { + "path": "test/e2e/integration/allocations_spec.js", + "bytes": 1062, + "sha256": "d345f97bc2c3c9e559d98f3e108ab568303c7509dbe707c4cc49f811d5f94db7" + }, + { + "path": "test/e2e/integration/benefits_spec.js", + "bytes": 1228, + "sha256": "e4eb2765b08769e86b140dceee3091a5466da13933400272076b6de693b5cb71" + }, + { + "path": "test/e2e/integration/contributions_spec.js", + "bytes": 1160, + "sha256": "8504f4cbbe578b91f112b7effffb0e43823af9648c5b406ded5a0d65fb4bbde3" + }, + { + "path": "test/e2e/integration/dashboard_spec.js", + "bytes": 933, + "sha256": "96ef5e6d8b75787ac9a44fcd5f918cd3493680e74c70c45b381fe4416fa7f4f8" + }, + { + "path": "test/e2e/integration/general_spec.js", + "bytes": 2044, + "sha256": "5364de581df32c99964f63baa8486fcd32b922c9f327192f3a1e81ca6cd0ceff" + }, + { + "path": "test/e2e/integration/learn_spec.js", + "bytes": 471, + "sha256": "05e6bf11c5e773cd22861dbe18bced293024a7400c3a89b2c0e111bb88d8eaa1" + }, + { + "path": "test/e2e/integration/login_spec.js", + "bytes": 2377, + "sha256": "e1433dfab270ac3f7b32f4ee904d781c2bb2581804177a0cafc488f6c79efb25" + }, + { + "path": "test/e2e/integration/logout_spec.js", + "bytes": 737, + "sha256": "31ebf201e7d899baf8acd1d50c3fc4e42a5636c263982e5e517a1eaf3e35518f" + }, + { + "path": "test/e2e/integration/memos_spec.js", + "bytes": 991, + "sha256": "625a08e3c9f80cf46f3fe81c2acde3dc76d955bde10aa7c68498b6830b7a86b4" + }, + { + "path": "test/e2e/integration/profile_spec.js", + "bytes": 1509, + "sha256": "e22ce888656d18e020ca2775396e000cc899bdac255a1503f9af2c4ef18ffef0" + }, + { + "path": "test/e2e/integration/research_spec.js", + "bytes": 1108, + "sha256": "4e81ed0c2cf42da656217c1e38a35f9257d0a09467ffbe25d9d19930df05ed3a" + }, + { + "path": "test/e2e/integration/signup_spec.js", + "bytes": 1734, + "sha256": "27c56206888e1d664f852090ed943dc746638724743f7d5fb12d35e39136d22f" + }, + { + "path": "test/e2e/integration/tutorial_spec.js", + "bytes": 1819, + "sha256": "2664d921df2c716695df8c216e93b76a9b09376100ee8bc5c3f4354f0ebdb8a6" + }, + { + "path": "test/e2e/plugins/index.js", + "bytes": 788, + "sha256": "1fd870a6602782c27f87cd1aaaae24da269b20408612f718125b4471242f6e83" + }, + { + "path": "test/e2e/support/commands.js", + "bytes": 839, + "sha256": "967bdb0f97ec8277d952de4273c1bf2fcc000b1eb08de533a80e34157f65e499" + }, + { + "path": "test/e2e/support/index.js", + "bytes": 27, + "sha256": "a74243373740a95e3e3691087776e652ba954fcfd96130c4c374279a7310683d" + }, + { + "path": "test/security/profile-test.js", + "bytes": 13055, + "sha256": "17b6d02097d2fdfaebcdae31e70620fe691b5cabbcd99829d7c8d72ac3d4239a" + } + ], + "graph_bytes": 727481, + "disposable_census": { + "seconds": 13.442263594013639, + "exit_code": 0, + "stdout": "ERROR StatusConsoleListener Could not determine local host name\n java.net.UnknownHostException: 392c66d8f096: 392c66d8f096: Temporary failure in name resolution\n\tat java.base/java.net.InetAddress.getLocalHost(Unknown Source)\n\tat org.apache.logging.log4j.core.util.NetUtils.getLocalHostname(NetUtils.java:56)\n\tat org.apache.logging.log4j.core.LoggerContext.lambda$setConfiguration$0(LoggerContext.java:615)\n\tat java.base/java.util.concurrent.ConcurrentHashMap.computeIfAbsent(Unknown Source)\n\tat org.apache.logging.log4j.core.LoggerContext.setConfiguration(LoggerContext.java:615)\n\tat org.apache.logging.log4j.core.LoggerContext.reconfigure(LoggerContext.java:694)\n\tat org.apache.logging.log4j.core.LoggerContext.reconfigure(LoggerContext.java:711)\n\tat org.apache.logging.log4j.core.LoggerContext.start(LoggerContext.java:253)\n\tat org.apache.logging.log4j.core.impl.Log4jContextFactory.getContext(Log4jContextFactory.java:155)\n\tat org.apache.logging.log4j.core.impl.Log4jContextFactory.getContext(Log4jContextFactory.java:47)\n\tat org.apache.logging.log4j.LogManager.getContext(LogManager.java:196)\n\tat org.apache.logging.log4j.spi.AbstractLoggerAdapter.getContext(AbstractLoggerAdapter.java:137)\n\tat org.apache.logging.slf4j.Log4jLoggerFactory.getContext(Log4jLoggerFactory.java:61)\n\tat org.apache.logging.log4j.spi.AbstractLoggerAdapter.getLogger(AbstractLoggerAdapter.java:47)\n\tat org.apache.logging.slf4j.Log4jLoggerFactory.getLogger(Log4jLoggerFactory.java:33)\n\tat org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:447)\n\tat org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:472)\n\tat io.shiftleft.semanticcpg.sarif.SarifSchema$.(SarifSchema.scala:10)\n\tat io.shiftleft.semanticcpg.sarif.SarifConfig$.$lessinit$greater$default$8(SarifConfig.scala:38)\n\tat ScalaReplPP$.(wrapped-script8217499019605766643.sc:21)\n\tat ScalaReplPP.main(wrapped-script8217499019605766643.sc)\n\tat java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(Unknown Source)\n\tat java.base/java.lang.reflect.Method.invoke(Unknown Source)\n\tat replpp.scripting.ScriptingDriver.$anonfun$2(ScriptingDriver.scala:60)\n\tat replpp.util.SimpleDriver.compile$$anonfun$1(SimpleDriver.scala:81)\n\tat scala.util.Try$.apply(Try.scala:195)\n\tat replpp.util.SimpleDriver.compile(SimpleDriver.scala:83)\n\tat replpp.scripting.ScriptingDriver.compileAndRun(ScriptingDriver.scala:53)\n\tat replpp.scripting.NonForkingScriptRunner$.exec(NonForkingScriptRunner.scala:48)\n\tat replpp.scripting.NonForkingScriptRunner$.main(NonForkingScriptRunner.scala:21)\n\tat replpp.scripting.NonForkingScriptRunner.main(NonForkingScriptRunner.scala)\nCaused by: java.net.UnknownHostException: 392c66d8f096: Temporary failure in name resolution\n\tat java.base/java.net.Inet6AddressImpl.lookupAllHostAddr(Native Method)\n\tat java.base/java.net.Inet6AddressImpl.lookupAllHostAddr(Unknown Source)\n\tat java.base/java.net.InetAddress$PlatformResolver.lookupByName(Unknown Source)\n\tat java.base/java.net.InetAddress.getAddressesFromNameService(Unknown Source)\n\tat java.base/java.net.InetAddress$NameServiceAddresses.get(Unknown Source)\n\tat java.base/java.net.InetAddress.getAllByName0(Unknown Source)\n\t... 31 more\n[INFO ] initialising from existing storage (/tmp/session-probe-6hk0u5l6/workspace/cpg.bin/cpg.bin.tmp)\n[INFO ] Start of pass: io.joern.x2cpg.frontendspecific.jssrc2cpg.JavaScriptInheritanceNamePass\n[INFO ] Pass io.joern.x2cpg.frontendspecific.jssrc2cpg.JavaScriptInheritanceNamePass completed in 54 ms (56% on mutations). 0 + 0 changes committed from 0 parts.\n[INFO ] Start of pass: io.joern.x2cpg.frontendspecific.jssrc2cpg.ConstClosurePass\n[INFO ] Pass io.joern.x2cpg.frontendspecific.jssrc2cpg.ConstClosurePass completed in 198 ms (7% on mutations). 39 + 0 changes committed from 1 parts.\n[INFO ] Start of pass: io.joern.x2cpg.frontendspecific.jssrc2cpg.JavaScriptImportResolverPass\n[INFO ] Pass io.joern.x2cpg.frontendspecific.jssrc2cpg.JavaScriptImportResolverPass completed in 116 ms (11% on mutations). 274 + 0 changes committed from 116 parts.\n[INFO ] Start of pass: io.joern.x2cpg.frontendspecific.jssrc2cpg.JavaScriptTypeRecovery\n[INFO ] Pass io.joern.x2cpg.frontendspecific.jssrc2cpg.JavaScriptTypeRecovery completed in 694 ms (8% on mutations). 3130 + 0 changes committed from 44 parts.\n[INFO ] Start of pass: io.joern.x2cpg.frontendspecific.jssrc2cpg.JavaScriptTypeRecovery\n[INFO ] Pass io.joern.x2cpg.frontendspecific.jssrc2cpg.JavaScriptTypeRecovery completed in 379 ms (4% on mutations). 3750 + 0 changes committed from 44 parts.\n[INFO ] Start of pass: io.joern.x2cpg.frontendspecific.jssrc2cpg.JavaScriptTypeHintCallLinker\n[INFO ] Pass io.joern.x2cpg.frontendspecific.jssrc2cpg.JavaScriptTypeHintCallLinker completed in 91 ms (15% on mutations). 272 + 0 changes committed from 1 parts.\n[INFO ] Start of pass: io.joern.x2cpg.frontendspecific.jssrc2cpg.ObjectPropertyCallLinker\n[INFO ] Pass io.joern.x2cpg.frontendspecific.jssrc2cpg.ObjectPropertyCallLinker completed in 18 ms (10% on mutations). 0 + 0 changes committed from 1 parts.\n[INFO ] Start of pass: io.joern.x2cpg.passes.callgraph.NaiveCallLinker\n[INFO ] Pass io.joern.x2cpg.passes.callgraph.NaiveCallLinker completed in 16 ms (21% on mutations). 42 + 0 changes committed from 1 parts.\n---OUSAST-CPG-BEGIN---\n{\"files\":\"44\",\"methods\":\"579\",\"calls\":\"4134\",\"file_names\":[\"Gruntfile.js\",\"app/assets/js/chart/chart-data-morris.js\",\"app/assets/js/tour/redirects-steps.js\",\"app/data/allocations-dao.js\",\"app/data/benefits-dao.js\",\"app/data/contributions-dao.js\",\"app/data/memos-dao.js\",\"app/data/profile-dao.js\",\"app/data/research-dao.js\",\"app/data/user-dao.js\",\"app/routes/allocations.js\",\"app/routes/benefits.js\",\"app/routes/contributions.js\",\"app/routes/error.js\",\"app/routes/index.js\",\"app/routes/memos.js\",\"app/routes/profile.js\",\"app/routes/research.js\",\"app/routes/session.js\",\"app/routes/tutorial.js\",\"artifacts/db-reset.js\",\"config/config.js\",\"config/env/all.js\",\"config/env/development.js\",\"config/env/production.js\",\"config/env/test.js\",\"server.js\",\"test/e2e/integration/allocations_spec.js\",\"test/e2e/integration/benefits_spec.js\",\"test/e2e/integration/contributions_spec.js\",\"test/e2e/integration/dashboard_spec.js\",\"test/e2e/integration/general_spec.js\",\"test/e2e/integration/learn_spec.js\",\"test/e2e/integration/login_spec.js\",\"test/e2e/integration/logout_spec.js\",\"test/e2e/integration/memos_spec.js\",\"test/e2e/integration/profile_spec.js\",\"test/e2e/integration/research_spec.js\",\"test/e2e/integration/signup_spec.js\",\"test/e2e/integration/tutorial_spec.js\",\"test/e2e/plugins/index.js\",\"test/e2e/support/commands.js\",\"test/e2e/support/index.js\",\"test/security/profile-test.js\"],\"overlays\":\"base,controlflow,typerel,callgraph,dataflowOss\",\"maxHeapMB\":\"1536\"}\n---OUSAST-CPG-END---\n[INFO ] writing to storage at `/tmp/session-probe-6hk0u5l6/workspace/cpg.bin/cpg.bin.tmp`\n[INFO ] closed graph at /tmp/session-probe-6hk0u5l6/workspace/cpg.bin/cpg.bin.tmp\n", + "stderr": "Picked up JAVA_TOOL_OPTIONS: -Xmx1536m\nPicked up JAVA_TOOL_OPTIONS: -Xmx1536m\nexecuting /app/src/openultrasast/cpg/queries/census.sc with params=Map(cpgFile -> /tmp/session-probe-6hk0u5l6/cpg.bin)\nCreating project `cpg.bin` for CPG at `/tmp/session-probe-6hk0u5l6/cpg.bin`\nCreating working copy of CPG to be safe\nLoading base CPG from: /tmp/session-probe-6hk0u5l6/workspace/cpg.bin/cpg.bin.tmp\nOverlay dataflowOss already exists - skipping\nThe graph has been modified. You may want to use the `save` command to persist changes to disk. All changes will also be saved collectively on exit\nclosing/saving project `cpg.bin`\n" + }, + "server_startup_seconds": 11.762742699938826, + "census_equivalent": true, + "cancellation_seconds": 0.04296782903838903, + "status": "PASS_LIFECYCLE_PROBE_ONLY" + }, + "server_log": "Picked up JAVA_TOOL_OPTIONS: -Xmx1536m\nERROR StatusConsoleListener Could not determine local host name\n java.net.UnknownHostException: 392c66d8f096: 392c66d8f096: Temporary failure in name resolution\n\tat java.base/java.net.InetAddress.getLocalHost(Unknown Source)\n\tat org.apache.logging.log4j.core.util.NetUtils.getLocalHostname(NetUtils.java:56)\n\tat org.apache.logging.log4j.core.LoggerContext.lambda$setConfiguration$0(LoggerContext.java:615)\n\tat java.base/java.util.concurrent.ConcurrentHashMap.computeIfAbsent(Unknown Source)\n\tat org.apache.logging.log4j.core.LoggerContext.setConfiguration(LoggerContext.java:615)\n\tat org.apache.logging.log4j.core.LoggerContext.reconfigure(LoggerContext.java:694)\n\tat org.apache.logging.log4j.core.LoggerContext.reconfigure(LoggerContext.java:711)\n\tat org.apache.logging.log4j.core.LoggerContext.start(LoggerContext.java:253)\n\tat org.apache.logging.log4j.core.impl.Log4jContextFactory.getContext(Log4jContextFactory.java:155)\n\tat org.apache.logging.log4j.core.impl.Log4jContextFactory.getContext(Log4jContextFactory.java:47)\n\tat org.apache.logging.log4j.LogManager.getContext(LogManager.java:196)\n\tat org.apache.logging.log4j.spi.AbstractLoggerAdapter.getContext(AbstractLoggerAdapter.java:137)\n\tat org.apache.logging.slf4j.Log4jLoggerFactory.getContext(Log4jLoggerFactory.java:61)\n\tat org.apache.logging.log4j.spi.AbstractLoggerAdapter.getLogger(AbstractLoggerAdapter.java:47)\n\tat org.apache.logging.slf4j.Log4jLoggerFactory.getLogger(Log4jLoggerFactory.java:33)\n\tat org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:447)\n\tat org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:472)\n\tat replpp.server.ReplServer$.(ReplServer.scala:16)\n\tat io.joern.console.ServerHandling.startHttpServer(BridgeBase.scala:477)\n\tat io.joern.console.ServerHandling.startHttpServer$(BridgeBase.scala:464)\n\tat io.joern.joerncli.console.ReplBridge$.startHttpServer(ReplBridge.scala:5)\n\tat io.joern.console.BridgeBase.run(BridgeBase.scala:239)\n\tat io.joern.console.BridgeBase.run$(BridgeBase.scala:55)\n\tat io.joern.joerncli.console.ReplBridge$.run(ReplBridge.scala:5)\n\tat io.joern.joerncli.console.ReplBridge$.main(ReplBridge.scala:10)\n\tat io.joern.joerncli.console.ReplBridge.main(ReplBridge.scala)\nCaused by: java.net.UnknownHostException: 392c66d8f096: Temporary failure in name resolution\n\tat java.base/java.net.Inet6AddressImpl.lookupAllHostAddr(Native Method)\n\tat java.base/java.net.Inet6AddressImpl.lookupAllHostAddr(Unknown Source)\n\tat java.base/java.net.InetAddress$PlatformResolver.lookupByName(Unknown Source)\n\tat java.base/java.net.InetAddress.getAddressesFromNameService(Unknown Source)\n\tat java.base/java.net.InetAddress$NameServiceAddresses.get(Unknown Source)\n\tat java.base/java.net.InetAddress.getAllByName0(Unknown Source)\n\t... 26 more\nusing jar from inherited classpath: /opt/joern-cli/lib/org.scala-lang.tasty-core_3-3.8.3.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/org.apache.logging.log4j.log4j-core-2.20.0.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/com.fasterxml.jackson.core.jackson-core-2.17.2.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/io.joern.rubysrc2cpg-4.0.625.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/io.joern.dataflowengineoss-4.0.625.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/io.joern.flatgraph-formats_3-0.1.34.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/io.joern.flatgraph-odb-convert_3-0.1.34.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/com.lihaoyi.cask_3-0.9.5.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/com.lihaoyi.upickle-core_3-4.1.0.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/io.shiftleft.overflowdb-core_3-1.194.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/org.json4s.json4s-native_3-4.0.7.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/com.lihaoyi.castor_3-0.3.0.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/io.undertow.undertow-core-2.3.18.Final.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/io.joern.flatgraph-help_3-0.1.34.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/org.jboss.xnio.xnio-api-3.8.16.Final.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/org.msgpack.msgpack-core-0.9.1.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/commons-io.commons-io-2.22.0.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/org.wildfly.client.wildfly-client-config-1.0.1.Final.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/com.lihaoyi.fansi_3-0.5.1.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/org.apache.maven.maven-artifact-3.9.16.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/io.shiftleft.codepropertygraph-domain-classes_3-1.7.74.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/org.typelevel.cats-kernel_3-2.9.0.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/org.json4s.json4s-core_3-4.0.7.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/com.lihaoyi.geny_3-1.1.1.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/com.michaelpollmeier.scala-repl-pp_3.8.3-0.6.4.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/com.ibm.icu.icu4j-61.1.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/com.github.pathikrit.better-files_3-3.9.2.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/org.typelevel.cats-core_3-2.9.0.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/com.lihaoyi.upickle-implicits_3-4.0.2.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/org.antlr.ST4-4.1.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/org.typelevel.cats-effect-kernel_3-3.5.4.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/io.shiftleft.codepropertygraph-protos_3-1.7.74.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/org.scala-lang.modules.scala-xml_3-2.3.0.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/net.oneandone.reflections8.reflections8-0.11.7.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/org.glassfish.javax.json-1.0.4.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/org.antlr.antlr-runtime-3.5.2.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/org.json4s.json4s-scalap_3-4.0.7.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/com.lihaoyi.ujson_3-4.1.0.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/org.apache.commons.commons-compress-1.26.2.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/org.apache.logging.log4j.log4j-api-2.20.0.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/com.lihaoyi.upack_3-4.0.2.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/org.apache.commons.commons-exec-1.4.0.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/com.michaelpollmeier.versionsort-1.0.11.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/io.joern.semanticcpg-4.0.625.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/commons-codec.commons-codec-1.17.0.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/org.json4s.json4s-ast_3-4.0.7.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/org.typelevel.cats-effect_3-3.5.4.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/org.reflections.reflections-0.10.2.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/io.joern.flatgraph-core_3-0.1.34.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/org.scala-lang.scala3-repl_3-3.8.3.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/com.github.tototoshi.scala-csv_3-2.0.0.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/org.jboss.xnio.xnio-nio-3.8.16.Final.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/com.lihaoyi.cask-util_3-0.9.5.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/io.get-coursier.interface-1.0.28.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/org.scala-lang.scala3-library_3-3.8.3.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/io.joern.joern-cli-4.0.625.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/org.zeroturnaround.zt-zip-1.17.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/com.lihaoyi.upickle_3-4.0.2.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/com.lihaoyi.requests_3-0.8.0.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/org.javassist.javassist-3.28.0-GA.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/io.joern.console-4.0.625.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/org.apache.commons.commons-lang3-3.17.0.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/org.codehaus.plexus.plexus-utils-3.6.1.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/org.virtuslab.using_directives-1.1.4.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/org.java-websocket.Java-WebSocket-1.5.3.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/org.json4s.json4s-native-core_3-4.0.7.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/org.jruby.jruby-complete-9.4.15.0.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/org.slf4j.slf4j-api-2.0.17.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/org.jline.jline-terminal-3.29.0.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/org.jline.jline-terminal-jni-3.29.0.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/com.h2database.h2-mvstore-1.4.200.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/org.scala-sbt.util-interface-1.10.7.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/com.thoughtworks.paranamer.paranamer-2.8.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/com.lihaoyi.sourcecode_3-0.4.4.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/org.typelevel.cats-effect-std_3-3.5.4.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/com.michaelpollmeier.scala-repl-pp-server_3.8.3-0.6.4.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/io.shiftleft.codepropertygraph_3-1.7.74.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/com.github.luben.zstd-jni-1.5.7-11.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/com.lihaoyi.os-lib_3-0.10.1.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/org.antlr.antlr4-4.7.2.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/org.scala-lang.modules.scala-parallel-collections_3-1.0.4.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/org.apache.commons.commons-text-1.13.0.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/com.google.code.findbugs.jsr305-3.0.2.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/org.scala-lang.scala3-interfaces-3.8.3.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/com.google.protobuf.protobuf-java-3.20.1.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/io.joern.macros-4.0.625.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/org.jline.jline-native-3.29.0.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/com.michaelpollmeier.scala-repl-pp-shaded-libs_3-0.6.4.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/org.jboss.threads.jboss-threads-3.5.0.Final.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/net.sf.trove4j.core-3.1.0.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/org.abego.treelayout.org.abego.treelayout.core-1.0.3.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/org.wildfly.common.wildfly-common-1.5.4.Final.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/org.jline.jline-reader-3.29.0.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/com.typesafe.config-1.4.3.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/org.scala-lang.modules.scala-asm-9.9.0-scala-1.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/org.scala-lang.scala3-compiler_3-3.8.3.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/org.antlr.antlr4-runtime-4.7.2.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/com.lihaoyi.pprint_3-0.9.3.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/org.scala-sbt.compiler-interface-1.10.7.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/org.jboss.logging.jboss-logging-3.4.3.Final.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/com.github.scopt.scopt_3-4.1.0.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/io.spray.spray-json_3-1.3.6.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/org.scala-lang.scala-library-3.8.3.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/org.apache.logging.log4j.log4j-slf4j2-impl-2.20.0.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/io.joern.x2cpg-4.0.625.jar\nclasspath entries from config >\n/opt/joern-cli/lib/com.fasterxml.jackson.core.jackson-core-2.17.2.jar\n/opt/joern-cli/lib/com.github.luben.zstd-jni-1.5.7-11.jar\n/opt/joern-cli/lib/com.github.pathikrit.better-files_3-3.9.2.jar\n/opt/joern-cli/lib/com.github.scopt.scopt_3-4.1.0.jar\n/opt/joern-cli/lib/com.github.tototoshi.scala-csv_3-2.0.0.jar\n/opt/joern-cli/lib/com.google.code.findbugs.jsr305-3.0.2.jar\n/opt/joern-cli/lib/com.google.protobuf.protobuf-java-3.20.1.jar\n/opt/joern-cli/lib/com.h2database.h2-mvstore-1.4.200.jar\n/opt/joern-cli/lib/com.ibm.icu.icu4j-61.1.jar\n/opt/joern-cli/lib/com.lihaoyi.cask-util_3-0.9.5.jar\n/opt/joern-cli/lib/com.lihaoyi.cask_3-0.9.5.jar\n/opt/joern-cli/lib/com.lihaoyi.castor_3-0.3.0.jar\n/opt/joern-cli/lib/com.lihaoyi.fansi_3-0.5.1.jar\n/opt/joern-cli/lib/com.lihaoyi.geny_3-1.1.1.jar\n/opt/joern-cli/lib/com.lihaoyi.os-lib_3-0.10.1.jar\n/opt/joern-cli/lib/com.lihaoyi.pprint_3-0.9.3.jar\n/opt/joern-cli/lib/com.lihaoyi.requests_3-0.8.0.jar\n/opt/joern-cli/lib/com.lihaoyi.sourcecode_3-0.4.4.jar\n/opt/joern-cli/lib/com.lihaoyi.ujson_3-4.1.0.jar\n/opt/joern-cli/lib/com.lihaoyi.upack_3-4.0.2.jar\n/opt/joern-cli/lib/com.lihaoyi.upickle-core_3-4.1.0.jar\n/opt/joern-cli/lib/com.lihaoyi.upickle-implicits_3-4.0.2.jar\n/opt/joern-cli/lib/com.lihaoyi.upickle_3-4.0.2.jar\n/opt/joern-cli/lib/com.michaelpollmeier.scala-repl-pp-server_3.8.3-0.6.4.jar\n/opt/joern-cli/lib/com.michaelpollmeier.scala-repl-pp-shaded-libs_3-0.6.4.jar\n/opt/joern-cli/lib/com.michaelpollmeier.scala-repl-pp_3.8.3-0.6.4.jar\n/opt/joern-cli/lib/com.michaelpollmeier.versionsort-1.0.11.jar\n/opt/joern-cli/lib/com.thoughtworks.paranamer.paranamer-2.8.jar\n/opt/joern-cli/lib/com.typesafe.config-1.4.3.jar\n/opt/joern-cli/lib/commons-codec.commons-codec-1.17.0.jar\n/opt/joern-cli/lib/commons-io.commons-io-2.22.0.jar\n/opt/joern-cli/lib/io.get-coursier.interface-1.0.28.jar\n/opt/joern-cli/lib/io.joern.console-4.0.625.jar\n/opt/joern-cli/lib/io.joern.dataflowengineoss-4.0.625.jar\n/opt/joern-cli/lib/io.joern.flatgraph-core_3-0.1.34.jar\n/opt/joern-cli/lib/io.joern.flatgraph-formats_3-0.1.34.jar\n/opt/joern-cli/lib/io.joern.flatgraph-help_3-0.1.34.jar\n/opt/joern-cli/lib/io.joern.flatgraph-odb-convert_3-0.1.34.jar\n/opt/joern-cli/lib/io.joern.joern-cli-4.0.625.jar\n/opt/joern-cli/lib/io.joern.macros-4.0.625.jar\n/opt/joern-cli/lib/io.joern.rubysrc2cpg-4.0.625.jar\n/opt/joern-cli/lib/io.joern.semanticcpg-4.0.625.jar\n/opt/joern-cli/lib/io.joern.x2cpg-4.0.625.jar\n/opt/joern-cli/lib/io.shiftleft.codepropertygraph-domain-classes_3-1.7.74.jar\n/opt/joern-cli/lib/io.shiftleft.codepropertygraph-protos_3-1.7.74.jar\n/opt/joern-cli/lib/io.shiftleft.codepropertygraph_3-1.7.74.jar\n/opt/joern-cli/lib/io.shiftleft.overflowdb-core_3-1.194.jar\n/opt/joern-cli/lib/io.spray.spray-json_3-1.3.6.jar\n/opt/joern-cli/lib/io.undertow.undertow-core-2.3.18.Final.jar\n/opt/joern-cli/lib/net.oneandone.reflections8.reflections8-0.11.7.jar\n/opt/joern-cli/lib/net.sf.trove4j.core-3.1.0.jar\n/opt/joern-cli/lib/org.abego.treelayout.org.abego.treelayout.core-1.0.3.jar\n/opt/joern-cli/lib/org.antlr.ST4-4.1.jar\n/opt/joern-cli/lib/org.antlr.antlr-runtime-3.5.2.jar\n/opt/joern-cli/lib/org.antlr.antlr4-4.7.2.jar\n/opt/joern-cli/lib/org.antlr.antlr4-runtime-4.7.2.jar\n/opt/joern-cli/lib/org.apache.commons.commons-compress-1.26.2.jar\n/opt/joern-cli/lib/org.apache.commons.commons-exec-1.4.0.jar\n/opt/joern-cli/lib/org.apache.commons.commons-lang3-3.17.0.jar\n/opt/joern-cli/lib/org.apache.commons.commons-text-1.13.0.jar\n/opt/joern-cli/lib/org.apache.logging.log4j.log4j-api-2.20.0.jar\n/opt/joern-cli/lib/org.apache.logging.log4j.log4j-core-2.20.0.jar\n/opt/joern-cli/lib/org.apache.logging.log4j.log4j-slf4j2-impl-2.20.0.jar\n/opt/joern-cli/lib/org.apache.maven.maven-artifact-3.9.16.jar\n/opt/joern-cli/lib/org.codehaus.plexus.plexus-utils-3.6.1.jar\n/opt/joern-cli/lib/org.glassfish.javax.json-1.0.4.jar\n/opt/joern-cli/lib/org.java-websocket.Java-WebSocket-1.5.3.jar\n/opt/joern-cli/lib/org.javassist.javassist-3.28.0-GA.jar\n/opt/joern-cli/lib/org.jboss.logging.jboss-logging-3.4.3.Final.jar\n/opt/joern-cli/lib/org.jboss.threads.jboss-threads-3.5.0.Final.jar\n/opt/joern-cli/lib/org.jboss.xnio.xnio-api-3.8.16.Final.jar\n/opt/joern-cli/lib/org.jboss.xnio.xnio-nio-3.8.16.Final.jar\n/opt/joern-cli/lib/org.jline.jline-native-3.29.0.jar\n/opt/joern-cli/lib/org.jline.jline-reader-3.29.0.jar\n/opt/joern-cli/lib/org.jline.jline-terminal-3.29.0.jar\n/opt/joern-cli/lib/org.jline.jline-terminal-jni-3.29.0.jar\n/opt/joern-cli/lib/org.jruby.jruby-complete-9.4.15.0.jar\n/opt/joern-cli/lib/org.json4s.json4s-ast_3-4.0.7.jar\n/opt/joern-cli/lib/org.json4s.json4s-core_3-4.0.7.jar\n/opt/joern-cli/lib/org.json4s.json4s-native-core_3-4.0.7.jar\n/opt/joern-cli/lib/org.json4s.json4s-native_3-4.0.7.jar\n/opt/joern-cli/lib/org.json4s.json4s-scalap_3-4.0.7.jar\n/opt/joern-cli/lib/org.msgpack.msgpack-core-0.9.1.jar\n/opt/joern-cli/lib/org.reflections.reflections-0.10.2.jar\n/opt/joern-cli/lib/org.scala-lang.modules.scala-asm-9.9.0-scala-1.jar\n/opt/joern-cli/lib/org.scala-lang.modules.scala-parallel-collections_3-1.0.4.jar\n/opt/joern-cli/lib/org.scala-lang.modules.scala-xml_3-2.3.0.jar\n/opt/joern-cli/lib/org.scala-lang.scala-library-3.8.3.jar\n/opt/joern-cli/lib/org.scala-lang.scala3-compiler_3-3.8.3.jar\n/opt/joern-cli/lib/org.scala-lang.scala3-interfaces-3.8.3.jar\n/opt/joern-cli/lib/org.scala-lang.scala3-library_3-3.8.3.jar\n/opt/joern-cli/lib/org.scala-lang.scala3-repl_3-3.8.3.jar\n/opt/joern-cli/lib/org.scala-lang.tasty-core_3-3.8.3.jar\n/opt/joern-cli/lib/org.scala-sbt.compiler-interface-1.10.7.jar\n/opt/joern-cli/lib/org.scala-sbt.util-interface-1.10.7.jar\n/opt/joern-cli/lib/org.slf4j.slf4j-api-2.0.17.jar\n/opt/joern-cli/lib/org.typelevel.cats-core_3-2.9.0.jar\n/opt/joern-cli/lib/org.typelevel.cats-effect-kernel_3-3.5.4.jar\n/opt/joern-cli/lib/org.typelevel.cats-effect-std_3-3.5.4.jar\n/opt/joern-cli/lib/org.typelevel.cats-effect_3-3.5.4.jar\n/opt/joern-cli/lib/org.typelevel.cats-kernel_3-2.9.0.jar\n/opt/joern-cli/lib/org.virtuslab.using_directives-1.1.4.jar\n/opt/joern-cli/lib/org.wildfly.client.wildfly-client-config-1.0.1.Final.jar\n/opt/joern-cli/lib/org.wildfly.common.wildfly-common-1.5.4.Final.jar\n/opt/joern-cli/lib/org.zeroturnaround.zt-zip-1.17.jar\n< classpath entries from config\nERROR StatusConsoleListener Could not determine local host name\n java.net.UnknownHostException: 392c66d8f096: 392c66d8f096: Temporary failure in name resolution\n\tat java.base/java.net.InetAddress.getLocalHost(Unknown Source)\n\tat org.apache.logging.log4j.core.util.NetUtils.getLocalHostname(NetUtils.java:56)\n\tat org.apache.logging.log4j.core.LoggerContext.lambda$setConfiguration$0(LoggerContext.java:615)\n\tat java.base/java.util.concurrent.ConcurrentHashMap.computeIfAbsent(Unknown Source)\n\tat org.apache.logging.log4j.core.LoggerContext.setConfiguration(LoggerContext.java:615)\n\tat org.apache.logging.log4j.core.LoggerContext.reconfigure(LoggerContext.java:694)\n\tat org.apache.logging.log4j.core.LoggerContext.reconfigure(LoggerContext.java:711)\n\tat org.apache.logging.log4j.core.LoggerContext.start(LoggerContext.java:253)\n\tat org.apache.logging.log4j.core.impl.Log4jContextFactory.getContext(Log4jContextFactory.java:155)\n\tat org.apache.logging.log4j.core.impl.Log4jContextFactory.getContext(Log4jContextFactory.java:47)\n\tat org.apache.logging.log4j.LogManager.getContext(LogManager.java:196)\n\tat org.apache.logging.log4j.spi.AbstractLoggerAdapter.getContext(AbstractLoggerAdapter.java:137)\n\tat org.apache.logging.slf4j.Log4jLoggerFactory.getContext(Log4jLoggerFactory.java:61)\n\tat org.apache.logging.log4j.spi.AbstractLoggerAdapter.getLogger(AbstractLoggerAdapter.java:47)\n\tat org.apache.logging.slf4j.Log4jLoggerFactory.getLogger(Log4jLoggerFactory.java:33)\n\tat org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:447)\n\tat org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:472)\n\tat io.shiftleft.semanticcpg.sarif.SarifSchema$.(SarifSchema.scala:10)\n\tat io.shiftleft.semanticcpg.sarif.SarifConfig$.$lessinit$greater$default$8(SarifConfig.scala:38)\n\tat rs$line$1$.(rs$line$1:14)\n\tat rs$line$1.help(rs$line$1)\n\tat java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(Unknown Source)\n\tat java.base/java.lang.reflect.Method.invoke(Unknown Source)\n\tat replpp.Rendering.$anonfun$4(Rendering.scala:102)\n\tat scala.Option.flatMap(Option.scala:285)\n\tat replpp.Rendering.valueOf(Rendering.scala:102)\n\tat replpp.Rendering.renderVal(Rendering.scala:142)\n\tat replpp.DottyReplDriver.$anonfun$8(DottyReplDriver.scala:397)\n\tat scala.runtime.function.JProcedure1.apply(JProcedure1.java:15)\n\tat scala.runtime.function.JProcedure1.apply(JProcedure1.java:10)\n\tat scala.collection.immutable.List.foreach(List.scala:327)\n\tat replpp.DottyReplDriver.extractAndFormatMembers$1(DottyReplDriver.scala:397)\n\tat replpp.DottyReplDriver.renderDefinitions$$anonfun$2(DottyReplDriver.scala:435)\n\tat scala.Option.map(Option.scala:244)\n\tat replpp.DottyReplDriver.renderDefinitions(DottyReplDriver.scala:434)\n\tat replpp.DottyReplDriver.compile$$anonfun$2(DottyReplDriver.scala:339)\n\tat scala.util.Either.fold(Either.scala:199)\n\tat replpp.DottyReplDriver.compile(DottyReplDriver.scala:321)\n\tat replpp.DottyReplDriver.interpret(DottyReplDriver.scala:280)\n\tat replpp.ReplDriverBase.interpretInput(ReplDriverBase.scala:49)\n\tat replpp.server.ReplDriver.execute(EmbeddedRepl.scala:89)\n\tat replpp.server.EmbeddedRepl.(EmbeddedRepl.scala:30)\n\tat replpp.server.ReplServer$.startHttpServer(ReplServer.scala:27)\n\tat io.joern.console.ServerHandling.startHttpServer(BridgeBase.scala:483)\n\tat io.joern.console.ServerHandling.startHttpServer$(BridgeBase.scala:464)\n\tat io.joern.joerncli.console.ReplBridge$.startHttpServer(ReplBridge.scala:5)\n\tat io.joern.console.BridgeBase.run(BridgeBase.scala:239)\n\tat io.joern.console.BridgeBase.run$(BridgeBase.scala:55)\n\tat io.joern.joerncli.console.ReplBridge$.run(ReplBridge.scala:5)\n\tat io.joern.joerncli.console.ReplBridge$.main(ReplBridge.scala:10)\n\tat io.joern.joerncli.console.ReplBridge.main(ReplBridge.scala)\nCaused by: java.net.UnknownHostException: 392c66d8f096: Temporary failure in name resolution\n\tat java.base/java.net.Inet6AddressImpl.lookupAllHostAddr(Native Method)\n\tat java.base/java.net.Inet6AddressImpl.lookupAllHostAddr(Unknown Source)\n\tat java.base/java.net.InetAddress$PlatformResolver.lookupByName(Unknown Source)\n\tat java.base/java.net.InetAddress.getAddressesFromNameService(Unknown Source)\n\tat java.base/java.net.InetAddress$NameServiceAddresses.get(Unknown Source)\n\tat java.base/java.net.InetAddress.getAllByName0(Unknown Source)\n\t... 51 more\nSep 14, 2026 11:15:11 AM org.jline.utils.Log logr\nWARNING: Unable to create a system terminal, creating a dumb terminal (enable debug logging for more information)\nSep 14, 2026 11:15:11 AM org.jline.utils.Log logr\nWARNING: Unable to create a system terminal, creating a dumb terminal (enable debug logging for more information)\nOUSAST_READY\nCreating project `cpg.bin` for CPG at `/tmp/session-probe-6hk0u5l6/cpg.bin`\nCreating working copy of CPG to be safe\nLoading base CPG from: /tmp/session-probe-6hk0u5l6/server/workspace/cpg.bin/cpg.bin.tmp\nOverlay dataflowOss already exists - skipping\nThe graph has been modified. You may want to use the `save` command to persist changes to disk. All changes will also be saved collectively on exit\n" + }, + { + "id": "v3", + "instrument": "\"\"\"Isolated lifecycle experiment; not a production backend or hook benchmark.\"\"\"\nimport hashlib\nimport json\nimport os\nfrom pathlib import Path\nimport signal\nimport socket\nimport subprocess\nimport tempfile\nimport time\nimport urllib.error\nimport urllib.request\n\nfrom openultrasast.cpg.backend import extract_payload\n\nOUT = Path('/results/session-probe-v3')\nOUT.mkdir(exist_ok=False)\nROOT = Path('/results/post-census-runtime-v1')\nrecord = {'schema_version': 1, 'purpose': 'census lifecycle only; no detector or hook qualification', 'requests': []}\n\ndef save():\n (OUT / 'result.json').write_text(json.dumps(record, indent=2) + '\\n')\n\ndef query(code, timeout=90):\n start = time.monotonic()\n request = urllib.request.Request('http://127.0.0.1:18081/query-sync', data=json.dumps({'query': code}).encode(), headers={'Content-Type': 'application/json'})\n with urllib.request.urlopen(request, timeout=timeout) as response:\n data = json.load(response)\n record['requests'].append({'seconds': time.monotonic()-start, 'query': code, 'response': data})\n save()\n assert data.get('success') is True or data.get('success') == 'true', data\n return data\n\nproc = None\ntry:\n graph = None\n for manifest in sorted((ROOT / 'artifacts').glob('*/manifest.json')):\n data = json.loads(manifest.read_bytes())\n meta = data.get('metadata', {})\n if meta.get('source_bytes') == 95411 and meta.get('completeness') == 'complete':\n graph = manifest.parent / 'payload'\n graph_bytes = graph.read_bytes()\n assert hashlib.sha256(graph_bytes).hexdigest() == data['sha256'] == meta['graph_digest']\n record['graph_manifest'] = data\n break\n assert graph is not None, 'no verified Node head graph'\n source = Path('/cache/nodegoat/c5cb68a7084e/app/routes/contributions.js')\n raw = source.read_bytes()\n assert raw\n record['input_probe'] = {'path': str(source), 'bytes': len(raw), 'sha256': hashlib.sha256(raw).hexdigest()}\n source_root = source.parents[2]\n sources = [(name, (source_root / name).read_bytes()) for name in record['graph_manifest']['metadata']['source_paths']]\n record['source_receipts'] = [{'path': name, 'bytes': len(raw), 'sha256': hashlib.sha256(raw).hexdigest()} for name, raw in sources]\n assert sum(len(raw) for _, raw in sources) == 95411\n record['graph_bytes'] = len(graph_bytes)\n print(json.dumps(record['input_probe']), flush=True)\n with tempfile.TemporaryDirectory(prefix='session-probe-') as scratch_name:\n scratch = Path(scratch_name)\n target = scratch / 'cpg.bin'\n target.write_bytes(graph_bytes)\n server_scratch = scratch / 'server'\n server_scratch.mkdir()\n env = dict(os.environ, JAVA_TOOL_OPTIONS='-Xmx1536m')\n start = time.monotonic()\n baseline = subprocess.run(['joern', '--script', '/app/src/openultrasast/cpg/queries/census.sc', '--param', f'cpgFile={target}'], cwd=scratch, env=env, capture_output=True, text=True, timeout=90)\n record['disposable_census'] = {'seconds': time.monotonic()-start, 'exit_code': baseline.returncode, 'stdout': baseline.stdout, 'stderr': baseline.stderr}\n save()\n assert baseline.returncode == 0, 'baseline process failed'\n expected = extract_payload(baseline.stdout)\n assert isinstance(expected, dict) and int(expected['files']) == 44 and int(expected['methods']) > 0, expected\n target.write_bytes(graph_bytes)\n log = (OUT / 'server.log').open('w')\n start = time.monotonic()\n proc = subprocess.Popen(['joern', '--server', '--server-host', '127.0.0.1', '--server-port', '18081'], cwd=server_scratch, env=env, stdout=log, stderr=subprocess.STDOUT, start_new_session=True)\n while True:\n assert proc.poll() is None, 'server exited during startup'\n try:\n with socket.create_connection(('127.0.0.1', 18081), timeout=0.2):\n pass\n break\n except OSError:\n if time.monotonic()-start > 90:\n raise TimeoutError('server startup')\n time.sleep(0.2)\n query('println(\"OUSAST_READY\")')\n record['server_startup_seconds'] = time.monotonic()-start\n query('importCpg(' + json.dumps(str(target)) + ')')\n for i in range(5):\n output = scratch / f'census-{i}.json'\n nonce = f'{proc.pid}:{i}'\n assert not output.exists()\n value = 'ujson.write(ujson.Obj(\"receipt\" -> ' + json.dumps(nonce) + ', \"files\" -> cpg.file.size.toString, \"methods\" -> cpg.method.size.toString, \"calls\" -> cpg.call.size.toString, \"file_names\" -> ujson.Arr.from(cpg.file.name.l), \"overlays\" -> cpg.metaData.overlays.l.mkString(\",\")))'\n query('java.nio.file.Files.writeString(java.nio.file.Path.of(' + json.dumps(str(output)) + '), ' + value + ')')\n actual = json.loads(output.read_bytes())\n record['requests'][-1]['file_receipt'] = actual\n assert isinstance(actual, dict), actual\n assert actual['receipt'] == nonce\n for key in ('files', 'methods', 'calls', 'overlays'):\n assert actual[key] == expected[key], (key, actual, expected)\n assert sorted(actual['file_names']) == sorted(expected['file_names'])\n record['census_equivalent'] = True\n marker = scratch / 'hanging-request-entered'\n query('def ousastHang(): Unit = { java.nio.file.Files.writeString(java.nio.file.Path.of(' + json.dumps(str(marker)) + '), \"entered\"); Thread.sleep(10000) }')\n try:\n query('ousastHang()', timeout=1)\n raise AssertionError('hanging request unexpectedly returned')\n except TimeoutError:\n pass\n assert marker.read_text() == 'entered', 'request timed out before entering the hanging operation'\n record['hanging_request_entered'] = True\n start = time.monotonic()\n os.killpg(proc.pid, signal.SIGKILL)\n proc.wait(timeout=2)\n while True:\n try:\n os.killpg(proc.pid, 0)\n except ProcessLookupError:\n break\n if time.monotonic()-start > 2:\n raise AssertionError('process group survived cancellation')\n time.sleep(0.02)\n record['cancellation_seconds'] = time.monotonic()-start\n proc = None\n log.close()\n assert hashlib.sha256(graph.read_bytes()).hexdigest() == record['graph_manifest']['sha256']\n record['status'] = 'PASS_LIFECYCLE_PROBE_ONLY'\nexcept BaseException as exc:\n record['status'] = 'INSTRUMENT_FAILURE'\n record['error'] = repr(exc)\n raise\nfinally:\n if proc is not None and proc.poll() is None:\n os.killpg(proc.pid, signal.SIGKILL)\n proc.wait(timeout=2)\n save()\n", + "instrument_sha256": "91d0fb99fbf5cd456a4487e15806cf752b7528d8135eff5f629ef64736c9b94c", + "result": { + "schema_version": 1, + "purpose": "census lifecycle only; no detector or hook qualification", + "requests": [ + { + "seconds": 0.3228343940572813, + "query": "println(\"OUSAST_READY\")", + "response": { + "success": true, + "stdout": "\u001b[33mlazy\u001b[0m \u001b[33mval\u001b[0m \u001b[36mgiven_Colors\u001b[0m: replpp.Colors\n\u001b[33mval\u001b[0m \u001b[36mresolver\u001b[0m: \u001b[32mICallResolver\u001b[0m = io.shiftleft.semanticcpg.language.NoResolve$@7019ed73\n\u001b[33mval\u001b[0m \u001b[36mfinder\u001b[0m: \u001b[32mNodeExtensionFinder\u001b[0m = io.shiftleft.semanticcpg.language.DefaultNodeExtensionFinder$@1dab94bc\n\u001b[33mval\u001b[0m \u001b[36msarifConfig\u001b[0m: \u001b[32mSarifConfig\u001b[0m = SarifConfig(\n toolName = \"Joern\",\n toolFullName = Some(value = \"Joern - The Bug Hunter's Workbench\"),\n toolInformationUri = Some(value = https://joern.io),\n organization = Some(value = \"Joern.io\"),\n semanticVersion = None,\n sarifVersion = V2_1_0,\n resultConverter = io.shiftleft.semanticcpg.sarif.v2_1_0.JoernScanResultToSarifConverter@2b7e9d48,\n customSerializers = List(\n org.json4s.CustomSerializer@26196172,\n org.json4s.CustomSerializer@79a7e2a8,\n org.json4s.CustomSerializer@44573dd0,\n org.json4s.CustomSerializer@7675a11f,\n org.json4s.CustomSerializer@1b8a4c52,\n org.json4s.CustomSerializer@5d7e4f29,\n org.json4s.CustomSerializer@203a50eb,\n org.json4s.CustomSerializer@7b9c70aa,\n org.json4s.CustomSerializer@32bd5b57\n )\n)\n// defined class OptsDynamic\n\u001b[33mval\u001b[0m \u001b[36mopts\u001b[0m: \u001b[32mOptsDynamic\u001b[0m = OptsDynamic@278133f6\ndef _diffGraph: DiffGraphBuilder\ndef diffGraph: DiffGraphBuilder\n// defined class OverlaysDynamic\n\u001b[33mval\u001b[0m \u001b[36mrun\u001b[0m: \u001b[32mOverlaysDynamic\u001b[0m = \n\u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u252c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510\n\u2502name \u2502description \u2502\n\u251c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2524\n\u2502dumpcpg14 \u2502Dump Code Property Graph (2014) to out/ \u2502\n\u2502dumpcdg \u2502Dump control dependence graph to out/ \u2502\n\u2502scan \u2502Joern Code Scanner \u2502\n\u2502commit \u2502Apply current custom diffgraph \u2502\n\u2502dumpddg \u2502Dump data dependence graphs to out/ \u2502\n\u2502base \u2502base layer (linked frontend CPG) \u2502\n\u2502controlflow \u2502Control flow layer (including dominators and CDG edges)\u2502\n\u2502dumpast \u2502Dump abstract syntax trees to out/ \u2502\n\u2502dumppdg \u2502Dump program dependence graph to out/ \u2502\n\u2502callgraph \u2502Call graph layer \u2502\n\u2502ossdataflow \u2502Layer to support the OSS lightweight data flow tracker \u2502\n\u2502dumpcfg \u2502Dump control flow graph to out/ \u2502\n\u2502typerelations\u2502Type relations layer (hierarchy and aliases) \u2502\n\u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518\n// defined class Helper\n\u001b[33mval\u001b[0m \u001b[36mhelp\u001b[0m: \u001b[32mHelper\u001b[0m = Welcome to the interactive help system. Below you find\na table of all available top-level commands. To get\nmore detailed help on a specific command, just type\n\n`help.`.\n\nTry `help.importCode` to begin with.\n\u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u252c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u252c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510\n\u2502command \u2502description \u2502example \u2502\n\u251c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2524\n\u2502close \u2502Close project by name \u2502close(projectName) \u2502\n\u2502cpg \u2502CPG of the active project \u2502cpg.method.l \u2502\n\u2502delete \u2502Close and remove project from disk \u2502delete(projectName) \u2502\n\u2502exit \u2502Exit the REPL \u2502 \u2502\n\u2502importCode \u2502Create new project from code \u2502importCode(\"example.jar\")\u2502\n\u2502importCpg \u2502Create new project from existing CPG \u2502importCpg(\"cpg.bin.zip\") \u2502\n\u2502open \u2502Open project by name \u2502open(\"projectName\") \u2502\n\u2502openForInputPath\u2502Open project for input path \u2502 \u2502\n\u2502project \u2502Currently active project \u2502project \u2502\n\u2502run \u2502Run analyzer on active CPG \u2502run.securityprofile \u2502\n\u2502save \u2502Write all changes to disk \u2502save \u2502\n\u2502switchWorkspace \u2502Close current workspace and open a different one\u2502 \u2502\n\u2502workspace \u2502Access to the workspace directory \u2502workspace \u2502\n\u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518\nossDataFlowOptions:\n io.joern.dataflowengineoss.layers.dataflows.OssDataFlowOptions = io.joern.dataflowengineoss.layers.dataflows.OssDataFlowOptions@641dc91f\n", + "uuid": "0d65a7ae-9825-4917-864c-10ff9ea47c38" + } + }, + { + "seconds": 3.6359307559905574, + "query": "importCpg(\"/tmp/session-probe-7zkl39j0/cpg.bin\")", + "response": { + "success": true, + "stdout": "\u001b[33mval\u001b[0m \u001b[36mres0\u001b[0m: \u001b[32mOption\u001b[0m[\u001b[32mCpg\u001b[0m] = Some(value = Cpg[Graph[19863 nodes]])\n", + "uuid": "14091abb-3be2-484e-9e94-8d628a866a10" + } + }, + { + "seconds": 1.402274933992885, + "query": "java.nio.file.Files.writeString(java.nio.file.Path.of(\"/tmp/session-probe-7zkl39j0/census-0.json\"), ujson.write(ujson.Obj(\"receipt\" -> \"108:0\", \"files\" -> cpg.file.size.toString, \"methods\" -> cpg.method.size.toString, \"calls\" -> cpg.call.size.toString, \"file_names\" -> ujson.Arr.from(cpg.file.name.l), \"overlays\" -> cpg.metaData.overlays.l.mkString(\",\"))))", + "response": { + "success": true, + "stdout": "\u001b[33mval\u001b[0m \u001b[36mres1\u001b[0m: java.nio.file.Path = /tmp/session-probe-7zkl39j0/census-0.json\n", + "uuid": "7931c7ea-0ec0-4014-8b15-d625e534eaec" + }, + "file_receipt": { + "receipt": "108:0", + "files": "44", + "methods": "579", + "calls": "4134", + "file_names": [ + "Gruntfile.js", + "app/assets/js/chart/chart-data-morris.js", + "app/assets/js/tour/redirects-steps.js", + "app/data/allocations-dao.js", + "app/data/benefits-dao.js", + "app/data/contributions-dao.js", + "app/data/memos-dao.js", + "app/data/profile-dao.js", + "app/data/research-dao.js", + "app/data/user-dao.js", + "app/routes/allocations.js", + "app/routes/benefits.js", + "app/routes/contributions.js", + "app/routes/error.js", + "app/routes/index.js", + "app/routes/memos.js", + "app/routes/profile.js", + "app/routes/research.js", + "app/routes/session.js", + "app/routes/tutorial.js", + "artifacts/db-reset.js", + "config/config.js", + "config/env/all.js", + "config/env/development.js", + "config/env/production.js", + "config/env/test.js", + "server.js", + "test/e2e/integration/allocations_spec.js", + "test/e2e/integration/benefits_spec.js", + "test/e2e/integration/contributions_spec.js", + "test/e2e/integration/dashboard_spec.js", + "test/e2e/integration/general_spec.js", + "test/e2e/integration/learn_spec.js", + "test/e2e/integration/login_spec.js", + "test/e2e/integration/logout_spec.js", + "test/e2e/integration/memos_spec.js", + "test/e2e/integration/profile_spec.js", + "test/e2e/integration/research_spec.js", + "test/e2e/integration/signup_spec.js", + "test/e2e/integration/tutorial_spec.js", + "test/e2e/plugins/index.js", + "test/e2e/support/commands.js", + "test/e2e/support/index.js", + "test/security/profile-test.js" + ], + "overlays": "base,controlflow,typerel,callgraph,dataflowOss" + } + }, + { + "seconds": 0.3387976880185306, + "query": "java.nio.file.Files.writeString(java.nio.file.Path.of(\"/tmp/session-probe-7zkl39j0/census-1.json\"), ujson.write(ujson.Obj(\"receipt\" -> \"108:1\", \"files\" -> cpg.file.size.toString, \"methods\" -> cpg.method.size.toString, \"calls\" -> cpg.call.size.toString, \"file_names\" -> ujson.Arr.from(cpg.file.name.l), \"overlays\" -> cpg.metaData.overlays.l.mkString(\",\"))))", + "response": { + "success": true, + "stdout": "\u001b[33mval\u001b[0m \u001b[36mres2\u001b[0m: java.nio.file.Path = /tmp/session-probe-7zkl39j0/census-1.json\n", + "uuid": "659ece83-0bbf-474d-af31-1147ee868998" + }, + "file_receipt": { + "receipt": "108:1", + "files": "44", + "methods": "579", + "calls": "4134", + "file_names": [ + "Gruntfile.js", + "app/assets/js/chart/chart-data-morris.js", + "app/assets/js/tour/redirects-steps.js", + "app/data/allocations-dao.js", + "app/data/benefits-dao.js", + "app/data/contributions-dao.js", + "app/data/memos-dao.js", + "app/data/profile-dao.js", + "app/data/research-dao.js", + "app/data/user-dao.js", + "app/routes/allocations.js", + "app/routes/benefits.js", + "app/routes/contributions.js", + "app/routes/error.js", + "app/routes/index.js", + "app/routes/memos.js", + "app/routes/profile.js", + "app/routes/research.js", + "app/routes/session.js", + "app/routes/tutorial.js", + "artifacts/db-reset.js", + "config/config.js", + "config/env/all.js", + "config/env/development.js", + "config/env/production.js", + "config/env/test.js", + "server.js", + "test/e2e/integration/allocations_spec.js", + "test/e2e/integration/benefits_spec.js", + "test/e2e/integration/contributions_spec.js", + "test/e2e/integration/dashboard_spec.js", + "test/e2e/integration/general_spec.js", + "test/e2e/integration/learn_spec.js", + "test/e2e/integration/login_spec.js", + "test/e2e/integration/logout_spec.js", + "test/e2e/integration/memos_spec.js", + "test/e2e/integration/profile_spec.js", + "test/e2e/integration/research_spec.js", + "test/e2e/integration/signup_spec.js", + "test/e2e/integration/tutorial_spec.js", + "test/e2e/plugins/index.js", + "test/e2e/support/commands.js", + "test/e2e/support/index.js", + "test/security/profile-test.js" + ], + "overlays": "base,controlflow,typerel,callgraph,dataflowOss" + } + }, + { + "seconds": 0.4674431789899245, + "query": "java.nio.file.Files.writeString(java.nio.file.Path.of(\"/tmp/session-probe-7zkl39j0/census-2.json\"), ujson.write(ujson.Obj(\"receipt\" -> \"108:2\", \"files\" -> cpg.file.size.toString, \"methods\" -> cpg.method.size.toString, \"calls\" -> cpg.call.size.toString, \"file_names\" -> ujson.Arr.from(cpg.file.name.l), \"overlays\" -> cpg.metaData.overlays.l.mkString(\",\"))))", + "response": { + "success": true, + "stdout": "\u001b[33mval\u001b[0m \u001b[36mres3\u001b[0m: java.nio.file.Path = /tmp/session-probe-7zkl39j0/census-2.json\n", + "uuid": "bca5b6ec-f56b-4908-b347-34c383ee4c3d" + }, + "file_receipt": { + "receipt": "108:2", + "files": "44", + "methods": "579", + "calls": "4134", + "file_names": [ + "Gruntfile.js", + "app/assets/js/chart/chart-data-morris.js", + "app/assets/js/tour/redirects-steps.js", + "app/data/allocations-dao.js", + "app/data/benefits-dao.js", + "app/data/contributions-dao.js", + "app/data/memos-dao.js", + "app/data/profile-dao.js", + "app/data/research-dao.js", + "app/data/user-dao.js", + "app/routes/allocations.js", + "app/routes/benefits.js", + "app/routes/contributions.js", + "app/routes/error.js", + "app/routes/index.js", + "app/routes/memos.js", + "app/routes/profile.js", + "app/routes/research.js", + "app/routes/session.js", + "app/routes/tutorial.js", + "artifacts/db-reset.js", + "config/config.js", + "config/env/all.js", + "config/env/development.js", + "config/env/production.js", + "config/env/test.js", + "server.js", + "test/e2e/integration/allocations_spec.js", + "test/e2e/integration/benefits_spec.js", + "test/e2e/integration/contributions_spec.js", + "test/e2e/integration/dashboard_spec.js", + "test/e2e/integration/general_spec.js", + "test/e2e/integration/learn_spec.js", + "test/e2e/integration/login_spec.js", + "test/e2e/integration/logout_spec.js", + "test/e2e/integration/memos_spec.js", + "test/e2e/integration/profile_spec.js", + "test/e2e/integration/research_spec.js", + "test/e2e/integration/signup_spec.js", + "test/e2e/integration/tutorial_spec.js", + "test/e2e/plugins/index.js", + "test/e2e/support/commands.js", + "test/e2e/support/index.js", + "test/security/profile-test.js" + ], + "overlays": "base,controlflow,typerel,callgraph,dataflowOss" + } + }, + { + "seconds": 0.35327990900259465, + "query": "java.nio.file.Files.writeString(java.nio.file.Path.of(\"/tmp/session-probe-7zkl39j0/census-3.json\"), ujson.write(ujson.Obj(\"receipt\" -> \"108:3\", \"files\" -> cpg.file.size.toString, \"methods\" -> cpg.method.size.toString, \"calls\" -> cpg.call.size.toString, \"file_names\" -> ujson.Arr.from(cpg.file.name.l), \"overlays\" -> cpg.metaData.overlays.l.mkString(\",\"))))", + "response": { + "success": true, + "stdout": "\u001b[33mval\u001b[0m \u001b[36mres4\u001b[0m: java.nio.file.Path = /tmp/session-probe-7zkl39j0/census-3.json\n", + "uuid": "afbc8aa0-cc74-44cb-8d89-efe13601d9ae" + }, + "file_receipt": { + "receipt": "108:3", + "files": "44", + "methods": "579", + "calls": "4134", + "file_names": [ + "Gruntfile.js", + "app/assets/js/chart/chart-data-morris.js", + "app/assets/js/tour/redirects-steps.js", + "app/data/allocations-dao.js", + "app/data/benefits-dao.js", + "app/data/contributions-dao.js", + "app/data/memos-dao.js", + "app/data/profile-dao.js", + "app/data/research-dao.js", + "app/data/user-dao.js", + "app/routes/allocations.js", + "app/routes/benefits.js", + "app/routes/contributions.js", + "app/routes/error.js", + "app/routes/index.js", + "app/routes/memos.js", + "app/routes/profile.js", + "app/routes/research.js", + "app/routes/session.js", + "app/routes/tutorial.js", + "artifacts/db-reset.js", + "config/config.js", + "config/env/all.js", + "config/env/development.js", + "config/env/production.js", + "config/env/test.js", + "server.js", + "test/e2e/integration/allocations_spec.js", + "test/e2e/integration/benefits_spec.js", + "test/e2e/integration/contributions_spec.js", + "test/e2e/integration/dashboard_spec.js", + "test/e2e/integration/general_spec.js", + "test/e2e/integration/learn_spec.js", + "test/e2e/integration/login_spec.js", + "test/e2e/integration/logout_spec.js", + "test/e2e/integration/memos_spec.js", + "test/e2e/integration/profile_spec.js", + "test/e2e/integration/research_spec.js", + "test/e2e/integration/signup_spec.js", + "test/e2e/integration/tutorial_spec.js", + "test/e2e/plugins/index.js", + "test/e2e/support/commands.js", + "test/e2e/support/index.js", + "test/security/profile-test.js" + ], + "overlays": "base,controlflow,typerel,callgraph,dataflowOss" + } + }, + { + "seconds": 0.22122467402368784, + "query": "java.nio.file.Files.writeString(java.nio.file.Path.of(\"/tmp/session-probe-7zkl39j0/census-4.json\"), ujson.write(ujson.Obj(\"receipt\" -> \"108:4\", \"files\" -> cpg.file.size.toString, \"methods\" -> cpg.method.size.toString, \"calls\" -> cpg.call.size.toString, \"file_names\" -> ujson.Arr.from(cpg.file.name.l), \"overlays\" -> cpg.metaData.overlays.l.mkString(\",\"))))", + "response": { + "success": true, + "stdout": "\u001b[33mval\u001b[0m \u001b[36mres5\u001b[0m: java.nio.file.Path = /tmp/session-probe-7zkl39j0/census-4.json\n", + "uuid": "85453705-c0ec-4bf9-a76a-068941baa4df" + }, + "file_receipt": { + "receipt": "108:4", + "files": "44", + "methods": "579", + "calls": "4134", + "file_names": [ + "Gruntfile.js", + "app/assets/js/chart/chart-data-morris.js", + "app/assets/js/tour/redirects-steps.js", + "app/data/allocations-dao.js", + "app/data/benefits-dao.js", + "app/data/contributions-dao.js", + "app/data/memos-dao.js", + "app/data/profile-dao.js", + "app/data/research-dao.js", + "app/data/user-dao.js", + "app/routes/allocations.js", + "app/routes/benefits.js", + "app/routes/contributions.js", + "app/routes/error.js", + "app/routes/index.js", + "app/routes/memos.js", + "app/routes/profile.js", + "app/routes/research.js", + "app/routes/session.js", + "app/routes/tutorial.js", + "artifacts/db-reset.js", + "config/config.js", + "config/env/all.js", + "config/env/development.js", + "config/env/production.js", + "config/env/test.js", + "server.js", + "test/e2e/integration/allocations_spec.js", + "test/e2e/integration/benefits_spec.js", + "test/e2e/integration/contributions_spec.js", + "test/e2e/integration/dashboard_spec.js", + "test/e2e/integration/general_spec.js", + "test/e2e/integration/learn_spec.js", + "test/e2e/integration/login_spec.js", + "test/e2e/integration/logout_spec.js", + "test/e2e/integration/memos_spec.js", + "test/e2e/integration/profile_spec.js", + "test/e2e/integration/research_spec.js", + "test/e2e/integration/signup_spec.js", + "test/e2e/integration/tutorial_spec.js", + "test/e2e/plugins/index.js", + "test/e2e/support/commands.js", + "test/e2e/support/index.js", + "test/security/profile-test.js" + ], + "overlays": "base,controlflow,typerel,callgraph,dataflowOss" + } + }, + { + "seconds": 0.05666331492830068, + "query": "def ousastHang(): Unit = { java.nio.file.Files.writeString(java.nio.file.Path.of(\"/tmp/session-probe-7zkl39j0/hanging-request-entered\"), \"entered\"); Thread.sleep(10000) }", + "response": { + "success": true, + "stdout": "def ousastHang(): Unit\n", + "uuid": "8c4d2f12-b2da-4f21-999f-7d6cc6b42431" + } + } + ], + "graph_manifest": { + "complete": true, + "key": "07185611945033bf128c962ae71a70f1196345f9525ebaead472f62d6f045028", + "metadata": { + "census": { + "calls": 4134, + "files": 44, + "methods": 579 + }, + "completeness": "complete", + "diagnostics": [], + "graph_digest": "ecb311e3fe1fe500d8f6269916d5cf835a44db25318449750583fc8f3e6de462", + "identity": { + "declarations_digest": "285af83095d6e43bbb0b995cd46e7b65a109d715ec6b6a5fd4367dcea8c406fd", + "engine_version": "4.0.625", + "exclusions_digest": "eab75a523f55acc077e1024b46236ab585ee9e79a4e7563b0204dcab4fcc6183", + "frontend": "jssrc2cpg", + "frontend_options": [ + [ + "include_tests", + "True" + ], + [ + "include_build_configs", + "True" + ], + [ + "installation", + "c9860f63eb08efd404b60cd7d23c65798028f8684e915fe7472e1dc4763a23e5" + ], + [ + "java_options", + "default" + ] + ], + "frontend_version": "4.0.625", + "language": "javascript", + "overlay_options": [ + [ + "implementation", + "b1b5bf7b5609ea930a06addb404840b12b7c0e36cdd083ea0d11ede01f8f6647" + ] + ], + "overlay_semantics": [ + "dataflowOss" + ], + "source_digest": "dea287382ca0cf5074b9e85c7823792738bbc5c8bb8a3e4ed06ebc0a2cc13149", + "unit": "repository" + }, + "source_bytes": 95411, + "source_paths": [ + "Gruntfile.js", + "app/assets/js/chart/chart-data-morris.js", + "app/assets/js/tour/redirects-steps.js", + "app/data/allocations-dao.js", + "app/data/benefits-dao.js", + "app/data/contributions-dao.js", + "app/data/memos-dao.js", + "app/data/profile-dao.js", + "app/data/research-dao.js", + "app/data/user-dao.js", + "app/routes/allocations.js", + "app/routes/benefits.js", + "app/routes/contributions.js", + "app/routes/error.js", + "app/routes/index.js", + "app/routes/memos.js", + "app/routes/profile.js", + "app/routes/research.js", + "app/routes/session.js", + "app/routes/tutorial.js", + "artifacts/db-reset.js", + "config/config.js", + "config/env/all.js", + "config/env/development.js", + "config/env/production.js", + "config/env/test.js", + "server.js", + "test/e2e/integration/allocations_spec.js", + "test/e2e/integration/benefits_spec.js", + "test/e2e/integration/contributions_spec.js", + "test/e2e/integration/dashboard_spec.js", + "test/e2e/integration/general_spec.js", + "test/e2e/integration/learn_spec.js", + "test/e2e/integration/login_spec.js", + "test/e2e/integration/logout_spec.js", + "test/e2e/integration/memos_spec.js", + "test/e2e/integration/profile_spec.js", + "test/e2e/integration/research_spec.js", + "test/e2e/integration/signup_spec.js", + "test/e2e/integration/tutorial_spec.js", + "test/e2e/plugins/index.js", + "test/e2e/support/commands.js", + "test/e2e/support/index.js", + "test/security/profile-test.js" + ], + "source_root": "/tmp/ousast-input-iczx7vvd" + }, + "receipt": "297ca4188e5a0a00229097d4a9a44d8978a7be659890b900ae976186dbcf15dd", + "sha256": "ecb311e3fe1fe500d8f6269916d5cf835a44db25318449750583fc8f3e6de462", + "size": 727481, + "version": 1 + }, + "input_probe": { + "path": "/cache/nodegoat/c5cb68a7084e/app/routes/contributions.js", + "bytes": 2485, + "sha256": "196bdeaa22da4cfe8a851b1b932710b2fcedd21f14ed75d70b739ba759a01003" + }, + "source_receipts": [ + { + "path": "Gruntfile.js", + "bytes": 6359, + "sha256": "2e9fd032cbc6a5594d90c76448ce37b98be0f0d3ef7a66e6b4aabbc674293af6" + }, + { + "path": "app/assets/js/chart/chart-data-morris.js", + "bytes": 3718, + "sha256": "a5511ae7a5614f9f2dd89625bce94d6b794a675dae4987259d087a8d2e8e2693" + }, + { + "path": "app/assets/js/tour/redirects-steps.js", + "bytes": 648, + "sha256": "16babf9b88e186cb4e2a7ab896a78494f6d4a88737c903eb1e23e35579ac651b" + }, + { + "path": "app/data/allocations-dao.js", + "bytes": 3928, + "sha256": "c6aebc971ce7f9c8b2a8f0864a500497de25a3ea0318ef94ecd57cadf6e789ea" + }, + { + "path": "app/data/benefits-dao.js", + "bytes": 1240, + "sha256": "0ac30b097e016eeffb10e1c72d9c657153d3ce67e7b3f4756b2cb127d94181d7" + }, + { + "path": "app/data/contributions-dao.js", + "bytes": 2791, + "sha256": "363065e8b3c32f0997ce2dcb17341eb3e40b7f43b00b72c576dfebf73f551c85" + }, + { + "path": "app/data/memos-dao.js", + "bytes": 1107, + "sha256": "6582195bd913c2d60d63e9b519f9508a3319e07e158fd0c6f31dcbc50a80e8cf" + }, + { + "path": "app/data/profile-dao.js", + "bytes": 3506, + "sha256": "80429a5df579867401a59b1cbd9c1d74f88d5548780fbd909e9504876c1968cc" + }, + { + "path": "app/data/research-dao.js", + "bytes": 750, + "sha256": "f1cf267e56080fc94943ad7d83802b4e9db9420687fac49f84dbc0e45dfa88ac" + }, + { + "path": "app/data/user-dao.js", + "bytes": 4078, + "sha256": "577fb140933a50e010a4bbcb74e975f678d7f3a989467e4d113926f35c042e64" + }, + { + "path": "app/routes/allocations.js", + "bytes": 915, + "sha256": "b5b7da1a6b595799cf6cca402756dd9a3f6e2a8b5d712c1989d23b7f01f349a6" + }, + { + "path": "app/routes/benefits.js", + "bytes": 1340, + "sha256": "bc5516b35ba21884915b88b3f810441e616f068d8a0cf756b143185d5aeda2d2" + }, + { + "path": "app/routes/contributions.js", + "bytes": 2485, + "sha256": "196bdeaa22da4cfe8a851b1b932710b2fcedd21f14ed75d70b739ba759a01003" + }, + { + "path": "app/routes/error.js", + "bytes": 281, + "sha256": "452dc61f9f06a31ea4305edb2e573fc940428615841533b59320792fcfb6fb3f" + }, + { + "path": "app/routes/index.js", + "bytes": 3149, + "sha256": "3ab970b2888bc1501515db24a83cc7851ac9c09d00948c652300401515185eb5" + }, + { + "path": "app/routes/memos.js", + "bytes": 824, + "sha256": "c3543f308f24083436e25e3a72210ad31e611db5c93268d8dd0e340095e132c9" + }, + { + "path": "app/routes/profile.js", + "bytes": 3633, + "sha256": "18575bf3d3710906e57e09e6036e40fd3986bdcca436ed0e2a2875b41f0f2aca" + }, + { + "path": "app/routes/research.js", + "bytes": 1071, + "sha256": "e399f3c70436fa160f00835626bf50f88980268fcd143436af97c9d2297c1d92" + }, + { + "path": "app/routes/session.js", + "bytes": 10199, + "sha256": "e53e38b6eea76b026efaacde07f694e7a2eca005de4083fb74f9393d432a5b25" + }, + { + "path": "app/routes/tutorial.js", + "bytes": 637, + "sha256": "502e0b959b37cbc844d15eadd7a78a40b5281155fcf8d532f0e4abdd2fee8eb9" + }, + { + "path": "artifacts/db-reset.js", + "bytes": 4183, + "sha256": "df5d947ef23786683ab0d5f3c5ed5ef3f25ab93ce7610448c6db79b446168aa9" + }, + { + "path": "config/config.js", + "bytes": 487, + "sha256": "b84b1bf634159caffdef50fe826077e60dbde1e381ceb148ff3b869e789b6962" + }, + { + "path": "config/env/all.js", + "bytes": 365, + "sha256": "31a71288f0d830799da9c39e1b1ad10b0e989282bcf9a31bb48f8f618f37f6ad" + }, + { + "path": "config/env/development.js", + "bytes": 636, + "sha256": "1829bc509dcc6a6eb58b0eee49901df530b9cceafa2ed37e855beacec4971f08" + }, + { + "path": "config/env/production.js", + "bytes": 21, + "sha256": "8222b8169ee86f25cdccd84d340340060ae3f0cff55e2ea9d344d7c332733b71" + }, + { + "path": "config/env/test.js", + "bytes": 318, + "sha256": "b48cd5c17fc9639c1c4198fced69b438c2b0c7fe70e80f0113bcd0d86cd583a5" + }, + { + "path": "server.js", + "bytes": 4860, + "sha256": "48ec5e8f9668b230caf6af27f4a4ffbdcd8b702b376a6bbcc951217917c6ea2e" + }, + { + "path": "test/e2e/integration/allocations_spec.js", + "bytes": 1062, + "sha256": "d345f97bc2c3c9e559d98f3e108ab568303c7509dbe707c4cc49f811d5f94db7" + }, + { + "path": "test/e2e/integration/benefits_spec.js", + "bytes": 1228, + "sha256": "e4eb2765b08769e86b140dceee3091a5466da13933400272076b6de693b5cb71" + }, + { + "path": "test/e2e/integration/contributions_spec.js", + "bytes": 1160, + "sha256": "8504f4cbbe578b91f112b7effffb0e43823af9648c5b406ded5a0d65fb4bbde3" + }, + { + "path": "test/e2e/integration/dashboard_spec.js", + "bytes": 933, + "sha256": "96ef5e6d8b75787ac9a44fcd5f918cd3493680e74c70c45b381fe4416fa7f4f8" + }, + { + "path": "test/e2e/integration/general_spec.js", + "bytes": 2044, + "sha256": "5364de581df32c99964f63baa8486fcd32b922c9f327192f3a1e81ca6cd0ceff" + }, + { + "path": "test/e2e/integration/learn_spec.js", + "bytes": 471, + "sha256": "05e6bf11c5e773cd22861dbe18bced293024a7400c3a89b2c0e111bb88d8eaa1" + }, + { + "path": "test/e2e/integration/login_spec.js", + "bytes": 2377, + "sha256": "e1433dfab270ac3f7b32f4ee904d781c2bb2581804177a0cafc488f6c79efb25" + }, + { + "path": "test/e2e/integration/logout_spec.js", + "bytes": 737, + "sha256": "31ebf201e7d899baf8acd1d50c3fc4e42a5636c263982e5e517a1eaf3e35518f" + }, + { + "path": "test/e2e/integration/memos_spec.js", + "bytes": 991, + "sha256": "625a08e3c9f80cf46f3fe81c2acde3dc76d955bde10aa7c68498b6830b7a86b4" + }, + { + "path": "test/e2e/integration/profile_spec.js", + "bytes": 1509, + "sha256": "e22ce888656d18e020ca2775396e000cc899bdac255a1503f9af2c4ef18ffef0" + }, + { + "path": "test/e2e/integration/research_spec.js", + "bytes": 1108, + "sha256": "4e81ed0c2cf42da656217c1e38a35f9257d0a09467ffbe25d9d19930df05ed3a" + }, + { + "path": "test/e2e/integration/signup_spec.js", + "bytes": 1734, + "sha256": "27c56206888e1d664f852090ed943dc746638724743f7d5fb12d35e39136d22f" + }, + { + "path": "test/e2e/integration/tutorial_spec.js", + "bytes": 1819, + "sha256": "2664d921df2c716695df8c216e93b76a9b09376100ee8bc5c3f4354f0ebdb8a6" + }, + { + "path": "test/e2e/plugins/index.js", + "bytes": 788, + "sha256": "1fd870a6602782c27f87cd1aaaae24da269b20408612f718125b4471242f6e83" + }, + { + "path": "test/e2e/support/commands.js", + "bytes": 839, + "sha256": "967bdb0f97ec8277d952de4273c1bf2fcc000b1eb08de533a80e34157f65e499" + }, + { + "path": "test/e2e/support/index.js", + "bytes": 27, + "sha256": "a74243373740a95e3e3691087776e652ba954fcfd96130c4c374279a7310683d" + }, + { + "path": "test/security/profile-test.js", + "bytes": 13055, + "sha256": "17b6d02097d2fdfaebcdae31e70620fe691b5cabbcd99829d7c8d72ac3d4239a" + } + ], + "graph_bytes": 727481, + "disposable_census": { + "seconds": 14.29165190004278, + "exit_code": 0, + "stdout": "ERROR StatusConsoleListener Could not determine local host name\n java.net.UnknownHostException: 1f1a1df5d1b2: 1f1a1df5d1b2: Temporary failure in name resolution\n\tat java.base/java.net.InetAddress.getLocalHost(Unknown Source)\n\tat org.apache.logging.log4j.core.util.NetUtils.getLocalHostname(NetUtils.java:56)\n\tat org.apache.logging.log4j.core.LoggerContext.lambda$setConfiguration$0(LoggerContext.java:615)\n\tat java.base/java.util.concurrent.ConcurrentHashMap.computeIfAbsent(Unknown Source)\n\tat org.apache.logging.log4j.core.LoggerContext.setConfiguration(LoggerContext.java:615)\n\tat org.apache.logging.log4j.core.LoggerContext.reconfigure(LoggerContext.java:694)\n\tat org.apache.logging.log4j.core.LoggerContext.reconfigure(LoggerContext.java:711)\n\tat org.apache.logging.log4j.core.LoggerContext.start(LoggerContext.java:253)\n\tat org.apache.logging.log4j.core.impl.Log4jContextFactory.getContext(Log4jContextFactory.java:155)\n\tat org.apache.logging.log4j.core.impl.Log4jContextFactory.getContext(Log4jContextFactory.java:47)\n\tat org.apache.logging.log4j.LogManager.getContext(LogManager.java:196)\n\tat org.apache.logging.log4j.spi.AbstractLoggerAdapter.getContext(AbstractLoggerAdapter.java:137)\n\tat org.apache.logging.slf4j.Log4jLoggerFactory.getContext(Log4jLoggerFactory.java:61)\n\tat org.apache.logging.log4j.spi.AbstractLoggerAdapter.getLogger(AbstractLoggerAdapter.java:47)\n\tat org.apache.logging.slf4j.Log4jLoggerFactory.getLogger(Log4jLoggerFactory.java:33)\n\tat org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:447)\n\tat org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:472)\n\tat io.shiftleft.semanticcpg.sarif.SarifSchema$.(SarifSchema.scala:10)\n\tat io.shiftleft.semanticcpg.sarif.SarifConfig$.$lessinit$greater$default$8(SarifConfig.scala:38)\n\tat ScalaReplPP$.(wrapped-script15917914099764983556.sc:21)\n\tat ScalaReplPP.main(wrapped-script15917914099764983556.sc)\n\tat java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(Unknown Source)\n\tat java.base/java.lang.reflect.Method.invoke(Unknown Source)\n\tat replpp.scripting.ScriptingDriver.$anonfun$2(ScriptingDriver.scala:60)\n\tat replpp.util.SimpleDriver.compile$$anonfun$1(SimpleDriver.scala:81)\n\tat scala.util.Try$.apply(Try.scala:195)\n\tat replpp.util.SimpleDriver.compile(SimpleDriver.scala:83)\n\tat replpp.scripting.ScriptingDriver.compileAndRun(ScriptingDriver.scala:53)\n\tat replpp.scripting.NonForkingScriptRunner$.exec(NonForkingScriptRunner.scala:48)\n\tat replpp.scripting.NonForkingScriptRunner$.main(NonForkingScriptRunner.scala:21)\n\tat replpp.scripting.NonForkingScriptRunner.main(NonForkingScriptRunner.scala)\nCaused by: java.net.UnknownHostException: 1f1a1df5d1b2: Temporary failure in name resolution\n\tat java.base/java.net.Inet6AddressImpl.lookupAllHostAddr(Native Method)\n\tat java.base/java.net.Inet6AddressImpl.lookupAllHostAddr(Unknown Source)\n\tat java.base/java.net.InetAddress$PlatformResolver.lookupByName(Unknown Source)\n\tat java.base/java.net.InetAddress.getAddressesFromNameService(Unknown Source)\n\tat java.base/java.net.InetAddress$NameServiceAddresses.get(Unknown Source)\n\tat java.base/java.net.InetAddress.getAllByName0(Unknown Source)\n\t... 31 more\n[INFO ] initialising from existing storage (/tmp/session-probe-7zkl39j0/workspace/cpg.bin/cpg.bin.tmp)\n[INFO ] Start of pass: io.joern.x2cpg.frontendspecific.jssrc2cpg.JavaScriptInheritanceNamePass\n[INFO ] Pass io.joern.x2cpg.frontendspecific.jssrc2cpg.JavaScriptInheritanceNamePass completed in 39 ms (62% on mutations). 0 + 0 changes committed from 0 parts.\n[INFO ] Start of pass: io.joern.x2cpg.frontendspecific.jssrc2cpg.ConstClosurePass\n[INFO ] Pass io.joern.x2cpg.frontendspecific.jssrc2cpg.ConstClosurePass completed in 169 ms (9% on mutations). 39 + 0 changes committed from 1 parts.\n[INFO ] Start of pass: io.joern.x2cpg.frontendspecific.jssrc2cpg.JavaScriptImportResolverPass\n[INFO ] Pass io.joern.x2cpg.frontendspecific.jssrc2cpg.JavaScriptImportResolverPass completed in 139 ms (9% on mutations). 274 + 0 changes committed from 116 parts.\n[INFO ] Start of pass: io.joern.x2cpg.frontendspecific.jssrc2cpg.JavaScriptTypeRecovery\n[INFO ] Pass io.joern.x2cpg.frontendspecific.jssrc2cpg.JavaScriptTypeRecovery completed in 640 ms (6% on mutations). 3130 + 0 changes committed from 44 parts.\n[INFO ] Start of pass: io.joern.x2cpg.frontendspecific.jssrc2cpg.JavaScriptTypeRecovery\n[INFO ] Pass io.joern.x2cpg.frontendspecific.jssrc2cpg.JavaScriptTypeRecovery completed in 283 ms (11% on mutations). 3750 + 0 changes committed from 44 parts.\n[INFO ] Start of pass: io.joern.x2cpg.frontendspecific.jssrc2cpg.JavaScriptTypeHintCallLinker\n[INFO ] Pass io.joern.x2cpg.frontendspecific.jssrc2cpg.JavaScriptTypeHintCallLinker completed in 174 ms (8% on mutations). 272 + 0 changes committed from 1 parts.\n[INFO ] Start of pass: io.joern.x2cpg.frontendspecific.jssrc2cpg.ObjectPropertyCallLinker\n[INFO ] Pass io.joern.x2cpg.frontendspecific.jssrc2cpg.ObjectPropertyCallLinker completed in 31 ms (12% on mutations). 0 + 0 changes committed from 1 parts.\n[INFO ] Start of pass: io.joern.x2cpg.passes.callgraph.NaiveCallLinker\n[INFO ] Pass io.joern.x2cpg.passes.callgraph.NaiveCallLinker completed in 29 ms (38% on mutations). 42 + 0 changes committed from 1 parts.\n---OUSAST-CPG-BEGIN---\n{\"files\":\"44\",\"methods\":\"579\",\"calls\":\"4134\",\"file_names\":[\"Gruntfile.js\",\"app/assets/js/chart/chart-data-morris.js\",\"app/assets/js/tour/redirects-steps.js\",\"app/data/allocations-dao.js\",\"app/data/benefits-dao.js\",\"app/data/contributions-dao.js\",\"app/data/memos-dao.js\",\"app/data/profile-dao.js\",\"app/data/research-dao.js\",\"app/data/user-dao.js\",\"app/routes/allocations.js\",\"app/routes/benefits.js\",\"app/routes/contributions.js\",\"app/routes/error.js\",\"app/routes/index.js\",\"app/routes/memos.js\",\"app/routes/profile.js\",\"app/routes/research.js\",\"app/routes/session.js\",\"app/routes/tutorial.js\",\"artifacts/db-reset.js\",\"config/config.js\",\"config/env/all.js\",\"config/env/development.js\",\"config/env/production.js\",\"config/env/test.js\",\"server.js\",\"test/e2e/integration/allocations_spec.js\",\"test/e2e/integration/benefits_spec.js\",\"test/e2e/integration/contributions_spec.js\",\"test/e2e/integration/dashboard_spec.js\",\"test/e2e/integration/general_spec.js\",\"test/e2e/integration/learn_spec.js\",\"test/e2e/integration/login_spec.js\",\"test/e2e/integration/logout_spec.js\",\"test/e2e/integration/memos_spec.js\",\"test/e2e/integration/profile_spec.js\",\"test/e2e/integration/research_spec.js\",\"test/e2e/integration/signup_spec.js\",\"test/e2e/integration/tutorial_spec.js\",\"test/e2e/plugins/index.js\",\"test/e2e/support/commands.js\",\"test/e2e/support/index.js\",\"test/security/profile-test.js\"],\"overlays\":\"base,controlflow,typerel,callgraph,dataflowOss\",\"maxHeapMB\":\"1536\"}\n---OUSAST-CPG-END---\n[INFO ] writing to storage at `/tmp/session-probe-7zkl39j0/workspace/cpg.bin/cpg.bin.tmp`\n[INFO ] closed graph at /tmp/session-probe-7zkl39j0/workspace/cpg.bin/cpg.bin.tmp\n", + "stderr": "Picked up JAVA_TOOL_OPTIONS: -Xmx1536m\nPicked up JAVA_TOOL_OPTIONS: -Xmx1536m\nexecuting /app/src/openultrasast/cpg/queries/census.sc with params=Map(cpgFile -> /tmp/session-probe-7zkl39j0/cpg.bin)\nCreating project `cpg.bin` for CPG at `/tmp/session-probe-7zkl39j0/cpg.bin`\nCreating working copy of CPG to be safe\nLoading base CPG from: /tmp/session-probe-7zkl39j0/workspace/cpg.bin/cpg.bin.tmp\nOverlay dataflowOss already exists - skipping\nThe graph has been modified. You may want to use the `save` command to persist changes to disk. All changes will also be saved collectively on exit\nclosing/saving project `cpg.bin`\n" + }, + "server_startup_seconds": 12.80504657595884, + "census_equivalent": true, + "hanging_request_entered": true, + "cancellation_seconds": 0.04341585794463754, + "status": "PASS_LIFECYCLE_PROBE_ONLY" + }, + "server_log": "Picked up JAVA_TOOL_OPTIONS: -Xmx1536m\nERROR StatusConsoleListener Could not determine local host name\n java.net.UnknownHostException: 1f1a1df5d1b2: 1f1a1df5d1b2: Temporary failure in name resolution\n\tat java.base/java.net.InetAddress.getLocalHost(Unknown Source)\n\tat org.apache.logging.log4j.core.util.NetUtils.getLocalHostname(NetUtils.java:56)\n\tat org.apache.logging.log4j.core.LoggerContext.lambda$setConfiguration$0(LoggerContext.java:615)\n\tat java.base/java.util.concurrent.ConcurrentHashMap.computeIfAbsent(Unknown Source)\n\tat org.apache.logging.log4j.core.LoggerContext.setConfiguration(LoggerContext.java:615)\n\tat org.apache.logging.log4j.core.LoggerContext.reconfigure(LoggerContext.java:694)\n\tat org.apache.logging.log4j.core.LoggerContext.reconfigure(LoggerContext.java:711)\n\tat org.apache.logging.log4j.core.LoggerContext.start(LoggerContext.java:253)\n\tat org.apache.logging.log4j.core.impl.Log4jContextFactory.getContext(Log4jContextFactory.java:155)\n\tat org.apache.logging.log4j.core.impl.Log4jContextFactory.getContext(Log4jContextFactory.java:47)\n\tat org.apache.logging.log4j.LogManager.getContext(LogManager.java:196)\n\tat org.apache.logging.log4j.spi.AbstractLoggerAdapter.getContext(AbstractLoggerAdapter.java:137)\n\tat org.apache.logging.slf4j.Log4jLoggerFactory.getContext(Log4jLoggerFactory.java:61)\n\tat org.apache.logging.log4j.spi.AbstractLoggerAdapter.getLogger(AbstractLoggerAdapter.java:47)\n\tat org.apache.logging.slf4j.Log4jLoggerFactory.getLogger(Log4jLoggerFactory.java:33)\n\tat org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:447)\n\tat org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:472)\n\tat replpp.server.ReplServer$.(ReplServer.scala:16)\n\tat io.joern.console.ServerHandling.startHttpServer(BridgeBase.scala:477)\n\tat io.joern.console.ServerHandling.startHttpServer$(BridgeBase.scala:464)\n\tat io.joern.joerncli.console.ReplBridge$.startHttpServer(ReplBridge.scala:5)\n\tat io.joern.console.BridgeBase.run(BridgeBase.scala:239)\n\tat io.joern.console.BridgeBase.run$(BridgeBase.scala:55)\n\tat io.joern.joerncli.console.ReplBridge$.run(ReplBridge.scala:5)\n\tat io.joern.joerncli.console.ReplBridge$.main(ReplBridge.scala:10)\n\tat io.joern.joerncli.console.ReplBridge.main(ReplBridge.scala)\nCaused by: java.net.UnknownHostException: 1f1a1df5d1b2: Temporary failure in name resolution\n\tat java.base/java.net.Inet6AddressImpl.lookupAllHostAddr(Native Method)\n\tat java.base/java.net.Inet6AddressImpl.lookupAllHostAddr(Unknown Source)\n\tat java.base/java.net.InetAddress$PlatformResolver.lookupByName(Unknown Source)\n\tat java.base/java.net.InetAddress.getAddressesFromNameService(Unknown Source)\n\tat java.base/java.net.InetAddress$NameServiceAddresses.get(Unknown Source)\n\tat java.base/java.net.InetAddress.getAllByName0(Unknown Source)\n\t... 26 more\nusing jar from inherited classpath: /opt/joern-cli/lib/org.scala-lang.tasty-core_3-3.8.3.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/org.apache.logging.log4j.log4j-core-2.20.0.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/com.fasterxml.jackson.core.jackson-core-2.17.2.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/io.joern.rubysrc2cpg-4.0.625.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/io.joern.dataflowengineoss-4.0.625.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/io.joern.flatgraph-formats_3-0.1.34.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/io.joern.flatgraph-odb-convert_3-0.1.34.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/com.lihaoyi.cask_3-0.9.5.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/com.lihaoyi.upickle-core_3-4.1.0.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/io.shiftleft.overflowdb-core_3-1.194.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/org.json4s.json4s-native_3-4.0.7.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/com.lihaoyi.castor_3-0.3.0.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/io.undertow.undertow-core-2.3.18.Final.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/io.joern.flatgraph-help_3-0.1.34.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/org.jboss.xnio.xnio-api-3.8.16.Final.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/org.msgpack.msgpack-core-0.9.1.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/commons-io.commons-io-2.22.0.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/org.wildfly.client.wildfly-client-config-1.0.1.Final.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/com.lihaoyi.fansi_3-0.5.1.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/org.apache.maven.maven-artifact-3.9.16.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/io.shiftleft.codepropertygraph-domain-classes_3-1.7.74.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/org.typelevel.cats-kernel_3-2.9.0.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/org.json4s.json4s-core_3-4.0.7.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/com.lihaoyi.geny_3-1.1.1.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/com.michaelpollmeier.scala-repl-pp_3.8.3-0.6.4.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/com.ibm.icu.icu4j-61.1.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/com.github.pathikrit.better-files_3-3.9.2.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/org.typelevel.cats-core_3-2.9.0.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/com.lihaoyi.upickle-implicits_3-4.0.2.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/org.antlr.ST4-4.1.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/org.typelevel.cats-effect-kernel_3-3.5.4.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/io.shiftleft.codepropertygraph-protos_3-1.7.74.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/org.scala-lang.modules.scala-xml_3-2.3.0.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/net.oneandone.reflections8.reflections8-0.11.7.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/org.glassfish.javax.json-1.0.4.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/org.antlr.antlr-runtime-3.5.2.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/org.json4s.json4s-scalap_3-4.0.7.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/com.lihaoyi.ujson_3-4.1.0.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/org.apache.commons.commons-compress-1.26.2.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/org.apache.logging.log4j.log4j-api-2.20.0.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/com.lihaoyi.upack_3-4.0.2.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/org.apache.commons.commons-exec-1.4.0.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/com.michaelpollmeier.versionsort-1.0.11.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/io.joern.semanticcpg-4.0.625.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/commons-codec.commons-codec-1.17.0.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/org.json4s.json4s-ast_3-4.0.7.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/org.typelevel.cats-effect_3-3.5.4.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/org.reflections.reflections-0.10.2.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/io.joern.flatgraph-core_3-0.1.34.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/org.scala-lang.scala3-repl_3-3.8.3.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/com.github.tototoshi.scala-csv_3-2.0.0.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/org.jboss.xnio.xnio-nio-3.8.16.Final.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/com.lihaoyi.cask-util_3-0.9.5.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/io.get-coursier.interface-1.0.28.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/org.scala-lang.scala3-library_3-3.8.3.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/io.joern.joern-cli-4.0.625.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/org.zeroturnaround.zt-zip-1.17.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/com.lihaoyi.upickle_3-4.0.2.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/com.lihaoyi.requests_3-0.8.0.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/org.javassist.javassist-3.28.0-GA.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/io.joern.console-4.0.625.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/org.apache.commons.commons-lang3-3.17.0.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/org.codehaus.plexus.plexus-utils-3.6.1.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/org.virtuslab.using_directives-1.1.4.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/org.java-websocket.Java-WebSocket-1.5.3.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/org.json4s.json4s-native-core_3-4.0.7.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/org.jruby.jruby-complete-9.4.15.0.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/org.slf4j.slf4j-api-2.0.17.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/org.jline.jline-terminal-3.29.0.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/org.jline.jline-terminal-jni-3.29.0.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/com.h2database.h2-mvstore-1.4.200.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/org.scala-sbt.util-interface-1.10.7.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/com.thoughtworks.paranamer.paranamer-2.8.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/com.lihaoyi.sourcecode_3-0.4.4.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/org.typelevel.cats-effect-std_3-3.5.4.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/com.michaelpollmeier.scala-repl-pp-server_3.8.3-0.6.4.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/io.shiftleft.codepropertygraph_3-1.7.74.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/com.github.luben.zstd-jni-1.5.7-11.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/com.lihaoyi.os-lib_3-0.10.1.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/org.antlr.antlr4-4.7.2.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/org.scala-lang.modules.scala-parallel-collections_3-1.0.4.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/org.apache.commons.commons-text-1.13.0.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/com.google.code.findbugs.jsr305-3.0.2.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/org.scala-lang.scala3-interfaces-3.8.3.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/com.google.protobuf.protobuf-java-3.20.1.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/io.joern.macros-4.0.625.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/org.jline.jline-native-3.29.0.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/com.michaelpollmeier.scala-repl-pp-shaded-libs_3-0.6.4.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/org.jboss.threads.jboss-threads-3.5.0.Final.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/net.sf.trove4j.core-3.1.0.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/org.abego.treelayout.org.abego.treelayout.core-1.0.3.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/org.wildfly.common.wildfly-common-1.5.4.Final.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/org.jline.jline-reader-3.29.0.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/com.typesafe.config-1.4.3.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/org.scala-lang.modules.scala-asm-9.9.0-scala-1.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/org.scala-lang.scala3-compiler_3-3.8.3.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/org.antlr.antlr4-runtime-4.7.2.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/com.lihaoyi.pprint_3-0.9.3.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/org.scala-sbt.compiler-interface-1.10.7.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/org.jboss.logging.jboss-logging-3.4.3.Final.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/com.github.scopt.scopt_3-4.1.0.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/io.spray.spray-json_3-1.3.6.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/org.scala-lang.scala-library-3.8.3.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/org.apache.logging.log4j.log4j-slf4j2-impl-2.20.0.jar\nusing jar from inherited classpath: /opt/joern-cli/lib/io.joern.x2cpg-4.0.625.jar\nclasspath entries from config >\n/opt/joern-cli/lib/com.fasterxml.jackson.core.jackson-core-2.17.2.jar\n/opt/joern-cli/lib/com.github.luben.zstd-jni-1.5.7-11.jar\n/opt/joern-cli/lib/com.github.pathikrit.better-files_3-3.9.2.jar\n/opt/joern-cli/lib/com.github.scopt.scopt_3-4.1.0.jar\n/opt/joern-cli/lib/com.github.tototoshi.scala-csv_3-2.0.0.jar\n/opt/joern-cli/lib/com.google.code.findbugs.jsr305-3.0.2.jar\n/opt/joern-cli/lib/com.google.protobuf.protobuf-java-3.20.1.jar\n/opt/joern-cli/lib/com.h2database.h2-mvstore-1.4.200.jar\n/opt/joern-cli/lib/com.ibm.icu.icu4j-61.1.jar\n/opt/joern-cli/lib/com.lihaoyi.cask-util_3-0.9.5.jar\n/opt/joern-cli/lib/com.lihaoyi.cask_3-0.9.5.jar\n/opt/joern-cli/lib/com.lihaoyi.castor_3-0.3.0.jar\n/opt/joern-cli/lib/com.lihaoyi.fansi_3-0.5.1.jar\n/opt/joern-cli/lib/com.lihaoyi.geny_3-1.1.1.jar\n/opt/joern-cli/lib/com.lihaoyi.os-lib_3-0.10.1.jar\n/opt/joern-cli/lib/com.lihaoyi.pprint_3-0.9.3.jar\n/opt/joern-cli/lib/com.lihaoyi.requests_3-0.8.0.jar\n/opt/joern-cli/lib/com.lihaoyi.sourcecode_3-0.4.4.jar\n/opt/joern-cli/lib/com.lihaoyi.ujson_3-4.1.0.jar\n/opt/joern-cli/lib/com.lihaoyi.upack_3-4.0.2.jar\n/opt/joern-cli/lib/com.lihaoyi.upickle-core_3-4.1.0.jar\n/opt/joern-cli/lib/com.lihaoyi.upickle-implicits_3-4.0.2.jar\n/opt/joern-cli/lib/com.lihaoyi.upickle_3-4.0.2.jar\n/opt/joern-cli/lib/com.michaelpollmeier.scala-repl-pp-server_3.8.3-0.6.4.jar\n/opt/joern-cli/lib/com.michaelpollmeier.scala-repl-pp-shaded-libs_3-0.6.4.jar\n/opt/joern-cli/lib/com.michaelpollmeier.scala-repl-pp_3.8.3-0.6.4.jar\n/opt/joern-cli/lib/com.michaelpollmeier.versionsort-1.0.11.jar\n/opt/joern-cli/lib/com.thoughtworks.paranamer.paranamer-2.8.jar\n/opt/joern-cli/lib/com.typesafe.config-1.4.3.jar\n/opt/joern-cli/lib/commons-codec.commons-codec-1.17.0.jar\n/opt/joern-cli/lib/commons-io.commons-io-2.22.0.jar\n/opt/joern-cli/lib/io.get-coursier.interface-1.0.28.jar\n/opt/joern-cli/lib/io.joern.console-4.0.625.jar\n/opt/joern-cli/lib/io.joern.dataflowengineoss-4.0.625.jar\n/opt/joern-cli/lib/io.joern.flatgraph-core_3-0.1.34.jar\n/opt/joern-cli/lib/io.joern.flatgraph-formats_3-0.1.34.jar\n/opt/joern-cli/lib/io.joern.flatgraph-help_3-0.1.34.jar\n/opt/joern-cli/lib/io.joern.flatgraph-odb-convert_3-0.1.34.jar\n/opt/joern-cli/lib/io.joern.joern-cli-4.0.625.jar\n/opt/joern-cli/lib/io.joern.macros-4.0.625.jar\n/opt/joern-cli/lib/io.joern.rubysrc2cpg-4.0.625.jar\n/opt/joern-cli/lib/io.joern.semanticcpg-4.0.625.jar\n/opt/joern-cli/lib/io.joern.x2cpg-4.0.625.jar\n/opt/joern-cli/lib/io.shiftleft.codepropertygraph-domain-classes_3-1.7.74.jar\n/opt/joern-cli/lib/io.shiftleft.codepropertygraph-protos_3-1.7.74.jar\n/opt/joern-cli/lib/io.shiftleft.codepropertygraph_3-1.7.74.jar\n/opt/joern-cli/lib/io.shiftleft.overflowdb-core_3-1.194.jar\n/opt/joern-cli/lib/io.spray.spray-json_3-1.3.6.jar\n/opt/joern-cli/lib/io.undertow.undertow-core-2.3.18.Final.jar\n/opt/joern-cli/lib/net.oneandone.reflections8.reflections8-0.11.7.jar\n/opt/joern-cli/lib/net.sf.trove4j.core-3.1.0.jar\n/opt/joern-cli/lib/org.abego.treelayout.org.abego.treelayout.core-1.0.3.jar\n/opt/joern-cli/lib/org.antlr.ST4-4.1.jar\n/opt/joern-cli/lib/org.antlr.antlr-runtime-3.5.2.jar\n/opt/joern-cli/lib/org.antlr.antlr4-4.7.2.jar\n/opt/joern-cli/lib/org.antlr.antlr4-runtime-4.7.2.jar\n/opt/joern-cli/lib/org.apache.commons.commons-compress-1.26.2.jar\n/opt/joern-cli/lib/org.apache.commons.commons-exec-1.4.0.jar\n/opt/joern-cli/lib/org.apache.commons.commons-lang3-3.17.0.jar\n/opt/joern-cli/lib/org.apache.commons.commons-text-1.13.0.jar\n/opt/joern-cli/lib/org.apache.logging.log4j.log4j-api-2.20.0.jar\n/opt/joern-cli/lib/org.apache.logging.log4j.log4j-core-2.20.0.jar\n/opt/joern-cli/lib/org.apache.logging.log4j.log4j-slf4j2-impl-2.20.0.jar\n/opt/joern-cli/lib/org.apache.maven.maven-artifact-3.9.16.jar\n/opt/joern-cli/lib/org.codehaus.plexus.plexus-utils-3.6.1.jar\n/opt/joern-cli/lib/org.glassfish.javax.json-1.0.4.jar\n/opt/joern-cli/lib/org.java-websocket.Java-WebSocket-1.5.3.jar\n/opt/joern-cli/lib/org.javassist.javassist-3.28.0-GA.jar\n/opt/joern-cli/lib/org.jboss.logging.jboss-logging-3.4.3.Final.jar\n/opt/joern-cli/lib/org.jboss.threads.jboss-threads-3.5.0.Final.jar\n/opt/joern-cli/lib/org.jboss.xnio.xnio-api-3.8.16.Final.jar\n/opt/joern-cli/lib/org.jboss.xnio.xnio-nio-3.8.16.Final.jar\n/opt/joern-cli/lib/org.jline.jline-native-3.29.0.jar\n/opt/joern-cli/lib/org.jline.jline-reader-3.29.0.jar\n/opt/joern-cli/lib/org.jline.jline-terminal-3.29.0.jar\n/opt/joern-cli/lib/org.jline.jline-terminal-jni-3.29.0.jar\n/opt/joern-cli/lib/org.jruby.jruby-complete-9.4.15.0.jar\n/opt/joern-cli/lib/org.json4s.json4s-ast_3-4.0.7.jar\n/opt/joern-cli/lib/org.json4s.json4s-core_3-4.0.7.jar\n/opt/joern-cli/lib/org.json4s.json4s-native-core_3-4.0.7.jar\n/opt/joern-cli/lib/org.json4s.json4s-native_3-4.0.7.jar\n/opt/joern-cli/lib/org.json4s.json4s-scalap_3-4.0.7.jar\n/opt/joern-cli/lib/org.msgpack.msgpack-core-0.9.1.jar\n/opt/joern-cli/lib/org.reflections.reflections-0.10.2.jar\n/opt/joern-cli/lib/org.scala-lang.modules.scala-asm-9.9.0-scala-1.jar\n/opt/joern-cli/lib/org.scala-lang.modules.scala-parallel-collections_3-1.0.4.jar\n/opt/joern-cli/lib/org.scala-lang.modules.scala-xml_3-2.3.0.jar\n/opt/joern-cli/lib/org.scala-lang.scala-library-3.8.3.jar\n/opt/joern-cli/lib/org.scala-lang.scala3-compiler_3-3.8.3.jar\n/opt/joern-cli/lib/org.scala-lang.scala3-interfaces-3.8.3.jar\n/opt/joern-cli/lib/org.scala-lang.scala3-library_3-3.8.3.jar\n/opt/joern-cli/lib/org.scala-lang.scala3-repl_3-3.8.3.jar\n/opt/joern-cli/lib/org.scala-lang.tasty-core_3-3.8.3.jar\n/opt/joern-cli/lib/org.scala-sbt.compiler-interface-1.10.7.jar\n/opt/joern-cli/lib/org.scala-sbt.util-interface-1.10.7.jar\n/opt/joern-cli/lib/org.slf4j.slf4j-api-2.0.17.jar\n/opt/joern-cli/lib/org.typelevel.cats-core_3-2.9.0.jar\n/opt/joern-cli/lib/org.typelevel.cats-effect-kernel_3-3.5.4.jar\n/opt/joern-cli/lib/org.typelevel.cats-effect-std_3-3.5.4.jar\n/opt/joern-cli/lib/org.typelevel.cats-effect_3-3.5.4.jar\n/opt/joern-cli/lib/org.typelevel.cats-kernel_3-2.9.0.jar\n/opt/joern-cli/lib/org.virtuslab.using_directives-1.1.4.jar\n/opt/joern-cli/lib/org.wildfly.client.wildfly-client-config-1.0.1.Final.jar\n/opt/joern-cli/lib/org.wildfly.common.wildfly-common-1.5.4.Final.jar\n/opt/joern-cli/lib/org.zeroturnaround.zt-zip-1.17.jar\n< classpath entries from config\nERROR StatusConsoleListener Could not determine local host name\n java.net.UnknownHostException: 1f1a1df5d1b2: 1f1a1df5d1b2: Temporary failure in name resolution\n\tat java.base/java.net.InetAddress.getLocalHost(Unknown Source)\n\tat org.apache.logging.log4j.core.util.NetUtils.getLocalHostname(NetUtils.java:56)\n\tat org.apache.logging.log4j.core.LoggerContext.lambda$setConfiguration$0(LoggerContext.java:615)\n\tat java.base/java.util.concurrent.ConcurrentHashMap.computeIfAbsent(Unknown Source)\n\tat org.apache.logging.log4j.core.LoggerContext.setConfiguration(LoggerContext.java:615)\n\tat org.apache.logging.log4j.core.LoggerContext.reconfigure(LoggerContext.java:694)\n\tat org.apache.logging.log4j.core.LoggerContext.reconfigure(LoggerContext.java:711)\n\tat org.apache.logging.log4j.core.LoggerContext.start(LoggerContext.java:253)\n\tat org.apache.logging.log4j.core.impl.Log4jContextFactory.getContext(Log4jContextFactory.java:155)\n\tat org.apache.logging.log4j.core.impl.Log4jContextFactory.getContext(Log4jContextFactory.java:47)\n\tat org.apache.logging.log4j.LogManager.getContext(LogManager.java:196)\n\tat org.apache.logging.log4j.spi.AbstractLoggerAdapter.getContext(AbstractLoggerAdapter.java:137)\n\tat org.apache.logging.slf4j.Log4jLoggerFactory.getContext(Log4jLoggerFactory.java:61)\n\tat org.apache.logging.log4j.spi.AbstractLoggerAdapter.getLogger(AbstractLoggerAdapter.java:47)\n\tat org.apache.logging.slf4j.Log4jLoggerFactory.getLogger(Log4jLoggerFactory.java:33)\n\tat org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:447)\n\tat org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:472)\n\tat io.shiftleft.semanticcpg.sarif.SarifSchema$.(SarifSchema.scala:10)\n\tat io.shiftleft.semanticcpg.sarif.SarifConfig$.$lessinit$greater$default$8(SarifConfig.scala:38)\n\tat rs$line$1$.(rs$line$1:14)\n\tat rs$line$1.help(rs$line$1)\n\tat java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(Unknown Source)\n\tat java.base/java.lang.reflect.Method.invoke(Unknown Source)\n\tat replpp.Rendering.$anonfun$4(Rendering.scala:102)\n\tat scala.Option.flatMap(Option.scala:285)\n\tat replpp.Rendering.valueOf(Rendering.scala:102)\n\tat replpp.Rendering.renderVal(Rendering.scala:142)\n\tat replpp.DottyReplDriver.$anonfun$8(DottyReplDriver.scala:397)\n\tat scala.runtime.function.JProcedure1.apply(JProcedure1.java:15)\n\tat scala.runtime.function.JProcedure1.apply(JProcedure1.java:10)\n\tat scala.collection.immutable.List.foreach(List.scala:327)\n\tat replpp.DottyReplDriver.extractAndFormatMembers$1(DottyReplDriver.scala:397)\n\tat replpp.DottyReplDriver.renderDefinitions$$anonfun$2(DottyReplDriver.scala:435)\n\tat scala.Option.map(Option.scala:244)\n\tat replpp.DottyReplDriver.renderDefinitions(DottyReplDriver.scala:434)\n\tat replpp.DottyReplDriver.compile$$anonfun$2(DottyReplDriver.scala:339)\n\tat scala.util.Either.fold(Either.scala:199)\n\tat replpp.DottyReplDriver.compile(DottyReplDriver.scala:321)\n\tat replpp.DottyReplDriver.interpret(DottyReplDriver.scala:280)\n\tat replpp.ReplDriverBase.interpretInput(ReplDriverBase.scala:49)\n\tat replpp.server.ReplDriver.execute(EmbeddedRepl.scala:89)\n\tat replpp.server.EmbeddedRepl.(EmbeddedRepl.scala:30)\n\tat replpp.server.ReplServer$.startHttpServer(ReplServer.scala:27)\n\tat io.joern.console.ServerHandling.startHttpServer(BridgeBase.scala:483)\n\tat io.joern.console.ServerHandling.startHttpServer$(BridgeBase.scala:464)\n\tat io.joern.joerncli.console.ReplBridge$.startHttpServer(ReplBridge.scala:5)\n\tat io.joern.console.BridgeBase.run(BridgeBase.scala:239)\n\tat io.joern.console.BridgeBase.run$(BridgeBase.scala:55)\n\tat io.joern.joerncli.console.ReplBridge$.run(ReplBridge.scala:5)\n\tat io.joern.joerncli.console.ReplBridge$.main(ReplBridge.scala:10)\n\tat io.joern.joerncli.console.ReplBridge.main(ReplBridge.scala)\nCaused by: java.net.UnknownHostException: 1f1a1df5d1b2: Temporary failure in name resolution\n\tat java.base/java.net.Inet6AddressImpl.lookupAllHostAddr(Native Method)\n\tat java.base/java.net.Inet6AddressImpl.lookupAllHostAddr(Unknown Source)\n\tat java.base/java.net.InetAddress$PlatformResolver.lookupByName(Unknown Source)\n\tat java.base/java.net.InetAddress.getAddressesFromNameService(Unknown Source)\n\tat java.base/java.net.InetAddress$NameServiceAddresses.get(Unknown Source)\n\tat java.base/java.net.InetAddress.getAllByName0(Unknown Source)\n\t... 51 more\nSep 14, 2026 11:16:35 AM org.jline.utils.Log logr\nWARNING: Unable to create a system terminal, creating a dumb terminal (enable debug logging for more information)\nSep 14, 2026 11:16:35 AM org.jline.utils.Log logr\nWARNING: Unable to create a system terminal, creating a dumb terminal (enable debug logging for more information)\nOUSAST_READY\nCreating project `cpg.bin` for CPG at `/tmp/session-probe-7zkl39j0/cpg.bin`\nCreating working copy of CPG to be safe\nLoading base CPG from: /tmp/session-probe-7zkl39j0/server/workspace/cpg.bin/cpg.bin.tmp\nOverlay dataflowOss already exists - skipping\nThe graph has been modified. You may want to use the `save` command to persist changes to disk. All changes will also be saved collectively on exit\n" + } + ], + "final_summary": { + "disposable_census_seconds": 14.29165190004278, + "session_startup_seconds": 12.80504657595884, + "graph_load_seconds": 3.6359307559905574, + "first_census_seconds": 1.402274933992885, + "warm_census_seconds": [ + 0.3387976880185306, + 0.4674431789899245, + 0.35327990900259465, + 0.22122467402368784 + ], + "cancellation_seconds": 0.04341585794463754, + "hanging_operation_entry_verified": true, + "process_group_absence_verified": true, + "source_files_reopened": 44, + "source_bytes_reopened": 95411, + "decision": "Promising transport candidate; production integration remains unverified." + }, + "reproduce": "Extract an attempt instrument to /tmp/ousast-session-probe.py; run after reproducing the post-census profile at /tmp/group8-runtime/post-census-runtime-v1. Use a fresh output directory for repeats. docker run --rm --init --network none --memory 3g --entrypoint python -v /tmp/ousast-session-probe.py:/probe.py:ro -v /tmp/group8-runtime:/results -v /home/mc/.cache/openultrasast/repos:/cache:ro openultrasast:dev /probe.py. Build the recorded candidate commit; verify the image and runtime provenance." +} diff --git a/benchmarks/measurements/2026-09-14-nodegoat-post-census-feasibility.json b/benchmarks/measurements/2026-09-14-nodegoat-post-census-feasibility.json new file mode 100644 index 0000000..149b525 --- /dev/null +++ b/benchmarks/measurements/2026-09-14-nodegoat-post-census-feasibility.json @@ -0,0 +1,933 @@ +{ + "workloads": { + "identical-tip": { + "population": 3, + "observed": 3, + "missing": 0, + "latency_samples": 3, + "p50_seconds": 18.683484157081693, + "p95_seconds": 18.87442348897457, + "timeouts": 0, + "completed_targets": 0, + "expected_targets": 3, + "complete_target_cases": 0, + "completion": 0.0, + "complete_coverage_cases": 0, + "cancellation_overrun_seconds": 0, + "pass": false + }, + "function-edit": { + "population": 3, + "observed": 3, + "missing": 0, + "latency_samples": 3, + "p50_seconds": 30.599056344944984, + "p95_seconds": 30.63944144092966, + "timeouts": 3, + "completed_targets": 0, + "expected_targets": 3, + "complete_target_cases": 0, + "completion": 0.0, + "complete_coverage_cases": 0, + "cancellation_overrun_seconds": 0.6394414409296587, + "pass": false + }, + "dependency-edit": { + "population": 3, + "observed": 3, + "missing": 0, + "latency_samples": 3, + "p50_seconds": 30.618500820943154, + "p95_seconds": 30.62463433505036, + "timeouts": 3, + "completed_targets": 0, + "expected_targets": 3, + "complete_target_cases": 0, + "completion": 0.0, + "complete_coverage_cases": 0, + "cancellation_overrun_seconds": 0.6246343350503594, + "pass": false + }, + "configuration-edit": { + "population": 3, + "observed": 3, + "missing": 0, + "latency_samples": 3, + "p50_seconds": 30.60899081302341, + "p95_seconds": 30.620318321045488, + "timeouts": 3, + "completed_targets": 0, + "expected_targets": 3, + "complete_target_cases": 0, + "completion": 0.0, + "complete_coverage_cases": 0, + "cancellation_overrun_seconds": 0.6203183210454881, + "pass": false + }, + "cold": { + "population": 3, + "observed": 3, + "missing": 0, + "latency_samples": 3, + "p50_seconds": 30.597664796048775, + "p95_seconds": 30.642004502937198, + "timeouts": 3, + "completed_targets": 0, + "expected_targets": 3, + "complete_target_cases": 0, + "completion": 0.0, + "complete_coverage_cases": 0, + "cancellation_overrun_seconds": 0.6420045029371977, + "pass": false + }, + "growth": { + "population": 3, + "observed": 3, + "missing": 0, + "latency_samples": 3, + "p50_seconds": 30.854041778016835, + "p95_seconds": 30.873181788949296, + "timeouts": 3, + "completed_targets": 0, + "expected_targets": 3, + "complete_target_cases": 0, + "completion": 0.0, + "complete_coverage_cases": 0, + "cancellation_overrun_seconds": 0.8731817889492959, + "pass": false + }, + "multi-ref": { + "population": 3, + "observed": 3, + "missing": 0, + "latency_samples": 3, + "p50_seconds": 30.620603621937335, + "p95_seconds": 30.667265709955245, + "timeouts": 3, + "completed_targets": 0, + "expected_targets": 6, + "complete_target_cases": 0, + "completion": 0.0, + "complete_coverage_cases": 0, + "cancellation_overrun_seconds": 0.6672657099552453, + "pass": false + } + }, + "runtime_verdict": "NO-GO", + "rollout": "NO-GO", + "qualification_limit": "Development NodeGoat, n=3 per workload; independent quality and multi-project performance not established.", + "missing_workloads": [], + "profile_sha256": "a64e8ed3b3f833e4295edab3ccda09bf2446b173c57c99c3dd5defce5f6af201", + "priming_completed": false, + "schema_version": 1, + "experiment": "nodegoat-post-census-v1", + "candidate_commit": "04f888019b4549853efb949c26adc7b0a24aadab", + "image": "sha256:e6f8dc6cc7547f7118bd058687de676e0fcf741799d1d3839b3e8648ce190fbb", + "provenance": { + "repository": "/results/post-census-runtime-v1/objects.git", + "engine_runtime": "7213365694f836758cb5fe2b05504cbbb735b8c2f0dea5d5dd19546a1f5fd43d", + "engine": "joern-4.0.625", + "facts": "32edb6e1a78f1afb08ac4248cd436be16663e0d90dc1b3aaf948f2ce49a5a8f0", + "graph_layout": "403dda8d804c6109800ab95677f1c9a7c6158b9c83e58a65e2e6baa5132eefa8", + "queries": "7bf090e053331f03d04c9290c8a593d00efd4d390f4b77b8382c2befc47996cc", + "policy": "6fc8e3cf0d3a4f45dd882e37a753e34bc0cd187295cfbd3cbb6fc36ecf9cea20", + "core": "78716c62112f9aafb120f6c0547208f60216a2ef46f689cd4e81f5d63702db82", + "semantics": "2edd13e1582b9a1d5d611b01f9862fafcb8220dcc07838fe42f56e53be00c7f1", + "ranking_mode": "evidence", + "model": "disabled", + "capabilities": "9f0d85961ed49526a3131e71ec3f7e01aeca752da74ba7d74650168853781c9c", + "cache": "cold_no_reuse" + }, + "hardware": { + "platform": "Linux-6.8.0-138-generic-x86_64-with-glibc2.39", + "cpu_affinity": [ + 0, + 1, + 2, + 3 + ], + "cpuinfo": "processor\t: 0\nvendor_id\t: GenuineIntel\ncpu family\t: 6\nmodel\t\t: 158\nmodel name\t: Intel(R) Core(TM) i7-8700 CPU @ 3.20GHz\nstepping\t: 10\nmicrocode\t: 0xfa\ncpu MHz\t\t: 3192.000\ncache size\t: 16384 KB\nphysical id\t: 0\nsiblings\t: 1\ncore id\t\t: 0\ncpu cores\t: 1\napicid\t\t: 0\ninitial apicid\t: 0\nfpu\t\t: yes\nfpu_exception\t: yes\ncpuid level\t: 22\nwp\t\t: yes\nflags\t\t: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ss syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon rep_good nopl xtopology cpuid tsc_known_freq pni pclmulqdq vmx ssse3 fma cx16 pdcm pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand hypervisor lahf_lm abm 3dnowprefetch cpuid_fault ssbd ibrs ibpb stibp tpr_shadow flexpriority ept vpid ept_ad fsgsbase tsc_adjust bmi1 avx2 smep bmi2 erms invpcid mpx rdseed adx smap clflushopt xsaveopt xsavec xgetbv1 xsaves arat vnmi umip md_clear flush_l1d arch_capabilities\nvmx flags\t: vnmi preemption_timer invvpid ept_x_only ept_ad ept_1gb flexpriority tsc_offset vtpr mtf vapic ept vpid unrestricted_guest shadow_vmcs pml\nbugs\t\t: cpu_meltdown spectre_v1 spectre_v2 spec_store_bypass l1tf mds swapgs srbds mmio_stale_data retbleed bhi ibpb_no_ret its\nbogomips\t: 6384.00\nclflush size\t: 64\ncache_alignment\t: 64\naddress sizes\t: 39 bits physical, 48 bits virtual\npower management:\n\nprocessor\t: 1\nvendor_id\t: GenuineIntel\ncpu family\t: 6\nmodel\t\t: 158\nmodel name\t: Intel(R) Core(TM) i7-8700 CPU @ 3.20GHz\nstepping\t: 10\nmicrocode\t: 0xfa\ncpu MHz\t\t: 3192.000\ncache size\t: 16384 KB\nphysical id\t: 1\nsiblings\t: 1\ncore id\t\t: 0\ncpu cores\t: 1\napicid\t\t: 1\ninitial apicid\t: 1\nfpu\t\t: yes\nfpu_exception\t: yes\ncpuid level\t: 22\nwp\t\t: yes\nflags\t\t: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ss syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon rep_good nopl xtopology cpuid tsc_known_freq pni pclmulqdq vmx ssse3 fma cx16 pdcm pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand hypervisor lahf_lm abm 3dnowprefetch cpuid_fault ssbd ibrs ibpb stibp tpr_shadow flexpriority ept vpid ept_ad fsgsbase tsc_adjust bmi1 avx2 smep bmi2 erms invpcid mpx rdseed adx smap clflushopt xsaveopt xsavec xgetbv1 xsaves arat vnmi umip md_clear flush_l1d arch_capabilities\nvmx flags\t: vnmi preemption_timer invvpid ept_x_only ept_ad ept_1gb flexpriority tsc_offset vtpr mtf vapic ept vpid unrestricted_guest shadow_vmcs pml\nbugs\t\t: cpu_meltdown spectre_v1 spectre_v2 spec_store_bypass l1tf mds swapgs srbds mmio_stale_data retbleed bhi ibpb_no_ret its\nbogomips\t: 6384.00\nclflush size\t: 64\ncache_alignment\t: 64\naddress sizes\t: 39 bits physical, 48 bits virtual\npower management:\n\nprocessor\t: 2\nvendor_id\t: GenuineIntel\ncpu family\t: 6\nmodel\t\t: 158\nmodel name\t: Intel(R) Core(TM) i7-8700 CPU @ 3.20GHz\nstepping\t: 10\nmicrocode\t: 0xfa\ncpu MHz\t\t: 3192.000\ncache size\t: 16384 KB\nphysical id\t: 2\nsiblings\t: 1\ncore id\t\t: 0\ncpu cores\t: 1\napicid\t\t: 2\ninitial apicid\t: 2\nfpu\t\t: yes\nfpu_exception\t: yes\ncpuid level\t: 22\nwp\t\t: yes\nflags\t\t: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ss syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon rep_good nopl xtopology cpuid tsc_known_freq pni pclmulqdq vmx ssse3 fma cx16 pdcm pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand hypervisor lahf_lm abm 3dnowprefetch cpuid_fault ssbd ibrs ibpb stibp tpr_shadow flexpriority ept vpid ept_ad fsgsbase tsc_adjust bmi1 avx2 smep bmi2 erms invpcid mpx rdseed adx smap clflushopt xsaveopt xsavec xgetbv1 xsaves arat vnmi umip md_clear flush_l1d arch_capabilities\nvmx flags\t: vnmi preemption_timer invvpid ept_x_only ept_ad ept_1gb flexpriority tsc_offset vtpr mtf vapic ept vpid unrestricted_guest shadow_vmcs pml\nbugs\t\t: cpu_meltdown spectre_v1 spectre_v2 spec_store_bypass l1tf mds swapgs srbds mmio_stale_data retbleed bhi ibpb_no_ret its\nbogomips\t: 6384.00\nclflush size\t: 64\ncache_alignment\t: 64\naddress sizes\t: 39 bits physical, 48 bits virtual\npower management:\n\nprocessor\t: 3\nvendor_id\t: GenuineIntel\ncpu family\t: 6\nmodel\t\t: 158\nmodel name\t: Intel(R) Core(TM) i7-8700 CPU @ 3.20GHz\nstepping\t: 10\nmicrocode\t: 0xfa\ncpu MHz\t\t: 3192.000\ncache size\t: 16384 KB\nphysical id\t: 3\nsiblings\t: 1\ncore id\t\t: 0\ncpu cores\t: 1\napicid\t\t: 3\ninitial apicid\t: 3\nfpu\t\t: yes\nfpu_exception\t: yes\ncpuid level\t: 22\nwp\t\t: yes\nflags\t\t: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ss syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon rep_good nopl xtopology cpuid tsc_known_freq pni pclmulqdq vmx ssse3 fma cx16 pdcm pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand hypervisor lahf_lm abm 3dnowprefetch cpuid_fault ssbd ibrs ibpb stibp tpr_shadow flexpriority ept vpid ept_ad fsgsbase tsc_adjust bmi1 avx2 smep bmi2 erms invpcid mpx rdseed adx smap clflushopt xsaveopt xsavec xgetbv1 xsaves arat vnmi umip md_clear flush_l1d arch_capabilities\nvmx flags\t: vnmi preemption_timer invvpid ept_x_only ept_ad ept_1gb flexpriority tsc_offset vtpr mtf vapic ept vpid unrestricted_guest shadow_vmcs pml\nbugs\t\t: cpu_meltdown spectre_v1 spectre_v2 spec_store_bypass l1tf mds swapgs srbds mmio_stale_data retbleed bhi ibpb_no_ret its\nbogomips\t: 6384.00\nclflush size\t: 64\ncache_alignment\t: 64\naddress sizes\t: 39 bits physical, 48 bits virtual\npower management:\n\n", + "memory_limit": "3221225472" + }, + "input_probe": { + "path": "app/routes/contributions.js", + "bytes": 2485, + "sha256": "196bdeaa22da4cfe8a851b1b932710b2fcedd21f14ed75d70b739ba759a01003" + }, + "sample_count": 21, + "expected_target_checks": 24, + "complete_target_checks": 0, + "priming": { + "id": "lab-prime", + "elapsed_seconds": 338.1572693360504, + "exit_code": 0, + "instrument_error": null, + "timed_out": false, + "target_completed": false, + "completed_targets": 0, + "expected_targets": 1, + "coverage": "incomplete", + "timings": { + "comparison_0_deadline_seconds": 600.0, + "comparison_0_cancellation_allowance_seconds": 2.0, + "comparison_0_resolution_seconds": 0.008752948022447526, + "comparison_0_provenance_seconds": 0.3383526810212061, + "comparison_0_snapshot_seconds": 0.9428770090453327, + "comparison_0_snapshot_reuses": 0, + "comparison_0_discovery_seconds": 6.683045504032634, + "comparison_0_discovery_hits": 0, + "comparison_0_preparation_seconds": 7.646575673948973, + "comparison_0_head_seconds": 146.00156515697017, + "comparison_0_base_seconds": 183.43556397303473, + "comparison_0_admission_seconds": 0.01180072093848139, + "comparison_0_cleanup_seconds": 0.008542353054508567, + "comparison_0_graph_hits": 0, + "comparison_0_query_hits": 0, + "comparison_0_total_seconds": 337.48494182899594, + "total_seconds": 337.51618365803733, + "deadline_seconds": 600.0, + "cancellation_allowance_seconds": 2.0 + }, + "selected": 436, + "deferred": 0, + "stages": [ + { + "stage": "frontend", + "seconds": 5.535995051963255, + "exit_code": 0, + "receipt": true, + "executable": "jssrc2cpg", + "scripts": [] + }, + { + "stage": "overlay", + "seconds": 15.779466217034496, + "exit_code": 0, + "receipt": true, + "executable": "joern", + "scripts": [ + "overlay.sc" + ] + }, + { + "stage": "census", + "seconds": 13.715866276063025, + "exit_code": 0, + "receipt": true, + "executable": "joern", + "scripts": [ + "census.sc" + ] + }, + { + "stage": "query", + "seconds": 20.49011949193664, + "exit_code": 0, + "receipt": true, + "executable": "joern", + "scripts": [ + "taint.sc" + ] + }, + { + "stage": "query", + "seconds": 15.058013109955937, + "exit_code": 0, + "receipt": true, + "executable": "joern", + "scripts": [ + "dominance.sc" + ] + }, + { + "stage": "query", + "seconds": 13.264211339992471, + "exit_code": 0, + "receipt": true, + "executable": "joern", + "scripts": [ + "config.sc" + ] + }, + { + "stage": "query", + "seconds": 20.799062896054238, + "exit_code": 0, + "receipt": true, + "executable": "joern", + "scripts": [ + "taint.sc" + ] + }, + { + "stage": "frontend", + "seconds": 5.451101527083665, + "exit_code": 0, + "receipt": true, + "executable": "jssrc2cpg", + "scripts": [] + }, + { + "stage": "overlay", + "seconds": 15.23851044406183, + "exit_code": 0, + "receipt": true, + "executable": "joern", + "scripts": [ + "overlay.sc" + ] + }, + { + "stage": "census", + "seconds": 13.708493661950342, + "exit_code": 0, + "receipt": true, + "executable": "joern", + "scripts": [ + "census.sc" + ] + }, + { + "stage": "query", + "seconds": 21.02365942695178, + "exit_code": 0, + "receipt": true, + "executable": "joern", + "scripts": [ + "taint.sc" + ] + }, + { + "stage": "query", + "seconds": 16.209100450971164, + "exit_code": 0, + "receipt": true, + "executable": "joern", + "scripts": [ + "dominance.sc" + ] + }, + { + "stage": "query", + "seconds": 15.529665985959582, + "exit_code": 0, + "receipt": true, + "executable": "joern", + "scripts": [ + "config.sc" + ] + }, + { + "stage": "query", + "seconds": 22.782978054019623, + "exit_code": 0, + "receipt": true, + "executable": "joern", + "scripts": [ + "taint.sc" + ] + } + ] + }, + "bundle": { + "path": "2026-09-14-nodegoat-post-census-feasibility.json.gz", + "sha256": "84e46c08500b28b6fec940ae7d92ef7e9773ae46222eb409e81e2dc4dfc68c72", + "files": 115 + }, + "verification": { + "provenance_matched_artifacts": [ + "lab-prime", + "identical-tip-1", + "function-edit-1", + "dependency-edit-1", + "configuration-edit-1", + "cold-1", + "growth-1", + "multi-ref-1", + "identical-tip-2", + "function-edit-2", + "dependency-edit-2", + "configuration-edit-2", + "cold-2", + "growth-2", + "multi-ref-2", + "identical-tip-3", + "function-edit-3", + "dependency-edit-3", + "configuration-edit-3", + "cold-3", + "growth-3", + "multi-ref-3" + ], + "scorecard_recomputed": true, + "instrument_unchanged": true + }, + "stages_by_workload": { + "identical-tip": [ + { + "id": "identical-tip-1", + "stages": [] + }, + { + "id": "identical-tip-2", + "stages": [] + }, + { + "id": "identical-tip-3", + "stages": [] + } + ], + "function-edit": [ + { + "id": "function-edit-1", + "stages": [ + { + "stage": "frontend", + "seconds": 5.127652005990967, + "exit_code": 0, + "receipt": true, + "executable": "jssrc2cpg", + "scripts": [] + }, + { + "stage": "overlay", + "seconds": 14.303520950954407, + "exit_code": 0, + "receipt": true, + "executable": "joern", + "scripts": [ + "overlay.sc" + ] + }, + { + "stage": "census", + "seconds": 5.399453875026666, + "exit_code": null, + "receipt": false, + "executable": "joern", + "scripts": [ + "census.sc" + ] + } + ] + }, + { + "id": "function-edit-2", + "stages": [ + { + "stage": "frontend", + "seconds": 5.848279949044809, + "exit_code": 0, + "receipt": true, + "executable": "jssrc2cpg", + "scripts": [] + }, + { + "stage": "overlay", + "seconds": 17.40009404893499, + "exit_code": 0, + "receipt": true, + "executable": "joern", + "scripts": [ + "overlay.sc" + ] + }, + { + "stage": "census", + "seconds": 1.5109580610878766, + "exit_code": null, + "receipt": false, + "executable": "joern", + "scripts": [ + "census.sc" + ] + } + ] + }, + { + "id": "function-edit-3", + "stages": [ + { + "stage": "frontend", + "seconds": 6.614455893984996, + "exit_code": 0, + "receipt": true, + "executable": "jssrc2cpg", + "scripts": [] + }, + { + "stage": "overlay", + "seconds": 16.355191554059274, + "exit_code": 0, + "receipt": true, + "executable": "joern", + "scripts": [ + "overlay.sc" + ] + }, + { + "stage": "census", + "seconds": 1.761953916051425, + "exit_code": null, + "receipt": false, + "executable": "joern", + "scripts": [ + "census.sc" + ] + } + ] + } + ], + "dependency-edit": [ + { + "id": "dependency-edit-1", + "stages": [ + { + "stage": "frontend", + "seconds": 5.052323147072457, + "exit_code": 0, + "receipt": true, + "executable": "jssrc2cpg", + "scripts": [] + }, + { + "stage": "overlay", + "seconds": 15.059278422035277, + "exit_code": 0, + "receipt": true, + "executable": "joern", + "scripts": [ + "overlay.sc" + ] + }, + { + "stage": "census", + "seconds": 4.709083469002508, + "exit_code": null, + "receipt": false, + "executable": "joern", + "scripts": [ + "census.sc" + ] + } + ] + }, + { + "id": "dependency-edit-2", + "stages": [ + { + "stage": "frontend", + "seconds": 6.081233968958259, + "exit_code": 0, + "receipt": true, + "executable": "jssrc2cpg", + "scripts": [] + }, + { + "stage": "overlay", + "seconds": 17.401100196992047, + "exit_code": 0, + "receipt": true, + "executable": "joern", + "scripts": [ + "overlay.sc" + ] + }, + { + "stage": "census", + "seconds": 1.3855223159771413, + "exit_code": null, + "receipt": false, + "executable": "joern", + "scripts": [ + "census.sc" + ] + } + ] + }, + { + "id": "dependency-edit-3", + "stages": [ + { + "stage": "frontend", + "seconds": 5.76444402791094, + "exit_code": 0, + "receipt": true, + "executable": "jssrc2cpg", + "scripts": [] + }, + { + "stage": "overlay", + "seconds": 16.388202232075855, + "exit_code": 0, + "receipt": true, + "executable": "joern", + "scripts": [ + "overlay.sc" + ] + }, + { + "stage": "census", + "seconds": 2.5608381970087066, + "exit_code": null, + "receipt": false, + "executable": "joern", + "scripts": [ + "census.sc" + ] + } + ] + } + ], + "configuration-edit": [ + { + "id": "configuration-edit-1", + "stages": [ + { + "stage": "frontend", + "seconds": 5.414422817993909, + "exit_code": 0, + "receipt": true, + "executable": "jssrc2cpg", + "scripts": [] + }, + { + "stage": "overlay", + "seconds": 14.533493454917334, + "exit_code": 0, + "receipt": true, + "executable": "joern", + "scripts": [ + "overlay.sc" + ] + }, + { + "stage": "census", + "seconds": 4.903721723938361, + "exit_code": null, + "receipt": false, + "executable": "joern", + "scripts": [ + "census.sc" + ] + } + ] + }, + { + "id": "configuration-edit-2", + "stages": [ + { + "stage": "frontend", + "seconds": 6.269063726998866, + "exit_code": 0, + "receipt": true, + "executable": "jssrc2cpg", + "scripts": [] + }, + { + "stage": "overlay", + "seconds": 17.50103864702396, + "exit_code": 0, + "receipt": true, + "executable": "joern", + "scripts": [ + "overlay.sc" + ] + }, + { + "stage": "census", + "seconds": 0.7454411250073463, + "exit_code": null, + "receipt": false, + "executable": "joern", + "scripts": [ + "census.sc" + ] + } + ] + }, + { + "id": "configuration-edit-3", + "stages": [ + { + "stage": "frontend", + "seconds": 5.795736771076918, + "exit_code": 0, + "receipt": true, + "executable": "jssrc2cpg", + "scripts": [] + }, + { + "stage": "overlay", + "seconds": 16.085061569930986, + "exit_code": 0, + "receipt": true, + "executable": "joern", + "scripts": [ + "overlay.sc" + ] + }, + { + "stage": "census", + "seconds": 2.824299877975136, + "exit_code": null, + "receipt": false, + "executable": "joern", + "scripts": [ + "census.sc" + ] + } + ] + } + ], + "cold": [ + { + "id": "cold-1", + "stages": [ + { + "stage": "frontend", + "seconds": 5.790730625973083, + "exit_code": 0, + "receipt": true, + "executable": "jssrc2cpg", + "scripts": [] + }, + { + "stage": "overlay", + "seconds": 14.96458409796469, + "exit_code": 0, + "receipt": true, + "executable": "joern", + "scripts": [ + "overlay.sc" + ] + } + ] + }, + { + "id": "cold-2", + "stages": [ + { + "stage": "frontend", + "seconds": 6.379741131910123, + "exit_code": 0, + "receipt": true, + "executable": "jssrc2cpg", + "scripts": [] + }, + { + "stage": "overlay", + "seconds": 15.270657810033299, + "exit_code": null, + "receipt": false, + "executable": "joern", + "scripts": [ + "overlay.sc" + ] + } + ] + }, + { + "id": "cold-3", + "stages": [ + { + "stage": "frontend", + "seconds": 5.886531041003764, + "exit_code": 0, + "receipt": true, + "executable": "jssrc2cpg", + "scripts": [] + }, + { + "stage": "overlay", + "seconds": 15.618147548986599, + "exit_code": null, + "receipt": false, + "executable": "joern", + "scripts": [ + "overlay.sc" + ] + } + ] + } + ], + "growth": [ + { + "id": "growth-1", + "stages": [ + { + "stage": "frontend", + "seconds": 6.169782203971408, + "exit_code": 0, + "receipt": true, + "executable": "jssrc2cpg", + "scripts": [] + }, + { + "stage": "overlay", + "seconds": 14.672080870019272, + "exit_code": null, + "receipt": false, + "executable": "joern", + "scripts": [ + "overlay.sc" + ] + } + ] + }, + { + "id": "growth-2", + "stages": [ + { + "stage": "frontend", + "seconds": 7.3367347629973665, + "exit_code": 0, + "receipt": true, + "executable": "jssrc2cpg", + "scripts": [] + }, + { + "stage": "overlay", + "seconds": 13.551422085962258, + "exit_code": null, + "receipt": false, + "executable": "joern", + "scripts": [ + "overlay.sc" + ] + } + ] + }, + { + "id": "growth-3", + "stages": [ + { + "stage": "frontend", + "seconds": 6.850248332950287, + "exit_code": 0, + "receipt": true, + "executable": "jssrc2cpg", + "scripts": [] + }, + { + "stage": "overlay", + "seconds": 13.980043021030724, + "exit_code": null, + "receipt": false, + "executable": "joern", + "scripts": [ + "overlay.sc" + ] + } + ] + } + ], + "multi-ref": [ + { + "id": "multi-ref-1", + "stages": [ + { + "stage": "frontend", + "seconds": 5.759595423936844, + "exit_code": 0, + "receipt": true, + "executable": "jssrc2cpg", + "scripts": [] + }, + { + "stage": "overlay", + "seconds": 15.383583186077885, + "exit_code": 0, + "receipt": true, + "executable": "joern", + "scripts": [ + "overlay.sc" + ] + }, + { + "stage": "census", + "seconds": 7.119807181996293, + "exit_code": null, + "receipt": false, + "executable": "joern", + "scripts": [ + "census.sc" + ] + } + ] + }, + { + "id": "multi-ref-2", + "stages": [ + { + "stage": "frontend", + "seconds": 5.810313349007629, + "exit_code": 0, + "receipt": true, + "executable": "jssrc2cpg", + "scripts": [] + }, + { + "stage": "overlay", + "seconds": 16.645539265009575, + "exit_code": 0, + "receipt": true, + "executable": "joern", + "scripts": [ + "overlay.sc" + ] + }, + { + "stage": "census", + "seconds": 5.790726013015956, + "exit_code": null, + "receipt": false, + "executable": "joern", + "scripts": [ + "census.sc" + ] + } + ] + }, + { + "id": "multi-ref-3", + "stages": [ + { + "stage": "frontend", + "seconds": 6.108872640994377, + "exit_code": 0, + "receipt": true, + "executable": "jssrc2cpg", + "scripts": [] + }, + { + "stage": "overlay", + "seconds": 16.804343194002286, + "exit_code": 0, + "receipt": true, + "executable": "joern", + "scripts": [ + "overlay.sc" + ] + }, + { + "stage": "census", + "seconds": 5.258675410063006, + "exit_code": null, + "receipt": false, + "executable": "joern", + "scripts": [ + "census.sc" + ] + } + ] + } + ] + }, + "limitations": [ + "NodeGoat is development data; no independent capability qualification.", + "Identical-tip reuse is not warm changed-code performance.", + "All exact target checks remain unresolved; raw findings do not qualify completion.", + "No production engine, query, ranker or admission semantics changed during this experiment." + ] +} diff --git a/benchmarks/measurements/2026-09-14-nodegoat-post-census-feasibility.json.gz b/benchmarks/measurements/2026-09-14-nodegoat-post-census-feasibility.json.gz new file mode 100644 index 0000000..65191ec Binary files /dev/null and b/benchmarks/measurements/2026-09-14-nodegoat-post-census-feasibility.json.gz differ