Skip to content

Setting RangeSelector to 100-100 with max value to 1 crashes DWM. #366

Open

Description

@raphm4044

Describe the bug

When some bizarre values are set in a RangeSelector, the DWM crashes.

Steps to reproduce

Set a RangeSelector to 100-100, and set the max value to 1.

Expected behavior

I don't really know what to expect else. Prevent the control from rendering?

Screenshots

No response

Code Platform

  • UWP
  • WinAppSDK / WinUI 3
  • Web Assembly (WASM)
  • Android
  • iOS
  • MacOS
  • Linux / GTK

Windows Build Number

  • Windows 10 1809 (Build 17763)
  • Windows 10 1903 (Build 18362)
  • Windows 10 1909 (Build 18363)
  • Windows 10 2004 (Build 19041)
  • Windows 10 20H2 (Build 19042)
  • Windows 10 21H1 (Build 19043)
  • Windows 10 21H2 (Build 19044)
  • Windows 10 22H2 (Build 19045)
  • Windows 11 21H2 (Build 22000)
  • Other (specify)

Other Windows Build number

Windows 11 Canary (Germanium) 26063

App minimum and target SDK version

  • Windows 10, version 1809 (Build 17763)
  • Windows 10, version 1903 (Build 18362)
  • Windows 10, version 1909 (Build 18363)
  • Windows 10, version 2004 (Build 19041)
  • Windows 10, version 2104 (Build 20348)
  • Windows 11, version 22H2 (Build 22000)
  • Other (specify)

Other SDK version

Unknown. I use the WCT Gallery.

Visual Studio Version

2022

Visual Studio Build Number

17.9.1

Device form factor

Desktop

Additional context

I'm using the WCT gallery. Happens on the first example of RangeSelector.

Help us help you

No, I'm unable to contribute a solution.

Activity

  1. sylveon commented on Dec 1, 2024

    @sylveon
    Contributor

    Can repro. I'd argue min == max should be an invalid state here (i.e. the control should throw if someone tries to do that)

  2. Lamparter commented on Dec 1, 2024

    @Lamparter
            if (Minimum == Maximum)
            {
    -           Maximum += Epsilon;
    +           throw new ArgumentException("Maximum and Minimum values cannot be equal.");
            }
  3. moved this to 📋 Backlog in Toolkit 8.xon Dec 1, 2024
  4. moved this from 📋 Backlog to 🏗 In progress in Toolkit 8.xon Dec 2, 2024
  5. added this to the 8.2 milestone on Dec 2, 2024
  6. michael-hawker commented on Dec 2, 2024

    @michael-hawker
    Member

    @Arlodotexe not sure how we missed triaging this originally, but we definitely should understand why the DWM crashes in this state, and file an underlying issue with the platform to fix, while avoiding that scenario in our control.

    As called out in the PR discussion here: #576 (comment)

    I believe this should be valid input based on how Slider behaves, it accepts both min/max as equal and just locks the value.

    It may not make sense, but in general most XAML controls don't throw exceptions, as those will take down apps at runtime.

  7. modified the milestones: 8.2, 8.3 on Jan 13, 2025
  8. moved this from 🏗 In progress to 🔖 Ready in Toolkit 8.xon Feb 12, 2025
  9. moved this from 🔖 Ready to 🏗 In progress in Toolkit 8.xon Feb 12, 2025
  10. added
    components::controls::rangeselectorA double Slider control that allows the user to select a sub-range of values from a larger range.
    on Aug 7, 2025
  11. Arlodotexe commented on Dec 12, 2025

    @Arlodotexe
    Member

    @michael-hawker I'm no longer able to reproduce this crash on Windows 11 25H2 for either UWP or WASDK. We should still include a patch for older versions of Windows, as we support a minimum version of 17763 (1809).

  12. Arlodotexe commented on Dec 12, 2025

    @Arlodotexe
    Member

    Confirmed that the crash occurs on 23H2 and 24H2, but not 25H2 or Windows 10 21H2. Ran into OOBE blockers testing most Windows 11 versions in a VM due to forced update and sign-in restrictions -_- but luckily, I had spare machines around that hadn't been updated yet to test on. Enough non-insider versions of Windows are affected to warrant making a general patch for all versions.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Priority-1bugSomething isn't workingcomponents::controls::rangeselectorA double Slider control that allows the user to select a sub-range of values from a larger range.

    Type

    No type

    Projects

    • Status
      🏗 In progress

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions