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

Windows bug: hangs appveyor build #12109

Closed
wants to merge 1 commit into from
Closed
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion base/docs/Docs.jl
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ const modules = Module[]

const META′ = :__META__

meta(mod) = mod.(META′)
@eval meta(mod) = mod.$META′
Copy link
Member

Choose a reason for hiding this comment

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

This is so weird. Why doesn't meta(mod) = mod.__META__ work?

Copy link
Contributor

Choose a reason for hiding this comment

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

I think the real issue is probably some corner case in llvm 3.3 and tweaking here and there just happened to make it appears and disappears...

Copy link
Contributor

Choose a reason for hiding this comment

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

This might actually be more intermittent than I first thought it was. The startup freezes are frequent enough that from a usability standpoint it might even be release-blocking. Whatever the issue is appears to be deep in the old LLVM JIT's memory management, as far as we've been able to tell so far.

Copy link
Contributor

Choose a reason for hiding this comment

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

I did a search for related llvm issues but didn't find anything (not so surprising given we're probably one of the heaviest llvm jit user).

@tkelman Were you able to learn anything from the buffer pointers in llvm? (The retry condition is a pointer comparison IIRC and I'm wondering if we can get a hint from how they are changed in the infinite loop.)

Copy link
Contributor

Choose a reason for hiding this comment

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

No not really, I have no clue what to look for. Dunno whether @ihnorton has been able to catch the freeze in gdb like I've done a handful of times. Or you could probably head in and do some work on the dual-boot laptop on @andreasnoack's desk during the week.

Copy link
Contributor

Choose a reason for hiding this comment

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

@tkelman

No not really, I have no clue what to look for.

Not being able to see anything obviously wrong from reading the code, the only thing I can suggest is to print the following field of MCE in the loop you are stucked in runOnMachineFunction before and after calling MCE.startFunction(MF) as well as before calling MCE.finishFunction(MF) (so three points in the loop).

ActualSize;
SizeEstimate;
BufferBegin;
SavedBufferBegin;
BufferEnd;
SavedBufferEnd;
CurBufferPtr;
SavedCurBufferPtr;

I don't remember how gdb prints C++ classes by default and it might easier to print out the whole class.

Watching the address of these might also be helpful but that might generate too much noise before we know more details.

If no one else has better idea, this should at least help us to narrow down the problem.

Or you could probably head in and do some work on the dual-boot laptop on @andreasnoack's desk during the week.

I'm afraid not the coming weeks. (Weekends works for me though....)


meta() = meta(current_module())

Expand Down