Skip to content

GH Issue 1707: Test assay transform callbacks during folder delete - #3251

Merged
labkey-jeckels merged 10 commits into
developfrom
fb_transform_outside_txn_1707
Oct 22, 2026
Merged

labkey-jeckels merged 10 commits into
developfrom
fb_transform_outside_txn_1707

Conversation

@labkey-jeckels

@labkey-jeckels labkey-jeckels commented Oct 15, 2026 •

Copy link
Copy Markdown
Contributor

Rationale

Adds coverage for GH Issue 1707: a GPAT transform script that calls back into the server must not block, or be blocked by, a concurrent folder delete.

Coverage for the batch and run save APIs follows with GH Issue 1720.

Related Pull Requests

Changes

  • New AssayTransformCallbackTest covering sync and background imports whose R transform script queries the server while a folder is deleted
  • Test the new transform script timeout setting and the run comment a transform script sets
  • Test background imports from dataRows, including rejecting saveDataAsFile=false
  • Page object support for the new timeout setting on the site settings page

@labkey-jeckels
labkey-jeckels marked this pull request as ready for review October 18, 2026 00:43
@labkey-jeckels labkey-jeckels self-assigned this Oct 18, 2026
@labkey-jeckels
labkey-jeckels merged commit de373c0 into develop Oct 22, 2026
7 checks passed
@labkey-jeckels
labkey-jeckels deleted the fb_transform_outside_txn_1707 branch October 22, 2026 16:51
labkey-jeckels added a commit to LabKey/platform that referenced this pull request Oct 22, 2026
…ion (#8183)

## Rationale
Assay imports held a database transaction open while the transform
script ran, with no time limit, so a script that calls back into the
server could deadlock with a concurrent folder delete ([GH Issue
1707](LabKey/internal-issues#1707), see also
GH Issue 1539). Standard (GPAT) assays now run their transform scripts
before the transaction begins and record the results inside it, and all
transform scripts get a site-wide timeout.

SaveAssayBatch/SaveAssayRuns ([GH Issue
1720](LabKey/internal-issues#1720)) and the
other assay providers (Luminex, NAb, etc.) still run scripts inside the
transaction and are follow-ups.

## Related Pull Requests
- LabKey/testAutomation#3251

## Changes
- Split transform handling into an execute step with no database writes
and a record step that writes the script's outputs against the saved run
- importRun.api, the upload wizard, and background pipeline imports run
GPAT transform scripts before opening the transaction; plate-metadata
designs keep the old behavior
- Transform scripts run without the protocol import lock, so concurrent
imports can run their scripts in parallel; the lock is held only while
the run is saved
- Each import tracks its own transform working directory, so concurrent
imports no longer share one
- New site setting for the transform script timeout, default 60 minutes
- Fix run name and comments set by a transform script never being saved
- Background imports from dataRows now save the rows to a file instead
of failing with an NPE; explicitly passing saveDataAsFile=false is
rejected with a clear error
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants