Bug 10784 - Too many classes implementing an interface? Assertion at class.c:2586, condition `iid <= 65535' not met
Summary: Too many classes implementing an interface? Assertion at class.c:2586, condi...
Status: RESOLVED FIXED
Alias: None
Product: Runtime
Classification: Mono
Component: General (show other bugs)
Version: unspecified
Hardware: Macintosh Mac OS
: --- enhancement
Target Milestone: ---
Assignee: Bugzilla
URL:
Depends on:
Blocks:
 
Reported: 2013-02-28 18:33 UTC by Mark Probst
Modified: 2016-11-07 17:33 UTC (History)
4 users (show)

Tags:
Is this bug a regression?: ---
Last known good build:


Attachments
Test case (gzipped). (659.47 KB, application/x-gzip)
2013-02-28 18:33 UTC, Mark Probst
Details


Notice (2018-05-24): bugzilla.xamarin.com is now in read-only mode.

Please join us on Visual Studio Developer Community and in the Xamarin and Mono organizations on GitHub to continue tracking issues. Bugzilla will remain available for reference in read-only mode. We will continue to work on open Bugzilla bugs, copy them to the new locations as needed for follow-up, and add the new items under Related Links.

Our sincere thanks to everyone who has contributed on this bug tracker over the years. Thanks also for your understanding as we make these adjustments and improvements for the future.


Please create a new report on GitHub or Developer Community with your current version information, steps to reproduce, and relevant error messages or log files if you are hitting an issue that looks similar to this resolved bug and you do not yet see a matching new report.

Related Links:
Status:
RESOLVED FIXED

Description Mark Probst 2013-02-28 18:33:23 UTC
Created attachment 3516 [details]
Test case (gzipped).

The attached testcase crashes like so:

* Assertion at class.c:2586, condition `iid <= 65535' not met

Stacktrace:

  at <unknown> <0xffffffff>
  at Bitmaps.MakeAndFillL3735R3736 (int,object[],bool) <0x0004b>
  at Bitmaps.MakeAndFillL3735R3737 (int,object[],bool) <0x00023>
  at Bitmaps.MakeAndFillL3735R3739 (int,object[],bool) <0x00023>
  at Bitmaps.MakeAndFillL3732R3739 (int,object[],bool) <0x0003f>
  at Bitmaps.MakeAndFillL3726R3739 (int,object[],bool) <0x0003f>
  at Bitmaps.MakeAndFillL3726R3753 (int,object[],bool) <0x00023>
  at Bitmaps.MakeAndFillL3726R3780 (int,object[],bool) <0x00023>
  at Bitmaps.MakeAndFillL3672R3780 (int,object[],bool) <0x0003f>
  at Bitmaps.MakeAndFillL3672R3888 (int,object[],bool) <0x00023>
  at Bitmaps.MakeAndFillL3456R3888 (int,object[],bool) <0x0003f>
  at Bitmaps.MakeAndFillL3456R4320 (int,object[],bool) <0x00023>
  at Bitmaps.MakeAndFillL3456R5184 (int,object[],bool) <0x00023>
  at Bitmaps.MakeAndFillL3456R6912 (int,object[],bool) <0x00023>
  at Bitmaps.MakeAndFillL0R6912 (int,object[],bool) <0x0003f>
  at Bitmaps.MakeAndFillL0R13824 (int,object[],bool) <0x00023>
  at Bitmaps.MakeAndFill (int,object[],bool) <0x00027>
  at DescriptorTest.Main () <0x000a7>
  at (wrapper runtime-invoke) object.runtime_invoke_void (object,intptr,intptr,intptr) <0xffffffff>

Native stacktrace:

	0   mono-sgen                           0x00169d3b mono_handle_native_sigsegv + 379
	1   mono-sgen                           0x001ef31d sigabrt_signal_handler + 141
	2   libsystem_c.dylib                   0x986e286b _sigtramp + 43
	3   ???                                 0xffffffff 0x0 + 4294967295
	4   libsystem_c.dylib                   0x9872e4f8 abort + 168
	5   mono-sgen                           0x003cc2ff monoeg_g_logv + 271
	6   mono-sgen                           0x003cc396 monoeg_assertion_message + 54
	7   mono-sgen                           0x00200ee1 mono_get_unique_iid + 833
	8   mono-sgen                           0x00207e13 mono_class_init + 851
	9   mono-sgen                           0x00200f97 collect_implemented_interfaces_aux + 151
	10  mono-sgen                           0x00201042 mono_class_get_implemented_interfaces + 50
	11  mono-sgen                           0x00202a52 setup_interface_offsets + 434
	12  mono-sgen                           0x002084dc mono_class_init + 2588
	13  mono-sgen                           0x00200f97 collect_implemented_interfaces_aux + 151
	14  mono-sgen                           0x00201042 mono_class_get_implemented_interfaces + 50
	15  mono-sgen                           0x00202a52 setup_interface_offsets + 434
	16  mono-sgen                           0x002084bf mono_class_init + 2559
	17  mono-sgen                           0x002fd923 mono_class_create_runtime_vtable + 451
	18  mono-sgen                           0x002fd683 mono_class_vtable_full + 243
	19  mono-sgen                           0x002fd57c mono_class_vtable + 44
	20  mono-sgen                           0x000e0411 mono_method_to_ir + 172673
	21  mono-sgen                           0x0007f61a mini_method_compile + 4138
	22  mono-sgen                           0x00081688 mono_jit_compile_method_inner + 1800
	23  mono-sgen                           0x0008259d mono_jit_compile_method_with_opt + 781
	24  mono-sgen                           0x00082779 mono_jit_compile_method + 57
	25  mono-sgen                           0x002fab43 mono_compile_method + 83
	26  mono-sgen                           0x0016bf91 common_call_trampoline + 2273
	27  mono-sgen                           0x0016c6cd mono_magic_trampoline + 109
	28  ???                                 0x005fa066 0x0 + 6266982
	29  ???                                 0x0230150c 0x0 + 36705548
	30  ???                                 0x023014a4 0x0 + 36705444
	31  ???                                 0x02300c30 0x0 + 36703280
	32  ???                                 0x022ffab0 0x0 + 36698800
	33  ???                                 0x022ffa2c 0x0 + 36698668
	34  ???                                 0x022ff9c4 0x0 + 36698564
	35  ???                                 0x022f4ee8 0x0 + 36654824
	36  ???                                 0x022f4e64 0x0 + 36654692
	37  ???                                 0x022c9bc0 0x0 + 36477888
	38  ???                                 0x022c9b3c 0x0 + 36477756
	39  ???                                 0x022c9ad4 0x0 + 36477652
	40  ???                                 0x022c9a6c 0x0 + 36477548
	41  ???                                 0x006a77c8 0x0 + 6977480
	42  ???                                 0x006a7744 0x0 + 6977348
	43  ???                                 0x006a7700 0x0 + 6977280
	44  ???                                 0x006a6e80 0x0 + 6975104
	45  ???                                 0x006a7066 0x0 + 6975590
	46  mono-sgen                           0x000833c0 mono_jit_runtime_invoke + 1488
	47  mono-sgen                           0x00300a6a mono_runtime_invoke + 170
	48  mono-sgen                           0x0030377c mono_runtime_exec_main + 716
	49  mono-sgen                           0x0030293c mono_runtime_run_main + 940
	50  mono-sgen                           0x0012f3ef mono_jit_exec + 239
	51  mono-sgen                           0x0012f640 main_thread_handler + 560
	52  mono-sgen                           0x00131d92 mono_main + 7634
	53  mono-sgen                           0x00072b6f mono_main_with_options + 815
	54  mono-sgen                           0x00072c08 main + 56
	55  libdyld.dylib                       0x98f87725 start + 0

I'm on mono master.
Comment 1 Rodrigo Kumpera 2013-05-16 23:29:26 UTC
We have a hardcoded limit of 65k interfaces due to how we implement iface tests.
Comment 2 Alexander Köplinger [MSFT] 2016-11-07 17:33:48 UTC
Fixed by https://github.com/mono/mono/pull/2408