Bug 14368 - Reactive Extensions broken with Xamarin iOS 6.4.4.12 - NullReferenceException
Summary: Reactive Extensions broken with Xamarin iOS 6.4.4.12 - NullReferenceException
Status: RESOLVED DUPLICATE of bug 14552
Alias: None
Product: iOS
Classification: Xamarin
Component: XI runtime ()
Version: 6.4.4
Hardware: Macintosh Mac OS
: --- normal
Target Milestone: Untriaged
Assignee: Bugzilla
URL:
Depends on:
Blocks:
 
Reported: 2013-09-01 13:22 UTC by Oliver Weichhold
Modified: 2013-09-10 09:04 UTC (History)
4 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 or GitHub 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 DUPLICATE of bug 14552

Description Oliver Weichhold 2013-09-01 13:22:05 UTC
After upgrading to Xamarin.iOS 6.4.4.12 (beta channel), my application using Reactive Extensions crashes now with the following exception:

  at System.Reactive.Concurrency.Scheduler.AsLongRunning (IScheduler scheduler) [0x0000d] in /svn/mono/external/rx/Rx.NET/System.Reactive.Core/Reactive/Concurrency/Scheduler.Services.cs:33 
  at System.Reactive.ScheduledObserver`1[System.Exception]..ctor (IScheduler scheduler, IObserver`1 observer) [0x00035] in /svn/mono/external/rx/Rx.NET/System.Reactive.Core/Reactive/Internal/ScheduledObserver.cs:36 
  at System.Reactive.ObserveOnObserver`1[System.Exception]..ctor (IScheduler scheduler, IObserver`1 observer, IDisposable cancel) [0x00000] in /svn/mono/external/rx/Rx.NET/System.Reactive.Core/Reactive/Internal/ScheduledObserver.cs:404 
  at System.Reactive.Concurrency.ObserveOn`1[System.Exception].Run (IObserver`1 observer, IDisposable cancel, System.Action`1 setSink) [0x00022] in /svn/mono/external/rx/Rx.NET/System.Reactive.Core/Reactive/Concurrency/Synchronization.ObserveOn.cs:45 
  at System.Reactive.Producer`1[System.Exception].Run (IScheduler _, State x) [0x00000] in /svn/mono/external/rx/Rx.NET/System.Reactive.Core/Reactive/Internal/Producer.cs:72 
  at System.Reactive.Concurrency.ScheduledItem`2[System.TimeSpan,System.Reactive.Producer`1+State[System.Exception]].InvokeCore () [0x00000] in /svn/mono/external/rx/Rx.NET/System.Reactive.Core/Reactive/Concurrency/ScheduledItem.cs:241 
  at System.Reactive.Concurrency.ScheduledItem`1[System.TimeSpan].Invoke () [0x00010] in /svn/mono/external/rx/Rx.NET/System.Reactive.Core/Reactive/Concurrency/ScheduledItem.cs:48 
  at System.Reactive.Concurrency.CurrentThreadScheduler+Trampoline.Run (System.Reactive.Concurrency.SchedulerQueue`1 queue) [0x0004c] in /svn/mono/external/rx/Rx.NET/System.Reactive.Core/Reactive/Concurrency/CurrentThreadScheduler.cs:185 
  at System.Reactive.Concurrency.CurrentThreadScheduler.Schedule[State] (State state, TimeSpan dueTime, System.Func`3 action) [0x0004c] in /svn/mono/external/rx/Rx.NET/System.Reactive.Core/Reactive/Concurrency/CurrentThreadScheduler.cs:154 
  at System.Reactive.Concurrency.LocalScheduler.Schedule[State] (State state, System.Func`3 action) [0x00011] in /svn/mono/external/rx/Rx.NET/System.Reactive.Core/Reactive/Concurrency/LocalScheduler.cs:33 
  at System.Reactive.Producer`1[System.Exception].SubscribeRaw (IObserver`1 observer, Boolean enableSafeguard) [0x00081] in /svn/mono/external/rx/Rx.NET/System.Reactive.Core/Reactive/Internal/Producer.cs:48 
  at System.Reactive.Producer`1[System.Exception].Subscribe (IObserver`1 observer) [0x00011] in /svn/mono/external/rx/Rx.NET/System.Reactive.Core/Reactive/Internal/Producer.cs:25 
  at ReactiveUI.ScheduledSubject`1[System.Exception]..ctor (IScheduler scheduler, IObserver`1 defaultObserver, ISubject`1 defaultSubject) [0x0004e] in /Users/oliver/Projects/ReactiveUI/ReactiveUI/ScheduledSubject.cs:20 
  at ReactiveUI.ReactiveObject..ctor () [0x00014] in /Users/oliver/Projects/ReactiveUI/ReactiveUI/ReactiveObject.cs:62 
  at Eonmatrix.ViewModels.ViewModelBase..ctor () [0x00000] in /Users/oliver/Projects/Eonmatrix.Mobile.Common/PortableCore/ViewModels/ViewModelBase.cs:48 
  at GIFE.ViewModels.MainViewModel`2[GIFE.Entities.IOS.Picture,GIFE.Entities.IOS.PictureGallery]..ctor () [0x0002b] in /Users/oliver/Projects/GIFE/PortableCore/ViewModels/MainViewModel.cs:33 
  at (wrapper managed-to-native) System.Reflection.MonoCMethod:InternalInvoke (System.Reflection.MonoCMethod,object,object[],System.Exception&)
  at System.Reflection.MonoCMethod.InternalInvoke (System.Object obj, System.Object[] parameters) [0x00002] in /Developer/MonoTouch/Source/mono/mcs/class/corlib/System.Reflection/MonoMethod.cs:537 


Configuration:

Xamarin.iOS
Version: 6.4.4.12 (Business Edition)
Hash: 62e07d5
Branch: 
Build date: 2013-26-08 14:21:47-0400
Comment 1 Oliver Weichhold 2013-09-02 04:55:27 UTC
Please note that even though the callstack might indicate otherwise, no PCLs are involved here.
Comment 2 Sebastien Pouliot 2013-09-03 08:12:06 UTC
Please provide a small, self-contained, test case so we can reproduce the issue.
Comment 3 Oliver Weichhold 2013-09-08 07:42:09 UTC
1. Clone repository https://github.com/reactiveui/ReactiveUI.git
2. Switch to branch "ios-device-crash-investigation"
3. Open solution "RXUITest" in root of repository
4. Run the application on the simulator and observe a crash in:

  at System.Reactive.Concurrency.Scheduler.AsLongRunning (IScheduler scheduler)
[0x0000d] in
/svn/mono/external/rx/Rx.NET/System.Reactive.Core/Reactive/Concurrency/Scheduler.Services.cs:33 
  at System.Reactive.ScheduledObserver`1[System.Exception]..ctor (IScheduler
scheduler, IObserver`1 observer) [0x00035] in
/svn/mono/external/rx/Rx.NET/System.Reactive.Core/Reactive/Internal/ScheduledObserver.cs:36 
  at System.Reactive.ObserveOnObserver`1[System.Exception]..ctor (IScheduler
scheduler, IObserver`1 observer, IDisposable cancel) [0x00000] in
/svn/mono/external/rx/Rx.NET/System.Reactive.Core/Reactive/Internal/ScheduledObserver.cs:404 
  at System.Reactive.Concurrency.ObserveOn`1[System.Exception].Run (IObserver`1
observer, IDisposable cancel, System.Action`1 setSink) [0x00022] in
/svn/mono/external/rx/Rx.NET/System.Reactive.Core/Reactive/Concurrency/Synchronization.ObserveOn.cs:45 
  at System.Reactive.Producer`1[System.Exception].Run (IScheduler _, State x)
[0x00000] in
/svn/mono/external/rx/Rx.NET/System.Reactive.Core/Reactive/Internal/Producer.cs:72 
  at
System.Reactive.Concurrency.ScheduledItem`2[System.TimeSpan,System.Reactive.Producer`1+State[System.Exception]].InvokeCore
() [0x00000] in
/svn/mono/external/rx/Rx.NET/System.Reactive.Core/Reactive/Concurrency/ScheduledItem.cs:241 
  at System.Reactive.Concurrency.ScheduledItem`1[System.TimeSpan].Invoke ()
[0x00010] in
/svn/mono/external/rx/Rx.NET/System.Reactive.Core/Reactive/Concurrency/ScheduledItem.cs:48 
  at System.Reactive.Concurrency.CurrentThreadScheduler+Trampoline.Run
(System.Reactive.Concurrency.SchedulerQueue`1 queue) [0x0004c] in
/svn/mono/external/rx/Rx.NET/System.Reactive.Core/Reactive/Concurrency/CurrentThreadScheduler.cs:185 
  at System.Reactive.Concurrency.CurrentThreadScheduler.Schedule[State] (State
state, TimeSpan dueTime, System.Func`3 action) [0x0004c] in
/svn/mono/external/rx/Rx.NET/System.Reactive.Core/Reactive/Concurrency/CurrentThreadScheduler.cs:154 
  at System.Reactive.Concurrency.LocalScheduler.Schedule[State] (State state,
System.Func`3 action) [0x00011] in
/svn/mono/external/rx/Rx.NET/System.Reactive.Core/Reactive/Concurrency/LocalScheduler.cs:33 
  at System.Reactive.Producer`1[System.Exception].SubscribeRaw (IObserver`1
observer, Boolean enableSafeguard) [0x00081] in
/svn/mono/external/rx/Rx.NET/System.Reactive.Core/Reactive/Internal/Producer.cs:48 
  at System.Reactive.Producer`1[System.Exception].Subscribe (IObserver`1
observer) [0x00011] in
/svn/mono/external/rx/Rx.NET/System.Reactive.Core/Reactive/Internal/Producer.cs:25 
  at ReactiveUI.ScheduledSubject`1[System.Exception]..ctor (IScheduler
scheduler, IObserver`1 defaultObserver, ISubject`1 defaultSubject) [0x0004e] in
/Users/oliver/Projects/ReactiveUI/ReactiveUI/ScheduledSubject.cs:20 
  at ReactiveUI.ReactiveObject..ctor () [0x00014] in
/Users/oliver/Projects/ReactiveUI/ReactiveUI/ReactiveObject.cs:62 
  at Eonmatrix.ViewModels.ViewModelBase..ctor () [0x00000] in
/Users/oliver/Projects/Eonmatrix.Mobile.Common/PortableCore/ViewModels/ViewModelBase.cs:48 
  at
GIFE.ViewModels.MainViewModel`2[GIFE.Entities.IOS.Picture,GIFE.Entities.IOS.PictureGallery]..ctor
() [0x0002b] in
/Users/oliver/Projects/GIFE/PortableCore/ViewModels/MainViewModel.cs:33 
  at (wrapper managed-to-native) System.Reflection.MonoCMethod:InternalInvoke
(System.Reflection.MonoCMethod,object,object[],System.Exception&)
  at System.Reflection.MonoCMethod.InternalInvoke (System.Object obj,
System.Object[] parameters) [0x00002] in
/Developer/MonoTouch/Source/mono/mcs/class/corlib/System.Reflection/MonoMethod.cs:53
Comment 4 Carlo Wahlstedt 2013-09-09 09:45:55 UTC
After the recent stable release I am experiencing this issue.
Comment 5 Oliver Weichhold 2013-09-10 09:00:30 UTC
This happens only in the Simulator and only if debugging. If I chose "Run without debugging" the app works fine too.
Comment 6 Sebastien Pouliot 2013-09-10 09:04:49 UTC
Thanks for confirming.

*** This bug has been marked as a duplicate of bug 14552 ***