Bug 15484 - 1.6 has many potential crashers
Summary: 1.6 has many potential crashers
Status: VERIFIED FIXED
Alias: None
Product: Visual Studio Extensions
Classification: Xamarin
Component: iOS ()
Version: 1.6.x
Hardware: PC Mac OS
: Highest critical
Target Milestone: 1.8.x (VS2013)
Assignee: Dominique Louis
URL:
Depends on: 15040
Blocks:
  Show dependency tree
 
Reported: 2013-10-18 07:39 UTC by Alan McGovern
Modified: 2013-11-11 19:02 UTC (History)
6 users (show)

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

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 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:
VERIFIED FIXED

Description Alan McGovern 2013-10-18 07:39:53 UTC
The fix in #15040 comment 14 [0] needs to be applied everywhere in our codebase otherwise we can experience the exact same crash [1] in every other place we use ThreadHelper.Invoke, which is currently about 26 places.

[0] https://github.com/xamarin/XamarinVS/commit/0766de492571ea5f5db5b42a5b35d81bb8a12c46
[1] http://msdn.microsoft.com/en-us/library/vstudio/ee197798.aspx
Comment 1 Alan McGovern 2013-10-18 07:42:36 UTC
Just so there is no ambiguity, here is the relevant section from the documentation link:

This method uses an RPC message to marshal to the UI thread. This will allow the marshaled delegate to execute on the UI thread while the UI thread is already busy executing a previous message. This tends to introduce reentrancy, hangs and crashes, and therefore should be avoided if possible.

This manifested itself exactly as described in the documentation, triggering bug #15040.
Comment 2 PJ 2013-10-18 12:00:15 UTC
I believe there is no way your work will land for 1.6, moving to 1.8.
Comment 3 Dominique Louis 2013-10-21 12:57:27 UTC
Plan is to put on 1.8 and back port to 1.6.
Comment 4 Dominique Louis 2013-10-21 19:23:21 UTC
This is now applied in 1.6. Over to you Alan with the 1.8 side of things.
Comment 5 Alan McGovern 2013-10-23 12:57:06 UTC
1.8/master was fixed several days ago. Closing this.