Merged
Conversation
NHDaly
approved these changes
May 22, 2023
Member
NHDaly
left a comment
There was a problem hiding this comment.
👍 awesome, thanks. 👍
+1 that it'd be even better to clean this up by making the lock much tighter, only directly around the accesses, but that can come later.
Member
Author
|
@KristofferC: backport to 1.9.1? |
kpamnany
added a commit
to RelationalAI/julia
that referenced
this pull request
May 24, 2023
kpamnany
added a commit
to RelationalAI/julia
that referenced
this pull request
Jun 7, 2023
kpamnany
added a commit
to RelationalAI/julia
that referenced
this pull request
Jun 22, 2023
Member
|
We backported #49868, and so we should do this one too, which is the other half of the same bug. I added the label. |
kpamnany
added a commit
to RelationalAI/julia
that referenced
this pull request
Jun 29, 2023
kpamnany
added a commit
to RelationalAI/julia
that referenced
this pull request
Jul 6, 2023
KristofferC
pushed a commit
that referenced
this pull request
Jul 11, 2023
(cherry picked from commit c470dc3)
35 tasks
kpamnany
added a commit
to RelationalAI/julia
that referenced
this pull request
Jul 27, 2023
KristofferC
added a commit
that referenced
this pull request
Aug 18, 2023
Backported PRs: - [x] #47782 <!-- Generalize Bool parse method to AbstractString --> - [x] #48634 <!-- Remove unused "deps" mechanism in internal sorting keywords [NFC] --> - [x] #49931 <!-- Lock finalizers' lists at exit --> - [x] #50064 <!-- Fix numbered prompt with input only with comment --> - [x] #50474 <!-- docs: Fix a `!!! note` which was miscapitalized --> - [x] #50516 <!-- Fix visibility of assert on GCC12/13 --> - [x] #50635 <!-- `versioninfo()`: include build info and unofficial warning --> - [x] #49915 <!-- Revert "Remove number / vector (#44358)" --> - [x] #50781 <!-- fix `bit_map!` with aliasing --> - [x] #50845 <!-- fix #50438, use default pool for at-threads --> - [x] #49031 <!-- Update inference.md --> - [x] #50289 <!-- Initialize prev_nold and nold in gc_reset_page --> - [x] #50559 <!-- Expand kwcall lowering positional default check to vararg --> - [x] #49582 <!-- Update HISTORY.md for `DelimitedFiles` --> - [x] #50341 <!-- invokelatest docs should say not exported before 1.9 --> - [x] #50525 <!-- only check that values are finite in `generic_lufact` when `check=true` --> - [x] #50444 <!-- Optimize getfield lowering to avoid boxing in some cases --> - [x] #50523 <!-- Avoid generic call in most cases for getproperty --> - [x] #50860 <!-- Add `Base.get_extension` to docs/API --> - [x] #50164 <!-- codegen: handle dead code with unsafe_store of FCA pointers --> - [x] #50568 <!-- `Array(::AbstractRange)` should return an `Array` --> - [x] #50871 <!-- macOS: Don't inspect dead threadtls during exception handling. --> Need manual backport: - [ ] #48542 <!-- Add docs on task-specific buffering using multithreading --> - [ ] #50591 <!-- build: fix various makefile bugs --> Non-merged PRs with backport label: - [ ] #50842 <!-- Avoid race conditions with recursive rm --> - [ ] #50823 <!-- Make ranges more robust with unsigned indexes. --> - [ ] #50663 <!-- Fix Expr(:loopinfo) codegen --> - [ ] #49716 <!-- Update varinfo() docstring signature --> - [ ] #49713 <!-- prevent REPL from erroring in numbered mode in some situations --> - [ ] #49573 <!-- Implement jl_cpu_pause on PPC64 --> - [ ] #48726 <!-- fix macro expansion of property destructuring --> - [ ] #48642 <!-- Use gc alloc instead of alloc typed in lowering --> - [ ] #48183 <!-- Don't use pkgimage for package if any includes fall in tracked path for coverage or alloc tracking --> - [ ] #48050 <!-- improve `--heap-size-hint` arg handling --> - [ ] #47615 <!-- Allow threadsafe access to buffer of type inference profiling trees -->
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
We have occasionally seen memory corruption errors at the end of runs, such as:
Stack trace (from 2 threads, mixed together).
We found that
jl_atexit_hookcallsjl_gc_run_all_finalizerscallsschedule_all_finalizerscallsschedule_finalizationwhich pushes to theto_finalizeglobal list without locking. This list is mutated byrun_finalizerswhich can run when a lock is released, as shown in the stack trace above.The use of
finalizers_lockis pretty messy -- on one path it is locked in one function and unlocked in another, while on another path it is locked and unlocked in the same function... all this could use a clean up, but for now, I've implemented a minimal fix in this PR.This fix seems to have eliminated the crash we've been seeing but we're still running more tests.