Skip to content
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

Soundness Issue in 1.2 Release Family #30

Open
mitsuhiko opened this issue Oct 18, 2022 · 0 comments
Open

Soundness Issue in 1.2 Release Family #30

mitsuhiko opened this issue Oct 18, 2022 · 0 comments

Comments

@mitsuhiko
Copy link
Owner

mitsuhiko commented Oct 18, 2022

There is a soundness issue in fragile 1.2.x with regards to Sticky and SemiSticky. For the gory details have a look at #26. Unfortunately that fix cannot be done with the current API provided but I don't feel well having a release out there which has a known issue.

I approached the issue in the following way now: there is now a 1.2.2 release which uses 2.0.0 internally but makes SemiSticky an alias to Sticky and implements Sticky by just leaking memory if not dropped on the main thread. This is pretty suboptimal but at least avoids the potential unsafe behavior. To not get the leak one has to lock to 1.2.1.

Here are the recommendations:

  1. upgrade to 2.x. The new API for SemiSticky and Sticky is not significantly worse, but you will have to change a few calls.
  2. if you don't have the time to upgrade but you don't use Sticky or SemiSticky you can just use 1.2.x. It will internally automatically pull in the fragile type from the 2.x release family.

If you are stuck on a 1.2 family, the 1.2.2 release still has a (deprecated) Sticky and SemiSticky type as I could not remove them, but they will now leak memory if they are not dropped on the right thread. If this causes you issues but you do not have time to address the issue, lock yourself to the 1.2.1 version for now.

@mitsuhiko mitsuhiko pinned this issue Oct 18, 2022
@mitsuhiko mitsuhiko changed the title Yank 1.2.1 Soundness Issue in 1.2 Release Family Oct 18, 2022
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

No branches or pull requests

1 participant