Skip to content

fix(node-fcp): Improve insert stall handling and diagnostics#1079

Merged
leumor merged 3 commits intorelease/2from
bugfix/fcp-insert-stall-diagnostics
Feb 26, 2026
Merged

fix(node-fcp): Improve insert stall handling and diagnostics#1079
leumor merged 3 commits intorelease/2from
bugfix/fcp-insert-stall-diagnostics

Conversation

@leumor
Copy link
Collaborator

@leumor leumor commented Feb 26, 2026

Summary

  • add FCP-to-core diagnostics correlation by propagating external request identifiers (fcp:<Identifier>) through client requesters and UID traces
  • improve send-wait observability and timeout diagnostics for blocking sends, including wait-age reporting for stuck transfers
  • restore bounded synchronous completion send in CHK insert completion path so successful-byte accounting is not under-reported
  • keep bare-CHK@ disk MIME suppression while preserving strict MIME validation (BAD_MIME_TYPE) for malformed explicit content types
  • remove unsafe local-map fallback in RequestTracker.findTagByUid() and reapply diagnostic identifiers when persistent ClientPut requests resume
  • narrow the top-level changelog ignore patterns in .gitignore

How To Test

  1. ./gradlew test
  2. Targeted regressions were also exercised during development:
    • ./gradlew test --tests 'network.crypta.clients.fcp.ClientPutMimeResolverTest'
    • ./gradlew test --tests 'network.crypta.node.RequestTrackerTest' --tests 'network.crypta.clients.fcp.ClientPutTest'
    • ./gradlew test --tests 'network.crypta.node.CHKInsertHandlerTest' --tests 'network.crypta.node.UIDTagHardTimeoutTest' --tests 'network.crypta.node.NodeClientCoreTransfersTest'

Notes

  • Base branch requested for this PR: release/2.

Preserve non-receive interrupts in CHKInsertHandler while stopping sender-status processing to avoid spin loops and interrupt leakage into synchronous sends.

Clear internal wake-up interrupts before completion and terminal sync sends so sendSync does not report false timeouts.

Replace success-flag cleanup with close-guard patterns when restoring RAF-backed resources, and add targeted tests for the CHKInsertHandler interrupt paths.
@leumor
Copy link
Collaborator Author

leumor commented Feb 26, 2026

@codex review

Copy link

@chatgpt-codex-connector chatgpt-codex-connector bot left a comment

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 746a82e22c

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Keep CHKInsertHandler sender-status processing on non-receive interrupts so terminal handling still runs and the insert lifecycle is finalized instead of returning early.

Capture and restore interrupt status after terminal handling, and clear interrupt state before synchronous sends that can otherwise be misclassified as transport timeouts.

Update CHKInsertHandlerTest with a regression covering interrupted sender-status polling and terminal finalization.
@sonarqubecloud
Copy link

Quality Gate Failed Quality Gate failed

Failed conditions
56.1% Coverage on New Code (required ≥ 80%)

See analysis details on SonarQube Cloud

@leumor
Copy link
Collaborator Author

leumor commented Feb 26, 2026

@codex review

@chatgpt-codex-connector
Copy link

Codex Review: Didn't find any major issues. Nice work!

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

@leumor leumor merged commit 76dda16 into release/2 Feb 26, 2026
3 of 4 checks passed
@leumor leumor deleted the bugfix/fcp-insert-stall-diagnostics branch February 26, 2026 13:08
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.

1 participant