Sebastien Pouliot [Wed, 27 Aug 2014 01:54:30 +0000 (21:54 -0400)]
[eglib] Fix logging on iOS (asl_vlog != asl_log)
asl_vlog last parameter is a va_list and giving it a char* leads to crash
which calls our native unhandled exception handler, which also tries to
log what happens making the watchdog unhappy about the food quality
0x000000008badf00d
Alexis Christoforides [Tue, 26 Aug 2014 19:48:53 +0000 (15:48 -0400)]
Resolve build issues on Windows.
Zoltan Varga [Tue, 26 Aug 2014 19:01:08 +0000 (15:01 -0400)]
Fix the build.
Martin Baulig [Tue, 26 Aug 2014 17:59:27 +0000 (19:59 +0200)]
[WCF]: Fix #22179 - 'finally' protect ClientRuntimeChannel.Begin/EndProcess().
Marek Safar [Tue, 26 Aug 2014 17:07:09 +0000 (08:07 -0900)]
Merge pull request #1229 from andreiagaita/master
[MSBuild] Make sure assembly references with extensions are located correctly
Marek Safar [Tue, 26 Aug 2014 15:13:41 +0000 (17:13 +0200)]
[mcs] Predefined attibutes can have unresolved parameter types.
Marek Safar [Tue, 26 Aug 2014 11:46:16 +0000 (13:46 +0200)]
[mcs] Put back future lang version for easier migration path
Marek Safar [Tue, 26 Aug 2014 11:39:15 +0000 (13:39 +0200)]
[mcs] Don't report error when predefined InterlockedCompareExchange_T is not available.
Marek Safar [Mon, 25 Aug 2014 16:27:41 +0000 (18:27 +0200)]
[mcs] Hide backing fields in default debugger display
Marek Safar [Mon, 25 Aug 2014 14:41:21 +0000 (16:41 +0200)]
[mcs] Replace future with experimental
Marek Safar [Mon, 25 Aug 2014 14:10:45 +0000 (16:10 +0200)]
[mcs] Better error message
Marek Safar [Mon, 25 Aug 2014 14:10:15 +0000 (16:10 +0200)]
[system] Add AcceptWebSocketAsync signatures
Zoltan Varga [Tue, 26 Aug 2014 04:32:43 +0000 (00:32 -0400)]
Update the LLVM backend to work with llvm branch mono-2014-08-23-
b401e6b9699423409a055dc873e4d3f361a908c0.
T.J. Purtell [Fri, 15 Aug 2014 20:43:36 +0000 (13:43 -0700)]
[runtime] Don't call mono_arch_handle_exception() when chaining
Context: https://bugzilla.xamarin.com/show_bug.cgi?id=18763#c12
Context: https://bugzilla.xamarin.com/show_bug.cgi?id=18763#c14
Context: http://stackoverflow.com/a/
1789879/83444
mono_set_crash_chaining() was added in
8ffc4070 in order to better
support Android crash logs.
Crash logging in Android is "weird" (something we didn't know at the
time of
8ffc4070); when a process crashes on Android, ideally:
1. The Android signal handler is executed,
2. Bionic will attempt to connect to /system/bin/debuggerd.
3. debuggerd will try to connect to the crashing process, then
retrieve "useful" information from the crashing process (stack
trace, register values, etc.)
The problem with
8ffc4070 was that there is a "window" between steps
(1) and (3) during which the crashing process continues to execute but
debuggerd hasn't attached to the process. It is possible that the
crashing process can thus exit before debuggerd has had a chance to
attach, killing the purpose of the crash logs.
Case in point: consider mono_sigsegv_signal_handler(). In
8ffc4070,
if mono_do_crash_chaining is TRUE, then Mono will execute:
mono_handle_native_sigsegv (SIGSEGV, ctx);
mono_chain_signal (SIG_HANDLER_PARAMS);
mono_arch_handle_exception (ctx, NULL);
Because mono_chain_signal() doesn't block, abort the process, or
otherwise do anything to prevent execution from continuing, execution
will hit mono_arch_handle_exception(), which will exit the process.
If you're unlucky, this will happen before debuggerd has had a chance
to attach to the process.
The obvious fix is to prevent mono_arch_handle_exception() from being
invoked. The question is, *how*? jonp suggested [0] that after
mono_chain_signal() returns then _exit(2) or a busy loop could be
invoked. Unfortunately, _exit(2) makes the process exit explicit, and
~reliably prevents debuggerd from doing anything.
A busy loop doesn't work because it just causes the process to hang
within signal handler context, and debuggerd is never able to log
anything about the crashed process.
It would seem that the signal handler itself must exit without causing
the process to exit so that debuggerd has a chance to do ANYTHING,
otherwise nothing will happen reliably.
Thanks to T.J. Purtell for investigating and providing the patch.
[0]: https://github.com/mono/mono/pull/1206#issuecomment-
52357802
--- Original commit message [formatted] ---
re #18763: After the chained handler executes, it may return to allow
the crashed instruction to be restarted or it may have taken
corrective action so the instruction can be resumed successfully.
For example, bionic resets the signal handler for SIGSEGV to default
expecting that the kernel will restart the offending instruction and
cause the kernel to abort the process. Don't do mono exception
handling after chaining to support these types of signal management.
Jonathan Pryor [Tue, 26 Aug 2014 02:43:48 +0000 (22:43 -0400)]
[eglib] Fix compilation on PLATFORM_ANDROID.
Compilation of eglib/src/goutput.c was broken in commit
989165e1:
mono/eglib/src/goutput.c: In function 'monoeg_log_default_handler':
mono/eglib/src/goutput.c:159:75: error: 'args' undeclared (first use in this function)
__android_log_vprint (to_android_priority (log_level), log_domain, "%s", args);
^
mono/eglib/src/goutput.c:159:75: note: each undeclared identifier is reported only once for each function it appears in
mono/eglib/src/goutput.c: In function 'default_stdout_handler':
mono/eglib/src/goutput.c:168:2: error: incompatible type for argument 4 of '__android_log_vprint'
__android_log_vprint (ANDROID_LOG_ERROR, "mono", "%s", message);
^
mono/eglib/src/goutput.c:139:0:
$ANDROID_NDK_PATH/platforms/android-4/arch-arm/usr/include/android/log.h:109:5: note: expected 'va_list' but argument is of type 'const gchar *'
int __android_log_vprint(int prio, const char *tag,
^
mono/eglib/src/goutput.c: In function 'default_stderr_handler':
mono/eglib/src/goutput.c:175:2: error: incompatible type for argument 4 of '__android_log_vprint'
__android_log_vprint (ANDROID_LOG_ERROR, "mono", "%s", message);
^
(The cause of the breakage is that __android_log_vprint() takes a
va_args parameter, which is no longer present in
989165e1.)
Use __android_log_write() instead of __android_log_vprint().
Note: __android_log_write() writes a "simple string" to `adb logcat`,
meaning there is no printf(3)-style formatting applied.
Sebastien Pouliot [Tue, 26 Aug 2014 00:43:31 +0000 (20:43 -0400)]
[corlib] Update ClaimsPrincipalTest to avoid Is[Not]Empty as this is not part of NUnitLite 1.0 (and can't be run on XiOS)
Rodrigo Kumpera [Mon, 25 Aug 2014 18:51:07 +0000 (14:51 -0400)]
[eglib] Restore previous defaults for some platforms.
Rodrigo Kumpera [Mon, 25 Aug 2014 18:40:39 +0000 (14:40 -0400)]
[msvc] Fix release 64bits builds.
Rodrigo Kumpera [Mon, 25 Aug 2014 18:37:22 +0000 (14:37 -0400)]
[jit] Ensure no threads are running when the JIT is asked to cleanup.
Rodrigo Kumpera [Mon, 25 Aug 2014 17:59:38 +0000 (13:59 -0400)]
[utils] Add runtime API for output redirection, logging and aborting.
Rodrigo Kumpera [Fri, 22 Aug 2014 20:58:49 +0000 (16:58 -0400)]
[eglib] g_assertion_message should not abort, g_logv will do it.
Rodrigo Kumpera [Fri, 22 Aug 2014 20:55:18 +0000 (16:55 -0400)]
[eglib] Add log/print redirection functions to eglib.
Martin Baulig [Tue, 19 Aug 2014 15:25:49 +0000 (17:25 +0200)]
[System]: WebClient.OpenWrite() must get the response on close; fixes #10163.
When the stream returned by WebClient.OpenWrite() / OpenWriteAsync() /
OpenWriteTaskAsync(), we need to call GetResponse() and read the full
response.
Unfortunately, there is no async API available for this, so this API should
not be used in async applications.
Martin Baulig [Fri, 8 Aug 2014 13:48:23 +0000 (15:48 +0200)]
[System]: Fix WebClient.UploadValuesTaskAsync(); bug #20359.
Marek Safar [Mon, 25 Aug 2014 12:00:05 +0000 (14:00 +0200)]
[msbuild] corcompare public API
Marek Safar [Mon, 25 Aug 2014 11:11:56 +0000 (13:11 +0200)]
[corlib] Fix ClaimsIdentity claim value comparison
Marek Safar [Mon, 25 Aug 2014 11:08:12 +0000 (13:08 +0200)]
[corlib] corcompare update
Marek Safar [Mon, 25 Aug 2014 10:56:04 +0000 (12:56 +0200)]
Merge pull request #1224 from esdrubal/codecompiler
Changed mono_path profile replacement to be case insensitive.
Marek Safar [Mon, 25 Aug 2014 10:55:33 +0000 (12:55 +0200)]
Merge pull request #1223 from esdrubal/xmlgenerator
Test SerializationCodeGenerator.
Marek Safar [Sat, 23 Aug 2014 05:54:03 +0000 (07:54 +0200)]
Merge pull request #1226 from mattleibow/TransactionScope-InvalidTimoutNotThrowingException
[system.transactions] Throw exception when an invalid TimeSpan is provided
Matthew Leibowitz [Fri, 22 Aug 2014 22:38:15 +0000 (00:38 +0200)]
[system.transactions] Throw exception when an invalid TimeSpan is provided:
- MS.NET throws
- prevent construction when an invalid (negative) timeout is provided
Alexis Christoforides [Fri, 22 Aug 2014 21:11:11 +0000 (17:11 -0400)]
Added mono_string_from_utf32()
Marek Safar [Fri, 22 Aug 2014 20:08:33 +0000 (22:08 +0200)]
[corlib] Improve System.Security.Claims. Fixes #22282
Marek Safar [Fri, 22 Aug 2014 12:57:23 +0000 (14:57 +0200)]
[mcs] Handle partial entry point method
Marek Safar [Fri, 22 Aug 2014 07:40:49 +0000 (09:40 +0200)]
Remove unused mdb icall
Zoltan Varga [Fri, 22 Aug 2014 15:36:58 +0000 (11:36 -0400)]
[runtime] Add a mono_thread_detach_if_exiting () public api function which can be called by embedding code to detach the runtime if the code is running from a pthread dtor. Fixes part of #21164.
Marcos Henrich [Fri, 22 Aug 2014 14:15:10 +0000 (22:15 +0800)]
Changed mono_path profile replacement to be case insensitive.
Marcos Henrich [Thu, 21 Aug 2014 18:47:42 +0000 (02:47 +0800)]
Fixed serialization of XmlNode field with attribute XmlAnyElement.
Fixes #3211.
Marcos Henrich [Thu, 21 Aug 2014 18:17:43 +0000 (02:17 +0800)]
Added missing XmlTypeMapping.IsAny logic.
This complements commit
05444c7c1c570db730f17b6d15dd66d3728b6.
Marcos Henrich [Thu, 21 Aug 2014 18:10:35 +0000 (02:10 +0800)]
Replaced incorrect bool.ToString() by GetLiteral(bool).
Marcos Henrich [Thu, 21 Aug 2014 18:08:06 +0000 (02:08 +0800)]
Added GetTypeFullName, fixes wrong nullable valuetype names.
Marcos Henrich [Thu, 21 Aug 2014 17:58:17 +0000 (01:58 +0800)]
Changed UsageCount and generationThreshold to zero based.
Marek Safar [Fri, 22 Aug 2014 07:23:22 +0000 (09:23 +0200)]
[xbuild] Resolve output properties for skipped task to match task output when it's not skipped
Marcos Henrich [Thu, 21 Aug 2014 17:45:22 +0000 (01:45 +0800)]
Test SerializationCodeGenerator.
XmlSerializerTests was mostly testing XmlSerializationReaderInterpreter and XmlSerializationWriterInterpreter.
XmlSerializerGeneratorTests forces the usage of SerializationCodeGenerator while running XmlSerializerTests.
Marcos Henrich [Wed, 20 Aug 2014 19:36:41 +0000 (03:36 +0800)]
Tests serialization of XmlNode field with attribute XmlAnyElement.
Covers #3211.
Andreia Gaita [Sat, 25 Aug 2012 11:21:24 +0000 (13:21 +0200)]
[MSBuild] Make sure assembly references with extensions are located correctly
Alex Rønne Petersen [Thu, 21 Aug 2014 16:30:17 +0000 (18:30 +0200)]
Update badge URL in README.md.
Alex Rønne Petersen [Thu, 21 Aug 2014 16:22:49 +0000 (18:22 +0200)]
Fix a warning in mono-conc-hashtable.
Alex Rønne Petersen [Thu, 21 Aug 2014 12:59:52 +0000 (14:59 +0200)]
Remove unused/undefined function.
Marek Safar [Thu, 21 Aug 2014 13:51:12 +0000 (15:51 +0200)]
Merge pull request #1221 from LogosBible/uri-compare
Fix NullReferenceException in Uri.Compare when only one of the Uris is null
Alex Rønne Petersen [Thu, 21 Aug 2014 12:59:28 +0000 (14:59 +0200)]
Merge pull request #1172 from roji/datarow_null
Fix DataRow error management
Martin Potter [Thu, 21 Aug 2014 12:52:38 +0000 (05:52 -0700)]
Fix NullReferenceException in Uri.Compare when only one of the Uris is null
Marek Safar [Thu, 21 Aug 2014 08:34:37 +0000 (10:34 +0200)]
[corlib] Handle String::Format with escaped closing }. Fixes #22114
Zoltan Varga [Thu, 21 Aug 2014 01:39:38 +0000 (21:39 -0400)]
[jit] Use mini_type_stack_size () instead of mono_type_size () in the stack slot allocation code, this aligns vtype size to a multiple of the pointer size, preventing problems when vtypes are returned in registers on some platforms like arm64.
Miguel de Icaza [Wed, 20 Aug 2014 20:56:57 +0000 (16:56 -0400)]
Merge pull request #1189 from joelmartinez/docs-64bit-squash
MDoc and monodoc.dll changes to support iOS 64Bit API
Zoltan Varga [Wed, 20 Aug 2014 17:55:28 +0000 (13:55 -0400)]
[jit] Fix the switching of domains in native-to-managed wrappers, previously this only worked in some cases.
Marek Safar [Wed, 20 Aug 2014 13:54:06 +0000 (15:54 +0200)]
[mcs] Emit event fields even when compare-and-exchange is not available
Marek Safar [Wed, 20 Aug 2014 11:16:55 +0000 (13:16 +0200)]
[mcs] Easy restrictions on enum base type epxression
Marek Safar [Wed, 20 Aug 2014 10:01:42 +0000 (12:01 +0200)]
[corlib] Task never is CompletedSynchronously
Marek Safar [Wed, 20 Aug 2014 07:01:34 +0000 (09:01 +0200)]
Fix wrong time test
Jo Shields [Wed, 20 Aug 2014 06:20:41 +0000 (07:20 +0100)]
Switch to using jenkins.mono-project.com for DNS tests
This test requires a simple single mapping for Hostname<->IP with one IP and reverse DNS. Using EC2-hosted sites doesn't work as they don't have valid reverse DNS. Use the Jenkins subdomain, since that fits the criteria.
Marek Safar [Tue, 19 Aug 2014 15:10:33 +0000 (17:10 +0200)]
[mcs] Clean-up flow analysis for boolean expressions
Marek Safar [Tue, 19 Aug 2014 11:43:00 +0000 (13:43 +0200)]
[mcs] Null operator flow analysis
Mark Probst [Mon, 18 Aug 2014 22:48:02 +0000 (15:48 -0700)]
[sgen] Small simplification of sgen_pin_objects_in_section().
We only have one section, which is the nursery, so don't even pass it in.
Furthermore, it's only called locally, so make it static.
Mark Probst [Mon, 18 Aug 2014 22:46:39 +0000 (15:46 -0700)]
[sgen] Simplify pin_objects_from_addresses() and fix potential performance issue.
In the case where more than one pointer pointed to the same empty region within
the nursery we would search through that empty region for each pointer instead of
just once.
Mark Probst [Thu, 17 Jul 2014 23:42:03 +0000 (16:42 -0700)]
[sgen] Sanitize and fix pin_objects_from_addresses().
Assume we have an object at address 0x1000, with size 0xf0, then
a hole of size 0x10, and the next object starting at 0x1100, of
size 0x20. In the pin queue we have the addresses 0x10f8 and
0x1100.
When we process the first pin queue entry, 0x10f8, we jump over
the object at 0x1000, to 0x10f0. Then we skip the hole and end
up at 0x1100. We set last_obj to that address. Then we check
against the pin queue entry we're looking for and find that we've
overshot it, so we end our search and go to the next pin queue
entry, 0x1100. There's an object at that address, but because of
this check we don't pin it:
if (addr >= last_obj && (char*)addr < (char*)last_obj + last_obj_size) {
addr == 0x1100, last_obj == 0x1100, last_obj_size == 0x20
Mark Probst [Tue, 19 Aug 2014 19:08:21 +0000 (12:08 -0700)]
[sgen] Make optimizations in new bridge turn-offable at compile-time.
This will help find bugs.
Mark Probst [Tue, 19 Aug 2014 19:07:22 +0000 (12:07 -0700)]
[sgen] Fix new bridge implementation.
Marek Safar [Tue, 19 Aug 2014 14:59:50 +0000 (16:59 +0200)]
Merge pull request #1213 from fengari/system_timers_timer_opt
System.Timers.Timer optimization and small correction
Marek Safar [Tue, 19 Aug 2014 08:34:54 +0000 (10:34 +0200)]
[mcs] Add more error checks
fengari [Mon, 18 Aug 2014 09:50:08 +0000 (12:50 +0300)]
Do not dispose the underlying Timer every time the Enabled is set to false, keep it around for as long as this Timer exists. Throw ObjectDisposedException on Enabled setter. ArgumentException throwing according to docs. Removed 'disposed' field. DueTime for underlying timer changes only if enabled (as per docs). Check for already disposed in Dispose(). Not firing Elapsed if disposed. Unit tests.
Marek Safar [Tue, 19 Aug 2014 07:34:39 +0000 (09:34 +0200)]
[mcs] Complex binary logical expressions flowanalysis
Marek Safar [Mon, 18 Aug 2014 11:30:12 +0000 (13:30 +0200)]
[mcs] More warnings for lifted nullable operators working on value types
Marek Safar [Tue, 19 Aug 2014 07:00:58 +0000 (09:00 +0200)]
Merge pull request #1216 from AndreyAkinshin/master
Removing excess line with debug Console.WriteLine
Andrey Akinshin [Tue, 19 Aug 2014 04:27:33 +0000 (11:27 +0700)]
Removing excess line with debug Console.WriteLine
Zoltan Varga [Tue, 19 Aug 2014 01:38:50 +0000 (21:38 -0400)]
[bcl] Add a missing check to TypeBuilder.CreateType (). Fixes #22059.
Zoltan Varga [Mon, 18 Aug 2014 22:24:49 +0000 (18:24 -0400)]
Fix a warning.
Marek Safar [Mon, 18 Aug 2014 14:57:43 +0000 (16:57 +0200)]
Merge pull request #1214 from esdrubal/xmlbase
Xml Serialization of Base class w/o a parameterless constructor.
Marcos Henrich [Mon, 18 Aug 2014 14:27:53 +0000 (15:27 +0100)]
Xml Serialization of Base class w/o a parameterless constructor.
Removed validation code that did not allowed serialization of base classes without a parameterless constructor.
Fixes #6913.
Rodrigo Kumpera [Mon, 18 Aug 2014 13:18:37 +0000 (09:18 -0400)]
[utils] Improve error message in case of thread suspend fails.
Marcos Henrich [Mon, 18 Aug 2014 13:08:02 +0000 (14:08 +0100)]
Added test BaseClassWithoutParameterlessConstructor.
Covers #6913
Marek Safar [Mon, 18 Aug 2014 10:45:04 +0000 (12:45 +0200)]
Merge pull request #1212 from esdrubal/isany
Fixed XmlSerializer to handle attribute XmlSchemePrivider.IsAny.
Marcos Henrich [Mon, 18 Aug 2014 10:42:05 +0000 (11:42 +0100)]
Fixed XmlSerializer to handle attribute XmlSchemePrivider.IsAny.
XmlSerializer no longer outputs a root element with class name when the class has the attribute XmlSchemeProvider and IsAny is true.
Fixes #11916
Marcos Henrich [Mon, 18 Aug 2014 10:40:58 +0000 (11:40 +0100)]
Test XmlSerialization of class with XmlSchemaProvider with IsAny.
Covers #11916.
Rodrigo Kumpera [Sun, 17 Aug 2014 06:40:28 +0000 (02:40 -0400)]
[runtime] Fix malloc backend for mempools.
Zoltan Varga [Sat, 16 Aug 2014 19:51:29 +0000 (15:51 -0400)]
Merge pull request #1210 from Mailaender/mono-core-parallel-build
Fixed parallel build for MCS dir-check
Matthias Mailänder [Sat, 16 Aug 2014 14:48:01 +0000 (16:48 +0200)]
fix parallel build
Zoltan Varga [Sat, 16 Aug 2014 14:11:15 +0000 (10:11 -0400)]
Merge pull request #1208 from Mailaender/ppc-build-fixes
PowerPC Garbage Collector build fixes
Marek Safar [Sat, 16 Aug 2014 12:48:39 +0000 (14:48 +0200)]
[mcs] Extend missing type check to type lookups. Fixes #20933
Marek Safar [Sat, 16 Aug 2014 08:42:36 +0000 (10:42 +0200)]
[mcs] Fix copy and paste error in constraints checker. Fixes #22131
Marek Safar [Sat, 16 Aug 2014 08:27:56 +0000 (10:27 +0200)]
Merge pull request #1207 from nlhepler/master
Fix buffer overflow for long paths in jay
Matthias Mailänder [Sat, 16 Aug 2014 06:28:55 +0000 (08:28 +0200)]
fix ppc build failures
Lance Hepler [Fri, 15 Aug 2014 23:06:11 +0000 (16:06 -0700)]
Handle long paths in jay
Zoltan Varga [Fri, 15 Aug 2014 19:31:47 +0000 (15:31 -0400)]
[jit] Fix yet another native types problem. Fixes #22053.
Marek Safar [Fri, 15 Aug 2014 18:43:03 +0000 (20:43 +0200)]
[mcs] Add dictionary initializer
João Matos [Fri, 15 Aug 2014 18:12:49 +0000 (19:12 +0100)]
[System.IO.Compression] Fixed Zip support for empty directories.
Joel Martinez [Fri, 15 Aug 2014 15:10:26 +0000 (11:10 -0400)]
[mdoc] Changed 'old' and 'new' to 'classic' and 'unified' per feedback.
Zoltan Varga [Fri, 15 Aug 2014 13:56:47 +0000 (09:56 -0400)]
[runtime] Fix the leaking of mach ports introduced by
98bbf8512aec0fa01b4426583280f6d231d22187. Fixes #22068.
Zoltan Varga [Fri, 15 Aug 2014 02:06:15 +0000 (22:06 -0400)]
[runtime] Make more wrappers use a WrapperInfo structure.
Zoltan Varga [Fri, 15 Aug 2014 01:45:31 +0000 (21:45 -0400)]
[runtime] Integrate calls to mono_wrapper_info_set () into mono_mb_create_and_cache () to fix races when a wrapper is placed into a cache without its wrapper info set.