-
Notifications
You must be signed in to change notification settings - Fork 176
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
"A non running thread has an expired quantum" #458
Comments
When you launch a Java thread (from Java and in native code), you provide it with a method to run. When that method completes, the thread automatically shuts down and exits. We emulate that process in DoppioJVM. You are attempting to run another method on a thread that has shut down, violating a core thread invariant. This can cause bugs in programs that react to thread shutdown. You have a few options to fix this:
|
Actually, I was wrong; I'm referring to a different error. Your code is running a task on a thread that is not in the |
Are you calling |
I don't think we're calling thread.run directly or anything like that. I think this error started appearing when we configured doppio to be much more responsive (we are using #407) |
Yeah, we aren't calling thread.run directly. Maybe we are triggering it indirectly, say by calling About responsiveness, we have set it to a value of 10ms from the default of 1000ms. So the scheduling happens about 100x more often. Could it be that we are exposing a latent bug in the scheduler, simply by running it more often? Out of curiosity I changed the
|
I am hitting this regularly: plasma-umass/doppio#458 ... especially when Java lambda's are used (because they cause a lot of class loads). Bumptig the responsiveness to 15ms avoids the frequent assertion failures.
When running doppio in the browser (fast-dev version), we often get this message on the console:
This assertion is in threadpool.ts
I am not sure what the assertion means, but surprisingly, the Java code seems to execute unaffected (except for the error in the console).
What is the assertion checking for, and could it mean that we are doing something wrong in our Java or native code?
The text was updated successfully, but these errors were encountered: