Skip to content

Setting Module: If a default value is set, it may result in retrieving an incorrect value. #23773

@xxvolvo

Description

@xxvolvo

Is there an existing issue for this?

  • I have searched the existing issues

Description

If a setting is defined like this,

context.Add(new SettingDefinition(Demo1Settings.Setting1, "1"));

The result is like this:

await _settingManager.SetGlobalAsync(Demo1Settings.Setting1, "2");
var value = await _settingProvider.GetOrNullAsync(Demo1Settings.Setting1);//correctly get "2"
await _settingManager.SetGlobalAsync(Demo1Settings.Setting1, "1");
value = await _settingProvider.GetOrNullAsync(Demo1Settings.Setting1);// wrong, still get "2", expected "1"

But if a setting is defined like this,

context.Add(new SettingDefinition(Demo1Settings.Setting1));

The result is like this:

    await _settingManager.SetGlobalAsync(Demo1Settings.Setting1, "2");
    var value = await _settingProvider.GetOrNullAsync(Demo1Settings.Setting1);//correctly get "2"
    await _settingManager.SetGlobalAsync(Demo1Settings.Setting1, "1");
    value = await _settingProvider.GetOrNullAsync(Demo1Settings.Setting1);// correctly get "1"

I suspect the issue lies in the Cache within SettingManagementStore, but I haven't done an in-depth debug yet.

This issue exists in MSSQL, PGSQL, and SQLite. And I have not verified this on other databases.

Reproduction Steps

No response

Expected behavior

No response

Actual behavior

No response

Regression?

No response

Known Workarounds

No response

Version

9.2.1

User Interface

Common (Default)

Database Provider

EF Core (Default)

Tiered or separate authentication server

None (Default)

Operation System

Windows (Default)

Other information

No response

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions