Bug 32179

Summary: Consistent crash in mini-arm.c when running FSharp on Raspberry Pi 2
Product: [Mono] Runtime Reporter: James Hugard <jayhugard>
Component: JITAssignee: Bugzilla <bugzilla>
Status: RESOLVED FIXED    
Severity: normal CC: jayhugard, mono-bugs+mono, mono-bugs+runtime, vargaz
Priority: ---    
Version: 4.0.0   
Target Milestone: ---   
Hardware: Other   
OS: Linux   
Tags: Is this bug a regression?: ---
Last known good build:
Attachments: Log showing crash when building fsharp

Description James Hugard 2015-07-21 02:41:47 UTC
Both fsharpc and fsharpi crash on the simplest of programs.  This appears to be a mono runtime/jit problem, rather than a problem with the fsharp compiler.

Both fsharp and fsharpi will launch, but doing ANYTHING causes a crash.  Because the Debian ARM automated build validation (of fsharp) only runs fsharp or fsharpi (which succeeds if you don't compile anything), but does NOT try to compile and run a program (which consistently *fails*), this has probably been broken for quite a while.

Possibly related to Bug 17654 (https://bugzilla.xamarin.com/show_bug.cgi?id=17654).  However, this still occurs with mono 3.2.8, as well mono 4.0 build from master (19Jul15, I think hash 68ad97bc53ce46726fec665ee61d6d61b629f90b, mini-arm.c:3890 or there abouts). 


SYSTEM AND PACKAGES:

RPI2 + Raspbian Jessie

uname -a
 Linux devpi 3.18.14-v7+ #794 SMP PREEMPT Sun Jun 7 12:50:51 BST 2015 armv7l GNU/Linux

dpkg -s libc6 | grep ^Version
 Version: 2.19-18

mono-devel/stable,now 3.2.8+dfsg-10 all [installed]
   Mono development tools

fsharp/stable,now 3.1.1.26+dfsg2-3 all [installed]
   functional-first programming language - compiler for the CLI

Run 'fsharpi' and attempting to execute the following line:

    printfn "Hello, world";;

Crashes with the following output:

F# Interactive for F# 3.1 (Open Source Edition)
 Freely distributed under the Apache 2.0 Open Source License

For help type #help;;

> printfn "Hello, world!";;
 * Assertion: should not be reached at mini-arm.c:3962

Stacktrace:

  at <unknown> <0xffffffff>
   at Microsoft.FSharp.Compiler.Interactive.Shell/FsiDynamicCompiler.ProcessInputs (Microsoft.FSharp.Compiler.Interactive.Shell/FsiDynamicCompilerState,Microsoft.FSharp.Collections.FSharpList`1<Microsoft.FSharp.Compiler.Ast/ParsedInput>,bool,bool,bool,Microsoft.FSharp.Collections.FSharpList`1<Microsoft.FSharp.Compiler.Ast/Ident>) <0x0096b>
   at Microsoft.FSharp.Compiler.Interactive.Shell/FsiDynamicCompiler.EvalParsedDefinitions (Microsoft.FSharp.Compiler.Interactive.Shell/FsiDynamicCompilerState,bool,bool,Microsoft.FSharp.Collections.FSharpList`1<Microsoft.FSharp.Compiler.Ast/SynModuleDecl>) <0x001d7>
   at Microsoft.FSharp.Compiler.Interactive.Shell/LoadDummyInteraction@1977.Invoke (Microsoft.FSharp.Compiler.Interactive.Shell/FsiDynamicCompilerState) <0x00057>
   at Microsoft.FSharp.Compiler.Interactive.Shell/FsiInteractionProcessor.InteractiveCatch<a> (Microsoft.FSharp.Core.FSharpFunc`2<a, System.Tuple`2<a, Microsoft.FSharp.Compiler.Interactive.Shell/FsiInteractionStepStatus>>,a) <0x00057>
   at Microsoft.FSharp.Compiler.Interactive.Shell/FsiInteractionProcessor.LoadDummyInteraction (Microsoft.FSharp.Compiler.Interactive.Shell/FsiDynamicCompilerState) <0x00057>
   at Microsoft.FSharp.Compiler.Interactive.Shell/FsiEvaluationSession.Run () <0x0028b>
   at Microsoft.FSharp.Compiler.Interactive.Shell.evaluateSession@2594 (string[],Microsoft.FSharp.Core.Unit) <0x00087>
   at Microsoft.FSharp.Compiler.Interactive.Shell.MainMain (string[]) <0x0016f>
   at Microsoft.FSharp.Compiler.Interactive.Main.FsiMain (string[]) <0x00013>
   at (wrapper runtime-invoke) <Module>.runtime_invoke_int_object (object,intptr,intptr,intptr) <0xffffffff>

Native stacktrace:

Debug info from gdb:

[New LWP 13069]
 [Thread debugging using libthread_db enabled]
 Using host libthread_db library "/lib/arm-linux-gnueabihf/libthread_db.so.1".
 0x76e5bee8 in __libc_waitpid (pid=13073, stat_loc=0x7e8940d8, options=0) at ../sysdeps/unix/sysv/linux/waitpid.c:40
 40 ../sysdeps/unix/sysv/linux/waitpid.c: No such file or directory.
   Id Target Id Frame
   2 Thread 0x76957430 (LWP 13069) "cli" 0x76e59a40 in do_futex_wait (isem=isem@entry=0x3181a4) at ../nptl/sysdeps/unix/sysv/linux/sem_wait.c:48
 * 1 Thread 0x76f5a000 (LWP 13066) "cli" 0x76e5bee8 in __libc_waitpid (pid=13073, stat_loc=0x7e8940d8, options=0) at ../sysdeps/unix/sysv/linux/waitpid.c:40

Thread 2 (Thread 0x76957430 (LWP 13069)):
 #0 0x76e59a40 in do_futex_wait (isem=isem@entry=0x3181a4) at ../nptl/sysdeps/unix/sysv/linux/sem_wait.c:48
 #1 0x76e59af4 in __new_sem_wait (sem=0x3181a4) at ../nptl/sysdeps/unix/sysv/linux/sem_wait.c:69
 #2 0x00219f98 in mono_sem_wait ()
 #3 0x0019091c in ?? ()
 Backtrace stopped: previous frame identical to this frame (corrupt stack?)

Thread 1 (Thread 0x76f5a000 (LWP 13066)):
 #0 0x76e5bee8 in __libc_waitpid (pid=13073, stat_loc=0x7e8940d8, options=0) at ../sysdeps/unix/sysv/linux/waitpid.c:40
 #1 0x000c0ba4 in ?? ()
 Backtrace stopped: previous frame identical to this frame (corrupt stack?)

=================================================================
 Got a SIGABRT while executing native code. This usually indicates
 a fatal error in the mono runtime or one of the native libraries
 used by your application.
 =================================================================

Aborted

Compiling the following trivial fsharp program:

let main() =
     printfn "Hello, from F-Sharp!"
     0

main()

Produces the following output:

$ fsharpc hello.fs
 F# Compiler for F# 3.1 (Open Source Edition)
 Freely distributed under the Apache 2.0 Open Source License
 * Assertion: should not be reached at mini-arm.c:4005

Stacktrace:

  at <unknown> <0xffffffff>
   at Microsoft.FSharp.Compiler.TypeChecker.TcItemThen (Microsoft.FSharp.Compiler.TypeChecker/cenv,Microsoft.FSharp.Compiler.Tast/TType,Microsoft.FSharp.Compiler.TypeChecker/TcEnv,Microsoft.FSharp.Compiler.TypeChecker/SyntacticUnscopedTyparEnv,Microsoft.FSharp.Compiler.Nameres/Item,Microsoft.FSharp.Compiler.Range/range,Microsoft.FSharp.Collections.FSharpList`1<Microsoft.FSharp.Compiler.Ast/Ident>,Microsoft.FSharp.Compiler.Nameres/AfterOverloadResolution,Microsoft.FSharp.Collections.FSharpList`1<Microsoft.FSharp.Compiler.TypeChecker/DelayedItem>) <0x0279f>
   at Microsoft.FSharp.Compiler.TypeChecker.TcLongIdentThen (Microsoft.FSharp.Compiler.TypeChecker/cenv,Microsoft.FSharp.Compiler.Tast/TType,Microsoft.FSharp.Compiler.TypeChecker/TcEnv,Microsoft.FSharp.Compiler.TypeChecker/SyntacticUnscopedTyparEnv,Microsoft.FSharp.Compiler.Ast/LongIdentWithDots,Microsoft.FSharp.Collections.FSharpList`1<Microsoft.FSharp.Compiler.TypeChecker/DelayedItem>) <0x00253>
   at Microsoft.FSharp.Compiler.TypeChecker.TcExprThen (Microsoft.FSharp.Compiler.TypeChecker/cenv,Microsoft.FSharp.Compiler.Tast/TType,Microsoft.FSharp.Compiler.TypeChecker/TcEnv,Microsoft.FSharp.Compiler.TypeChecker/SyntacticUnscopedTyparEnv,Microsoft.FSharp.Compiler.Ast/SynExpr,Microsoft.FSharp.Collections.FSharpList`1<Microsoft.FSharp.Compiler.TypeChecker/DelayedItem>) <0x001fb>
   at Microsoft.FSharp.Compiler.TypeChecker.TcExprNoRecover (Microsoft.FSharp.Compiler.TypeChecker/cenv,Microsoft.FSharp.Compiler.Tast/TType,Microsoft.FSharp.Compiler.TypeChecker/TcEnv,Microsoft.FSharp.Compiler.TypeChecker/SyntacticUnscopedTyparEnv,Microsoft.FSharp.Compiler.Ast/SynExpr) <0x0008f>
   at Microsoft.FSharp.Compiler.TypeChecker.TcExpr (Microsoft.FSharp.Compiler.TypeChecker/cenv,Microsoft.FSharp.Compiler.Tast/TType,Microsoft.FSharp.Compiler.TypeChecker/TcEnv,Microsoft.FSharp.Compiler.TypeChecker/SyntacticUnscopedTyparEnv,Microsoft.FSharp.Compiler.Ast/SynExpr) <0x0006f>
   at Microsoft.FSharp.Compiler.TypeChecker.TcExprOfUnknownType (Microsoft.FSharp.Compiler.TypeChecker/cenv,Microsoft.FSharp.Compiler.TypeChecker/TcEnv,Microsoft.FSharp.Compiler.TypeChecker/SyntacticUnscopedTyparEnv,Microsoft.FSharp.Compiler.Ast/SynExpr) <0x0003f>
   at Microsoft.FSharp.Compiler.TypeChecker.TcStmt (Microsoft.FSharp.Compiler.TypeChecker/cenv,Microsoft.FSharp.Compiler.TypeChecker/TcEnv,Microsoft.FSharp.Compiler.TypeChecker/SyntacticUnscopedTyparEnv,Microsoft.FSharp.Compiler.Ast/SynExpr) <0x0002f>
   at Microsoft.FSharp.Compiler.TypeChecker.TcStmtThatCantBeCtorBody (Microsoft.FSharp.Compiler.TypeChecker/cenv,Microsoft.FSharp.Compiler.TypeChecker/TcEnv,Microsoft.FSharp.Compiler.TypeChecker/SyntacticUnscopedTyparEnv,Microsoft.FSharp.Compiler.Ast/SynExpr) <0x0004f>
   at Microsoft.FSharp.Compiler.TypeChecker.TcLinearSeqs@5408<o> (Microsoft.FSharp.Compiler.TypeChecker/cenv,Microsoft.FSharp.Compiler.Tast/TType,Microsoft.FSharp.Compiler.TypeChecker/TcEnv,Microsoft.FSharp.Compiler.TypeChecker/SyntacticUnscopedTyparEnv,Microsoft.FSharp.Compiler.Ast/SynExpr,Microsoft.FSharp.Core.FSharpFunc`2<System.Tuple`2<Microsoft.FSharp.Compiler.Tast/Expr, Microsoft.FSharp.Compiler.TypeChecker/SyntacticUnscopedTyparEnv>, o>) <0x000cb>
   at Microsoft.FSharp.Compiler.TypeChecker.TcExprUndelayed (Microsoft.FSharp.Compiler.TypeChecker/cenv,Microsoft.FSharp.Compiler.Tast/TType,Microsoft.FSharp.Compiler.TypeChecker/TcEnv,Microsoft.FSharp.Compiler.TypeChecker/SyntacticUnscopedTyparEnv,Microsoft.FSharp.Compiler.Ast/SynExpr) <0x03a13>
   at Microsoft.FSharp.Compiler.TypeChecker.TcExprThen (Microsoft.FSharp.Compiler.TypeChecker/cenv,Microsoft.FSharp.Compiler.Tast/TType,Microsoft.FSharp.Compiler.TypeChecker/TcEnv,Microsoft.FSharp.Compiler.TypeChecker/SyntacticUnscopedTyparEnv,Microsoft.FSharp.Compiler.Ast/SynExpr,Microsoft.FSharp.Collections.FSharpList`1<Microsoft.FSharp.Compiler.TypeChecker/DelayedItem>) <0x00323>
   at Microsoft.FSharp.Compiler.TypeChecker.TcExprNoRecover (Microsoft.FSharp.Compiler.TypeChecker/cenv,Microsoft.FSharp.Compiler.Tast/TType,Microsoft.FSharp.Compiler.TypeChecker/TcEnv,Microsoft.FSharp.Compiler.TypeChecker/SyntacticUnscopedTyparEnv,Microsoft.FSharp.Compiler.Ast/SynExpr) <0x0008f>
   at Microsoft.FSharp.Compiler.TypeChecker.TcExpr (Microsoft.FSharp.Compiler.TypeChecker/cenv,Microsoft.FSharp.Compiler.Tast/TType,Microsoft.FSharp.Compiler.TypeChecker/TcEnv,Microsoft.FSharp.Compiler.TypeChecker/SyntacticUnscopedTyparEnv,Microsoft.FSharp.Compiler.Ast/SynExpr) <0x0006f>
   at Microsoft.FSharp.Compiler.TypeChecker.TcIteratedLambdas (Microsoft.FSharp.Compiler.TypeChecker/cenv,bool,Microsoft.FSharp.Compiler.TypeChecker/TcEnv,Microsoft.FSharp.Compiler.Tast/TType,Microsoft.FSharp.Collections.FSharpSet`1<string>,Microsoft.FSharp.Compiler.TypeChecker/SyntacticUnscopedTyparEnv,Microsoft.FSharp.Compiler.Ast/SynExpr) <0x00413>
   at Microsoft.FSharp.Compiler.TypeChecker.TcIteratedLambdas (Microsoft.FSharp.Compiler.TypeChecker/cenv,bool,Microsoft.FSharp.Compiler.TypeChecker/TcEnv,Microsoft.FSharp.Compiler.Tast/TType,Microsoft.FSharp.Collections.FSharpSet`1<string>,Microsoft.FSharp.Compiler.TypeChecker/SyntacticUnscopedTyparEnv,Microsoft.FSharp.Compiler.Ast/SynExpr) <0x002a3>
   at Microsoft.FSharp.Compiler.TypeChecker.TcExprUndelayed (Microsoft.FSharp.Compiler.TypeChecker/cenv,Microsoft.FSharp.Compiler.Tast/TType,Microsoft.FSharp.Compiler.TypeChecker/TcEnv,Microsoft.FSharp.Compiler.TypeChecker/SyntacticUnscopedTyparEnv,Microsoft.FSharp.Compiler.Ast/SynExpr) <0x009b3>
   at Microsoft.FSharp.Compiler.TypeChecker.TcExprThen (Microsoft.FSharp.Compiler.TypeChecker/cenv,Microsoft.FSharp.Compiler.Tast/TType,Microsoft.FSharp.Compiler.TypeChecker/TcEnv,Microsoft.FSharp.Compiler.TypeChecker/SyntacticUnscopedTyparEnv,Microsoft.FSharp.Compiler.Ast/SynExpr,Microsoft.FSharp.Collections.FSharpList`1<Microsoft.FSharp.Compiler.TypeChecker/DelayedItem>) <0x00323>
   at Microsoft.FSharp.Compiler.TypeChecker.TcExprNoRecover (Microsoft.FSharp.Compiler.TypeChecker/cenv,Microsoft.FSharp.Compiler.Tast/TType,Microsoft.FSharp.Compiler.TypeChecker/TcEnv,Microsoft.FSharp.Compiler.TypeChecker/SyntacticUnscopedTyparEnv,Microsoft.FSharp.Compiler.Ast/SynExpr) <0x0008f>
   at Microsoft.FSharp.Compiler.TypeChecker.TcExpr (Microsoft.FSharp.Compiler.TypeChecker/cenv,Microsoft.FSharp.Compiler.Tast/TType,Microsoft.FSharp.Compiler.TypeChecker/TcEnv,Microsoft.FSharp.Compiler.TypeChecker/SyntacticUnscopedTyparEnv,Microsoft.FSharp.Compiler.Ast/SynExpr) <0x0006f>
   at Microsoft.FSharp.Compiler.TypeChecker.TcExprThatCantBeCtorBody (Microsoft.FSharp.Compiler.TypeChecker/cenv,Microsoft.FSharp.Compiler.Tast/TType,Microsoft.FSharp.Compiler.TypeChecker/TcEnv,Microsoft.FSharp.Compiler.TypeChecker/SyntacticUnscopedTyparEnv,Microsoft.FSharp.Compiler.Ast/SynExpr) <0x00073>
   at Microsoft.FSharp.Compiler.TypeChecker/tc@9441-1.Invoke (Microsoft.FSharp.Compiler.TypeChecker/cenv,Microsoft.FSharp.Compiler.Tast/TType,Microsoft.FSharp.Compiler.TypeChecker/TcEnv,Microsoft.FSharp.Compiler.TypeChecker/SyntacticUnscopedTyparEnv,Microsoft.FSharp.Compiler.Ast/SynExpr) <0x00047>
   at Microsoft.FSharp.Core.FSharpFunc`2.InvokeFast<V, W, X, Y> (Microsoft.FSharp.Core.FSharpFunc`2<T, Microsoft.FSharp.Core.FSharpFunc`2<TResult, Microsoft.FSharp.Core.FSharpFunc`2<V, Microsoft.FSharp.Core.FSharpFunc`2<W, Microsoft.FSharp.Core.FSharpFunc`2<X, Y>>>>>,T,TResult,V,W,X) <0x00083>
   at Microsoft.FSharp.Compiler.TypeChecker.TcNormalizedBinding (Microsoft.FSharp.Compiler.TypeChecker/DeclKind,Microsoft.FSharp.Compiler.TypeChecker/cenv,Microsoft.FSharp.Compiler.TypeChecker/TcEnv,Microsoft.FSharp.Compiler.TypeChecker/SyntacticUnscopedTyparEnv,Microsoft.FSharp.Compiler.Tast/TType,Microsoft.FSharp.Core.FSharpOption`1<Microsoft.FSharp.Compiler.Tast/Val>,Microsoft.FSharp.Compiler.TypeChecker/SafeInitData,Microsoft.FSharp.Collections.FSharpList`1<Microsoft.FSharp.Compiler.Tast/Typar>,Microsoft.FSharp.Compiler.TypeChecker/ExplicitTyparInfo,Microsoft.FSharp.Compiler.TypeChecker/NormalizedBinding) <0x00e6f>
   at Microsoft.FSharp.Compiler.TypeChecker.TcNonRecursiveBinding (Microsoft.FSharp.Compiler.TypeChecker/DeclKind,Microsoft.FSharp.Compiler.TypeChecker/cenv,Microsoft.FSharp.Compiler.TypeChecker/TcEnv,Microsoft.FSharp.Compiler.TypeChecker/SyntacticUnscopedTyparEnv,Microsoft.FSharp.Compiler.Tast/TType,Microsoft.FSharp.Compiler.Ast/SynBinding) <0x000d7>
   at Microsoft.FSharp.Compiler.TypeChecker/TcLetBinding@9713.Invoke (Microsoft.FSharp.Compiler.TypeChecker/SyntacticUnscopedTyparEnv,Microsoft.FSharp.Compiler.Ast/SynBinding) <0x00057>
   at Microsoft.FSharp.Core.FSharpFunc`2.InvokeFast<V> (Microsoft.FSharp.Core.FSharpFunc`2<T, Microsoft.FSharp.Core.FSharpFunc`2<TResult, V>>,T,TResult) <0x00057>
   at Microsoft.FSharp.Compiler.AbstractIL.Internal.Library/List.mapFold<a, b, c> (Microsoft.FSharp.Core.FSharpFunc`2<a, Microsoft.FSharp.Core.FSharpFunc`2<b, System.Tuple`2<c, a>>>,a,Microsoft.FSharp.Collections.FSharpList`1<b>) <0x000cb>
   at Microsoft.FSharp.Compiler.TypeChecker.TcLetBinding (Microsoft.FSharp.Compiler.TypeChecker/cenv,bool,Microsoft.FSharp.Compiler.TypeChecker/TcEnv,Microsoft.FSharp.Compiler.TypeChecker/ContainerInfo,Microsoft.FSharp.Compiler.TypeChecker/DeclKind,Microsoft.FSharp.Compiler.TypeChecker/SyntacticUnscopedTyparEnv,Microsoft.FSharp.Collections.FSharpList`1<Microsoft.FSharp.Compiler.Ast/SynBinding>,Microsoft.FSharp.Compiler.Range/range,Microsoft.FSharp.Compiler.Range/range) <0x0008b>
   at Microsoft.FSharp.Compiler.TypeChecker.TcLetBindings (Microsoft.FSharp.Compiler.TypeChecker/cenv,Microsoft.FSharp.Compiler.TypeChecker/TcEnv,Microsoft.FSharp.Compiler.TypeChecker/ContainerInfo,Microsoft.FSharp.Compiler.TypeChecker/DeclKind,Microsoft.FSharp.Compiler.TypeChecker/SyntacticUnscopedTyparEnv,Microsoft.FSharp.Collections.FSharpList`1<Microsoft.FSharp.Compiler.Ast/SynBinding>,Microsoft.FSharp.Compiler.Range/range,Microsoft.FSharp.Compiler.Range/range) <0x00097>
   at Microsoft.FSharp.Compiler.TypeChecker/TcModuleOrNamespaceElement@14982-1.Invoke (Microsoft.FSharp.Core.Unit) <0x00c3f>
   at Microsoft.FSharp.Compiler.AbstractIL.Internal.Library/EventuallyModule/delay@638.Invoke (Microsoft.FSharp.Core.Unit) <0x0002b>
   at Microsoft.FSharp.Compiler.AbstractIL.Internal.Library/EventuallyModule/catch@632.Invoke (Microsoft.FSharp.Core.Unit) <0x00057>
   at Microsoft.FSharp.Compiler.AbstractIL.Internal.Library/EventuallyModule/bind@623.Invoke (Microsoft.FSharp.Core.Unit) <0x00037>
   at Microsoft.FSharp.Compiler.AbstractIL.Internal.Library/EventuallyModule/bind@623.Invoke (Microsoft.FSharp.Core.Unit) <0x00037>
   at Microsoft.FSharp.Compiler.AbstractIL.Internal.Library/EventuallyModule/bind@623.Invoke (Microsoft.FSharp.Core.Unit) <0x00037>
   at Microsoft.FSharp.Compiler.AbstractIL.Internal.Library/EventuallyModule/bind@623.Invoke (Microsoft.FSharp.Core.Unit) <0x00037>
   at Microsoft.FSharp.Compiler.AbstractIL.Internal.Library/EventuallyModule/bind@623.Invoke (Microsoft.FSharp.Core.Unit) <0x00037>
   at Microsoft.FSharp.Compiler.AbstractIL.Internal.Library/EventuallyModule/catch@632.Invoke (Microsoft.FSharp.Core.Unit) <0x00057>
   at Microsoft.FSharp.Compiler.AbstractIL.Internal.Library/EventuallyModule/bind@623.Invoke (Microsoft.FSharp.Core.Unit) <0x00037>
   at Microsoft.FSharp.Compiler.AbstractIL.Internal.Library/EventuallyModule/bind@623.Invoke (Microsoft.FSharp.Core.Unit) <0x00037>
   at Microsoft.FSharp.Compiler.AbstractIL.Internal.Library/EventuallyModule/bind@623.Invoke (Microsoft.FSharp.Core.Unit) <0x00037>
   at Microsoft.FSharp.Compiler.AbstractIL.Internal.Library/EventuallyModule/bind@623.Invoke (Microsoft.FSharp.Core.Unit) <0x00037>
   at Microsoft.FSharp.Compiler.AbstractIL.Internal.Library/EventuallyModule/catch@632.Invoke (Microsoft.FSharp.Core.Unit) <0x00057>
   at Microsoft.FSharp.Compiler.AbstractIL.Internal.Library/EventuallyModule/bind@623.Invoke (Microsoft.FSharp.Core.Unit) <0x00037>
   at Microsoft.FSharp.Compiler.AbstractIL.Internal.Library/EventuallyModule/bind@623.Invoke (Microsoft.FSharp.Core.Unit) <0x00037>
   at Microsoft.FSharp.Compiler.AbstractIL.Internal.Library/EventuallyModule/bind@623.Invoke (Microsoft.FSharp.Core.Unit) <0x00037>
   at Microsoft.FSharp.Compiler.AbstractIL.Internal.Library/EventuallyModule/bind@623.Invoke (Microsoft.FSharp.Core.Unit) <0x00037>
   at Microsoft.FSharp.Compiler.AbstractIL.Internal.Library/EventuallyModule/bind@623.Invoke (Microsoft.FSharp.Core.Unit) <0x00037>
   at Microsoft.FSharp.Compiler.AbstractIL.Internal.Library/EventuallyModule/bind@623.Invoke (Microsoft.FSharp.Core.Unit) <0x00037>
   at Microsoft.FSharp.Compiler.AbstractIL.Internal.Library/EventuallyModule/catch@632.Invoke (Microsoft.FSharp.Core.Unit) <0x00057>
   at Microsoft.FSharp.Compiler.AbstractIL.Internal.Library/EventuallyModule/bind@623.Invoke (Microsoft.FSharp.Core.Unit) <0x00037>
   at Microsoft.FSharp.Compiler.AbstractIL.Internal.Library/EventuallyModule.forceWhile<a> (Microsoft.FSharp.Core.FSharpFunc`2<Microsoft.FSharp.Core.Unit, bool>,Microsoft.FSharp.Compiler.AbstractIL.Internal.Library/Eventually`1<a>) <0x0008b>
   at Microsoft.FSharp.Compiler.AbstractIL.Internal.Library/EventuallyModule.force<a> (Microsoft.FSharp.Compiler.AbstractIL.Internal.Library/Eventually`1<a>) <0x0003b>
   at Microsoft.FSharp.Compiler.Build.TypecheckOneInput (Microsoft.FSharp.Core.FSharpFunc`2<Microsoft.FSharp.Core.Unit, bool>,Microsoft.FSharp.Compiler.Build/TcConfig,Microsoft.FSharp.Compiler.Build/TcImports,Microsoft.FSharp.Compiler.Env/TcGlobals,Microsoft.FSharp.Core.FSharpOption`1<Microsoft.FSharp.Collections.FSharpList`1<Microsoft.FSharp.Compiler.Ast/Ident>>,Microsoft.FSharp.Compiler.Build/TcState,Microsoft.FSharp.Compiler.Ast/ParsedInput) <0x0010f>
   at Microsoft.FSharp.Compiler.Build/TypecheckMultipleInputs@5197.Invoke (Microsoft.FSharp.Compiler.Build/TcState,Microsoft.FSharp.Compiler.Ast/ParsedInput) <0x00043>
   at Microsoft.FSharp.Core.FSharpFunc`2.InvokeFast<V> (Microsoft.FSharp.Core.FSharpFunc`2<T, Microsoft.FSharp.Core.FSharpFunc`2<TResult, V>>,T,TResult) <0x00057>
   at Microsoft.FSharp.Compiler.AbstractIL.Internal.Library/List.mapFold<a, b, c> (Microsoft.FSharp.Core.FSharpFunc`2<a, Microsoft.FSharp.Core.FSharpFunc`2<b, System.Tuple`2<c, a>>>,a,Microsoft.FSharp.Collections.FSharpList`1<b>) <0x000cb>
   at Microsoft.FSharp.Compiler.Build.TypecheckMultipleInputs (Microsoft.FSharp.Core.FSharpFunc`2<Microsoft.FSharp.Core.Unit, bool>,Microsoft.FSharp.Compiler.Build/TcConfig,Microsoft.FSharp.Compiler.Build/TcImports,Microsoft.FSharp.Compiler.Env/TcGlobals,Microsoft.FSharp.Core.FSharpOption`1<Microsoft.FSharp.Collections.FSharpList`1<Microsoft.FSharp.Compiler.Ast/Ident>>,Microsoft.FSharp.Compiler.Build/TcState,Microsoft.FSharp.Collections.FSharpList`1<Microsoft.FSharp.Compiler.Ast/ParsedInput>) <0x0007b>
   at Microsoft.FSharp.Compiler.Build.TypecheckClosedInputSet (Microsoft.FSharp.Core.FSharpFunc`2<Microsoft.FSharp.Core.Unit, bool>,Microsoft.FSharp.Compiler.Build/TcConfig,Microsoft.FSharp.Compiler.Build/TcImports,Microsoft.FSharp.Compiler.Env/TcGlobals,Microsoft.FSharp.Core.FSharpOption`1<Microsoft.FSharp.Collections.FSharpList`1<Microsoft.FSharp.Compiler.Ast/Ident>>,Microsoft.FSharp.Compiler.Build/TcState,Microsoft.FSharp.Collections.FSharpList`1<Microsoft.FSharp.Compiler.Ast/ParsedInput>) <0x0005f>
   at Microsoft.FSharp.Compiler.Driver.TypeCheck (Microsoft.FSharp.Compiler.Build/TcConfig,Microsoft.FSharp.Compiler.Build/TcImports,Microsoft.FSharp.Compiler.Env/TcGlobals,Microsoft.FSharp.Compiler.ErrorLogger/ErrorLogger,string,Microsoft.FSharp.Compiler.Ast/NiceNameGenerator,Microsoft.FSharp.Compiler.TypeChecker/TcEnv,Microsoft.FSharp.Collections.FSharpList`1<Microsoft.FSharp.Compiler.Ast/ParsedInput>,Microsoft.FSharp.Compiler.ErrorLogger/Exiter) <0x00177>
   at Microsoft.FSharp.Compiler.Driver.getTcImportsFromCommandLine (Microsoft.FSharp.Core.FSharpOption`1<Microsoft.FSharp.Core.FSharpFunc`2<string, Microsoft.FSharp.Core.Unit>>,string[],string,string,Microsoft.FSharp.Core.FSharpOption`1<int>,Microsoft.FSharp.Core.FSharpFunc`2<Microsoft.FSharp.Compiler.Build/TcConfigBuilder, Microsoft.FSharp.Core.Unit>,Microsoft.FSharp.Core.FSharpFunc`2<Microsoft.FSharp.Compiler.Build/TcConfigBuilder, Microsoft.FSharp.Core.Unit>,bool,Microsoft.FSharp.Compiler.ErrorLogger/Exiter,Microsoft.FSharp.Compiler.Driver/ErrorLoggerProvider,Microsoft.FSharp.Compiler.Driver/DelayedDisposables) <0x0118b>
   at Microsoft.FSharp.Compiler.Driver.main0 (string[],bool,Microsoft.FSharp.Compiler.ErrorLogger/Exiter,Microsoft.FSharp.Compiler.Driver/ErrorLoggerProvider,Microsoft.FSharp.Compiler.Driver/DelayedDisposables) <0x0021f>
   at Microsoft.FSharp.Compiler.Driver.typecheckAndCompile (string[],bool,Microsoft.FSharp.Compiler.ErrorLogger/Exiter,Microsoft.FSharp.Compiler.Driver/ErrorLoggerProvider) <0x00063>
   at Microsoft.FSharp.Compiler.Driver.mainCompile (string[],bool,Microsoft.FSharp.Compiler.ErrorLogger/Exiter) <0x00037>
   at Microsoft.FSharp.Compiler.CommandLineMain.runMain (string[]) <0x0029f>
   at Microsoft.FSharp.Compiler.CommandLineMain.main (string[]) <0x000c3>
   at (wrapper runtime-invoke) <Module>.runtime_invoke_int_object (object,intptr,intptr,intptr) <0xffffffff>

Native stacktrace:

Debug info from gdb:

[New LWP 13324]
 [Thread debugging using libthread_db enabled]
 Using host libthread_db library "/lib/arm-linux-gnueabihf/libthread_db.so.1".
 0x76e37ee8 in __libc_waitpid (pid=13327, stat_loc=0x7ea3a9b0, options=0) at ../sysdeps/unix/sysv/linux/waitpid.c:40
 40 ../sysdeps/unix/sysv/linux/waitpid.c: No such file or directory.
   Id Target Id Frame
   2 Thread 0x76967430 (LWP 13324) "cli" 0x76e35a40 in do_futex_wait (isem=isem@entry=0x3181a4) at ../nptl/sysdeps/unix/sysv/linux/sem_wait.c:48
 * 1 Thread 0x76f36000 (LWP 13322) "cli" 0x76e37ee8 in __libc_waitpid (pid=13327, stat_loc=0x7ea3a9b0, options=0) at ../sysdeps/unix/sysv/linux/waitpid.c:40

Thread 2 (Thread 0x76967430 (LWP 13324)):
 #0 0x76e35a40 in do_futex_wait (isem=isem@entry=0x3181a4) at ../nptl/sysdeps/unix/sysv/linux/sem_wait.c:48
 #1 0x76e35af4 in __new_sem_wait (sem=0x3181a4) at ../nptl/sysdeps/unix/sysv/linux/sem_wait.c:69
 #2 0x00219f98 in mono_sem_wait ()
 #3 0x0019091c in ?? ()
 Backtrace stopped: previous frame identical to this frame (corrupt stack?)

Thread 1 (Thread 0x76f36000 (LWP 13322)):
 #0 0x76e37ee8 in __libc_waitpid (pid=13327, stat_loc=0x7ea3a9b0, options=0) at ../sysdeps/unix/sysv/linux/waitpid.c:40
 #1 0x000c0ba4 in ?? ()
 Backtrace stopped: previous frame identical to this frame (corrupt stack?)

=================================================================
 Got a SIGABRT while executing native code. This usually indicates
 a fatal error in the mono runtime or one of the native libraries
 used by your application.
 =================================================================

Aborted
Comment 1 James Hugard 2015-07-21 05:00:20 UTC
I've rebuilt mono from the latest hash 4e64d3aa69ad3f7430edd58243fc7249ca35bcbf.  

Not sure I'm doing this right, but the FSharp4 distribution includes a bootstrap FSharp 3.0.  Attempting to run fsi.exe from the bootstrap dir results in the following:

[mono] ~/mnt/jhugard/armhf/fsharp/lib/bootstrap/4.0 @ mono fsi.exe

F# Interactive for F# 3.0 (private, test-signed)
Freely distributed under the Apache 2.0 Open Source License

For help type #help;;

> thunk failed 0x73a79b1c->0x76f723c0, thunk space=0 method Microsoft.FSharp.Core.LanguagePrimitives/HashCompare/UnlimitedHasher:System-Collections-IEqualityComparer-GetHashCode (object)* Assertion: should not be reached at mini-arm.c:3850

Stacktrace:

  at <unknown> <0xffffffff>
  at System.Tuple`4<uint16, uint16, uint16, uint16>.System.Collections.IStructuralEquatable.GetHashCode (System.Collections.IEqualityComparer) <0x0004b>
  at Microsoft.FSharp.Core.LanguagePrimitives/HashCompare.GenericHashParamObj (System.Collections.IEqualityComparer,object) <0x0039b>
  at Microsoft.FSharp.Core.FSharpOption`1<T_REF>.GetHashCode (System.Collections.IEqualityComparer) <0x0005b>
  at Microsoft.FSharp.Core.LanguagePrimitives/HashCompare.GenericHashParamObj (System.Collections.IEqualityComparer,object) <0x0039b>
  at Microsoft.FSharp.Core.LanguagePrimitives/HashCompare.GenericHashWithComparerIntrinsic<T_REF> (System.Collections.IEqualityComparer,T_REF) <0x0001f>
  at Microsoft.FSharp.Compiler.AbstractIL.IL/AssemblyRefData.GetHashCode (System.Collections.IEqualityComparer) <0x00057>
  at Microsoft.FSharp.Core.LanguagePrimitives/HashCompare.GenericHashParamObj (System.Collections.IEqualityComparer,object) <0x0039b>
  at Microsoft.FSharp.Core.LanguagePrimitives/HashCompare.GenericHashIntrinsic<T_REF> (T_REF) <0x0009f>
  at Microsoft.FSharp.Compiler.AbstractIL.Internal.Library/-ctor@706-1<T_REF>.System-Collections-Generic-IEqualityComparer`1-GetHashCode (T_REF) <0x00027>
  at System.Collections.Generic.Dictionary`2<Microsoft.FSharp.Compiler.AbstractIL.IL/AssemblyRefData, int>.FindEntry (Microsoft.FSharp.Compiler.AbstractIL.IL/AssemblyRefData) <0x0004b>
  at System.Collections.Generic.Dictionary`2<Microsoft.FSharp.Compiler.AbstractIL.IL/AssemblyRefData, int>.ContainsKey (Microsoft.FSharp.Compiler.AbstractIL.IL/AssemblyRefData) <0x0001b>
  at Microsoft.FSharp.Compiler.AbstractIL.Internal.Library/UniqueStampGenerator`1<T_REF>.encode (T_REF) <0x0003b>
  at Microsoft.FSharp.Compiler.AbstractIL.IL/ILAssemblyRef..ctor (Microsoft.FSharp.Compiler.AbstractIL.IL/AssemblyRefData) <0x0003b>
  at Microsoft.FSharp.Compiler.AbstractIL.IL/ILAssemblyRef.Create (string,Microsoft.FSharp.Core.FSharpOption`1<byte[]>,Microsoft.FSharp.Core.FSharpOption`1<Microsoft.FSharp.Compiler.AbstractIL.IL/PublicKey>,bool,Microsoft.FSharp.Core.FSharpOption`1<System.Tuple`4<uint16, uint16, uint16, uint16>>,Microsoft.FSharp.Core.FSharpOption`1<string>) <0x00083>
  at Microsoft.FSharp.Compiler.AbstractIL.IL.mkRefToILAssembly (Microsoft.FSharp.Compiler.AbstractIL.IL/ILAssemblyManifest) <0x0011b>
  at Microsoft.FSharp.Compiler.Build/TcConfig.TryResolveLibWithDirectories (Microsoft.FSharp.Compiler.Build/AssemblyReference) <0x00203>
  at Microsoft.FSharp.Compiler.Build/ResolveLibWithDirectories@2565.Invoke (string) <0x00053>
  at Microsoft.FSharp.Collections.ListModule.TryPick<T_REF, TResult_REF> (Microsoft.FSharp.Core.FSharpFunc`2<T_REF, Microsoft.FSharp.Core.FSharpOption`1<TResult_REF>>,Microsoft.FSharp.Collections.FSharpList`1<T_REF>) <0x0003f>
  at Microsoft.FSharp.Compiler.Build/TcConfig.ResolveLibWithDirectories (Microsoft.FSharp.Compiler.Build/AssemblyReference) <0x001db>
  at Microsoft.FSharp.Compiler.Build/resolutions@3092.Invoke (Microsoft.FSharp.Compiler.Build/AssemblyReference) <0x0004b>
  at Microsoft.FSharp.Primitives.Basics.List.map<T_REF, TResult_REF> (Microsoft.FSharp.Core.FSharpFunc`2<T_REF, TResult_REF>,Microsoft.FSharp.Collections.FSharpList`1<T_REF>) <0x000d7>
  at Microsoft.FSharp.Collections.ListModule.Map<T_REF, TResult_REF> (Microsoft.FSharp.Core.FSharpFunc`2<T_REF, TResult_REF>,Microsoft.FSharp.Collections.FSharpList`1<T_REF>) <0x0002b>
  at Microsoft.FSharp.Compiler.Build.fallBack@3089 (Microsoft.FSharp.Compiler.Build/TcConfig,Microsoft.FSharp.Collections.FSharpList`1<Microsoft.FSharp.Compiler.Build/AssemblyReference>,Microsoft.FSharp.Core.Unit) <0x0004f>
  at Microsoft.FSharp.Compiler.Build/TcAssemblyResolutions.Resolve (Microsoft.FSharp.Compiler.Build/TcConfig,Microsoft.FSharp.Collections.FSharpList`1<Microsoft.FSharp.Compiler.Build/AssemblyReference>,Microsoft.FSharp.Collections.FSharpList`1<Microsoft.FSharp.Compiler.Build/UnresolvedAssemblyReference>) <0x00037>
  at Microsoft.FSharp.Compiler.Build/TcAssemblyResolutions.SplitNonFoundationalResolutions (Microsoft.FSharp.Compiler.Build/TcConfig) <0x00027>
  at Microsoft.FSharp.Compiler.Build/TcImports.BuildTcImports (Microsoft.FSharp.Compiler.Build/TcConfigProvider) <0x0002b>
  at Microsoft.FSharp.Compiler.Interactive.Shell/FsiEvaluationSession..ctor (string[],System.IO.TextReader,System.IO.TextWriter,System.IO.TextWriter) <0x00937>
  at Microsoft.FSharp.Compiler.Interactive.Main.MainMain (string[]) <0x00077>
  at (wrapper runtime-invoke) <Module>.runtime_invoke_int_object (object,intptr,intptr,intptr) <0xffffffff>

Native stacktrace:


Debug info from gdb:

Mono support loaded.
[New LWP 2813]
[New LWP 2810]
[New LWP 2809]
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/arm-linux-gnueabihf/libthread_db.so.1".
0x76ea4ee8 in __libc_waitpid (pid=pid@entry=2814, stat_loc=0x7edf9884, stat_loc@entry=0x7edf987c, options=options@entry=0) at ../sysdeps/unix/sysv/linux/waitpid.c:40
40      ../sysdeps/unix/sysv/linux/waitpid.c: No such file or directory.
  Id   Target Id         Frame
  4    Thread 0x763ff430 (LWP 2809) "mono" 0x76ea07a4 in __pthread_cond_wait (cond=cond@entry=0x2ec970 <work_cond>, mutex=mutex@entry=0x2ec944 <lock>) at pthread_cond_wait.c:187
  3    Thread 0x76a53430 (LWP 2810) "Finalizer" 0x76ea2a40 in do_futex_wait (isem=isem@entry=0x2e1abc <finalizer_sem>) at ../nptl/sysdeps/unix/sysv/linux/sem_wait.c:48
  2    Thread 0x73616430 (LWP 2813) "mono" 0x76ea3cb0 in read () at ../sysdeps/unix/syscall-template.S:81
* 1    Thread 0x76fa5000 (LWP 2808) "mono" 0x76ea4ee8 in __libc_waitpid (pid=pid@entry=2814, stat_loc=0x7edf9884, stat_loc@entry=0x7edf987c, options=options@entry=0) at ../sysdeps/unix/sysv/linux/waitpid.c:40

Thread 4 (Thread 0x763ff430 (LWP 2809)):
#0  0x76ea07a4 in __pthread_cond_wait (cond=cond@entry=0x2ec970 <work_cond>, mutex=mutex@entry=0x2ec944 <lock>) at pthread_cond_wait.c:187
#1  0x001d9524 in thread_func (thread_data=0x0) at sgen-thread-pool.c:118
#2  0x76e9be90 in start_thread (arg=0x763ff430) at pthread_create.c:311
#3  0x76e26128 in ?? () at ../ports/sysdeps/unix/sysv/linux/arm/nptl/../clone.S:92 from /lib/arm-linux-gnueabihf/libc.so.6
Backtrace stopped: previous frame identical to this frame (corrupt stack?)

Thread 3 (Thread 0x76a53430 (LWP 2810)):
#0  0x76ea2a40 in do_futex_wait (isem=isem@entry=0x2e1abc <finalizer_sem>) at ../nptl/sysdeps/unix/sysv/linux/sem_wait.c:48
#1  0x76ea2af4 in __new_sem_wait (sem=sem@entry=0x2e1abc <finalizer_sem>) at ../nptl/sysdeps/unix/sysv/linux/sem_wait.c:69
#2  0x001fe378 in mono_sem_wait (sem=sem@entry=0x2e1abc <finalizer_sem>, alertable=alertable@entry=1) at mono-semaphore.c:107
#3  0x0018551c in finalizer_thread (unused=<optimized out>) at gc.c:1096
#4  0x001681e0 in start_wrapper_internal (data=<optimized out>) at threads.c:723
#5  start_wrapper (data=<optimized out>) at threads.c:770
#6  0x00204b88 in inner_start_thread (arg=0x7edfb2bc) at mono-threads-posix.c:97
#7  0x76e9be90 in start_thread (arg=0x76a53430) at pthread_create.c:311
#8  0x76e26128 in ?? () at ../ports/sysdeps/unix/sysv/linux/arm/nptl/../clone.S:92 from /lib/arm-linux-gnueabihf/libc.so.6
Backtrace stopped: previous frame identical to this frame (corrupt stack?)

Thread 2 (Thread 0x73616430 (LWP 2813)):
#0  0x76ea3cb0 in read () at ../sysdeps/unix/syscall-template.S:81
#1  0x001e00bc in console_read (handle=<optimized out>, buffer=0x7647b3d0, numbytes=1024, bytesread=0x7361542c, overlapped=0x0) at io.c:1078
#2  0x001b40b0 in ves_icall_System_IO_MonoIO_Read (handle=0x0, dest=0x7647b3c0, dest_offset=0, count=1024, error=0x736155a0) at file-io.c:855
#3  0x76ae1bc8 in ?? ()
Backtrace stopped: previous frame identical to this frame (corrupt stack?)

Thread 1 (Thread 0x76fa5000 (LWP 2808)):
#0  0x76ea4ee8 in __libc_waitpid (pid=pid@entry=2814, stat_loc=0x7edf9884, stat_loc@entry=0x7edf987c, options=options@entry=0) at ../sysdeps/unix/sysv/linux/waitpid.c:40
#1  0x000ad4e8 in mono_handle_native_sigsegv (signal=<optimized out>, ctx=<optimized out>, info=<optimized out>) at mini-exceptions.c:2237
#2  <signal handler called>
#3  0x76d85f50 in __GI_raise (sig=sig@entry=6) at ../nptl/sysdeps/unix/sysv/linux/raise.c:56
#4  0x76d87304 in __GI_abort () at abort.c:89
#5  0x0020ddec in monoeg_log_default_handler (log_domain=0x0, log_level=G_LOG_LEVEL_ERROR, message=0x7c84f0 "* Assertion: should not be reached at mini-arm.c:3850\n", unused_data=0x0) at goutput.c:233
#6  0x0020dc68 in monoeg_g_logv (log_domain=0x0, log_level=G_LOG_LEVEL_ERROR, format=0x21e210 "* Assertion: should not be reached at %s:%d\n", args=...) at goutput.c:113
#7  0x0020dd00 in monoeg_assertion_message (format=0x21e210 "* Assertion: should not be reached at %s:%d\n") at goutput.c:133
#8  0x000d1db8 in handle_thunk (target=0x7c8570 "Microsoft.FSharp.Core.LanguagePrimitives/HashCompare/UnlimitedHasher:System-Collections-IEqualityComparer-GetHashCode (object)", code=0x73a79b1c "", domain=<optimized out>, cfg=0x76fa5000) at mini-arm.c:3850
#9  arm_patch_general (cfg=0x76fa5000, domain=<optimized out>, code=0x73a79b1c "", target=target@entry=0x76f723c0 "\r\300\240\341\360_-\351\200\320M\342 \v\215\354\b\320M\342\260 \215\342\210\060\215\342\b\340\215", <incomplete sequence \342>) at mini-arm.c:3949
#10 0x000de648 in mono_arch_patch_code_new (cfg=cfg@entry=0x778d10, domain=<optimized out>, code=<optimized out>, ji=ji@entry=0x7700b0, target=0x76f723c0) at mini-arm.c:6068
#11 0x000e8508 in mono_codegen (cfg=cfg@entry=0x778d10) at mini.c:2575
#12 0x000e902c in mini_method_compile (method=method@entry="%s:%s ()", opts=opts@entry=4294967295, domain=domain@entry=0x355bf8, flags=flags@entry=JIT_FLAG_RUN_CCTORS, parts=parts@entry=0, aot_method_index=aot_method_index@entry=-1) at mini.c:3876
#13 0x000ea240 in mono_jit_compile_method_inner (method=method@entry="%s:%s ()", target_domain=target_domain@entry=0x355bf8, opt=opt@entry=370223615, jit_ex=jit_ex@entry=0x7edfa474) at mini.c:4080
#14 0x00032ffc in mono_jit_compile_method_with_opt (method=method@entry="%s:%s ()", opt=370223615, ex=ex@entry=0x7edfa474) at mini-runtime.c:1886
#15 0x00033594 in mono_jit_compile_method (method="%s:%s ()") at mini-runtime.c:1923
#16 0x000ae540 in common_call_trampoline_inner (regs=regs@entry=0x7edfa650, code=code@entry=0x73a7991c "\020", m="%s:%s ()", vt=vt@entry=vtable(%s), vtable_slot=<optimized out>, vtable_slot@entry=0x43ed1c) at mini-trampolines.c:566
#17 0x000aedac in common_call_trampoline (vtable_slot=0x43ed1c, vt=vtable(%s), m=<optimized out>, code=0x73a7991c "\020", regs=0x7edfa650) at mini-trampolines.c:680
#18 mono_vcall_trampoline (Cannot access memory at address 0x0
regs=0x7edfa650, code=0x73a7991c "\020", slot=-7, tramp=<optimized out>) at mini-trampolines.c:764
#19 0x76f71cd8 in ?? ()
Cannot access memory at address 0x0
Backtrace stopped: previous frame identical to this frame (corrupt stack?)

=================================================================
Got a SIGABRT while executing native code. This usually indicates
a fatal error in the mono runtime or one of the native libraries
used by your application.
=================================================================

Aborted
Comment 2 Zoltan Varga 2015-07-23 22:09:49 UTC
Should be fixed in mono master d44657503aaa6b6a01287075e7ea1323744080c4.
Comment 3 James Hugard 2015-07-25 14:49:56 UTC
The Raspian Jessie (armhf) distribution of fsharp 3.1 still crashes, and the current master fsharp4 project still fails to build.

Allocating space in the thunk for tail-calls allows the FSharp 3.0 compiler to run, but FSharp 3.1 still fails with an assertion in mini-arm.c.

Will attach a full build log for fsharp4, plus output from running Raspian Jessie version of fsharp, plus some system details (uname, etc).

Here is a summary of those crashes.

---

CRASH COMPILING FSHARP (fsharp4 branch):

  mono master hash: 0d06636cde0889a981baf9a376ea5f208977ab42
  fsharp hash: da957037ec219b5d39af2e35f58f134c521351c4

thunk failed 0x76812fd4->0x73f04000, thunk space=12 method Microsoft.FSharp.Core.LanguagePrimitives/HashCompare/fsEqualityComparer@1619:System-Collections-IEqualityComparer-Equals (object,object)* Assertion: should not be reached at mini-arm.c:3904

---

CRASH IN RASPIAN JESSIE DISTRO OF FSHARP:

  fsharp stable,now 3.1.1.26+dfsg2-3
  libfsharp-core4.3-cil stable,now 3.1.1.26+dfsg2-3

F# Interactive for F# 3.1 (Open Source Edition)
Freely distributed under the Apache 2.0 Open Source License

For help type #help;;

> printfn "Hello, world!";;
* Assertion: should not be reached at mini-arm.c:3962

Stacktrace:

  at <unknown> <0xffffffff>
  at Microsoft.FSharp.Compiler.Interactive.Shell/FsiDynamicCompiler.ProcessInputs (Microsoft.FSharp.Compiler.Interactive.Shell/FsiDynamicCompilerState,Microsoft.FSharp.Collections.FSharpList`1<Microsoft.FSharp.Compiler.Ast/ParsedInput>,bool,bool,bool,Microsoft.FSharp.Collections.FSharp
Comment 4 James Hugard 2015-07-25 14:52:41 UTC
Created attachment 12233 [details]
Log showing crash when building fsharp

Also shows some system information at the top and at the end both a working run of fsharp 3.0, plus a crash in fsharp 3.1 from the Raspian Jessie version.
Comment 5 Zoltan Varga 2015-08-01 21:26:49 UTC
Could you try mono master 12cb465e9efaa24e378bd837e5d60371e5ea9a53 ?
As for the second assertion (mini-arm.c:3962), there is no assertion at that line in mini-arm.c, perhaps that run was using an old version ?
Comment 6 James Hugard 2015-08-02 17:23:54 UTC
That did the trick!  Thank you!

The crash in mini-arm is no longer occurring in any version of FSharp.  Marked the bug as Resolved.

Not sure what the workflow is... who is supposed to mark the bug as Confirmed?


As an aside, the core fsharp validation suite is now failing some floating point operations and received an exception in a native interop test.  I will report these to the fsharp team as separate bugs from this one.