Skip to content

Report one error per failed Globus transfer; hold restart for parked report - #127

Merged
zaihuaji merged 1 commit into
mainfrom
hua-work-common
Sep 30, 2026
Merged

zaihuaji merged 1 commit into
mainfrom
hua-work-common

Conversation

@zaihuaji

Copy link
Copy Markdown
Collaborator

Summary

  • pg_file.py: a cancelled Globus transfer produced two error entries - the full 17-line dsglobus get-task dump plus the terse status line - so 3 failures printed as 6 errors. The cancel reason is now condensed to one line (CONNECTION_RESET after 99.15GB of 15 file(s)), cached in the new QCANCEL map and appended to the single error that names the file.
  • submit_globus_task breaks out on a failed task without logging and used to rely on that dump being the error; it now emits the compact cancel line itself so no failure goes silent.
  • pg_cmd.py: init_dscheck restarted a dscheck record whose einfo still held a parked progress report. The dscheck daemon skips running records, so the report was stranded until the next run overwrote it. The restart is now held back for one daemon pass.

Test plan

  • ast.parse on both changed modules
  • Reason-string formatting checked against the real failing task output
  • Watch the next dsquasar -A 4 email: one error per failed transfer, reason still present
  • Confirm a walltime-terminated run now mails its parked progress report

…the parked report is mailed; bump version to 3.0.19

pg_file.py: a cancelled transfer was logged twice - once as the full 17-line
dsglobus get-task dump, once as the terse status line - so three failures read
as six errors in the email. The cancel reason is now condensed to one line,
cached in QCANCEL and appended to the single error that names the file.

pg_cmd.py: init_dscheck restarted a record whose einfo still held a progress
report, stranding it since the dscheck daemon skips running records. It now
leaves the record for the daemon to mail first.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Copilot AI balanced review requested due to automatic review settings September 30, 2026 14:02
@zaihuaji
zaihuaji merged commit 4c111b3 into main Sep 30, 2026
1 check passed

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot review overview

🟡 Changes recommended

Failed Globus tasks without cached cancellation reasons can still exit silently.

Review effort: Balanced
Findings: 1 Medium severity

Open (1)
What changed in this PR

Improves Globus failure reporting and preserves parked dscheck reports before restarting jobs.

Changes:

  • Condenses cancelled Globus task details into one error.
  • Defers dscheck restart when an email report is pending.
  • Bumps the package version to 3.0.19.
File Description
src/​rda_python_common/​pg_file.py Caches and reports concise cancellation reasons.
src/​rda_python_common/​pg_cmd.py Holds restart while a report is pending.
src/​rda_python_common/​__init__.py Updates runtime version.
README.md Updates documented version.
pyproject.toml Updates package version.

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment on lines +536 to +540
if task['stat'] == 'F' and not syserr:
# nothing waits on this task, so report the cancellation here instead
if task['id'] in self.QCANCEL:
self.errlog("{}: Cancel Task due to {}".format(task['id'], self.QCANCEL.pop(task['id'])), 'B', 1, logact)
break
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.

2 participants