4bf8479a43a493e2899953b7358c9464abbc3959 braney Wed Sep 23 17:15:55 2026 -0700 docent: regression scripts load sessions from text files, not from one machine's hgcentral, refs #38252 A named session runs only on the machine whose hgcentral holds it, so hgwbeta and the RR answered "Could not find session". The sessions are now text files in regress/sessionFiles, saved with hgSession's own save to file, and the scripts load them by raw GitHub URL. rm36805, rm35580 and rm36340 pass on genome-test and hgwbeta. rm36340's session held its custom tracks as a customTrash table on genome-test. The track source is a file of its own now, loaded through hgt.customText, without two commented-out tracks whose URLs carry a password. Its first check now asks for a custom track row and the hub's row, and fails when the session file does not load. A lifted session cannot be a file: it names its quickLift hub by a path on the server that made it, and re-pointing it does not work (#38046). rm37388, rm37389 and rm38272 build that lift in steps instead, the GenArk GCA_018466835.2 mitochondrion lifted to hg38, and pass on genome-test and hgwbeta. rm38272 also fails on genome.ucsc.edu (v503) at its settings page, with the bug's own error, so it gains a release-ab proof line. diff --git src/hg/utils/docent/tests/regress/rm38272.docent.yaml src/hg/utils/docent/tests/regress/rm38272.docent.yaml index 27baf313759..da9c41580d5 100644 --- src/hg/utils/docent/tests/regress/rm38272.docent.yaml +++ src/hg/utils/docent/tests/regress/rm38272.docent.yaml @@ -1,57 +1,65 @@ # #38272 -- hgTrackUi tried a MySQL connect to a quickLifted GenArk source assembly. # # This is NOT a copy of rm37388. That script covers hgc. This one drives the OTHER page # reached from the same lifted track, its track-settings page, which had a path of its own # that #37388's per-CGI fix never guarded: # # Warning/Error(s): # Couldn't set connection database to GCA_018466835.2 # mySQL error 1049: Unknown database 'GCA_018466835.2' # # specificUi() (hgTrackUi.c:3432) reassigns db to the track's quickLiftDb setting and hands # that db to cfgByCfgType(), labelCfgUi() and extraUiLinks(). For a GenArk source the db is # a bare accession with no MySQL database behind it. trackHubDatabase() does not catch that, # because the source hub is not loaded in this request. hgc got the matching isGenArk() # guard in #37388 (921a40c472e); hgTrackUi got it on master in cdb348c5512, where asForDb() # and two trackDbFilter blocks in hui.c now test isGenArk() as well. That ships in v504. # # Both halves were measured on 2026-09-06, not inferred. Broken, the page came back 451 # characters: the warning box, the nav chrome, the track name, a display-mode row, "Remove # from QuickLift", and nothing else. That is where specificUi() is called, at hgTrackUi.c # :4202, just after the "Remove from QuickLift" link at :4118. Fixed, the same page is 2800 # characters. hgwbeta still gave the 451-character page that morning, so the two were seen # side by side. # # The assertions are on text that exists only past the point where the broken page stopped. # "RefSeq mRNAs Track Settings" is deliberately NOT one of them: the 451-character page # carries that heading too, so it never told the two apart. "Color track by codons" comes # from cfgByCfgType() and "Data schema/format description and download" from extraUiLinks(), # which are two of the three routines that were handed the bad db. # # It reproduces from scratch with no session at all -- open GenArk GCA_018466835.2 at # CM089257.1:80,200,000-80,360,000, leave the default tracks alone, QuickLift to hg38, click # the gear on RefSeq mRNAs. The script that checks any server that way is at # /hive/groups/browser/redmineNotes/38252/claude/repro_37388_hgTrackUi.js. # -# This script uses the braney/crash1 session instead, because that is the cheap way to the -# same state and rm37388 already depends on it, so preflight covers it either way. +# This script builds the same kind of state in steps, on the mitochondrion the way rm37388 +# does. It used to load the saved session braney/crash1, which only genome-test could load. proof: - "server-flip 2026-09-06 -- cdb348c5512 reached genome-test and the nightly's xfail passed; hgwbeta still served the 451-character page that morning" + - "release-ab 2026-09-23 -- with the lift built in steps: fails on genome.ucsc.edu (v503) at step 7, whose page says Couldn't set connection database, and passes on hgwbeta (v504) and genome-test" target: genome-test db: hg38 reset: true fast: true steps: - - loadSession: {user: braney, name: crash1} - - expect: {noText: "Could not find session", rows: [xenoRefGene]} + # The lifted view is built in steps, not loaded from a session. A quickLift session names + # its hub by a path on the server that made it, and re-pointing it does not work (#38046), + # so braney/crash1 ran only on genome-test. These steps run on any server. They lift the + # mitochondrion of GenArk GCA_018466835.2 to hg38, the state crash1 held. + - goto: "/cgi-bin/hgTracks?db=GCA_018466835.2&position=chrMT_JAGYVI020000079v1_random:1-16566&pix=1100" + - expect: {rows: [xenoRefGene]} + - goto: "/cgi-bin/hgConvert?db=GCA_018466835.2&position=chrMT_JAGYVI020000079v1_random:1-16566&hglft_toOrg=Human&hglft_toDb=hg38&doQuickLift=on&hglft_doConvert=submit" + - click: 'a[href*="hgTracks?"][href*="quickLift."]' + - expect: {rows: [xenoRefGene], text: "chrM"} # The track's own settings link, which is the gesture a user makes to configure a lifted # track. hgTrackUi has no track image, so there is no row to assert on: the checks are on # the page text. - click: 'a[href*="hgTrackUi"][href*="xenoRefGene"]' - expect: text: "Color track by codons" noText: "Couldn't set connection database" - expect: {text: "Data schema/format description and download"}