Skip to content
This repository has been archived by the owner on May 1, 2024. It is now read-only.

[Bug] NRE VisualElement Background is null #15177

Closed
AlvinSch opened this issue Feb 22, 2022 · 3 comments · Fixed by #15299
Closed

[Bug] NRE VisualElement Background is null #15177

AlvinSch opened this issue Feb 22, 2022 · 3 comments · Fixed by #15299

Comments

@AlvinSch
Copy link

Description

We have a NRE occuring from VisualElement.NotifyBackgroundChanges since we updated our Android Application and Libs to Xamarin.Forms 2244 and above.

The Exception occures after closing and restarting the App when a GC is performed (TaskScheduler.OnUnobservedTaskException will report the Exception).

  at Xamarin.Forms.VisualElement.<NotifyBackgroundChanges>b__44_0 () [0x00006] in <23c19a60b6ca4c19b1ac9e3f840f8667>:0
  at Xamarin.Forms.Device+<>c__DisplayClass43_0.<InvokeOnMainThreadAsync>g__wrapAction|0 () [0x00000] in <23c19a60b6ca4c19b1ac9e3f840f8667>:0
  at Xamarin.Forms.Device+<>c__DisplayClass42_0'1[T].<InvokeOnMainThreadAsync>b__0 () [0x00000] in <23c19a60b6ca4c19b1ac9e3f840f8667>:0
   --- End of inner exception stack trace ---
---> (Inner Exception #0) System.NullReferenceException: Object reference not set to an instance of an object
  at Xamarin.Forms.VisualElement.<NotifyBackgroundChanges>b__44_0 () [0x00006] in <23c19a60b6ca4c19b1ac9e3f840f8667>:0
  at Xamarin.Forms.Device+<>c__DisplayClass43_0.<InvokeOnMainThreadAsync>g__wrapAction|0 () [0x00000] in <23c19a60b6ca4c19b1ac9e3f840f8667>:0
  at Xamarin.Forms.Device+<>c__DisplayClass42_0'1[T].<InvokeOnMainThreadAsync>b__0 () [0x00000] in <23c19a60b6ca4c19b1ac9e3f840f8667>:0 <--- 

From a code compare the error could be caused due to the changes from #14795 (setting the Background.Parent within InvokeOnMainThreadAsync without checking for null again).

Steps to Reproduce

For reproducing the behaviour i wrote this small TestApp: https://github.com/AlvinSch/XamarinFormsBackgroudNRE/tree/main

  1. Open the TestApp
  2. Navigate to Next Page
  3. Press Button "Trigger Garbage Collection"

In this testcase the background of a label is definied in the Xaml of the ErrorPage. On Initialization the Background is set to NULL. On the following execution of the GarbageCollector the unhandled exception is reported and displayed.

Expected Behavior

No Crash Report from UnobservedTaskException will be shown

Actual Behavior

Crash Report from UnobservedTaskException will be shown

Basic Information

  • Version with issue: 5.0.0.2244
  • Last known good version: 5.0.0.2196
  • Platform Target Frameworks:
    • Android: 10.0

Environment

Show/Hide Visual Studio info
Microsoft Visual Studio Professional 2019
Version 16.11.8
VisualStudio.16.Release/16.11.8+32002.261
Microsoft .NET Framework
Version 4.8.04084

Installed Version: Professional

Visual C++ 2019   00435-60000-00000-AA630
Microsoft Visual C++ 2019

ASP.NET and Web Tools 2019   16.11.94.52318
ASP.NET and Web Tools 2019

ASP.NET Web Frameworks and Tools 2019   16.11.94.52318
For additional information, visit https://www.asp.net/

Azure App Service Tools v3.0.0   16.11.94.52318
Azure App Service Tools v3.0.0

Azure Functions and Web Jobs Tools   16.11.94.52318
Azure Functions and Web Jobs Tools

C# Tools   3.11.0-4.21403.6+ae1fff344d46976624e68ae17164e0607ab68b10
C# components used in the IDE. Depending on your project type and settings, a different version of the compiler may be used.

Common Azure Tools   1.10
Provides common services for use by Azure Mobile Services and Microsoft Azure Tools.

EMDKProfileManagerWizardVS   1.0
EMDK for Xamarin

Extensibility Message Bus   1.2.6 (master@34d6af2)
Provides common messaging-based MEF services for loosely coupled Visual Studio extension components communication and integration.

IntelliCode Extension   1.0
IntelliCode Visual Studio Extension Detailed Info

Microsoft Azure Tools for Visual Studio   2.9
Support for Azure Cloud Services projects

Microsoft Continuous Delivery Tools for Visual Studio   0.4
Simplifying the configuration of Azure DevOps pipelines from within the Visual Studio IDE.

Microsoft JVM Debugger   1.0
Provides support for connecting the Visual Studio debugger to JDWP compatible Java Virtual Machines

Microsoft Library Manager   2.1.113+g422d40002e.RR
Install client-side libraries easily to any web project

Microsoft MI-Based Debugger   1.0
Provides support for connecting Visual Studio to MI compatible debuggers

Microsoft Visual C++ Wizards   1.0
Microsoft Visual C++ Wizards

Microsoft Visual Studio Tools for Containers   1.2
Develop, run, validate your ASP.NET Core applications in the target environment. F5 your application directly into a container with debugging, or CTRL + F5 to edit & refresh your app without having to rebuild the container.

Microsoft Visual Studio VC Package   1.0
Microsoft Visual Studio VC Package

Mono Debugging for Visual Studio   16.10.15 (552afdf)
Support for debugging Mono processes with Visual Studio.

Multilingual App Toolkit   4.0
Multilingual App Toolkit helps you localize your Windows Store app by providing file management, pseudo and machine translation, translation editor, and build integration. http://aka.ms/matinstall

NuGet Package Manager   5.11.0
NuGet Package Manager in Visual Studio. For more information about NuGet, visit https://docs.nuget.org/

ProjectServicesPackage Extension   1.0
ProjectServicesPackage Visual Studio Extension Detailed Info

Razor (ASP.NET Core)   16.1.0.2122504+13c05c96ea6bdbe550bd88b0bf6cdddf8cde1725
Provides languages services for ASP.NET Core Razor.

SQL Server Data Tools   16.0.62111.25150
Microsoft SQL Server Data Tools

TypeScript Tools   16.0.30526.2002
TypeScript Tools for Microsoft Visual Studio

Visual Basic Tools   3.11.0-4.21403.6+ae1fff344d46976624e68ae17164e0607ab68b10
Visual Basic components used in the IDE. Depending on your project type and settings, a different version of the compiler may be used.

Visual F# Tools   16.11.0-beta.21514.6+b6c2c4f53ea3a08fa603ea93d6d2f808a62a21d1
Microsoft Visual F# Tools

Visual Studio Code Debug Adapter Host Package   1.0
Interop layer for hosting Visual Studio Code debug adapters in Visual Studio

Visual Studio Container Tools Extensions   1.0
View, manage, and diagnose containers within Visual Studio.

Visual Studio Tools for Containers   1.0
Visual Studio Tools for Containers

VisualStudio.DeviceLog   1.0
Information about my package

VisualStudio.Foo   1.0
Information about my package

VisualStudio.Mac   1.0
Mac Extension for Visual Studio

Xamarin   16.11.000.197 (d16-11@6934992)
Visual Studio extension to enable development for Xamarin.iOS and Xamarin.Android.

Xamarin Designer   16.11.0.47 (remotes/origin/d16-11@e0d612363)
Visual Studio extension to enable Xamarin Designer tools in Visual Studio.

Xamarin Templates   16.10.5 (355b57a)
Templates for building iOS, Android, and Windows apps with Xamarin and Xamarin.Forms.

Xamarin.Android SDK   12.0.0.3 (d16-11/f0e3c2d)
Xamarin.Android Reference Assemblies and MSBuild support.
    Mono: c633fe9
    Java.Interop: xamarin/java.interop/d16-11@476bb5b
    ProGuard: Guardsquare/proguard/v7.0.1@912d149
    SQLite: xamarin/sqlite/3.35.4@85460d3
    Xamarin.Android Tools: xamarin/xamarin-android-tools/d16-11@87af37b


Xamarin.iOS and Xamarin.Mac SDK   15.2.0.17 (738fde344)
Xamarin.iOS and Xamarin.Mac Reference Assemblies and MSBuild support.

Reproduction Link

https://github.com/AlvinSch/XamarinFormsBackgroudNRE/tree/main - Xamarin.Forms 5.0.0.2244 with error
https://github.com/AlvinSch/XamarinFormsBackgroudNRE/tree/main_2196 - Xamarin.Forms 5.0.0.2196 without error

Workaround

none

@AlvinSch AlvinSch added s/unverified New report that has yet to be verified t/bug 🐛 labels Feb 22, 2022
@jfversluis jfversluis added this to To Fix in 5.0.0 SR11 (Planning) - Target Date TBD via automation Mar 2, 2022
@jfversluis
Copy link
Member

Hey @AlvinSch sorry to not respond to you here, thank you for your patience! I just created a PR with a fix as per your investigation.

Would you be able to test out the resulting NuGet as described here and let us know if this fixes this issue? That will greatly speed up the review process. Make sure to take the exact version on the PR, other packages on that feed will not have the fix.

Thanks!

@jfversluis jfversluis moved this from To Fix to Issues in Progress in 5.0.0 SR11 (Planning) - Target Date TBD Apr 8, 2022
@markusroessler
Copy link

markusroessler commented Apr 11, 2022

Hi @jfversluis, i'm a colleague of @AlvinSch.
I can confirm that the issue is fixed in Build 5.0.0.8131
Thank you for the fix!

@jfversluis
Copy link
Member

Awesome @markusroessler ! Thanks for confirming!

5.0.0 SR11 (Planning) - Target Date TBD automation moved this from Issues in Progress to Done Apr 11, 2022
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
i/regression s/unverified New report that has yet to be verified t/bug 🐛
Development

Successfully merging a pull request may close this issue.

3 participants