JuliaLang / julia

The Julia Programming Language
https://julialang.org/
MIT License
45.92k stars 5.49k forks source link

Crash during many Tasks run #15017

Closed tmptrash closed 8 years ago

tmptrash commented 8 years ago

Hello everybody.

It looks like i found a bundle of bugs in last version of julia. I run an application which uses many Tasks in it. It also uses generated julia code, which is run inside these tasks all the time. I obtain these crashes after ~3-20 minutes of running in some random order. I used both debug and release julia versions for tests...

julia> versioninfo()
Julia Version 0.4.3
Commit a2f713d (2016-01-12 21:37 UTC)
Platform Info:
  System: Windows (x86_64-w64-mingw32)
  CPU: Intel(R) Core(TM) i7-4700HQ CPU @ 2.40GHz
  WORD_SIZE: 64
  BLAS: libopenblas (USE64BITINT DYNAMIC_ARCH NO_AFFINITY Haswell)
  LAPACK: libopenblas64_
  LIBM: libopenlibm
  LLVM: libLLVM-3.3

This is first error message:

A s s e r t i o n   f a i l e d !

 P r o g r a m :   c : \ U s e r s \ U s e r \ A p p D a t a \ L o c a l \ J u l i a - 0 . 4 . 3 \ b i n \ j u l i a - d e b u g . e x e
 F i l e :   t o p l e v e l . c ,   L i n e   8 3 9

 E x p r e s s i o n :   j l _ i s _ f u n c t i o n ( f )

This application has requested the Runtime to terminate it in an unusual way.
Please contact the application's support team for more information.

Second error message looks like this:

Please submit a bug report with steps to reproduce this fault, and any error messages that follow (in their entirety). Thanks.
Exception: EXCEPTION_ACCESS_VIOLATION at 0x70116290 -- utf8proc_NFKC at c:\Users\User\AppData\Local\Julia-0.4.3\bin\libjulia-debug.dll (unknown line)
utf8proc_NFKC at c:\Users\User\AppData\Local\Julia-0.4.3\bin\libjulia-debug.dll (unknown line)
jl_static_eval at c:\Users\User\AppData\Local\Julia-0.4.3\bin\libjulia-debug.dll (unknown line)
jl_static_eval at c:\Users\User\AppData\Local\Julia-0.4.3\bin\libjulia-debug.dll (unknown line)
jl_static_eval at c:\Users\User\AppData\Local\Julia-0.4.3\bin\libjulia-debug.dll (unknown line)
jl_static_eval at c:\Users\User\AppData\Local\Julia-0.4.3\bin\libjulia-debug.dll (unknown line)
julia_type_to_llvm at c:\Users\User\AppData\Local\Julia-0.4.3\bin\libjulia-debug.dll (unknown line)
jl_compile at c:\Users\User\AppData\Local\Julia-0.4.3\bin\libjulia-debug.dll (unknown line)
jl_trampoline_compile_function at c:\Users\User\AppData\Local\Julia-0.4.3\bin\libjulia-debug.dll (unknown line)
jl_trampoline at c:\Users\User\AppData\Local\Julia-0.4.3\bin\libjulia-debug.dll (unknown line)
anonymous at G:\my\projects\jevo\src\Creature.jl:247
jl_get_system_hooks at c:\Users\User\AppData\Local\Julia-0.4.3\bin\libjulia-debug.dll (unknown line)
jl_get_system_hooks at c:\Users\User\AppData\Local\Julia-0.4.3\bin\libjulia-debug.dll (unknown line)

Another one:

Please submit a bug report with steps to reproduce this fault, and any error messages that follow (in their entirety). Thanks.
Exception: EXCEPTION_ACCESS_VIOLATION at 0x64f417e8 -- jl_write_malloc_log at c:\Users\User\AppData\Local\Julia-0.4.3\bin\libjulia.dll (unknown line)
jl_write_malloc_log at c:\Users\User\AppData\Local\Julia-0.4.3\bin\libjulia.dll (unknown line)
jl_extern_c at c:\Users\User\AppData\Local\Julia-0.4.3\bin\libjulia.dll (unknown line)
jl_extern_c at c:\Users\User\AppData\Local\Julia-0.4.3\bin\libjulia.dll (unknown line)
jl_load_and_lookup at c:\Users\User\AppData\Local\Julia-0.4.3\bin\libjulia.dll (unknown line)
jl_compile at c:\Users\User\AppData\Local\Julia-0.4.3\bin\libjulia.dll (unknown line)
jl_trampoline at c:\Users\User\AppData\Local\Julia-0.4.3\bin\libjulia.dll (unknown line)
anonymous at g:\my\projects\jevo\src\Creature.jl:247
jl_unprotect_stack at c:\Users\User\AppData\Local\Julia-0.4.3\bin\libjulia.dll (unknown line)

The last one:

Please submit a bug report with steps to reproduce this fault, and any error messages that follow (in their entirety). Thanks.
Exception: EXCEPTION_ACCESS_VIOLATION at 0x64f1732d -- jl_add_method at c:\Users\User\AppData\Local\Julia-0.4.3\bin\libjulia.dll (unknown line)
jl_add_method at c:\Users\User\AppData\Local\Julia-0.4.3\bin\libjulia.dll (unknown line)
jl_method_def at c:\Users\User\AppData\Local\Julia-0.4.3\bin\libjulia.dll (unknown line)
anonymous at no file:0
anonymous at g:\my\projects\jevo\src\Creature.jl:247
jl_unprotect_stack at c:\Users\User\AppData\Local\Julia-0.4.3\bin\libjulia.dll (unknown line)

It's hard to provide buggy code sample, because application is big and so many processes are involved. But, i may provide a high level code:

module Test
  type Organism
    code::Expr
    codeFn::Function
  end
  type OrganismTask
    task::Task
    organism::Organism
  end

  tasks = OrganismTask[]

  function born(o::Organism)
    return function ()
      while true
        produce()
        try
          o.codeFn(o)
        end
      end
    end
  end

  function run()
    for i=1:500
      # in real app organism's function is more complicated
      org  = Organism(:(function (o) return 1 end), function (o) return 1 end)
      task = Task(born(org))
      push!(tasks, OrganismTask(task, org))
    end

    while true
      for i=1:500
        consume(tasks[i].task)

        # here is a code, which modify tasks[i].organism.code
        tasks[i].organism.codeFn = eval(tasks[i].organism.code)
      end

      # here is a code, which remove and add tasks from/to tasks variable
    end
  end
end

If it's hard to find these errors using my sample, you may run my project on your machine to obtain the same errors. It doesn't require some special environment fo run. I may provide you exact steps to reproduce it.

Thanks a lot. Julia is a great language ;)

tmptrash commented 8 years ago

Update: i found the code, which behaves exactly like my "abstract" example above. It crashes... :)

using Manager

orgs = Creature.Organism[]
len  = 500
# here, we just create 500 instances of type Creature.Organism
# it contains code::Expr and codeFn::Function, which we will
# change below...
for i = 1:len push!(orgs, Creature.create()) end

function run()
  local i::Int
  while true
    for i = 1:len
      # this code changes orgs[i].code expression in a random way,
      # but with correct julia syntax
      Mutator.mutate(orgs[i])
      orgs[i].codeFn = eval(orgs[i].code)
      try
        orgs[i].codeFn(orgs[i])
      end
    end
  end
end

run()

Code above produces this error:

A s s e r t i o n   f a i l e d !

 P r o g r a m :   c : \ U s e r s \ U s e r \ A p p D a t a \ L o c a l \ J u l i a - 0 . 4 . 3 \ b i n \ j u l i a - d e b u g . e x e
 F i l e :   t o p l e v e l . c ,   L i n e   8 3 9

 E x p r e s s i o n :   j l _ i s _ f u n c t i o n ( f )
KristofferC commented 8 years ago

Could this be related: https://github.com/JuliaLang/julia/issues/14113?

tmptrash commented 8 years ago

I don't know :) I use eval() instead of @eval macro. And i don't use constants in my code. Also, in my case i have a crash instead of error, which is catchable.

tmptrash commented 8 years ago

Guys. Is there any solutions for this?

StefanKarpinski commented 8 years ago

Without the rest of your code, this is hard to reproduce. If your code is available online, can you provide a link to it, or if you're willing to send it to someone privately, that would help too. That being said, I'm eyeing that eval inside of two loops as the culprit. You should generally not be using eval at runtime at all – eval should be used sparingly during program setup and then the main program execution should generally be eval-free. In this case, it seems like you're doing some kind of genetic programming with Julia code, however, which seems to inherently involve doing an unbounded amount of evaling.

tmptrash commented 8 years ago

Yes, you right. This is a genetic algorithm related app. And i have to generate a lot of Julia code using AST. This is why i chose Julia ;) So i need to call eval() huge amount of times.

Here is an original code of this error :https://github.com/tmptrash/jevo/blob/master/tmp/err-crash1.jl

Run it in root folder using this snippet after clonning the repo:

include("src\\ImportFolders.jl")
include("tmp\\err-crash1.jl")
run()

But, you have to wait some time, before crash occures... For my PC, it takes ~4min... I tried this 5 min ago and i got this:

Please submit a bug report with steps to reproduce this fault, and any error messages that follow (in their entirety). Thanks.
Exception: EXCEPTION_ACCESS_VIOLATION at 0x64f829a0 -- jl_svec_append at c:\Users\User\AppData\Local\Julia-0.4.3\bin\libjulia.dll (unknown line)
jl_svec_append at c:\Users\User\AppData\Local\Julia-0.4.3\bin\libjulia.dll (unknown line)
jl_instantiate_method at c:\Users\User\AppData\Local\Julia-0.4.3\bin\libjulia.dll (unknown line)
jl_add_method at c:\Users\User\AppData\Local\Julia-0.4.3\bin\libjulia.dll (unknown line)
jl_method_def at c:\Users\User\AppData\Local\Julia-0.4.3\bin\libjulia.dll (unknown line)
anonymous at no file:0
run at g:\my\projects\jevo\tmp\err-crash1.jl:21
jlcall_run_1764 at  (unknown line)
jl_apply_generic at c:\Users\User\AppData\Local\Julia-0.4.3\bin\libjulia.dll (unknown line)
jl_interpret_toplevel_expr at c:\Users\User\AppData\Local\Julia-0.4.3\bin\libjulia.dll (unknown line)
jl_interpret_toplevel_thunk_with at c:\Users\User\AppData\Local\Julia-0.4.3\bin\libjulia.dll (unknown line)
jl_eval_with_compiler_p at c:\Users\User\AppData\Local\Julia-0.4.3\bin\libjulia.dll (unknown line)
jl_f_tuple at c:\Users\User\AppData\Local\Julia-0.4.3\bin\libjulia.dll (unknown line)
eval_user_input at REPL.jl:62
jlcall_eval_user_input_1419 at  (unknown line)
jl_apply_generic at c:\Users\User\AppData\Local\Julia-0.4.3\bin\libjulia.dll (unknown line)
anonymous at REPL.jl:92
jl_unprotect_stack at c:\Users\User\AppData\Local\Julia-0.4.3\bin\libjulia.dll (unknown line)
GC error (probable corruption) :
:svec
tmptrash commented 8 years ago

Is this sample works on your side?

tmptrash commented 8 years ago

Guys? Any progress with this issue? :)

StefanKarpinski commented 8 years ago

I can't reproduce your crash. It works fine for me but just runs for a very long time. Of course I'm on OS X, so maybe there's an upstream LLVM bug or some such issue.

tmptrash commented 8 years ago

Okay, I will check this under Ubuntu...

tmptrash commented 8 years ago

I don't have Mac, so i only may test this under Ubuntu v14.04:

julia> run()

signal (11): Ошибка сегментирования
unknown function (ip: 0x7f0be0ad15fd)
jl_method_def at /usr/bin/../lib/x86_64-linux-gnu/julia/libjulia.so (unknown line)
anonymous at no file:0
run at /home/db/projects/jevo/tmp/err-crash1.jl:21
jlcall_run_21463 at  (unknown line)
jl_apply_generic at /usr/bin/../lib/x86_64-linux-gnu/julia/libjulia.so (unknown line)
unknown function (ip: 0x7f0be0b2a683)
unknown function (ip: 0x7f0be0b29ac1)
unknown function (ip: 0x7f0be0b3eca8)
jl_toplevel_eval_in at /usr/bin/../lib/x86_64-linux-gnu/julia/libjulia.so (unknown line)
eval_user_input at REPL.jl:62
jlcall_eval_user_input_21180 at  (unknown line)
jl_apply_generic at /usr/bin/../lib/x86_64-linux-gnu/julia/libjulia.so (unknown line)
anonymous at REPL.jl:92
unknown function (ip: 0x7f0be0b30bbc)
unknown function (ip: (nil))

The title near signal (11) is translated like Segmentation error

StefanKarpinski commented 8 years ago

I've run the test code you provided in your original post – the Test module, Test.run() – on OS X and Linux, versions 0.4 and 0.5 and none of them crash. They run for a long time and use a lot of memory but they don't crash. Can you confirm that this is the code that crashes for you:

module Test
  type Organism
    code::Expr
    codeFn::Function
  end
  type OrganismTask
    task::Task
    organism::Organism
  end

  tasks = OrganismTask[]

  function born(o::Organism)
    return function ()
      while true
        produce()
        try
          o.codeFn(o)
        end
      end
    end
  end

  function run()
    for i=1:500
      # in real app organism's function is more complicated
      org  = Organism(:(function (o) return 1 end), function (o) return 1 end)
      task = Task(born(org))
      push!(tasks, OrganismTask(task, org))
    end

    while true
      for i=1:500
        consume(tasks[i].task)

        # here is a code, which modify tasks[i].organism.code
        tasks[i].organism.codeFn = eval(tasks[i].organism.code)
      end

      # here is a code, which remove and add tasks from/to tasks variable
    end
  end
end

using Test
Test.run()
vtjnash commented 8 years ago

from the backtrace, it looks like one of your organisms tried to escape (create a new method), but didn't have the syntax quite right.

if you catch this in gdb, you should be able to walk up the stack to see the method body of the rogue organism

tmptrash commented 8 years ago

Regarding my "original" code, you right, it doesn't produce an error (but my last code (err-crash1.jl) does). So i found a solution how you may reproduce a crash on your side. I made small change in my code for serializing it just before crash. From this:

      orgs[i].codeFn = eval(orgs[i].code)
      try
        orgs[i].codeFn(orgs[i])
      catch e
      end

to this:

      orgs[i].codeFn = eval(orgs[i].code)
      try
        Helper.save(orgs[i], "err-code.jevo")
        orgs[i].codeFn(orgs[i])
      catch e
      end

You may load "err-code.jevo" using this function:

  function load(file::ASCIIString)
    local io  = null
    local ret = null

    try
      io  = open(file)
      ret = deserialize(io)
    catch(e)
      println("Error: $e")
      ret = null
    finally
      if io !== null close(io) end
    end

    ret
  end

To reproduce crash use this snippet:

org = load("err-code.jevo")
org.codeFn(org)

Last line in last code snippet causes a crash. But if i reevaluate the code it doesn't. I mean this:

org.codeFn = eval(org.code)
org.codeFn(org) # doesn't produce crash (only exception)

I tried to compare old and new generated ASTs using org.codeFn.code property and they are different. The big question here is why? May be many eval() calls during running somehow affect code generation?

P.S. Here is a link to "err-code.jevo".

tmptrash commented 8 years ago

I dived deep into the problem and found exact place of the error:

AST(:($(Expr(:lambda, Any[:(o::(top(getfield))(Creature,:Organism))], Any[Any[Any[:o,:Any,19],Any[:func_2,:Any,3]],Any[],0,Any[]], :(begin
        NewvarNode(:func_2)
        o = (top(typeassert))(o,Creature.Organism)
        $(Expr(:method, :func_2, :((top(svec))((top(apply_type))(Main.Tuple),(top(svec))())), AST(:($(Expr(:lambda, Any[], Any[Any[],Any[Any[:func_2,:Any,3]],0,Any[]], :(begin return func_2(97,8397162610081231316,-7678,-33) end))))), false))
        $(Expr(:method, :func_2, :((top(svec))((top(apply_type))(Main.Tuple,Int8),(top(svec))())), Type{LabelNode}, false))
        $(Expr(:method, :func_2, :((top(svec))((top(apply_type))(Main.Tuple,Int8,Int64),(top(svec))())), Int64, false))
        $(Expr(:method, :func_2, :((top(svec))((top(apply_type))(Main.Tuple,Int8,Int64,Int16),(top(svec))())), SymbolNode, false))
        $(Expr(:method, :func_2, :((top(svec))((top(apply_type))(Main.Tuple,Int8,Int64,Int16,Int8),(top(svec))())), Type{GenSym}, false))
        (Creature.stepRight)(o)
        (Creature.stepRight)(o)
        (Creature.stepUp)(o)
        (Creature.stepDown)(o)
        (Creature.stepDown)(o)
        (Creature.stepDown)(o)
        return (Creature.stepRight)(o)
    end)))))

It looks like the problem in one of last four $(Expr(:method, :func_2 lines... For example the same generated code, which is work fine, but from previous eval() call is this:

AST(:($(Expr(:lambda, Any[:(o::(top(getfield))(Creature,:Organism))], Any[Any[Any[:o,:Any,19],Any[:func_2,:Any,3]],Any[],0,Any[]], :(begin
        NewvarNode(:func_2)
        o = (top(typeassert))(o,Creature.Organism)
        $(Expr(:method, :func_2, :((top(svec))((top(apply_type))(Main.Tuple),(top(svec))())), AST(:($(Expr(:lambda, Any[], Any[Any[],Any[Any[:func_2,:Any,3]],0,Any[]], :(begin return func_2(97,8397162610081231316,-7678,-33) end))))), false))
#=here=#$(Expr(:method, :func_2, :((top(svec))((top(apply_type))(Main.Tuple,Int8),(top(svec))())), AST(:($(Expr(:lambda, Any[:var_6], Any[Any[Any[:var_6,:Any,0]],Any[Any[:func_2,:Any,3]],0,Any[]], :(begin return func_2(var_6,8397162610081231316,-7678,-33) end))))), false))
#=here=#$(Expr(:method, :func_2, :((top(svec))((top(apply_type))(Main.Tuple,Int8,Int64),(top(svec))())), AST(:($(Expr(:lambda, Any[:var_6,:var_7], Any[Any[Any[:var_6,:Any,0],Any[:var_7,:Any,0]],Any[Any[:func_2,:Any,3]],0,Any[]], :(begin return func_2(var_6,var_7,-7678,-33) end))))), false))
#=here=#$(Expr(:method, :func_2, :((top(svec))((top(apply_type))(Main.Tuple,Int8,Int64,Int16),(top(svec))())), AST(:($(Expr(:lambda, Any[:var_6,:var_7,:var_8], Any[Any[Any[:var_6,:Any,0],Any[:var_7,:Any,0],Any[:var_8,:Any,0]],Any[Any[:fun,:Any,3]],0,Any[]], :(begin return func_2(var_6,var_7,var_8,-33) end))))), false))
#=here=#$(Expr(:method, :func_2, :((top(svec))((top(apply_type))(Main.Tuple,Int8,Int64,Int16,Int8),(top(svec))())), AST(:($(Expr(:lambda, Any[:var_6,:var_7,:var_8,:var_9], Any[Any[Any[:var_6,:Any,0],Any[:var_7,:Any,0],Any[:var_8,:Any,0],A:var_9,:Any,0]],Any[Any[:o,:Any,19]],0,Any[]],
        :(begin
        (Creature.stepRight)(o)
        return var_6
    end))))), false))
        (Creature.stepRight)(o)
        (Creature.stepRight)(o)
        (Creature.stepUp)(o)
        (Creature.stepDown)(o)
        (Creature.stepDown)(o)
        (Creature.stepDown)(o)
        return (Creature.stepRight)(o)
    end)))))
StefanKarpinski commented 8 years ago

Yeah, I'm not going to eval code I can't look at first.

vtjnash commented 8 years ago

duplicate of https://github.com/JuliaLang/julia/issues/14113 (I didn't realize that hadn't been backported to 0.4, or I would have marked this earlier)

tmptrash commented 8 years ago

Hello guys!

It looks like this issue is not a duplicate of #14113, because it still reproducible on my PC. I have these crashes very often :( I waited for this fix and today i found that 14113 has fixed. It's critical, so i created a workaround making backups every minute and recover from last if crash occures. It's it really bother me...

So I made a special backup file with buggy code for you guys, but it depends on my modules (depends on Manager).

The scenario is the same. You have to import Manager into your code and load one object from code-before.jevo file like this.

include("src/ImportFolders.jl") # we have to be in a root folder of the project
import Manager
org = Helper.load("code-before.jevo")
org.codeFn(org) # this line produces the crash

This is the crash:

Please submit a bug report with steps to reproduce this fault, and any error messages that follow (in their entirety). Thanks.
Exception: EXCEPTION_ACCESS_VIOLATION at 0x64f1735d -- jl_add_method at c:\Users\User\AppData\Local\Julia-0.4.6\bin\libjulia.dll (unknown line)
jl_add_method at c:\Users\User\AppData\Local\Julia-0.4.6\bin\libjulia.dll (unknown line)
jl_method_def at c:\Users\User\AppData\Local\Julia-0.4.6\bin\libjulia.dll (unknown line)
anonymous at no file:0
jl_interpret_toplevel_expr at c:\Users\User\AppData\Local\Julia-0.4.6\bin\libjulia.dll (unknown line)
jl_interpret_toplevel_thunk_with at c:\Users\User\AppData\Local\Julia-0.4.6\bin\libjulia.dll (unknown line)
jl_eval_with_compiler_p at c:\Users\User\AppData\Local\Julia-0.4.6\bin\libjulia.dll (unknown line)
jl_f_tuple at c:\Users\User\AppData\Local\Julia-0.4.6\bin\libjulia.dll (unknown line)
eval_user_input at REPL.jl:62
jlcall_eval_user_input_1394 at  (unknown line)
jl_apply_generic at c:\Users\User\AppData\Local\Julia-0.4.6\bin\libjulia.dll (unknown line)
anonymous at REPL.jl:92
jl_unprotect_stack at c:\Users\User\AppData\Local\Julia-0.4.6\bin\libjulia.dll (unknown line)

The buggy backup file is here The repo with my modules is here

Waiting for your answer. Thanks.

tmptrash commented 8 years ago

I use, windows 8.1 and julia 0.4.6

vtjnash commented 8 years ago

I don't believe that was ever backport to 0.4.6 (@tkelman)

tmptrash commented 8 years ago

So, where i can find fixed version to check the issue?

tkelman commented 8 years ago

I don't believe that was ever backport to 0.4.6

The commit history is public in the repo. What is "that" referring to, exactly?

yuyichao commented 8 years ago

https://github.com/JuliaLang/julia/issues/14113#issuecomment-200419384

tmptrash commented 8 years ago

Is it correct that this fix will be ported to 0.4.6 soon?

tkelman commented 8 years ago

We've marked the commit for backporting to what will become 0.4.7. It will need testing against the release-0.4 branch to make sure it isn't breaking there. I'll try to find some time to prepare 0.4.7 over the next few weeks.

tmptrash commented 8 years ago

Thanks alot! I hope this will fix all my crashes...

tmptrash commented 8 years ago

By the way, if you need i may prepare different dump files with code, which crashes the application. Because i have different stack traces for this error and may be we are speaking about many errors. Here are some of them:

Please submit a bug report with steps to reproduce this fault, and any error messages that follow (in their entirety). Thanks.
Exception: EXCEPTION_ACCESS_VIOLATION at 0x64f41528 -- jl_write_malloc_log at c:\Users\User\AppData\Local\Julia-0.4.6\bin\libjulia.dll (unknown line)
jl_write_malloc_log at c:\Users\User\AppData\Local\Julia-0.4.6\bin\libjulia.dll (unknown line)
jl_extern_c at c:\Users\User\AppData\Local\Julia-0.4.6\bin\libjulia.dll (unknown line)
jl_extern_c at c:\Users\User\AppData\Local\Julia-0.4.6\bin\libjulia.dll (unknown line)
jl_load_and_lookup at c:\Users\User\AppData\Local\Julia-0.4.6\bin\libjulia.dll (unknown line)
jl_compile at c:\Users\User\AppData\Local\Julia-0.4.6\bin\libjulia.dll (unknown line)
jl_trampoline at c:\Users\User\AppData\Local\Julia-0.4.6\bin\libjulia.dll (unknown line)
anonymous at g:\my\projects\jevo\src\organism\Creature.jl:261
jl_unprotect_stack at c:\Users\User\AppData\Local\Julia-0.4.6\bin\libjulia.dll (unknown line)
Please submit a bug report with steps to reproduce this fault, and any error messages that follow (in their entirety). Thanks.
Exception: EXCEPTION_ACCESS_VIOLATION at 0x64f828f0 -- jl_svec_append at c:\Users\User\AppData\Local\Julia-0.4.6\bin\libjulia.dll (unknown line)
jl_svec_append at c:\Users\User\AppData\Local\Julia-0.4.6\bin\libjulia.dll (unknown line)
jl_instantiate_method at c:\Users\User\AppData\Local\Julia-0.4.6\bin\libjulia.dll (unknown line)
jl_add_method at c:\Users\User\AppData\Local\Julia-0.4.6\bin\libjulia.dll (unknown line)
jl_method_def at c:\Users\User\AppData\Local\Julia-0.4.6\bin\libjulia.dll (unknown line)
anonymous at no file:0
anonymous at g:\my\projects\jevo\src\organism\Creature.jl:261
jl_unprotect_stack at c:\Users\User\AppData\Local\Julia-0.4.6\bin\libjulia.dll (unknown line)
Please submit a bug report with steps to reproduce this fault, and any error messages that follow (in their entirety). Thanks.
Exception: EXCEPTION_ACCESS_VIOLATION at 0x64f12a23 -- jl_instantiate_method at c:\Users\User\AppData\Local\Julia-0.4.6\bin\libjulia.dll (unknown line)
jl_instantiate_method at c:\Users\User\AppData\Local\Julia-0.4.6\bin\libjulia.dll (unknown line)
jl_add_method at c:\Users\User\AppData\Local\Julia-0.4.6\bin\libjulia.dll (unknown line)
jl_method_def at c:\Users\User\AppData\Local\Julia-0.4.6\bin\libjulia.dll (unknown line)
anonymous at no file:0
anonymous at g:\my\projects\jevo\src\organism\Creature.jl:261
jl_unprotect_stack at c:\Users\User\AppData\Local\Julia-0.4.6\bin\libjulia.dll (unknown line)
tmptrash commented 8 years ago

I this this kind of error is related to this issue:

GC error (probable corruption) :
<?#0000000000D6FB00::
Please submit a bug report with steps to reproduce this fault, and any error messages that follow (in their entirety). Thanks.
Exception: EXCEPTION_ACCESS_VIOLATION at 0x64f1f87c -- jl_f_tuple at c:\Users\User\AppData\Local\Julia-0.4.6\bin\libjulia.dll (unknown line)
jl_f_tuple at c:\Users\User\AppData\Local\Julia-0.4.6\bin\libjulia.dll (unknown line)
jl_ at c:\Users\User\AppData\Local\Julia-0.4.6\bin\libjulia.dll (unknown line)
jl_svec_fill at c:\Users\User\AppData\Local\Julia-0.4.6\bin\libjulia.dll (unknown line)
jl_svec_fill at c:\Users\User\AppData\Local\Julia-0.4.6\bin\libjulia.dll (unknown line)
jl_svec_fill at c:\Users\User\AppData\Local\Julia-0.4.6\bin\libjulia.dll (unknown line)
jl_svec_fill at c:\Users\User\AppData\Local\Julia-0.4.6\bin\libjulia.dll (unknown line)
jl_svec_fill at c:\Users\User\AppData\Local\Julia-0.4.6\bin\libjulia.dll (unknown line)
jl_gc_collect at c:\Users\User\AppData\Local\Julia-0.4.6\bin\libjulia.dll (unknown line)
jl_gc_alloc_3w at c:\Users\User\AppData\Local\Julia-0.4.6\bin\libjulia.dll (unknown line)
jl_alloc_svec at c:\Users\User\AppData\Local\Julia-0.4.6\bin\libjulia.dll (unknown line)
jl_inst_concrete_tupletype_v at c:\Users\User\AppData\Local\Julia-0.4.6\bin\libjulia.dll (unknown line)
jl_inst_concrete_tupletype_v at c:\Users\User\AppData\Local\Julia-0.4.6\bin\libjulia.dll (unknown line)
jl_type_intersection_matching at c:\Users\User\AppData\Local\Julia-0.4.6\bin\libjulia.dll (unknown line)
jl_init_types at c:\Users\User\AppData\Local\Julia-0.4.6\bin\libjulia.dll (unknown line)
jl_init_types at c:\Users\User\AppData\Local\Julia-0.4.6\bin\libjulia.dll (unknown line)
_methods at reflection.jl:155
jlcall__methods_239 at  (unknown line)
jl_apply_generic at c:\Users\User\AppData\Local\Julia-0.4.6\bin\libjulia.dll (unknown line)
_methods at reflection.jl:172
jlcall__methods_239 at  (unknown line)
jl_apply_generic at c:\Users\User\AppData\Local\Julia-0.4.6\bin\libjulia.dll (unknown line)
_methods at reflection.jl:172
jlcall__methods_239 at  (unknown line)
jl_apply_generic at c:\Users\User\AppData\Local\Julia-0.4.6\bin\libjulia.dll (unknown line)
_methods at reflection.jl:148
jlcall__methods_237 at  (unknown line)
jl_apply_generic at c:\Users\User\AppData\Local\Julia-0.4.6\bin\libjulia.dll (unknown line)
abstract_call_gf at inference.jl:676
jl_apply_generic at c:\Users\User\AppData\Local\Julia-0.4.6\bin\libjulia.dll (unknown line)
abstract_call at inference.jl:848
jl_apply_generic at c:\Users\User\AppData\Local\Julia-0.4.6\bin\libjulia.dll (unknown line)
abstract_eval_call at inference.jl:934
abstract_eval at inference.jl:961
jl_apply_generic at c:\Users\User\AppData\Local\Julia-0.4.6\bin\libjulia.dll (unknown line)
abstract_eval_call at inference.jl:906
abstract_eval at inference.jl:961
jl_apply_generic at c:\Users\User\AppData\Local\Julia-0.4.6\bin\libjulia.dll (unknown line)
abstract_interpret at inference.jl:1110
jl_apply_generic at c:\Users\User\AppData\Local\Julia-0.4.6\bin\libjulia.dll (unknown line)
typeinf_uncached at inference.jl:1549
jlcall_typeinf_uncached_151 at  (unknown line)
jl_apply_generic at c:\Users\User\AppData\Local\Julia-0.4.6\bin\libjulia.dll (unknown line)
typeinf at inference.jl:1339
jlcall_typeinf_147 at  (unknown line)
jl_apply_generic at c:\Users\User\AppData\Local\Julia-0.4.6\bin\libjulia.dll (unknown line)
typeinf_ext at inference.jl:1283
jl_apply_generic at c:\Users\User\AppData\Local\Julia-0.4.6\bin\libjulia.dll (unknown line)
jl_type_infer at c:\Users\User\AppData\Local\Julia-0.4.6\bin\libjulia.dll (unknown line)
jl_trampoline at c:\Users\User\AppData\Local\Julia-0.4.6\bin\libjulia.dll (unknown line)
anonymous at g:\my\projects\jevo-stable\src\organism\Creature.jl:261
jl_unprotect_stack at c:\Users\User\AppData\Local\Julia-0.4.6\bin\libjulia.dll (unknown line)
tmptrash commented 8 years ago

Hi. @tkelman, is it possible to prepare 0.4.7 with a fix? :)

tmptrash commented 8 years ago

Any updates on this?

tkelman commented 8 years ago

No, sorry I've been occupied with 0.5 release candidates. Can you use them at all? I will be preparing an 0.4.7 release as the next thing on my to-do list after RC4.

tmptrash commented 8 years ago

What is the deadline?

tkelman commented 8 years ago

see #18478 - though ref. https://github.com/JuliaLang/julia/pull/14656#issuecomment-246656194, not sure whether that particular fix is directly backportable without harming other functionality

tmptrash commented 8 years ago

Happy to hear. Hope it will help...

tkelman commented 8 years ago

Have you tried using 0.5 ?

tmptrash commented 8 years ago

No. Does v0.5 contain this fix also?

tkelman commented 8 years ago

Yes, #14113 has been fixed on 0.5 since March.

tmptrash commented 8 years ago

Thanks! I will try.

tmptrash commented 8 years ago

After migrating to v0.5, the problem has gone :) Thanks alot!