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

Support running under address-sanitizer #367

Open
dmbaggett opened this issue Sep 1, 2023 · 2 comments
Open

Support running under address-sanitizer #367

dmbaggett opened this issue Sep 1, 2023 · 2 comments
Labels

Comments

@dmbaggett
Copy link

dmbaggett commented Sep 1, 2023

In #113 and gevent/gevent#1928 various approaches are discussed to get gevent-based programs running under address-sanitizer, either by using https://github.com/tbodt/greenstack or via an update to gevent to use a different concurrency mechanism.

Unfortunately the greenstack fork is quite old and no longer compiles under recent versions of Python, and the greenlet code itself has massively diverged since that fork.

Is anyone aware of any effort to get gevent/greenlet based code running under ASan? I can't even seem to figure out a set of -fno-sanitize compile options that will just disable all the stack checks.

If anybody is up for the challenge, I'd be willing to contribute monetarily to get ASan support as a greenlet compile-time option or similar. @tbodt maybe?

@jamadden
Copy link
Contributor

jamadden commented Sep 1, 2023

Perhaps that's the wrong gevent issue? I didn't spot anything about address sanitizers there. The discussion of a different stack-switching algorithm was from a (theoretical) performance perspective.

I have done no work in this area and likely will not have time to in the forseeable future. I am not aware of any other work.

@dmbaggett
Copy link
Author

@jamadden sorry, it's a bit confusing; the gevent issue isn't about sanitizers per se, but about another way to implement coroutines (in that case, via Python generators). Such an implementation would also allow for use with debugging tools that check for stack corruption.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

2 participants