-
-
Notifications
You must be signed in to change notification settings - Fork 5.5k
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
Partially address #11351 #11491
Partially address #11351 #11491
Conversation
Tested locally, LGTM. Unfortunately, |
Cool. I'm actually just building this now too. Yeah, perhaps we need a separate Since you were poking around in |
I can reproduce, but haven't gotten much further. Maybe the |
Ok, I went ahead and added a |
Interesting that travis passes for 64-bit. @ihnorton, is the |
No, I saw it on Windows. I don't use OS X, but if you can reproduce it On Mon, Jun 1, 2015 at 5:06 PM, Jacob Quinn notifications@github.com
|
I can reproduce on OSX, but the initial gdb doesn't reveal much. Any pointers on where/how to put breakpoints to get more insights? Program received signal SIGBUS, Bus error.
0x0000000102d1bfda in ?? ()
(gdb) bt
#0 0x0000000102d1bfda in ?? ()
#1 0x00007fff5fbfe320 in ?? ()
#2 0xa500c4106f94ead5 in ?? ()
#3 0x00007fff5fbfe310 in ?? ()
#4 0x0000000102d1bf40 in ?? ()
#5 0x00007fff5fbfe350 in ?? ()
#6 0x0000000100029d80 in jl_apply (f=0x7fff5fbfe320, args=0xa500c4106f94ead5, nargs=1) at ./julia.h:1300
Backtrace stopped: previous frame inner to this frame (corrupt stack?) |
Is this a debug build? |
I'm no gdb expert by any means, but the above output was from |
Maybe try lldb. Though I don't have any expectations. |
I really don't know what to expect on OS X -- I thought backtraces were On Tue, Jun 2, 2015 at 11:51 AM, Kevin Squire notifications@github.com
|
Thanks for the pointers @ihnorton. Any idea why trying to do Breakpoint 1, eval (e=0x1055a47b0, locals=0x7fff5fbfec20, nl=0, ngensym=1) at interpreter.c:109
109 if (jl_is_symbol(e)) {
(gdb) call jl_(e)
GenSym(0) = Expr(:call, :UInt8, Char(0x00000078))::Any
infrun.c:5921: internal-error: void insert_longjmp_resume_breakpoint(struct gdbarch *, CORE_ADDR): Assertion `inferior_thread ()->control.exception_resume_breakpoint == NULL' failed.
A problem internal to GDB has been detected,
further debugging may prove unreliable.
Quit this debugging session? (y or n) n
This is a bug, please report it. For instructions, see:
<http://www.gnu.org/software/gdb/bugs/>.
infrun.c:5921: internal-error: void insert_longjmp_resume_breakpoint(struct gdbarch *, CORE_ADDR): Assertion `inferior_thread ()->control.exception_resume_breakpoint == NULL' failed.
A problem internal to GDB has been detected,
further debugging may prove unreliable.
Create a core file of GDB? (y or n) n
Command aborted.
|
+1 from me |
…ndows and creating a new ReadOnlyMemoryError type
Alright, cleaned up. Let's see what CI say this time. |
Windows 32-bit passed! Lol....the windows 64-bit timed out for some reason on linalg tests, and the 4 Travis jobs all failed for different reasons including 1) |
the change looks good to me, although of course, the segfault needs to be addressed in the test before it can be merged |
If the line number of the fault is correct it means someone corrupted the big object free list. Either a logic error in the gc itself or user code misbehaving. I'll try and see if this is easy to reproduce on a 32bit vm. |
Is this the same fault? |
Bump. Should we merge this? The failures seem unrelated. The fault in #11552 doesn't seem to be due to read-only memory. |
I think the remaining problem here is that while we now catch read-only memory errors correctly cross platform, previously we didn't have a test for it and adding the test causes the |
I can reproduce the |
Allow windows to catch segfaults when trying to write to read-only memory; parity with unix. Unfortunately, I'm away from my windows box until later tonight or tomorrow, so I haven't had a chance to test this locally (to ensure from the REPL that we see
OutOfMemoryError
).cc @vtjnash @ihnorton
Note this doesn't address the other current segfault in #11351 that occurs when writing to read-only memory from within an
include
script (hence the [ci skip]). I've tried poking aroundjl_load
andjl_parse_eval_all
, but I get a little lost in trying to figure out why it's not respecting the installed signal handlers.Windows documentation on exception here: https://msdn.microsoft.com/en-us/library/windows/desktop/aa363082(v=vs.85).aspx