Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

SwipeView inside Popup crashes on Windows with System.AccessViolationException #1904

Open
2 tasks done
nshtinkov opened this issue May 28, 2024 · 2 comments · May be fixed by #2087
Open
2 tasks done

SwipeView inside Popup crashes on Windows with System.AccessViolationException #1904

nshtinkov opened this issue May 28, 2024 · 2 comments · May be fixed by #2087
Labels
area/views Issue/Discussion/PR that has to do with Views bug Something isn't working unverified

Comments

@nshtinkov
Copy link

Is there an existing issue for this?

  • I have searched the existing issues

Did you read the "Reporting a bug" section on Contributing file?

Current Behavior

On Windows, opening a Popup containing a SwipeView crashes with "System.AccessViolationException: 'Attempted to read or write protected memory. This is often an indication that other memory is corrupt.'"

The same code works on Android.

Expected Behavior

Should not crash on Windows.

Steps To Reproduce

  1. Build and run the repro app on Windows.
  2. Press the button to open the popup. The app crashes.

Link to public reproduction project repository

https://github.com/nshtinkov/SwipeView-BL-Crash

Environment

- .NET MAUI CommunityToolkit: 9.0.0
- OS: Windows 11 Build 10.0.22631
- .NET MAUI: 8.0.40

Anything else?

The crash happens in the call to FrameworkElement.Measure() on the SwipeView. It may be a bug in MAUI, but I am posting it here because it only happens in a Popup.

Could be related to dotnet/maui#16735 ; the repro app is modified from that issue. However I can no longer reproduce the original issue.

@nshtinkov nshtinkov added bug Something isn't working unverified labels May 28, 2024
@vhugogarcia vhugogarcia added the area/views Issue/Discussion/PR that has to do with Views label Jun 7, 2024
@cat0363
Copy link
Contributor

cat0363 commented Aug 1, 2024

@nshtinkov , Is the result you are expecting below?

2024-08-01.16-53-39.mp4

In my modified code, AccessViolationException is not occurring.
I tried writing the modified code with reference to the PR below.

dotnet/maui#6220

If the Popup size is not specified, the Popup size is measured using the Measure method, but this problem occurred at that time.
In the PR above, the target SwipeControl determines whether it is the right time to call the Measure method and then calls the Measure method.

If SwipeControl is included in the popup's Content hierarchy, you need to call the Measure method when it can be called, and avoid calling the Measure method when it is not possible.

By the way, SwipeControl's Measure method can be called when SwipeControl's IsLoaded property is true.

If you can confirm the expected result, you can create a PR, but if the Popup's content includes SwipeControl, you will have to perform your own processing, and it is doubtful whether this will be accepted as a modification to the Popup.

@nshtinkov
Copy link
Author

@nshtinkov , Is the result you are expecting below?

Yes this is it. Thank you for the detailed explanation.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area/views Issue/Discussion/PR that has to do with Views bug Something isn't working unverified
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants