MassTransit выбрасывает ошибки в журналеC#

Место общения программистов C#
Ответить
Anonymous
 MassTransit выбрасывает ошибки в журнале

Сообщение Anonymous »

В моем решении, которое содержит проект, который должен обрабатывать длинные задания с MassTransit MassTransit, создает странные журналы ошибок. Сервис реплицируется через Docker Swarm, чтобы иметь несколько параллельных экземпляров, работающих на потенциально длительных заданиях.cfg.UsingRabbitMq((context, rabbitCfg) =>
{
rabbitCfg.UseDelayedMessageScheduler();

rabbitCfg.PrefetchCount = 1;
rabbitCfg.Exclusive = false;
rabbitCfg.Durable = true;

rabbitCfg.Host(appSettings.BrokerSettings.HostName, "/", h =>
{
h.Username(appSettings.BrokerSettings.UserName);
h.Password(appSettings.BrokerSettings.Password);
h.Heartbeat(600);
});

rabbitCfg.ConfigureEndpoints(context);
});
< /code>
И это конфигурация для потребителя: < /p>
c.Options(o => o
.SetJobTimeout(TimeSpan.FromHours(5))
.SetConcurrentJobLimit(1))
.SetRetry(r => r.Interval(3, TimeSpan.FromMinutes(1)));
< /code>
это журнал: < /p>
fail: Microsoft.EntityFrameworkCore.Database.Transaction[20205]

An error occurred using a transaction.

fail: Microsoft.EntityFrameworkCore.Database.Transaction[20205]

An error occurred using a transaction.

warn: MassTransit.ReceiveTransport[0]

Transaction rollback failed

System.InvalidOperationException: This NpgsqlTransaction has completed; it is no longer usable.

at Npgsql.ThrowHelper.ThrowInvalidOperationException(String message)

at Npgsql.NpgsqlTransaction.Rollback(Boolean async, CancellationToken cancellationToken)

at Microsoft.EntityFrameworkCore.Storage.RelationalTransaction.RollbackAsync(CancellationToken cancellationToken)

at Microsoft.EntityFrameworkCore.Storage.RelationalTransaction.RollbackAsync(CancellationToken cancellationToken)

at MassTransit.EntityFrameworkCoreIntegration.Saga.EntityFrameworkSagaRepositoryContextFactory`1.g__Rollback|11_0[T](IDbContextTransaction transaction) in /_/src/Persistence/MassTransit.EntityFrameworkCoreIntegration/EntityFrameworkCoreIntegration/Saga/EntityFrameworkSagaRepositoryContextFactory.cs:line 181

warn: MassTransit.ReceiveTransport[0]

R-RETRY rabbitmq://rabbitmq/JobType 01000000-0a00-0242-c5d8-08ddf4ea9d17 MassTransit.RetryPolicies.RetryConsumeContext

Npgsql.PostgresException (0x80004005): 40001: could not serialize access due to read/write dependencies among transactions

DETAIL: Detail redacted as it may contain sensitive data. Specify 'Include Error Detail' in the connection string to include this information.

at Npgsql.Internal.NpgsqlConnector.ReadMessageLong(Boolean async, DataRowLoadingMode dataRowLoadingMode, Boolean readingNotifications, Boolean isReadingPrependedMessage)

at System.Runtime.CompilerServices.PoolingAsyncValueTaskMethodBuilder`1.StateMachineBox`1.System.Threading.Tasks.Sources.IValueTaskSource.GetResult(Int16 token)

at Npgsql.Internal.NpgsqlConnector.ExecuteInternalCommand(Byte[] data, Boolean async, CancellationToken cancellationToken)

at Npgsql.NpgsqlTransaction.Commit(Boolean async, CancellationToken cancellationToken)

at Microsoft.EntityFrameworkCore.Storage.RelationalTransaction.CommitAsync(CancellationToken cancellationToken)

at Microsoft.EntityFrameworkCore.Storage.RelationalTransaction.CommitAsync(CancellationToken cancellationToken)

at MassTransit.EntityFrameworkCoreIntegration.Saga.EntityFrameworkSagaRepositoryContextFactory`1.WithinTransaction[T](DbContext context, CancellationToken cancellationToken, Func`1 callback) in /_/src/Persistence/MassTransit.EntityFrameworkCoreIntegration/EntityFrameworkCoreIntegration/Saga/EntityFrameworkSagaRepositoryContextFactory.cs:line 193

at MassTransit.EntityFrameworkCoreIntegration.Saga.EntityFrameworkSagaRepositoryContextFactory`1.WithinTransaction[T](DbContext context, CancellationToken cancellationToken, Func`1 callback) in /_/src/Persistence/MassTransit.EntityFrameworkCoreIntegration/EntityFrameworkCoreIntegration/Saga/EntityFrameworkSagaRepositoryContextFactory.cs:line 210

at MassTransit.EntityFrameworkCoreIntegration.Saga.EntityFrameworkSagaRepositoryContextFactory`1.WithinTransaction[T](DbContext context, CancellationToken cancellationToken, Func`1 callback) in /_/src/Persistence/MassTransit.EntityFrameworkCoreIntegration/EntityFrameworkCoreIntegration/Saga/EntityFrameworkSagaRepositoryContextFactory.cs:line 210

at MassTransit.EntityFrameworkCoreIntegration.Saga.EntityFrameworkSagaRepositoryContextFactory`1.Send[T](ConsumeContext`1 context, IPipe`1 next) in /_/src/Persistence/MassTransit.EntityFrameworkCoreIntegration/EntityFrameworkCoreIntegration/Saga/EntityFrameworkSagaRepositoryContextFactory.cs:line 81

at MassTransit.EntityFrameworkCoreIntegration.Saga.EntityFrameworkSagaRepositoryContextFactory`1.Send[T](ConsumeContext`1 context, IPipe`1 next) in /_/src/Persistence/MassTransit.EntityFrameworkCoreIntegration/EntityFrameworkCoreIntegration/Saga/EntityFrameworkSagaRepositoryContextFactory.cs:line 86

at MassTransit.DependencyInjection.DependencyInjectionSagaRepositoryContextFactory`1.Send[T](ConsumeContext`1 context, Func`3 send) in /_/src/MassTransit/DependencyInjection/DependencyInjection/DependencyInjectionSagaRepositoryContextFactory.cs:line 59

at MassTransit.Middleware.CorrelatedSagaFilter`2.Send(ConsumeContext`1 context, IPipe`1 next) in /_/src/MassTransit/Middleware/CorrelatedSagaFilter.cs:line 45

at MassTransit.Middleware.CorrelatedSagaFilter`2.Send(ConsumeContext`1 context, IPipe`1 next) in /_/src/MassTransit/Middleware/CorrelatedSagaFilter.cs:line 62

at MassTransit.Middleware.InMemoryOutboxFilter`2.Send(TContext context, IPipe`1 next) in /_/src/MassTransit/Middleware/InMemoryOutboxFilter.cs:line 35

at MassTransit.Middleware.InMemoryOutboxFilter`2.Send(TContext context, IPipe`1 next) in /_/src/MassTransit/Middleware/InMemoryOutboxFilter.cs:line 45

at MassTransit.Middleware.ScopeMessageFilter`1.Send(ConsumeContext`1 context, IPipe`1 next) in /_/src/MassTransit/Middleware/ScopeMessageFilter.cs:line 22

at MassTransit.Middleware.ScopeMessageFilter`1.Send(ConsumeContext`1 context, IPipe`1 next) in /_/src/MassTransit/Middleware/ScopeMessageFilter.cs:line 22

at MassTransit.Middleware.RetryFilter`1.MassTransit.IFilter.Send(TContext context, IPipe`1 next) in /_/src/MassTransit/Middleware/RetryFilter.cs:line 47

Exception data:

Severity: ERROR

SqlState: 40001

MessageText: could not serialize access due to read/write dependencies among transactions

Detail: Detail redacted as it may contain sensitive data. Specify 'Include Error Detail' in the connection string to include this information.

Hint: The transaction might succeed if retried.

File: predicate.c

Line: 4662

Routine: PreCommit_CheckForSerializationFailure

info: Microsoft.EntityFrameworkCore.Database.Command[20101]

Executed DbCommand (0ms) [Parameters=[p0='?' (DbType = Guid)], CommandType='Text', CommandTimeout='30']

SELECT m."CorrelationId", m."ActiveJobCount", m."ActiveJobs", m."ConcurrentJobLimit", m."CurrentState", m."GlobalConcurrentJobLimit", m."Instances", m."Name", m."OverrideJobLimit", m."OverrideLimitExpiration", m."Properties"

FROM (

SELECT *, xmin FROM "JobTypeSaga" WHERE "CorrelationId" = @p0 FOR UPDATE

) AS m

LIMIT 2

fail: Microsoft.EntityFrameworkCore.Database.Command[20102]

Failed executing DbCommand (0ms) [Parameters=[@p1='?' (DbType = Guid), @p0='?'], CommandType='Text', CommandTimeout='30']

UPDATE "JobTypeSaga" SET "Instances" = @p0

WHERE "CorrelationId" = @p1;

fail: Microsoft.EntityFrameworkCore.Update[10000]

An exception occurred in the database while saving changes for context type 'MassTransit.EntityFrameworkCoreIntegration.JobServiceSagaDbContext'.

System.InvalidOperationException: An exception has been raised that is likely due to a transient failure.

---> Microsoft.EntityFrameworkCore.DbUpdateException: An error occurred while saving the entity changes. See the inner exception for details.

---> Npgsql.PostgresException (0x80004005): 40001: could not serialize access due to read/write dependencies among transactions

DETAIL: Detail redacted as it may contain sensitive data. Specify 'Include Error Detail' in the connection string to include this information.

at Npgsql.Internal.NpgsqlConnector.ReadMessageLong(Boolean async, DataRowLoadingMode dataRowLoadingMode, Boolean readingNotifications, Boolean isReadingPrependedMessage)

at System.Runtime.CompilerServices.PoolingAsyncValueTaskMethodBuilder`1.StateMachineBox`1.System.Threading.Tasks.Sources.IValueTaskSource.GetResult(Int16 token)

at Npgsql.NpgsqlDataReader.NextResult(Boolean async, Boolean isConsuming, CancellationToken cancellationToken)

at Npgsql.NpgsqlDataReader.NextResult(Boolean async, Boolean isConsuming, CancellationToken cancellationToken)

at Npgsql.NpgsqlCommand.ExecuteReader(Boolean async, CommandBehavior behavior, CancellationToken cancellationToken)

at Npgsql.NpgsqlCommand.ExecuteReader(Boolean async, CommandBehavior behavior, CancellationToken cancellationToken)

at Npgsql.NpgsqlCommand.ExecuteDbDataReaderAsync(CommandBehavior behavior, CancellationToken cancellationToken)

at Microsoft.EntityFrameworkCore.Storage.RelationalCommand.ExecuteReaderAsync(RelationalCommandParameterObject parameterObject, CancellationToken cancellationToken)

at Microsoft.EntityFrameworkCore.Storage.RelationalCommand.ExecuteReaderAsync(RelationalCommandParameterObject parameterObject, CancellationToken cancellationToken)

at Microsoft.EntityFrameworkCore.Update.ReaderModificationCommandBatch.ExecuteAsync(IRelationalConnection connection, CancellationToken cancellationToken)

Exception data:

Severity: ERROR

SqlState: 40001

MessageText: could not serialize access due to read/write dependencies among transactions

Detail: Detail redacted as it may contain sensitive data. Specify 'Include Error Detail' in the connection string to include this information.

Hint: The transaction might succeed if retried.

File: predicate.c

Line: 4603

Routine: OnConflict_CheckForSerializationFailure

--- End of inner exception stack trace ---

at Microsoft.EntityFrameworkCore.Update.ReaderModificationCommandBatch.ExecuteAsync(IRelationalConnection connection, CancellationToken cancellationToken)

at Microsoft.EntityFrameworkCore.Update.Internal.BatchExecutor.ExecuteAsync(IEnumerable`1 commandBatches, IRelationalConnection connection, CancellationToken cancellationToken)

at Microsoft.EntityFrameworkCore.Update.Internal.BatchExecutor.ExecuteAsync(IEnumerable`1 commandBatches, IRelationalConnection connection, CancellationToken cancellationToken)

at Microsoft.EntityFrameworkCore.Update.Internal.BatchExecutor.ExecuteAsync(IEnumerable`1 commandBatches, IRelationalConnection connection, CancellationToken cancellationToken)

at Microsoft.EntityFrameworkCore.ChangeTracking.Internal.StateManager.SaveChangesAsync(IList`1 entriesToSave, CancellationToken cancellationToken)

at Microsoft.EntityFrameworkCore.ChangeTracking.Internal.StateManager.SaveChangesAsync(StateManager stateManager, Boolean acceptAllChangesOnSuccess, CancellationToken cancellationToken)

at Npgsql.EntityFrameworkCore.PostgreSQL.Storage.Internal.NpgsqlExecutionStrategy.ExecuteAsync[TState,TResult](TState state, Func`4 operation, Func`4 verifySucceeded, CancellationToken cancellationToken)

--- End of inner exception stack trace ---

at Npgsql.EntityFrameworkCore.PostgreSQL.Storage.Internal.NpgsqlExecutionStrategy.ExecuteAsync[TState,TResult](TState state, Func`4 operation, Func`4 verifySucceeded, CancellationToken cancellationToken)

at Microsoft.EntityFrameworkCore.DbContext.SaveChangesAsync(Boolean acceptAllChangesOnSuccess, CancellationToken cancellationToken)

System.InvalidOperationException: An exception has been raised that is likely due to a transient failure.

---> Microsoft.EntityFrameworkCore.DbUpdateException: An error occurred while saving the entity changes. See the inner exception for details.

---> Npgsql.PostgresException (0x80004005): 40001: could not serialize access due to read/write dependencies among transactions

DETAIL: Detail redacted as it may contain sensitive data. Specify 'Include Error Detail' in the connection string to include this information.

at Npgsql.Internal.NpgsqlConnector.ReadMessageLong(Boolean async, DataRowLoadingMode dataRowLoadingMode, Boolean readingNotifications, Boolean isReadingPrependedMessage)

at System.Runtime.CompilerServices.PoolingAsyncValueTaskMethodBuilder`1.StateMachineBox`1.System.Threading.Tasks.Sources.IValueTaskSource.GetResult(Int16 token)

at Npgsql.NpgsqlDataReader.NextResult(Boolean async, Boolean isConsuming, CancellationToken cancellationToken)

at Npgsql.NpgsqlDataReader.NextResult(Boolean async, Boolean isConsuming, CancellationToken cancellationToken)

at Npgsql.NpgsqlCommand.ExecuteReader(Boolean async, CommandBehavior behavior, CancellationToken cancellationToken)

at Npgsql.NpgsqlCommand.ExecuteReader(Boolean async, CommandBehavior behavior, CancellationToken cancellationToken)

at Npgsql.NpgsqlCommand.ExecuteDbDataReaderAsync(CommandBehavior behavior, CancellationToken cancellationToken)

at Microsoft.EntityFrameworkCore.Storage.RelationalCommand.ExecuteReaderAsync(RelationalCommandParameterObject parameterObject, CancellationToken cancellationToken)

at Microsoft.EntityFrameworkCore.Storage.RelationalCommand.ExecuteReaderAsync(RelationalCommandParameterObject parameterObject, CancellationToken cancellationToken)

at Microsoft.EntityFrameworkCore.Update.ReaderModificationCommandBatch.ExecuteAsync(IRelationalConnection connection, CancellationToken cancellationToken)

Exception data:

Severity: ERROR

SqlState: 40001

MessageText: could not serialize access due to read/write dependencies among transactions

Detail: Detail redacted as it may contain sensitive data. Specify 'Include Error Detail' in the connection string to include this information.

Hint: The transaction might succeed if retried.

File: predicate.c

Line: 4603

Routine: OnConflict_CheckForSerializationFailure

--- End of inner exception stack trace ---

at Microsoft.EntityFrameworkCore.Update.ReaderModificationCommandBatch.ExecuteAsync(IRelationalConnection connection, CancellationToken cancellationToken)

at Microsoft.EntityFrameworkCore.Update.Internal.BatchExecutor.ExecuteAsync(IEnumerable`1 commandBatches, IRelationalConnection connection, CancellationToken cancellationToken)

at Microsoft.EntityFrameworkCore.Update.Internal.BatchExecutor.ExecuteAsync(IEnumerable`1 commandBatches, IRelationalConnection connection, CancellationToken cancellationToken)

at Microsoft.EntityFrameworkCore.Update.Internal.BatchExecutor.ExecuteAsync(IEnumerable`1 commandBatches, IRelationalConnection connection, CancellationToken cancellationToken)

at Microsoft.EntityFrameworkCore.ChangeTracking.Internal.StateManager.SaveChangesAsync(IList`1 entriesToSave, CancellationToken cancellationToken)

at Microsoft.EntityFrameworkCore.ChangeTracking.Internal.StateManager.SaveChangesAsync(StateManager stateManager, Boolean acceptAllChangesOnSuccess, CancellationToken cancellationToken)

at Npgsql.EntityFrameworkCore.PostgreSQL.Storage.Internal.NpgsqlExecutionStrategy.ExecuteAsync[TState,TResult](TState state, Func`4 operation, Func`4 verifySucceeded, CancellationToken cancellationToken)

--- End of inner exception stack trace ---

at Npgsql.EntityFrameworkCore.PostgreSQL.Storage.Internal.NpgsqlExecutionStrategy.ExecuteAsync[TState,TResult](TState state, Func`4 operation, Func`4 verifySucceeded, CancellationToken cancellationToken)

at Microsoft.EntityFrameworkCore.DbContext.SaveChangesAsync(Boolean acceptAllChangesOnSuccess, CancellationToken cancellationToken)


Подробнее здесь: https://stackoverflow.com/questions/797 ... ors-in-log
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»