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

Use spawn_link instead of spawn for export/1 related calls #8691

Closed
wants to merge 1 commit into from

Conversation

lucioleKi
Copy link
Contributor

This PR tries to fix #8661. @arcusfelis suggested this solution on OTP's end.

Now a cover_server process on remote node will crash when a process spawned by it crashes. This is better than the cover_server process never knowing about the crash.

@lucioleKi lucioleKi added the testing currently being tested, tag is used by OTP internal CI label Jul 26, 2024
Copy link
Contributor

github-actions bot commented Jul 26, 2024

CT Test Results

  2 files   22 suites   6m 48s ⏱️
221 tests 212 ✅ 3 💤 6 ❌
247 runs  238 ✅ 3 💤 6 ❌

For more details on these failures, see this check.

Results for commit 95ea123.

♻️ This comment has been updated with latest results.

To speed up review, make sure that you have read Contributing to Erlang/OTP and that all checks pass.

See the TESTING and DEVELOPMENT HowTo guides for details about how to run test locally.

Artifacts

// Erlang/OTP Github Action Bot

@lucioleKi lucioleKi removed the testing currently being tested, tag is used by OTP internal CI label Jul 26, 2024
@lucioleKi lucioleKi self-assigned this Jul 29, 2024
@rickard-green rickard-green added the team:VM Assigned to OTP team VM label Aug 5, 2024
bjorng added a commit to bjorng/otp that referenced this pull request Aug 23, 2024
On platforms that support native coverage (introduced in
Erlang/OTP 27), the `cover` module did not properly handle failed
calls to `code:get_coverage/2`. The call to that function will fail
if the module in question has been reloaded or unloaded.

For example, if `cover:export/1` was called and a module had been
reloaded on a remote node (for example by `meck`), the
`cover:export/1` call would never return.

Because the current API for `cover` has no good way to report this
kind of error, we will fix the issue by logging the failed call using
the `logger` module and otherwise ignore the failure. That implies
that there will be no coverage information for modules that have been
reloaded. That is compatible with the behavior of `cover` prior to
Erlang/OTP 27.

Closes erlang#8691
@bjorng
Copy link
Contributor

bjorng commented Aug 23, 2024

Replaced by #8742.

@bjorng bjorng closed this Aug 23, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
team:VM Assigned to OTP team VM
Projects
None yet
Development

Successfully merging this pull request may close these issues.

cover:export/1 never returns in Erlang 27
3 participants