yesodweb / yesodweb/persistent
Regression since bumping resource-pool from `0.4.0.0` to `0.5.x`
Nobody has claimed this yet.
- Dominant language
- Haskell
- Stars
- 486
- Forks
- 306
- PR merge metrics
- No merged PRs in 30d
Description
Resource pool while fixing a bug introduced a couple behavioural changes in resource destroying:
- Masking:
- In
0.4.xit was uninterruptible. - Since
0.5.xit has become interruptible.
- In
- exception handling:
- In
0.4.xit silently ignored all exceptions. - Since
0.5.xit has started loudly allowing throwing exceptions.
- In
loggingClose from persistent became no longer safe. It could lead to situations where file descriptor and associated database connection will remain opened while connection declared released by the pool, i.e. leaking fds/sockets. Solution would be to make it explicitly uninterruptible.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by locating loggingClose and the resource-destruction path in this Haskell repository, then compare the resource-pool 0.4.x and 0.5.x behavior described in the issue. Done means closing is explicitly uninterruptible and the regression is covered by an appropriate test.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- haskell
- Domain
- databases
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 58/100