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

Recover from serialization failures #5591

Merged
merged 2 commits into from Feb 9, 2023

Conversation

hubertp
Copy link
Contributor

@hubertp hubertp commented Feb 8, 2023

Pull Request Description

An exception encountered during serialization prevents engine from continuing because it enters an infinite loop(!).

Important Notes

The aim of this PR is to make it possible for engine to recover from the serialization failures. Any failure would mean that we enter an infinite loop in deserialization which is in turn waiting for the serialization to finish (which will never happen).
In this particular case FQNs are referencing concrete modules. A separate PR will address that.

Checklist

Please include the following checklist in your PR:

  • The documentation has been updated if necessary.
  • All code conforms to the
    Scala,
    Java,
    and
    Rust
    style guides.
  • All code has been tested:
    • Unit tests have been written where possible.
    • If GUI codebase was changed: Enso GUI was tested when built using BOTH
      ./run ide build and ./run ide watch.

@hubertp hubertp added the CI: Ready to merge This PR is eligible for automatic merge label Feb 8, 2023
@@ -289,11 +289,20 @@ class SerializationManager(compiler: Compiler) {
case e: NotSerializableException =>
logger.log(
Level.SEVERE,
s"Could not serialize module [$name]."
s"Could not serialize module [$name].",
e
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Logging the exception is possible! Unrelated to this PR, but I believe we should use it everywhere - not swallow the exception.

An exception encountered during serialization prevents engine from
continuation because it enters an infinite loop(!) in deserialization.
@hubertp hubertp force-pushed the wip/hubert/recover-from-serialization-crash-5037 branch from 7f890ac to c3d4b33 Compare February 9, 2023 07:36
@mergify mergify bot merged commit 53b3de1 into develop Feb 9, 2023
@mergify mergify bot deleted the wip/hubert/recover-from-serialization-crash-5037 branch February 9, 2023 08:22
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
CI: Ready to merge This PR is eligible for automatic merge
Projects
Status: 🟢 Accepted
Development

Successfully merging this pull request may close these issues.

None yet

3 participants