Profile — 200-Frame Recursive Stack (txt)
A recursive-descent parser profiled mid-recursion: stacks up to 204 frames deep where one frame repeats 200 times, on lines over 3,000 characters. Flamegraph renderers with a fixed depth limit truncate this silently, and line-length limits split it into nonsense.
main;runtime.main;parser.Parse;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr 160
main;runtime.main;parser.Parse;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr 120
main;runtime.main;parser.Parse;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr 80
main;runtime.main;parser.Parse;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr 40
main;runtime.main;parser.Parse;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr 0
main;runtime.main;parser.Parse;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseExpr;parser.parseAtom 940
Specifications
- Stacks
- 6
- Max Frames
- 204
- Repeated Frame
- parser.parseExpr
- Longest Line Chars
- 3451
- Unit
- samples
- Shape
- recursive descent parser
Testing contract
Expected to pass- Scenario
- Parse the file and render the deepest stack.
- Expected result
- The 204-frame stack is read from a single line without truncation, and the renderer either shows all 200 recursive frames or collapses them with an explicit repeat marker.
What is a .txt file?
TXT is a plain-text file containing unformatted character data with no styling or structure beyond line breaks. Its interpretation depends on character encoding, most commonly UTF-8, and on line-ending convention. It is the most universal and portable text container.
How to use this file
Use an example TXT to test encoding detection, line-ending (LF versus CRLF) handling, and any tool that reads or streams raw text input.
How to use this file for testing
“Profile — 200-Frame Recursive Stack (txt)” is a deterministic Novus Examples fixture for Observability, Performance testing, Log parsing. Structured and plain-text telemetry with known timestamps, levels, request identifiers, and error states for testing log ingestion, correlation, dashboards, and alert pipelines.
Documented properties for this file: TXT · 13,823 bytes. Compare results against paired or grouped companions on this page when present (clean↔damaged, searchable↔scanned, or format twins) so scores stay reproducible across runs.
Download the file once, keep the path stable in CI or local scripts, and treat the spec table as the contract: dimensions, seeds, field lists, and roles are intentional. Corrupt or invalid samples are labelled as such — expect parsers to fail loudly rather than silently accept them.
Telemetry fixtures use fixed trace IDs, span IDs, and timestamps so ingestion is reproducible run to run. Point your collector, parser, or query layer at the file and assert the documented span tree, metric families, or severity mix; service and host names are invented.
Related files
- txtCPU Profile — Folded Stacks, Baseline (txt)A CPU profile in the folded-stack format every flamegraph tool reads: one line per unique stack, frames separated by semicolons, then a space and a sample count. Twelve stacks up to seven frames deep, with the runtime's GC and scheduler work included as real profiles have.

- txtLinux perf script — Sample Records with Call Chains (txt)Raw perf script output — a header line per sample followed by tab-indented call-chain frames with addresses, symbols, offsets and DSO paths, samples separated by blank lines. The input side of stackcollapse, including unresolved frames a symbolizer could not name.

- txtpprof — Annotated Source Listing (txt)Line-level profile output: two routines with per-source-line flat and cumulative cost, a dot for lines that cost nothing, and units that switch between seconds and milliseconds within one column. Source lines keep their real tabs, which most column parsers do not survive.

- txtpprof — Top Report Text Output (txt)The text report pprof prints for the same profile as the folded fixtures: a metadata header, then flat and cumulative columns where frames that are never a leaf carry zero flat time and near-total cumulative time. Column-aligned output with a bare 0 rather than 0s, which is where naive column parsing fails.

- jsonlStructured Log — High-Cardinality Label Fields (jsonl)Every record carries five fields that are unique to it — session, customer, device, pod name and container ID. Harmless as log text, ruinous the moment they are promoted to indexed labels, which is the mistake this fixture exists to make measurable.

- jsonlStructured Log — One Oversized Record Between Normal Ones (jsonl)A single record of about 75 KB — a request body accidentally logged — sitting between two ordinary ones. Most shippers cap a line at 16 or 64 KB and either split it into invalid JSON fragments or drop the records around it; this file makes which one happen visible.

Generated by generation/observability.py. Free for any use, no attribution required — license.