Skip to content

Address FileChannel.lock runtime exception, address aliquot rollup deadlock #6721

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 1 commit into
base: develop
Choose a base branch
from

Conversation

XingY
Copy link
Contributor

@XingY XingY commented May 30, 2025

Rationale

Deadlock as result of aliquot rollup calculation and search indexer.
File lock exception

Related Pull Requests

Changes

  • Process rollup samples in ascending order to match that of indexer, to reduce deadlock
  • Catch OverlappingFileLockException (RuntimeException) and throw IOException so it can be handled better downstream

@XingY XingY requested a review from a team May 30, 2025 22:57
@labkey-jeckels
Copy link
Contributor

@XingY does this improve the upload experience or error messaging? Here's my local testing:

Set a breakpoint in FileUtil.copyFile(). Configure it to only suspend the thread. This makes it possible to have two uploads conflict with each other.
In two separate browser tabs, drag the same file into the files web part to upload them.
They'll both hit the breakpoint. Let them continue.

I get two error dialogs in the two browsers and the new IOException logged on the server. I see similar behavior with the original code.

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