1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/xuejm-sharding-core

 / Детали:

Запуск не удался, возникла ошибка `MySqlConnector.Core.SchemaProvider.GetSchemaAsync` по тайм-ауту.

Предстоит сделать
Владелец
Создано  
23.04.2025

mysql8, .net7, при запуске в тестовой среде все работает корректно, но в среде разработки запуск постоянно завершается ошибкой. Похоже, что проблема связана с получением структуры таблиц, и пока не удалось найти решение.```Shell
[06:27:43 WRN] Включен логгирование чувствительных данных. Входные данные лога и сообщения об ошибках могут содержать чувствительные данные приложения; эта функция должна использоваться только в процессе разработки.
[06:27:44 INF] Выполнено DbCommand (13ms) [Parameters=[], CommandType='Text', CommandTimeout='30']
SELECT CASE WHEN COUNT(*) = 0 THEN FALSE ELSE TRUE END
FROM information_schema.tables
WHERE table_type = 'BASE TABLE' AND table_schema = 'les_archive2'
[06:28:15 FTL] Исключение при запуске приложения
System.AggregateException: Ошибка или ошибки произошли. (Время ожидания команды истекло до завершения операции.)
---> MySqlConnector.MySqlException (0x80004005): Время ожидания команды истекло до завершения операции.
---> MySqlConnector.MySqlException (0x80004005): Выполнение запроса было прервано
в MySqlConnector.Core.ResultSet.g__ScanRowAsyncAwaited|9_0(ResultSet resultSet, Task1 payloadTask, Row row, CancellationToken token) в /_/src/MySqlConnector/Core/ResultSet.cs:строка 244 в MySqlConnector.Core.ResultSet.<ScanRowAsync>g__ScanRowAsyncAwaited|9_0(ResultSet resultSet, Task1 payloadTask, Row row, CancellationToken token) в //src/MySqlConnector/Core/ResultSet.cs:строка 252
в MySqlConnector.Core.ResultSet.ReadAsync(IOBehavior ioBehavior, CancellationToken cancellationToken) в /
/src/MySqlConnector/Core/ResultSet.cs:строка 199
в MySqlConnector.Core.SchemaProvider.FillDataTableAsync(IOBehavior ioBehavior, DataTable dataTable, String tableName, List`1 columns, CancellationToken cancellationToken) в //src/MySqlConnector/Core/SchemaProvider.cs:строка 427
в MySqlConnector.Core.SchemaProvider.FillTablesAsync(IOBehavior ioBehavior, DataTable dataTable, String tableName, String[] restrictionValues, CancellationToken cancellationToken) в /
/src/MySqlConnector/Core/SchemaProvider.g.cs:строка 693
в MySqlConnector.Core.SchemaProvider.

 в MySqlConnector.MySqlConnection.GetSchema(String collectionName) в /_/src/MySqlConnector/MySqlConnection.cs:строка 594
 в ShardingCore.TableExists.MySqlTableEnsureManager.
 ```DoGetExistTables(DbConnection connection, String dataSourceName)
 в ShardingCore.TableExists.GuessTableEnsureManager.DoGetExistTables(DbConnection connection, String dataSourceName)
 в ShardingCore.TableExists.Abstractions.AbstractTableEnsureManager.GetExistTables(IShardingDbContext shardingDbContext, String dataSourceName)
 в ShardingCore.DynamicDataSources.DataSourceInitializer.InitConfigure(String dataSourceName, Boolean createDatabase, Boolean createTable)
 в ShardingCore.Extensions.ShardingRuntimeExtension. <>c__DisplayClass1_1. <ExecuteInitConfigureUnit>b__1()
 в System.Threading.ExecutionContext.RunFromThreadPoolDispatchLoop(Thread threadPoolThread, ExecutionContext executionContext, ContextCallback callback, Object state)
 --- Конец трассы стека исключения ---
 в System.Threading.ExecutionContext.RunFromThreadPoolDispatchLoop(Thread threadPoolThread, ExecutionContext executionContext, ContextCallback callback, Object state)
 в System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot, Thread threadPoolThread)
 --- Конец внутренней трассы стека исключения ---
 в System.Threading.Tasks.Task.WaitAllCore(Task[] tasks, Int32 millisecondsTimeout, CancellationToken cancellationToken)
 в System.Threading.Tasks.Task.WaitAll(Task[] tasks)
 в ShardingCore.Extensions.ShardingRuntimeExtension.ExecuteInitConfigureUnit(IDataSourceInitializer dataSourceInitializer, List`1 initConfigureUnits)
 в ShardingCore.Extensions.ShardingRuntimeExtension.UseAutoTryCompensateTable(IShardingRuntimeContext shardingRuntimeContext, Nullable`1 parallelCount)
 в ShardingCore.ShardingCoreExtension.UseAutoTryCompensateTable(IServiceProvider serviceProvider, Nullable`1 parallelCount)
 в SgmwLES.ArchiveService.Startup.Configure(IApplicationBuilder app, IWebHostEnvironment env) в /src/src/SgmwLES.ArchiveService/Startup.cs:строка 228
 в System.RuntimeMethodHandle.InvokeMethod(Object target, Void** arguments, Signature sig, Boolean isConstructor)
 в System.Reflection.MethodInvoker. Invoke(Object obj, IntPtr* args, BindingFlags invokeAttr)
 в System. Reflection. RuntimeMethodInfo. Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
 в Microsoft. AspNetCore. Hosting. ConfigureBuilder. Invoke(Object instance, IApplicationBuilder builder)
 в Microsoft. AspNetCore. Hosting. GenericWebHostService. StartAsync(CancellationToken cancellationToken)
 Необработанное исключение.  System. AggregateException: Ошибка или ошибки произошли.  (Время ожидания команды истекло до завершения операции.)
  ---> MySqlConnector. MySqlException (0x80004005): Время ожидания команды истекло до завершения операции.
  ---> MySqlConnector. MySqlException (0x80004005): Выполнение запроса было прервано
  в MySqlConnector. Core. ResultSet. <ScanRowAsync>g__ScanRowAsyncAwaited|9_0(ResultSet resultSet, Task`1 payloadTask, Row row, CancellationToken token) в /_/src/MySqlConnector/Core/ResultSet. cs:строка 244
  в MySqlConnector. Core. ResultSet. <ScanRowAsync>g__ScanRowAsyncAwaited|9_0(ResultSet resultSet, Task`1 payloadTask, Row row, CancellationToken token) в /_/src/MySqlConnector/Core/ResultSet. cs:строка 252
  в MySqlConnector. Core. ResultSet. ReadAsync(IOBehavior ioBehavior, CancellationToken cancellationToken) в /_/src/MySqlConnector/Core/ResultSet. cs:строка 199
  в MySqlConnector. Core. SchemaProvider. FillDataTableAsync(IOBehavior ioBehavior, DataTable dataTable, String tableName, List`1 columns, CancellationToken cancellationToken) в /_/src/MySqlConnector/Core/SchemaProvider. cs:строка 427
  в MySqlConnector. Core. SchemaProvider. FillTablesAsync(IOBehavior ioBehavior, DataTable dataTable, String tableName, String[] restrictionValues, CancellationToken cancellationToken) в /_/src/MySqlConnector/Core/SchemaProvider. g. cs:строка 693
  в MySqlConnector. Core. SchemaProvider. GetSchemaAsync(IOBehavior ioBehavior, String collectionName, String[] restrictionValues, CancellationToken cancellationToken) в /_/src/MySqlConnector/Core/SchemaProvider. g. cs:строка 61
  в MySqlConnector. MySqlConnection. GetSchema(String collectionName) в /_/src/MySqlConnector/MySqlConnection. cs:строка 594
  в ShardingCore. TableExists. MySqlTableEnsureManager.DoGetExistTables(DbConnection connection, String dataSourceName)
  в ShardingCore.TableExists.GuessTableEnsureManager.DoGetExistTables(DbConnection connection, String dataSourceName)
  в ShardingCore.TableExists.Abstractions.AbstractTableEnsureManager.GetExistTables(IShardingDbContext shardingDbContext, String dataSourceName)
  в ShardingCore.DynamicDataSources.DataSourceInitializer.InitConfigure(String dataSourceName, Boolean createDatabase, Boolean createTable)
  в ShardingCore.Extensions.ShardingRuntimeExtension.<>c__DisplayClass1_1.<ExecuteInitConfigureUnit>b__1()
  в System.Threading.ExecutionContext.RunFromThreadPoolDispatchLoop(Thread threadPoolThread, ExecutionContext executionContext, ContextCallback callback, Object state)
  (Поток threadPoolThread, Контекст выполнения executionContext, Контекстный вызов callback, Состояние state)
 ---
 Конец трассировки стека с предыдущего местоположения
 ---
 в System.Threading.ExecutionContext.RunFromThreadPoolDispatchLoop(Thread threadPoolThread, ExecutionContext executionContext, ContextCallback callback, Object state)
 в System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot, Thread threadPoolThread)
 ---
 Конец внутренней трассировки стека
 ---
 в System.Threading.Tasks.Task.WaitAllCore(Task[] tasks, Int32 millisecondsTimeout, CancellationToken cancellationToken)
 в System.Threading.Tasks.Task.WaitAll(Task[] tasks)
 в ShardingCore.Extensions.ShardingRuntimeExtension.ExecuteInitConfigureUnit(IDataSourceInitializer dataSourceInitializer, List`1 initConfigureUnits)
 в ShardingCore.Extensions.ShardingRuntimeExtension.UseAutoTryCompensateTable(IShardingRuntimeContext shardingRuntimeContext, Nullable`1 parallelCount)
 в ShardingCore.ShardingCoreExtension.UseAutoTryCompensateTable(IServiceProvider serviceProvider, Nullable`1 parallelCount)
 в SgmwLES.ArchiveService.Startup.Configure(IApplicationBuilder app, IWebHostEnvironment env) в /src/src/SgmwLES.ArchiveService/Startup.cs:line 228
 в System.RuntimeMethodHandle.InvokeMethod(Object target, Void** arguments, Signature sig, Boolean isConstructor)
 в System.Reflection.MethodInvoker.Invoke(Object obj, IntPtr* args, BindingFlags invokeAttr)
 в System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
 в Microsoft.AspNetCore.Hosting.ConfigureBuilder. Invoke(Object instance, IApplicationBuilder builder)
 в Microsoft. AspNetCore. Hosting. GenericWebHostService. StartAsync(CancellationToken cancellationToken)
 в Microsoft. Extensions. Hosting. Internal. Host. StartAsync(CancellationToken cancellationToken)
 в Microsoft. Extensions. Hosting. HostingAbstractionsHostExtensions. RunAsync(IHost host, CancellationToken token)
 в Microsoft. Extensions. Hosting. HostingAbstractionsHostExtensions. RunAsync(IHost host, CancellationToken token)
 в Program. <Main>(String[] args) в /src/src/SgmwLES. ArchiveService/Program. cs:строка 8
 в Program. Main(String[] args)``` 
Вот содержимое startup
```c#
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
    if (env.IsDevelopment())
    {
```csharp
        app.UseDeveloperExceptionPage();
    }
    //app.InitSeed();
    app.UseSwagger();
    app.UseAuthentication();
    app.UseRouting();
    app.UseAuthorization();
    app.UseEndpoints(endpoints =>
    {
        endpoints.MapDomainGrpcService();
        endpoints.MapControllers();
    });
    using var scope = app.ApplicationServices.CreateScope();
    var defaultShardingDbContext = scope.ServiceProvider.GetRequiredService<DataContext>();
    if (defaultShardingDbContext.Database.GetPendingMigrations().Any())
    {
        defaultShardingDbContext.Database.Migrate();
    }
    app.ApplicationServices.UseAutoTryCompensateTable();
}

Комментарий (0)

GitLife Service Account Задача создана

Вход Перед тем как оставить комментарий

Статус
Ответственный
Контрольная точка
Pull Requests
Связанные запросы на слияние могут быть закрыты после их объединения
Ветки
Дата начала   -   Крайний срок
-
Закрепить/Открепить
Приоритет
Участники(1)
1
https://api.gitlife.ru/oschina-mirror/xuejm-sharding-core.git
git@api.gitlife.ru:oschina-mirror/xuejm-sharding-core.git
oschina-mirror
xuejm-sharding-core
xuejm-sharding-core