The GitHub Actions job "Java CI with Maven" on stormcrawler.git/fix/sql-indexer-identifier-injection has failed. Run started by GitHub user rzo1 (triggered by rzo1).
Head commit for run: 973822711652cc5bb51bf6ef6203d43850afce4e / Richard Zowalla <[email protected]> SQL IndexerBolt: only plain identifiers may be used as column names, fixes #2096 buildQuery() joined the metadata labels straight into the column list and into the ON DUPLICATE KEY UPDATE clause. Values are bound, but identifiers cannot be, and with a glob mapping (an indexer.md.mapping entry ending in *) the label is the raw metadata key - which crawled content mints: the Tika ParserBolt copies every <meta name="..."> of a page to parse.<name>, and response header names are stored the same way. Labels are now checked against ^[A-Za-z0-9_]+$ and dropped when they do not match, with a warning logged once per distinct label and an unusable_column_name metric. Dropping loses nothing that worked before: any label outside that pattern already produced a broken unquoted identifier and a guaranteed SQLException. That also ends a replay loop, since execute() fails the tuple without emitting to the status stream, so an ordinary dotted label such as parse.title - which MySQL reads as table.column - previously failed the same tuple for the life of the topology. Alias mappings (parse.title=title) remain the supported way to index a dotted key. The table name and the URL field are operator-owned topology config and are left as they are. Co-Authored-By: Claude Opus 5 (1M context) <[email protected]> Claude-Session: https://claude.ai/code/session_017F5AsveKcSTHkpfXFLjXWQ Report URL: https://github.com/apache/stormcrawler/actions/runs/34385251451 With regards, GitHub Actions via GitBox
