This is Xamarin's bug tracking system. For product support, please use the support links listed in your Xamarin Account.
Bug 7815 - SGEN (tailcall?) crashing bug: mono-sgen 2.11.5 crashes running F# compiler
: SGEN (tailcall?) crashing bug: mono-sgen 2.11.5 crashes running F# compiler
Status: RESOLVED WORKSFORME
Product: Runtime
Classification: Mono
Component: GC
: unspecified
: PC Linux
: --- normal
: ---
Assigned To: Bugzilla
:
:
:
:
  Show dependency treegraph
 
Reported: 2012-10-12 07:18 EDT by Ben Winkel
Modified: 2012-10-21 08:04 EDT (History)
6 users (show)

See Also:
Tags:
Test Case URL:
External Submit: ---


Attachments

Description Ben Winkel 2012-10-12 07:18:46 EDT
Environment: Linux, Ubuntu

Steps:
   - use Mono 2.11.5 (or head build)
   - get https://github.com/fsharp/fsharp
   - edit config.make.in and uncomment the line with MONO_OPTIONS += --gc=sgen
   - run ./autogen.sh
   - make

Result:

  at <unknown> <0xffffffff>
  at (wrapper managed-to-native)
object.__icall_wrapper_mono_object_new_specific (intptr) <0xffffffff>


Diagnosis:
  - This crashes in Set.add, which probably uses a tailcall. So it might be an
interaction between SGEN and tailcalls.

  - SGEN was working fine on Mono 2.10.9. I haven't tried Mono 2.11.4




Full trace below.



make -C src/fsharp all
make[1]: Entering directory `/home/funnelweb/github/fsharp/fsharp/src/fsharp'
make -C FSharp.Build-proto all
make[2]: Entering directory
`/home/funnelweb/github/fsharp/fsharp/src/fsharp/FSharp.Build-proto'
make[2]: Leaving directory
`/home/funnelweb/github/fsharp/fsharp/src/fsharp/FSharp.Build-proto'
make -C FSharp.Compiler-proto all
make[2]: Entering directory
`/home/funnelweb/github/fsharp/fsharp/src/fsharp/FSharp.Compiler-proto'
make[2]: Leaving directory
`/home/funnelweb/github/fsharp/fsharp/src/fsharp/FSharp.Compiler-proto'
make -C Fsc-proto all
make[2]: Entering directory
`/home/funnelweb/github/fsharp/fsharp/src/fsharp/Fsc-proto'
make[2]: Leaving directory
`/home/funnelweb/github/fsharp/fsharp/src/fsharp/Fsc-proto'
make -C FSharp.Core do-2-0
make[2]: Entering directory
`/home/funnelweb/github/fsharp/fsharp/src/fsharp/FSharp.Core'
MONO_PATH=/home/funnelweb/github/fsharp/fsharp/lib/bootstrap/2.0/ mono
--gc=sgen /home/funnelweb/github/fsharp/fsharp//lib/proto/2.0/fsc-proto.exe
-o:.libs/2.0/FSharp.Core.dll
-r:/usr/local/lib/pkgconfig/../../lib/mono/2.0/Microsoft.Build.Engine.dll
-r:/usr/local/lib/pkgconfig/../../lib/mono/2.0/Microsoft.Build.Framework.dll
-r:/usr/local/lib/pkgconfig/../../lib/mono/3.5/Microsoft.Build.Tasks.v3.5.dll
-r:/usr/local/lib/pkgconfig/../../lib/mono/3.5/Microsoft.Build.Utilities.v3.5.dll
-r:/usr/local/lib/pkgconfig/../../lib/mono/2.0/mscorlib.dll
-r:/usr/local/lib/pkgconfig/../../lib/mono/2.0/System.Core.dll
-r:/usr/local/lib/pkgconfig/../../lib/mono/2.0/System.dll --define:RUNTIME
--define:TRACE --define:MONO --define:CODE_ANALYSIS --define:DEBUG
--define:FX_NO_STRUCTURAL_EQUALITY --define:FX_NO_IOBSERVABLE
--define:FX_NO_TUPLE --define:FX_ATLEAST_35 --define:FX_NO_LAZY
--define:FX_NO_CANCELLATIONTOKEN_CLASSES
--define:FX_NO_MONITOR_REPORTS_LOCKTAKEN --define:FX_NO_TPL_PARALLEL
--define:FX_NO_CUSTOMATTRIBUTEDATA --define:FX_NO_TASK --define:FX_NO_BIGINT
--doc:.libs/2.0/FSharp.Core.xml --version:2.3.0.0 --debug:pdbonly --optimize+
--mlcompatibility --noframework --fullpaths --times --nowarn:9
--define:STRONG_NAME_AND_DELAY_SIGN_FSHARP_COMPILER_WITH_MSFT_KEY --delaysign+
--keyfile:/home/funnelweb/github/fsharp/fsharp/msfinal.pub --compiling-fslib
--nowarn:75,1204 --target:library
--compiling-fslib-20:/usr/local/lib/pkgconfig/../../lib/mono/2.0/../4.0/mscorlib.dll
--extraoptimizationloops:1  --resource:.libs/FSCore.resources
/home/funnelweb/github/fsharp/fsharp/src/fsharp/FSharp.Core/prim-types-prelude.fsi
/home/funnelweb/github/fsharp/fsharp/src/fsharp/FSharp.Core/prim-types-prelude.fs
/home/funnelweb/github/fsharp/fsharp/src/fsharp/FSharp.Core/SR.fs
/home/funnelweb/github/fsharp/fsharp/src/fsharp/FSharp.Core/prim-types.fsi
/home/funnelweb/github/fsharp/fsharp/src/fsharp/FSharp.Core/prim-types.fs
/home/funnelweb/github/fsharp/fsharp/src/fsharp/FSharp.Core/local.fsi
/home/funnelweb/github/fsharp/fsharp/src/fsharp/FSharp.Core/local.fs
/home/funnelweb/github/fsharp/fsharp/src/fsharp/FSharp.Core/array2.fsi
/home/funnelweb/github/fsharp/fsharp/src/fsharp/FSharp.Core/array2.fs
/home/funnelweb/github/fsharp/fsharp/src/fsharp/FSharp.Core/option.fsi
/home/funnelweb/github/fsharp/fsharp/src/fsharp/FSharp.Core/option.fs
/home/funnelweb/github/fsharp/fsharp/src/fsharp/FSharp.Core/collections.fsi
/home/funnelweb/github/fsharp/fsharp/src/fsharp/FSharp.Core/collections.fs
/home/funnelweb/github/fsharp/fsharp/src/fsharp/FSharp.Core/seq.fsi
/home/funnelweb/github/fsharp/fsharp/src/fsharp/FSharp.Core/seq.fs
/home/funnelweb/github/fsharp/fsharp/src/fsharp/FSharp.Core/string.fsi
/home/funnelweb/github/fsharp/fsharp/src/fsharp/FSharp.Core/string.fs
/home/funnelweb/github/fsharp/fsharp/src/fsharp/FSharp.Core/list.fsi
/home/funnelweb/github/fsharp/fsharp/src/fsharp/FSharp.Core/list.fs
/home/funnelweb/github/fsharp/fsharp/src/fsharp/FSharp.Core/array.fsi
/home/funnelweb/github/fsharp/fsharp/src/fsharp/FSharp.Core/array.fs
/home/funnelweb/github/fsharp/fsharp/src/fsharp/FSharp.Core/array3.fsi
/home/funnelweb/github/fsharp/fsharp/src/fsharp/FSharp.Core/array3.fs
/home/funnelweb/github/fsharp/fsharp/src/fsharp/FSharp.Core/map.fsi
/home/funnelweb/github/fsharp/fsharp/src/fsharp/FSharp.Core/map.fs
/home/funnelweb/github/fsharp/fsharp/src/fsharp/FSharp.Core/set.fsi
/home/funnelweb/github/fsharp/fsharp/src/fsharp/FSharp.Core/set.fs
/home/funnelweb/github/fsharp/fsharp/src/fsharp/FSharp.Core/reflect.fsi
/home/funnelweb/github/fsharp/fsharp/src/fsharp/FSharp.Core/reflect.fs
/home/funnelweb/github/fsharp/fsharp/src/fsharp/FSharp.Core/event.fsi
/home/funnelweb/github/fsharp/fsharp/src/fsharp/FSharp.Core/event.fs
/home/funnelweb/github/fsharp/fsharp/src/fsharp/FSharp.Core/math/n.fsi
/home/funnelweb/github/fsharp/fsharp/src/fsharp/FSharp.Core/math/n.fs
/home/funnelweb/github/fsharp/fsharp/src/fsharp/FSharp.Core/math/z.fsi
/home/funnelweb/github/fsharp/fsharp/src/fsharp/FSharp.Core/math/z.fs
/home/funnelweb/github/fsharp/fsharp/src/fsharp/FSharp.Core/../../utils/sformat.fsi
/home/funnelweb/github/fsharp/fsharp/src/fsharp/FSharp.Core/../../utils/sformat.fs
/home/funnelweb/github/fsharp/fsharp/src/fsharp/FSharp.Core/printf.fsi
/home/funnelweb/github/fsharp/fsharp/src/fsharp/FSharp.Core/printf.fs
/home/funnelweb/github/fsharp/fsharp/src/fsharp/FSharp.Core/quotations.fsi
/home/funnelweb/github/fsharp/fsharp/src/fsharp/FSharp.Core/quotations.fs
/home/funnelweb/github/fsharp/fsharp/src/fsharp/FSharp.Core/nativeptr.fsi
/home/funnelweb/github/fsharp/fsharp/src/fsharp/FSharp.Core/nativeptr.fs
/home/funnelweb/github/fsharp/fsharp/src/fsharp/FSharp.Core/control.fsi
/home/funnelweb/github/fsharp/fsharp/src/fsharp/FSharp.Core/control.fs
/home/funnelweb/github/fsharp/fsharp/src/fsharp/FSharp.Core/Linq.fsi
/home/funnelweb/github/fsharp/fsharp/src/fsharp/FSharp.Core/Linq.fs
/home/funnelweb/github/fsharp/fsharp/src/fsharp/FSharp.Core/MutableTuple.fs
/home/funnelweb/github/fsharp/fsharp/src/fsharp/FSharp.Core/QueryExtensions.fs
/home/funnelweb/github/fsharp/fsharp/src/fsharp/FSharp.Core/Query.fsi
/home/funnelweb/github/fsharp/fsharp/src/fsharp/FSharp.Core/Query.fs
/home/funnelweb/github/fsharp/fsharp/src/fsharp/FSharp.Core/SI.fs
/home/funnelweb/github/fsharp/fsharp/src/fsharp/FSharp.Core/fslib-extra-pervasives.fsi
/home/funnelweb/github/fsharp/fsharp/src/fsharp/FSharp.Core/fslib-extra-pervasives.fs
/home/funnelweb/github/fsharp/fsharp/src/fsharp/FSharp.Core/../../assemblyinfo/assemblyinfo.FSharp.Core.dll.fs
Microsoft (R) F# 3.0 Compiler version (private)
Copyright (c) Microsoft Corporation. All Rights Reserved.
TIME:  0.9 Delta:  0.0 Mem:  16 G0:   0 G1:  0 G2:  0 [Import mscorlib]
TIME:  0.9 Delta:  0.0 Mem:  16 G0:   0 G1:  0 G2:  0 [Import mscorlib and
FSharp.Core.dll]
TIME:  1.6 Delta:  0.7 Mem:  27 G0:   1 G1:  0 G2:  0 [Import system
references]
TIME:  5.4 Delta:  3.8 Mem:  51 G0:  16 G1: 10 G2: 10 [Parse inputs]
TIME:  5.4 Delta:  0.0 Mem:  51 G0:   0 G1:  0 G2:  0 [Import non-system
references]
Stacktrace:

  at <unknown> <0xffffffff>
  at (wrapper managed-to-native)
object.__icall_wrapper_mono_object_new_specific (intptr) <0xffffffff>
  at Internal.Utilities.Collections.Tagged.SetTree`1.NewSetNode
(T,Internal.Utilities.Collections.Tagged.SetTree`1<T>,Internal.Utilities.Collections.Tagged.SetTree`1<T>,int)
<0x00023>
  at Internal.Utilities.Collections.Tagged.SetTreeModule.mk<a>
(Internal.Utilities.Collections.Tagged.SetTree`1<a>,int,a,Internal.Utilities.Collections.Tagged.SetTree`1<a>,int)
<0x0003f>
  at Internal.Utilities.Collections.Tagged.SetTreeModule.rebalance<a>
(Internal.Utilities.Collections.Tagged.SetTree`1<a>,a,Internal.Utilities.Collections.Tagged.SetTree`1<a>)
<0x000ef>
  at Internal.Utilities.Collections.Tagged.SetTreeModule.add<T>
(System.Collections.Generic.IComparer`1<T>,T,Internal.Utilities.Collections.Tagged.SetTree`1<T>)
<0x00137>
  at Internal.Utilities.Collections.Tagged.SetTreeModule.add<T>
(System.Collections.Generic.IComparer`1<T>,T,Internal.Utilities.Collections.Tagged.SetTree`1<T>)
<0x000a7>
  at Internal.Utilities.Collections.Tagged.SetTreeModule.add<T>
(System.Collections.Generic.IComparer`1<T>,T,Internal.Utilities.Collections.Tagged.SetTree`1<T>)
<0x0010b>
  at Internal.Utilities.Collections.Tagged.SetTreeModule.add<T>
(System.Collections.Generic.IComparer`1<T>,T,Internal.Utilities.Collections.Tagged.SetTree`1<T>)
<0x000a7>
  at Internal.Utilities.Collections.Tagged.Set`2.Add (T) <0x00043>
  at Microsoft.FSharp.Compiler.Tastops.accFreeLocalTycon
(Microsoft.FSharp.Compiler.Tastops/FreeVarOptions,Microsoft.FSharp.Compiler.Tast/Entity,Microsoft.FSharp.Compiler.Tast/FreeTyvars)
<0x0004b>
  at Microsoft.FSharp.Compiler.Tastops.accFreeTycon
(Microsoft.FSharp.Compiler.Tastops/FreeVarOptions,Microsoft.FSharp.Compiler.Tast/EntityRef,Microsoft.FSharp.Compiler.Tast/FreeTyvars)
<0x00043>
  at Microsoft.FSharp.Compiler.Tastops.accFreeInType
(Microsoft.FSharp.Compiler.Tastops/FreeVarOptions,Microsoft.FSharp.Compiler.Tast/TType,Microsoft.FSharp.Compiler.Tast/FreeTyvars)
<0x000c3>
  at Microsoft.FSharp.Core.OptimizedClosures/Invoke@2929.Invoke (T2) <0x0001e>
  at Microsoft.FSharp.Core.OptimizedClosures/Adapt@2935.Invoke (T1,T2)
<0x00026>
  at Microsoft.FSharp.Collections.ListModule.foldArraySubRight<T, a>
(Microsoft.FSharp.Core.OptimizedClosures/FSharpFunc`3<T, a, a>,T[],int,int,a)
<0x00044>
  at Microsoft.FSharp.Collections.ListModule.FoldBack<T, TState>
(Microsoft.FSharp.Core.FSharpFunc`2<T,
Microsoft.FSharp.Core.FSharpFunc`2<TState,
TState>>,Microsoft.FSharp.Collections.FSharpList`1<T>,TState) <0x0014b>
  at Microsoft.FSharp.Compiler.TypeChecker.addFreeInModuleTy
(Microsoft.FSharp.Compiler.Tast/ModuleOrNamespaceType,Microsoft.FSharp.Compiler.Tast/FreeTyvars)
<0x00123>
  at Microsoft.FSharp.Collections.ListModule.FoldBack<T, TState>
(Microsoft.FSharp.Core.FSharpFunc`2<T,
Microsoft.FSharp.Core.FSharpFunc`2<TState,
TState>>,Microsoft.FSharp.Collections.FSharpList`1<T>,TState) <0x001e4>
  at Microsoft.FSharp.Compiler.TypeChecker.addFreeInModuleTy
(Microsoft.FSharp.Compiler.Tast/ModuleOrNamespaceType,Microsoft.FSharp.Compiler.Tast/FreeTyvars)
<0x000cb>
  at Microsoft.FSharp.Collections.ListModule.FoldBack<T, TState>
(Microsoft.FSharp.Core.FSharpFunc`2<T,
Microsoft.FSharp.Core.FSharpFunc`2<TState,
TState>>,Microsoft.FSharp.Collections.FSharpList`1<T>,TState) <0x001e4>
  at Microsoft.FSharp.Compiler.TypeChecker.addFreeInModuleTy
(Microsoft.FSharp.Compiler.Tast/ModuleOrNamespaceType,Microsoft.FSharp.Compiler.Tast/FreeTyvars)
<0x000cb>
  at Microsoft.FSharp.Collections.ListModule.FoldBack<T, TState>
(Microsoft.FSharp.Core.FSharpFunc`2<T,
Microsoft.FSharp.Core.FSharpFunc`2<TState,
TState>>,Microsoft.FSharp.Collections.FSharpList`1<T>,TState) <0x001e4>
  at Microsoft.FSharp.Compiler.TypeChecker.addFreeInModuleTy
(Microsoft.FSharp.Compiler.Tast/ModuleOrNamespaceType,Microsoft.FSharp.Compiler.Tast/FreeTyvars)
<0x000cb>
  at Microsoft.FSharp.Compiler.TypeChecker/UngeneralizableItem.GetFreeTyvars ()
<0x00018>
  at Microsoft.FSharp.Compiler.TypeChecker/GeneralizationHelpers.loop@1928-51
(Internal.Utilities.Collections.Tagged.Set`2<Microsoft.FSharp.Compiler.Tast/Typar,
System.Collections.Generic.IComparer`1<Microsoft.FSharp.Compiler.Tast/Typar>>,Microsoft.FSharp.Collections.FSharpList`1<Microsoft.FSharp.Compiler.TypeChecker/UngeneralizableItem>)
<0x0003f>
  at
Microsoft.FSharp.Compiler.TypeChecker/GeneralizationHelpers.ComputeUngeneralizableTypars
(Microsoft.FSharp.Compiler.TypeChecker/TcEnv) <0x0001b>
  at Microsoft.FSharp.Compiler.TypeChecker/TyconBindingChecking.TcTyconBindings
(Microsoft.FSharp.Compiler.TypeChecker/cenv,Microsoft.FSharp.Compiler.TypeChecker/TcEnv,Microsoft.FSharp.Compiler.TypeChecker/SyntacticUnscopedTyparEnv,Microsoft.FSharp.Compiler.Range/range,Microsoft.FSharp.Compiler.Range/range,Microsoft.FSharp.Collections.FSharpList`1<Microsoft.FSharp.Compiler.TypeChecker/TyconBindingDefns>)
<0x001e3>
  at Microsoft.FSharp.Compiler.TypeChecker.TcTyconMemberDefns
(Microsoft.FSharp.Compiler.TypeChecker/cenv,Microsoft.FSharp.Compiler.TypeChecker/TcEnv,Microsoft.FSharp.Compiler.Tast/ParentRef,Microsoft.FSharp.Compiler.Range/range,Microsoft.FSharp.Compiler.Range/range,Microsoft.FSharp.Collections.FSharpList`1<Microsoft.FSharp.Compiler.TypeChecker/TyconMemberData>)
<0x000cf>
  at Microsoft.FSharp.Compiler.TypeChecker/TcTypeDeclarations.TcTyconDefns
(Microsoft.FSharp.Compiler.TypeChecker/cenv,Microsoft.FSharp.Compiler.TypeChecker/TcEnv,Microsoft.FSharp.Compiler.Tast/ParentRef,Microsoft.FSharp.Compiler.TypeChecker/SyntacticUnscopedTyparEnv,Microsoft.FSharp.Collections.FSharpList`1<Microsoft.FSharp.Compiler.Ast/SynTypeDefn>,Microsoft.FSharp.Compiler.Range/range,Microsoft.FSharp.Compiler.Range/range)
<0x0013b>
  at
Microsoft.FSharp.Compiler.TypeChecker/TcModuleOrNamespaceElement@14767-1.Invoke
(Microsoft.FSharp.Core.Unit) <0x007b7>
  at
Microsoft.FSharp.Compiler.AbstractIL.Internal.Library/EventuallyModule/delay@667.Invoke
(Microsoft.FSharp.Core.Unit) <0x00016>
  at
Microsoft.FSharp.Compiler.AbstractIL.Internal.Library/EventuallyModule/catch@661.Invoke
(Microsoft.FSharp.Core.Unit) <0x00039>
  at
Microsoft.FSharp.Compiler.AbstractIL.Internal.Library/EventuallyModule/bind@652.Invoke
(Microsoft.FSharp.Core.Unit) <0x0001f>
  at
Microsoft.FSharp.Compiler.AbstractIL.Internal.Library/EventuallyModule/bind@652.Invoke
(Microsoft.FSharp.Core.Unit) <0x0001f>
  at
Microsoft.FSharp.Compiler.AbstractIL.Internal.Library/EventuallyModule/bind@652.Invoke
(Microsoft.FSharp.Core.Unit) <0x0001f>
  at
Microsoft.FSharp.Compiler.AbstractIL.Internal.Library/EventuallyModule/bind@652.Invoke
(Microsoft.FSharp.Core.Unit) <0x0001f>
  at
Microsoft.FSharp.Compiler.AbstractIL.Internal.Library/EventuallyModule/catch@661.Invoke
(Microsoft.FSharp.Core.Unit) <0x00039>
  at
Microsoft.FSharp.Compiler.AbstractIL.Internal.Library/EventuallyModule/bind@652.Invoke
(Microsoft.FSharp.Core.Unit) <0x0001f>
  at
Microsoft.FSharp.Compiler.AbstractIL.Internal.Library/EventuallyModule/bind@652.Invoke
(Microsoft.FSharp.Core.Unit) <0x0001f>
  at
Microsoft.FSharp.Compiler.AbstractIL.Internal.Library/EventuallyModule/bind@652.Invoke
(Microsoft.FSharp.Core.Unit) <0x0001f>
  at
Microsoft.FSharp.Compiler.AbstractIL.Internal.Library/EventuallyModule/bind@652.Invoke
(Microsoft.FSharp.Core.Unit) <0x0001f>
  at
Microsoft.FSharp.Compiler.AbstractIL.Internal.Library/EventuallyModule/bind@652.Invoke
(Microsoft.FSharp.Core.Unit) <0x0001f>
  at
Microsoft.FSharp.Compiler.AbstractIL.Internal.Library/EventuallyModule/bind@652.Invoke
(Microsoft.FSharp.Core.Unit) <0x0001f>
  at
Microsoft.FSharp.Compiler.AbstractIL.Internal.Library/EventuallyModule/catch@661.Invoke
(Microsoft.FSharp.Core.Unit) <0x00039>
  at
Microsoft.FSharp.Compiler.AbstractIL.Internal.Library/EventuallyModule/bind@652.Invoke
(Microsoft.FSharp.Core.Unit) <0x0001f>
  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>)
<0x0008f>
  at
Microsoft.FSharp.Compiler.AbstractIL.Internal.Library/EventuallyModule.force<a>
(Microsoft.FSharp.Compiler.AbstractIL.Internal.Library/Eventually`1<a>)
<0x0004b>
  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)
<0x0012f>
  at Microsoft.FSharp.Compiler.Build/TypecheckMultipleInputs@4934.Invoke
(Microsoft.FSharp.Compiler.Build/TcState,Microsoft.FSharp.Compiler.Ast/ParsedInput)
<0x00037>
  at Microsoft.FSharp.Core.FSharpFunc`2.InvokeFast<V>
(Microsoft.FSharp.Core.FSharpFunc`2<T,
Microsoft.FSharp.Core.FSharpFunc`2<TResult, V>>,T,TResult) <0x00042>
  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>)
<0x00117>
  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>)
<0x0004f>
  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>)
<0x00023>
  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)
<0x00133>
  at Microsoft.FSharp.Compiler.Driver.getTcImportsFromCommandLine$cont@322
(Microsoft.FSharp.Compiler.ErrorLogger/Exiter,Microsoft.FSharp.Core.FSharpOption`1<Microsoft.FSharp.Core.FSharpFunc`2<string,
Microsoft.FSharp.Core.Unit>>,Microsoft.FSharp.Compiler.Lexhelp/LexResourceManager,Microsoft.FSharp.Collections.FSharpList`1<string>,string,Microsoft.FSharp.Compiler.Build/TcConfig,Microsoft.FSharp.Compiler.ErrorLogger/ErrorLogger,Microsoft.FSharp.Core.Unit)
<0x007ff>
  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.Core.FSharpFunc`2<Microsoft.FSharp.Compiler.Build/TcConfigBuilder,
Microsoft.FSharp.Compiler.ErrorLogger/ErrorLogger>) <0x00ccf>
  at Microsoft.FSharp.Compiler.Driver.main1
(string[],bool,Microsoft.FSharp.Compiler.ErrorLogger/Exiter,Microsoft.FSharp.Core.FSharpFunc`2<Microsoft.FSharp.Compiler.Build/TcConfigBuilder,
Microsoft.FSharp.Compiler.ErrorLogger/ErrorLogger>) <0x0023f>
  at Microsoft.FSharp.Compiler.Driver.mainCompile
(string[],bool,Microsoft.FSharp.Compiler.ErrorLogger/Exiter,Microsoft.FSharp.Core.FSharpFunc`2<Microsoft.FSharp.Compiler.Build/TcConfigBuilder,
Microsoft.FSharp.Compiler.ErrorLogger/ErrorLogger>) <0x0001b>
  at Microsoft.FSharp.Compiler.CommandLineMain/Driver.main (string[]) <0x002bb>
  at Microsoft.FSharp.Compiler.CommandLineMain.main (string[]) <0x000bb>
  at (wrapper runtime-invoke) <Module>.runtime_invoke_int_object
(object,intptr,intptr,intptr) <0xffffffff>

Native stacktrace:

    mono-sgen() [0x80ea114]
    mono-sgen() [0x81331fc]
    mono-sgen() [0x806100d]
    [0x4002240c]
    mono-sgen() [0x81ee542]
    mono-sgen() [0x8205e28]
    mono-sgen() [0x820718c]
    mono-sgen() [0x81e6825]
    mono-sgen() [0x81ec86f]
    mono-sgen() [0x81ecc85]
    mono-sgen() [0x81ecde8]
    mono-sgen() [0x82017fe]
    mono-sgen() [0x82019a5]
    mono-sgen(mono_object_new_alloc_specific+0x26) [0x81b9d76]
    mono-sgen(mono_object_new_specific+0x88) [0x81b9e78]
    [0x4076aeed]
    [0x4298bc1c]
    [0x42e8b450]
    [0x42e8af50]
    [0x4298bbd0]
    [0x4298bb40]
    [0x4298bba4]
    [0x4298bb40]
    [0x4298ba4c]
    [0x42e95d7c]
    [0x42ad5724]
    [0x4298b614]
    [0x423d89bf]
    [0x427bef57]
    [0x42770535]
    [0x4216231c]
    [0x42993c14]
    [0x421623b5]
    [0x42993bbc]
    [0x421623b5]
    [0x42993bbc]
    [0x421623b5]
    [0x42993bbc]
    [0x4308bd41]
    [0x429b9fb0]
    [0x429b9f5c]
    [0x429b21d4]
    [0x42a0fed0]
    [0x429a43fc]
    [0x429a2608]
    [0x428bd5df]
    [0x428bde62]
    [0x428bdde8]
    [0x428bdde8]
    [0x428bdde8]
    [0x428bdde8]
    [0x428bde62]
    [0x428bdde8]
    [0x428bdde8]
    [0x428bdde8]
    [0x428bdde8]
    [0x428bdde8]
    [0x428bdde8]
    [0x428bde62]
    [0x428bdde8]
    [0x428bd550]
    [0x428bd464]
    [0x428bcf98]
    [0x428bce50]
    [0x4217aa33]
    [0x428bccb8]
    [0x428bca80]
    [0x428bc98c]
    [0x428bc134]
    [0x423cdea8]
    [0x42176258]
    [0x4216cb88]
    [0x4216c894]
    [0x4216c2b4]
    [0x4075ddec]
    [0x4075e0b5]
    mono-sgen() [0x806572c]

Debug info from gdb:

Could not attach to process.  If your uid matches the uid of the target
process, check the setting of /proc/sys/kernel/yama/ptrace_scope, or try
again as the root user.  For more details, see /etc/sysctl.d/10-ptrace.conf
ptrace: Operation not permitted.
No threads.

=================================================================
Got a SIGSEGV 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 (core dumped)
Comment 1 Zoltan Varga 2012-10-14 18:25:41 EDT
I can't reproduce this using head on osx/x86.
Comment 2 Ben Winkel 2012-10-15 02:50:11 EDT
Does it repro for you on Linux/x86/Ubuntu? (I haven't tried on osx/x86)
Comment 3 Ben Winkel 2012-10-15 18:18:55 EDT
(This was a definite repeated repro for me on Linux/x86)
Comment 4 Mark Probst 2012-10-16 04:43:17 EDT
I cannot reproduce this on Ubuntu 12.04 on an x86 VM using mono master.
Comment 5 Ben Winkel 2012-10-16 05:34:01 EDT
So does the bootstrap of the F# compiler succeed (with SGEN enabled)?  Could
you send the end-to-end build output?

thanks
-- ben
Comment 6 Mark Probst 2012-10-16 09:54:02 EDT
The bootstrap works according to your instructions.  I have not checked, but I
trust that uncommenting that line in config.make.in will make Mono use SGen.

Due to the upload limit here on Bugzilla I have to provide you with an outside
link.  This will go away at some point:

  https://dl.dropbox.com/u/14504401/fsharp.tar.bz2

We'd still like to know how to reproduce the bug you're encountering.  You can
reproduce this every single run with Mono master?
Comment 7 Ben Winkel 2012-10-21 08:04:46 EDT
just pulled mono and fsharp master, rebuilt Mono 3.0.0, and now everything is
fine!!

This is on the same machine I had trouble with before.  Thanks so much for
looking and sorry for the alarm

Note You need to log in before you can comment on or make changes to this bug.