Access violation on RadzenPickList when use button Move All #1175

Open
opened 2026-01-29 17:49:58 +00:00 by claunia · 0 comments
Owner

Originally created by @DanielPitthan on GitHub (Mar 28, 2024).

Olá tudo bem?

I'm trying to locate or understand the bug: Access violation that is happening when clicking the move all button in the RadzenPickList component.

###How to reproduce:

I assembled the RadzenPickList according to the code below, and when clicking on the all button the system displays the error reported above, however, when clicking and moving one option for each individually the problem does not occur.

Output Console

Application Insights Telemetry (unconfigured): {"name":"AppMetrics","time":"2024-03-28T11:19:01.0000000Z","tags":{"ai.application.ver":"1.0.0.0","ai.cloud.roleInstance":"Pitthan","ai.internal.sdkVersion":"m-agg2c:2.22.0-997","ai.internal.nodeName":"Pitthan"},"data":{"baseType":"MetricData","baseData":{"ver":2,"metrics":[{"name":"Dependency duration","kind":"Aggregation","value":7.1373,"count":2,"min":3.2805,"max":3.8568,"stdDev":0.28815000000000046}],"properties":{"operation/synthetic":"False","cloud/roleName":"Unknown","Dependency.Type":"SQL","Dependency.Success":"True","dependency/performanceBucket":"<250ms","AspNetCoreEnvironment":"Development","DeveloperMode":"true","dependency/resultCode":"Unknown","_MS.MetricId":"dependencies/duration","cloud/roleInstance":"Pitthan","_MS.IsAutocollected":"True","_MS.AggregationIntervalMs":"70000","dependency/target":"srv-itb-sql | ManutencaoAtivos"}}}}
Application Insights Telemetry (unconfigured): {"name":"AppMetrics","time":"2024-03-28T11:20:37.1354118Z","tags":{"ai.application.ver":"1.0.0.0","ai.cloud.roleInstance":"Pitthan","ai.internal.sdkVersion":"pccore:2.22.0-997","ai.internal.nodeName":"Pitthan"},"data":{"baseType":"MetricData","baseData":{"ver":2,"metrics":[{"name":"\Process(??APP_WIN32_PROC??)\% Processor Time","kind":"Aggregation","value":41.56068801879883,"count":1,"min":41.56068801879883,"max":41.56068801879883,"stdDev":0}],"properties":{"AspNetCoreEnvironment":"Development","DeveloperMode":"true","CounterInstanceName":"ManutencaoDeAtivo","CustomPerfCounter":"true"}}}}
Application Insights Telemetry (unconfigured): {"name":"AppMetrics","time":"2024-03-28T11:20:37.1766747Z","tags":{"ai.application.ver":"1.0.0.0","ai.cloud.roleInstance":"Pitthan","ai.internal.sdkVersion":"pccore:2.22.0-997","ai.internal.nodeName":"Pitthan"},"data":{"baseType":"MetricData","baseData":{"ver":2,"metrics":[{"name":"\Process(??APP_WIN32_PROC??)\% Processor Time Normalized","kind":"Aggregation","value":2.0756149291992188,"count":1,"min":2.0756149291992188,"max":2.0756149291992188,"stdDev":0}],"properties":{"AspNetCoreEnvironment":"Development","DeveloperMode":"true","CounterInstanceName":"ManutencaoDeAtivo","CustomPerfCounter":"true"}}}}
Application Insights Telemetry (unconfigured): {"name":"AppMetrics","time":"2024-03-28T11:20:37.1907752Z","tags":{"ai.application.ver":"1.0.0.0","ai.cloud.roleInstance":"Pitthan","ai.internal.sdkVersion":"pccore:2.22.0-997","ai.internal.nodeName":"Pitthan"},"data":{"baseType":"MetricData","baseData":{"ver":2,"metrics":[{"name":"\Process(??APP_WIN32_PROC??)\Private Bytes","kind":"Aggregation","value":499228672,"count":1,"min":499228672,"max":499228672,"stdDev":0}],"properties":{"AspNetCoreEnvironment":"Development","DeveloperMode":"true","CounterInstanceName":"ManutencaoDeAtivo","CustomPerfCounter":"true"}}}}
Application Insights Telemetry (unconfigured): {"name":"AppMetrics","time":"2024-03-28T11:20:37.2007151Z","tags":{"ai.application.ver":"1.0.0.0","ai.cloud.roleInstance":"Pitthan","ai.internal.sdkVersion":"pccore:2.22.0-997","ai.internal.nodeName":"Pitthan"},"data":{"baseType":"MetricData","baseData":{"ver":2,"metrics":[{"name":"\Memory\Available Bytes","kind":"Aggregation","value":907259904,"count":1,"min":907259904,"max":907259904,"stdDev":0}],"properties":{"AspNetCoreEnvironment":"Development","DeveloperMode":"true","CustomPerfCounter":"true"}}}}
Application Insights Telemetry (unconfigured): {"name":"AppMetrics","time":"2024-03-28T11:20:37.2087419Z","tags":{"ai.application.ver":"1.0.0.0","ai.cloud.roleInstance":"Pitthan","ai.internal.sdkVersion":"pccore:2.22.0-997","ai.internal.nodeName":"Pitthan"},"data":{"baseType":"MetricData","baseData":{"ver":2,"metrics":[{"name":"\Process(??APP_WIN32_PROC??)\IO Data Bytes/sec","kind":"Aggregation","value":0,"count":1,"min":0,"max":0,"stdDev":0}],"properties":{"AspNetCoreEnvironment":"Development","DeveloperMode":"true","CounterInstanceName":"ManutencaoDeAtivo","CustomPerfCounter":"true"}}}}
Application Insights Telemetry (unconfigured): {"name":"AppMetrics","time":"2024-03-28T11:20:37.2152422Z","tags":{"ai.application.ver":"1.0.0.0","ai.cloud.roleInstance":"Pitthan","ai.internal.sdkVersion":"pccore:2.22.0-997","ai.internal.nodeName":"Pitthan"},"data":{"baseType":"MetricData","baseData":{"ver":2,"metrics":[{"name":"\Processor(_Total)\% Processor Time","kind":"Aggregation","value":10.342276573181152,"count":1,"min":10.342276573181152,"max":10.342276573181152,"stdDev":0}],"properties":{"AspNetCoreEnvironment":"Development","DeveloperMode":"true","CounterInstanceName":"_Total","CustomPerfCounter":"true"}}}}
[2024-03-28T11:21:24.943Z] Error: Connection disconnected with error 'Error: WebSocket closed with status code: 1006 (no reason given).'.
O programa "[35200] ManutencaoDeAtivo.exe" foi fechado com o código 3221225477 (0xc0000005) 'Access violation'.
O thread 0 foi fechado com o código 0 (0x0).
O programa "" foi fechado com o código 4294967295 (0xffffffff).
O programa "Adaptador de depuração do JavaScript: localhost:5174" foi fechado com o código 4294967295 (0xffffffff).

CODE

`

<RadzenPickList @bind-Source="@roleTreesSource"
@bind-Target="@roleTreesTarget"
TItem="RoleTree"
Orientation="Radzen.Orientation.Horizontal"
ShowHeader="true"
Multiple="true"
AllowFiltering="true"
ButtonGap="12px"
ButtonSize="ButtonSize.Small"
ButtonVariant="Radzen.Variant.Filled"
ButtonStyle="ButtonStyle.Dark"
Style="min-height:500px">

Regras


Regras definidas



@context.RoleName
@context.Descricao







@code {
[CascadingParameter] MudDialogInstance MudDialog { get; set; }

[Parameter]
public Opcao? Opcoes { get; set; }

private Opcao? opcoes { get; set; }
[Parameter]
public RoleUser? RoleUser { get; set; }
private RoleUser roleUser { get; set; } = new RoleUser();

private IEnumerable<RoleTree> roleTreesSource = new List<RoleTree>();
private IEnumerable<RoleTree> roleTreesTarget = new List<RoleTree>();
private IList<RoleTreeRoleUser> regrasDefinidas = new List<RoleTreeRoleUser>();
private Dictionary<Opcao, IList<RoleTreeRoleUser>> regrasMerge;
ElementReference elementList;

protected override void OnParametersSet()
{
    base.OnParametersSet();

    if (RoleUser != null)
        roleUser = RoleUser;
}

protected override async Task OnAfterRenderAsync(bool firstRender)
{
    if (!firstRender)
        return;
    await GetData();
}


private async Task GetData()
{
    //Busca todas as regras do usuário
    regrasDefinidas = await this.roleService.ListarAsync(roleUser);

    //Define o target com as regras existentes do usuário
    roleTreesTarget = regrasDefinidas.Select(x => x.RoleTree).ToList();

    //Lista todas as regras do sistema
    IEnumerable<RoleTree> allRules = await this.roleService.ListarAsync<RoleTree>();

    //Remove todas as regras que já existem na regra do usuário e define as regras do source
    roleTreesSource = allRules.Where(r => !roleTreesTarget.Contains(r));

    this.StateHasChanged();
}

private void PreparaRegras()
{
    regrasMerge = new Dictionary<Opcao, IList<RoleTreeRoleUser>>();
    regrasMerge.Add(Opcao.Incluir, new List<RoleTreeRoleUser>());
    regrasMerge.Add(Opcao.Excluir, new List<RoleTreeRoleUser>());


    //Inclusão
    foreach (var item in roleTreesTarget)
    {
        regrasMerge[Opcao.Incluir].Add(new RoleTreeRoleUser
            {
                RoleUserId = roleUser.Id,
                RoleTreeId = item.Id
            });
    }

    //Exclusão
    foreach (var item in roleTreesSource)
    {
        regrasMerge[Opcao.Excluir].Add(new RoleTreeRoleUser
            {
                RoleUserId = roleUser.Id,
                RoleTreeId = item.Id
            });
    }
}


private async Task Gravar()
{
    PreparaRegras();

    bool result = await this.roleService.AdicionarAsync(regrasMerge);
    if (result)
    {
        snackbar.Add("Alteração relizada com sucesso!", Severity.Success);
    }
    else
    {
        snackbar.Add("Alteração relizada com sucesso!", Severity.Success);
    }

    MudDialog.Close(true);
}


void ShowTooltip(ElementReference elementReference, string text)
{
    tooltipService.Open(elementReference, text, new TooltipOptions
        {
            Style = "background-color:#bcbcbc;color:black;",
            Position = TooltipPosition.Right,
        });
}`
Originally created by @DanielPitthan on GitHub (Mar 28, 2024). Olá tudo bem? I'm trying to locate or understand the bug: Access violation that is happening when clicking the move all button in the RadzenPickList component. ###**How to reproduce:** I assembled the RadzenPickList according to the code below, and when clicking on the all button the system displays the error reported above, however, when clicking and moving one option for each individually the problem does not occur. ### **Output Console** Application Insights Telemetry (unconfigured): {"name":"AppMetrics","time":"2024-03-28T11:19:01.0000000Z","tags":{"ai.application.ver":"1.0.0.0","ai.cloud.roleInstance":"Pitthan","ai.internal.sdkVersion":"m-agg2c:2.22.0-997","ai.internal.nodeName":"Pitthan"},"data":{"baseType":"MetricData","baseData":{"ver":2,"metrics":[{"name":"Dependency duration","kind":"Aggregation","value":7.1373,"count":2,"min":3.2805,"max":3.8568,"stdDev":0.28815000000000046}],"properties":{"operation/synthetic":"False","cloud/roleName":"Unknown","Dependency.Type":"SQL","Dependency.Success":"True","dependency/performanceBucket":"<250ms","AspNetCoreEnvironment":"Development","DeveloperMode":"true","dependency/resultCode":"Unknown","_MS.MetricId":"dependencies/duration","cloud/roleInstance":"Pitthan","_MS.IsAutocollected":"True","_MS.AggregationIntervalMs":"70000","dependency/target":"srv-itb-sql | ManutencaoAtivos"}}}} Application Insights Telemetry (unconfigured): {"name":"AppMetrics","time":"2024-03-28T11:20:37.1354118Z","tags":{"ai.application.ver":"1.0.0.0","ai.cloud.roleInstance":"Pitthan","ai.internal.sdkVersion":"pccore:2.22.0-997","ai.internal.nodeName":"Pitthan"},"data":{"baseType":"MetricData","baseData":{"ver":2,"metrics":[{"name":"\\Process(??APP_WIN32_PROC??)\\% Processor Time","kind":"Aggregation","value":41.56068801879883,"count":1,"min":41.56068801879883,"max":41.56068801879883,"stdDev":0}],"properties":{"AspNetCoreEnvironment":"Development","DeveloperMode":"true","CounterInstanceName":"ManutencaoDeAtivo","CustomPerfCounter":"true"}}}} Application Insights Telemetry (unconfigured): {"name":"AppMetrics","time":"2024-03-28T11:20:37.1766747Z","tags":{"ai.application.ver":"1.0.0.0","ai.cloud.roleInstance":"Pitthan","ai.internal.sdkVersion":"pccore:2.22.0-997","ai.internal.nodeName":"Pitthan"},"data":{"baseType":"MetricData","baseData":{"ver":2,"metrics":[{"name":"\\Process(??APP_WIN32_PROC??)\\% Processor Time Normalized","kind":"Aggregation","value":2.0756149291992188,"count":1,"min":2.0756149291992188,"max":2.0756149291992188,"stdDev":0}],"properties":{"AspNetCoreEnvironment":"Development","DeveloperMode":"true","CounterInstanceName":"ManutencaoDeAtivo","CustomPerfCounter":"true"}}}} Application Insights Telemetry (unconfigured): {"name":"AppMetrics","time":"2024-03-28T11:20:37.1907752Z","tags":{"ai.application.ver":"1.0.0.0","ai.cloud.roleInstance":"Pitthan","ai.internal.sdkVersion":"pccore:2.22.0-997","ai.internal.nodeName":"Pitthan"},"data":{"baseType":"MetricData","baseData":{"ver":2,"metrics":[{"name":"\\Process(??APP_WIN32_PROC??)\\Private Bytes","kind":"Aggregation","value":499228672,"count":1,"min":499228672,"max":499228672,"stdDev":0}],"properties":{"AspNetCoreEnvironment":"Development","DeveloperMode":"true","CounterInstanceName":"ManutencaoDeAtivo","CustomPerfCounter":"true"}}}} Application Insights Telemetry (unconfigured): {"name":"AppMetrics","time":"2024-03-28T11:20:37.2007151Z","tags":{"ai.application.ver":"1.0.0.0","ai.cloud.roleInstance":"Pitthan","ai.internal.sdkVersion":"pccore:2.22.0-997","ai.internal.nodeName":"Pitthan"},"data":{"baseType":"MetricData","baseData":{"ver":2,"metrics":[{"name":"\\Memory\\Available Bytes","kind":"Aggregation","value":907259904,"count":1,"min":907259904,"max":907259904,"stdDev":0}],"properties":{"AspNetCoreEnvironment":"Development","DeveloperMode":"true","CustomPerfCounter":"true"}}}} Application Insights Telemetry (unconfigured): {"name":"AppMetrics","time":"2024-03-28T11:20:37.2087419Z","tags":{"ai.application.ver":"1.0.0.0","ai.cloud.roleInstance":"Pitthan","ai.internal.sdkVersion":"pccore:2.22.0-997","ai.internal.nodeName":"Pitthan"},"data":{"baseType":"MetricData","baseData":{"ver":2,"metrics":[{"name":"\\Process(??APP_WIN32_PROC??)\\IO Data Bytes/sec","kind":"Aggregation","value":0,"count":1,"min":0,"max":0,"stdDev":0}],"properties":{"AspNetCoreEnvironment":"Development","DeveloperMode":"true","CounterInstanceName":"ManutencaoDeAtivo","CustomPerfCounter":"true"}}}} Application Insights Telemetry (unconfigured): {"name":"AppMetrics","time":"2024-03-28T11:20:37.2152422Z","tags":{"ai.application.ver":"1.0.0.0","ai.cloud.roleInstance":"Pitthan","ai.internal.sdkVersion":"pccore:2.22.0-997","ai.internal.nodeName":"Pitthan"},"data":{"baseType":"MetricData","baseData":{"ver":2,"metrics":[{"name":"\\Processor(_Total)\\% Processor Time","kind":"Aggregation","value":10.342276573181152,"count":1,"min":10.342276573181152,"max":10.342276573181152,"stdDev":0}],"properties":{"AspNetCoreEnvironment":"Development","DeveloperMode":"true","CounterInstanceName":"_Total","CustomPerfCounter":"true"}}}} [2024-03-28T11:21:24.943Z] Error: Connection disconnected with error 'Error: WebSocket closed with status code: 1006 (no reason given).'. O programa "[35200] ManutencaoDeAtivo.exe" foi fechado com o código 3221225477 (0xc0000005) 'Access violation'. O thread 0 foi fechado com o código 0 (0x0). O programa "" foi fechado com o código 4294967295 (0xffffffff). O programa "Adaptador de depuração do JavaScript: localhost:5174" foi fechado com o código 4294967295 (0xffffffff). ### **CODE** ` <RadzenStack Gap="1em" Style="margin:1em;"> <RadzenPickList @bind-Source="@roleTreesSource" @bind-Target="@roleTreesTarget" TItem="RoleTree" Orientation="Radzen.Orientation.Horizontal" ShowHeader="true" Multiple="true" AllowFiltering="true" ButtonGap="12px" ButtonSize="ButtonSize.Small" ButtonVariant="Radzen.Variant.Filled" ButtonStyle="ButtonStyle.Dark" Style="min-height:500px"> <SourceHeader> <b>Regras</b> </SourceHeader> <TargetHeader> <b>Regras definidas</b> </TargetHeader> <Template> <RadzenRow Gap="1em" AlignItems="Radzen.AlignItems.Start" > <RadzenColumn>@context.RoleName</RadzenColumn> <RadzenColumn>@context.Descricao</RadzenColumn> </RadzenRow> </Template> </RadzenPickList> <RadzenStack Orientation="Radzen.Orientation.Horizontal"> <RadzenButton ButtonStyle="ButtonStyle.Light" Text="Fechar" Click="@(x=> MudDialog.Close(false))"></RadzenButton> <RadzenButton ButtonStyle="ButtonStyle.Primary" Text="Gravar" Click="@(async x=> await Gravar())"></RadzenButton> </RadzenStack> </RadzenStack> @code { [CascadingParameter] MudDialogInstance MudDialog { get; set; } [Parameter] public Opcao? Opcoes { get; set; } private Opcao? opcoes { get; set; } [Parameter] public RoleUser? RoleUser { get; set; } private RoleUser roleUser { get; set; } = new RoleUser(); private IEnumerable<RoleTree> roleTreesSource = new List<RoleTree>(); private IEnumerable<RoleTree> roleTreesTarget = new List<RoleTree>(); private IList<RoleTreeRoleUser> regrasDefinidas = new List<RoleTreeRoleUser>(); private Dictionary<Opcao, IList<RoleTreeRoleUser>> regrasMerge; ElementReference elementList; protected override void OnParametersSet() { base.OnParametersSet(); if (RoleUser != null) roleUser = RoleUser; } protected override async Task OnAfterRenderAsync(bool firstRender) { if (!firstRender) return; await GetData(); } private async Task GetData() { //Busca todas as regras do usuário regrasDefinidas = await this.roleService.ListarAsync(roleUser); //Define o target com as regras existentes do usuário roleTreesTarget = regrasDefinidas.Select(x => x.RoleTree).ToList(); //Lista todas as regras do sistema IEnumerable<RoleTree> allRules = await this.roleService.ListarAsync<RoleTree>(); //Remove todas as regras que já existem na regra do usuário e define as regras do source roleTreesSource = allRules.Where(r => !roleTreesTarget.Contains(r)); this.StateHasChanged(); } private void PreparaRegras() { regrasMerge = new Dictionary<Opcao, IList<RoleTreeRoleUser>>(); regrasMerge.Add(Opcao.Incluir, new List<RoleTreeRoleUser>()); regrasMerge.Add(Opcao.Excluir, new List<RoleTreeRoleUser>()); //Inclusão foreach (var item in roleTreesTarget) { regrasMerge[Opcao.Incluir].Add(new RoleTreeRoleUser { RoleUserId = roleUser.Id, RoleTreeId = item.Id }); } //Exclusão foreach (var item in roleTreesSource) { regrasMerge[Opcao.Excluir].Add(new RoleTreeRoleUser { RoleUserId = roleUser.Id, RoleTreeId = item.Id }); } } private async Task Gravar() { PreparaRegras(); bool result = await this.roleService.AdicionarAsync(regrasMerge); if (result) { snackbar.Add("Alteração relizada com sucesso!", Severity.Success); } else { snackbar.Add("Alteração relizada com sucesso!", Severity.Success); } MudDialog.Close(true); } void ShowTooltip(ElementReference elementReference, string text) { tooltipService.Open(elementReference, text, new TooltipOptions { Style = "background-color:#bcbcbc;color:black;", Position = TooltipPosition.Right, }); }`
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: starred/radzen-blazor#1175