fsharpc and fsharpi crash on trivial program

Bug #1467154 reported by James Hugard
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Raspbian
New
Undecided
Unassigned
fsharp
New
Undecided
Unassigned
mono
New
Undecided
Unassigned

Bug Description

Both fsharpc and fsharpi crash on the simplest of programs.

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

Revision history for this message
James Hugard (james-hugard) wrote :

Note: CSharp works just fine:

jhugard@devpi ~/Dev/csharp $ cat hello.cs
public class Hello
{
        static void Main( string[] args )
        {
                System.Console.WriteLine("Hello, world!");
        }
}
jhugard@devpi ~/Dev/csharp $ dmcs hello.cs
jhugard@devpi ~/Dev/csharp $ mono hello.exe
Hello, world!

description: updated
description: updated
Revision history for this message
James Hugard (james-hugard) wrote :

Have upgraded to kernel 4.0, tried switching to raspbian stretch, and dist-upgrade to debian stretch armhf. All versions of fsharp continue to crash.

Perhaps because the validation only runs fsharp (which succeeds)i, but does NOT try to compile and run a program (which *fails*), this has been broken for a while?

Perhaps mono has an issue with the tail-recursion instruction on arm?

Revision history for this message
James Hugard (james-hugard) wrote :

Note: This bug has been fixed in the mono runtime. Please see xamaran Bugzilla bug 32179:

https://bugzilla.xamarin.com/show_bug.cgi?id=32179

Revision history for this message
peter green (plugwash) wrote :

Anyone know if this is fixed in mono 4.0.2.5 ?

Revision history for this message
peter green (plugwash) wrote :

I've built some mono 4.0.2.5 packages based on the source from Debian experimental, they are available at the following apt sources

for wheezy:
deb http://plugwash.raspbian.org/mono4 wheezy-mono4 main

for jessie:
deb http://plugwash.raspbian.org/mono4 jessie-mono4 main

Unfortunately it seems the Debian/Raspbian fsharp package is not usable in conjunction with them. See https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=794533

Revision history for this message
James Hugard (james-hugard) wrote :

This crash should be fixed in mono-4.0.3.20 or later (see commit 12cb465).

Note that there may still be issues with floating point; see FSharp bug #464 (https://github.com/fsharp/fsharp/issues/464).

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.