Comments (7)
Yes, this is because StackOverflowError
is considered fatal and unrecoverable.
Traditionally, all Error
s are considered fatal (as opposed to Exception
s). Scala has a slightly refined definition of what is fatal (see scala.util.control.NonFatal
extractor) but StackOverflowError
falls into both definitions so Monix will not try to catch and recover from it.
from monix.
OK, but still I expect to fail observable, rather then just silently stuck.
Or I miss understand something?
from monix.
For an Observable
to fail on StackOverflowError
, it would have to catch it at some point. But fatal errors should never be caught. They should be allowed to crash the process.
Although I remember that at some point NonFatal
did not recognize StackOverflowError
as fatal so it may be somewhere in a gray area.
from monix.
I am not sure that problem on Observable
side, look like Task
is never complete with fail or success - no matter.
from monix.
Yes, but Task
doesn't catch it for exactly the same reason.
from monix.
OK, so what is way to deal with this issue: improve error handling on Monix side, or always wrapp code inside Task
with try-catch, or add timeout to every Task
?
from monix.
Do you happen to have any news on this?
Code must throw an exception and not be silently stuck even without logs.
from monix.
Related Issues (20)
- [4.x] Monix's main subprojects (e.g., monix-eval, monix-reactive) should no longer depend on Cats and Cats-Effect HOT 2
- JavaScript Scheduler should use window.postMessage, when setImmediate not available HOT 4
- [4.x] (Maybe) migrate project to usage of ScalaTest or MUnit HOT 1
- [4.x] Atomic reference types should use new Java features, if possible HOT 4
- ConcurrentChannel has a flaky test — to investigate
- Maybe: Remove Features from Scheduler
- Scheduler.forkJoin stops executing tasks after reaching its maximum thread count HOT 1
- switchMap never completes on empty Observable
- Proposal for a Observer/Shadow mode flag for Circuit Breaker
- Atomic.transformAndExtract fails to compare case class
- Merge open scala-steward PRs? HOT 1
- help: How to wait for the subscribed data to finish processing
- No backpressure (unlimited buffers) when using ExecutionModel.SynchronousExecution HOT 2
- Heavy usage of ThreadLocals when using default ExecutionModel HOT 1
- NullPointerException in TaskRestartCallback
- Is Monix still being maintained? HOT 5
- Stack traces don't get propagated through `runSyncUnsafe()`
- Migrating to parMap/parZip resulting in function getting stuck and timing out
- The developers, documentation for monix
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from monix.