ThingEngineering / wowthing-again

WoWthing (again)
GNU General Public License v3.0
37 stars 17 forks source link

operator class "gin_trgm_ops" does not exist for access method "gin" #414

Closed X015 closed 2 years ago

X015 commented 2 years ago

Fresh install on Debian based system

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

      Failed executing DbCommand (21ms) [Parameters=[], CommandType='Text', CommandTimeout='30']

      CREATE INDEX ix_wow_item_name ON wow_item USING gin (name gin_trgm_ops);

crit: Microsoft.AspNetCore.Hosting.Diagnostics[6]

      Application startup exception

      Npgsql.PostgresException (0x80004005): 42704: operator class "gin_trgm_ops" does not exist for access method "gin"

         at Npgsql.Internal.NpgsqlConnector.<ReadMessage>g__ReadMessageLong|211_0(NpgsqlConnector connector, Boolean async, DataRowLoadingMode dataRowLoadingMode, Boolean readingNotifications, Boolean isReadingPrependedMessage)

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

         at Npgsql.NpgsqlDataReader.NextResult()

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

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

         at Npgsql.NpgsqlCommand.ExecuteNonQuery(Boolean async, CancellationToken cancellationToken)

         at Npgsql.NpgsqlCommand.ExecuteNonQuery()

         at Microsoft.EntityFrameworkCore.Storage.RelationalCommand.ExecuteNonQuery(RelationalCommandParameterObject parameterObject)

         at Microsoft.EntityFrameworkCore.Migrations.MigrationCommand.ExecuteNonQuery(IRelationalConnection connection, IReadOnlyDictionary`2 parameterValues)

         at Microsoft.EntityFrameworkCore.Migrations.Internal.MigrationCommandExecutor.ExecuteNonQuery(IEnumerable`1 migrationCommands, IRelationalConnection connection)

         at Microsoft.EntityFrameworkCore.Migrations.Internal.Migrator.Migrate(String targetMigration)

         at Microsoft.EntityFrameworkCore.RelationalDatabaseFacadeExtensions.Migrate(DatabaseFacade databaseFacade)

         at Wowthing.Web.Startup.Configure(IApplicationBuilder app, IServiceProvider serviceProvider, WowDbContext dbContext) in /app/src/Wowthing.Web/Startup.cs:line 156

         at System.RuntimeMethodHandle.InvokeMethod(Object target, Span`1& arguments, Signature sig, Boolean constructor, Boolean wrapExceptions)

         at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)

         at Microsoft.AspNetCore.Hosting.ConfigureBuilder.Invoke(Object instance, IApplicationBuilder builder)

         at Microsoft.AspNetCore.Hosting.ConfigureBuilder.<>c__DisplayClass4_0.<Build>b__0(IApplicationBuilder builder)

         at Microsoft.AspNetCore.Hosting.GenericWebHostBuilder.<>c__DisplayClass15_0.<UseStartup>b__1(IApplicationBuilder app)

         at Microsoft.AspNetCore.Mvc.Filters.MiddlewareFilterBuilderStartupFilter.<>c__DisplayClass0_0.<Configure>g__MiddlewareFilterBuilder|0(IApplicationBuilder builder)

         at Microsoft.AspNetCore.HostFilteringStartupFilter.<>c__DisplayClass0_0.<Configure>b__0(IApplicationBuilder app)

         at Microsoft.AspNetCore.Watch.BrowserRefresh.HostingStartup.<>c__DisplayClass1_0.<Configure>b__0(IApplicationBuilder app)

         at Microsoft.AspNetCore.Hosting.GenericWebHostService.StartAsync(CancellationToken cancellationToken)

        Exception data:

          Severity: ERROR

          SqlState: 42704

          MessageText: operator class "gin_trgm_ops" does not exist for access method "gin"

          File: indexcmds.c

          Line: 2007

          Routine: ResolveOpClass

Unhandled exception. Npgsql.PostgresException (0x80004005): 42704: operator class "gin_trgm_ops" does not exist for access method "gin"

   at Npgsql.Internal.NpgsqlConnector.<ReadMessage>g__ReadMessageLong|211_0(NpgsqlConnector connector, Boolean async, DataRowLoadingMode dataRowLoadingMode, Boolean readingNotifications, Boolean isReadingPrependedMessage)

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

   at Npgsql.NpgsqlDataReader.NextResult()

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

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

   at Npgsql.NpgsqlCommand.ExecuteNonQuery(Boolean async, CancellationToken cancellationToken)

   at Npgsql.NpgsqlCommand.ExecuteNonQuery()

   at Microsoft.EntityFrameworkCore.Storage.RelationalCommand.ExecuteNonQuery(RelationalCommandParameterObject parameterObject)

   at Microsoft.EntityFrameworkCore.Migrations.MigrationCommand.ExecuteNonQuery(IRelationalConnection connection, IReadOnlyDictionary`2 parameterValues)

   at Microsoft.EntityFrameworkCore.Migrations.Internal.MigrationCommandExecutor.ExecuteNonQuery(IEnumerable`1 migrationCommands, IRelationalConnection connection)

   at Microsoft.EntityFrameworkCore.Migrations.Internal.Migrator.Migrate(String targetMigration)

   at Microsoft.EntityFrameworkCore.RelationalDatabaseFacadeExtensions.Migrate(DatabaseFacade databaseFacade)

   at Wowthing.Web.Startup.Configure(IApplicationBuilder app, IServiceProvider serviceProvider, WowDbContext dbContext) in /app/src/Wowthing.Web/Startup.cs:line 156

   at System.RuntimeMethodHandle.InvokeMethod(Object target, Span`1& arguments, Signature sig, Boolean constructor, Boolean wrapExceptions)

   at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)

   at Microsoft.AspNetCore.Hosting.ConfigureBuilder.Invoke(Object instance, IApplicationBuilder builder)

   at Microsoft.AspNetCore.Hosting.ConfigureBuilder.<>c__DisplayClass4_0.<Build>b__0(IApplicationBuilder builder)

   at Microsoft.AspNetCore.Hosting.GenericWebHostBuilder.<>c__DisplayClass15_0.<UseStartup>b__1(IApplicationBuilder app)

   at Microsoft.AspNetCore.Mvc.Filters.MiddlewareFilterBuilderStartupFilter.<>c__DisplayClass0_0.<Configure>g__MiddlewareFilterBuilder|0(IApplicationBuilder builder)

   at Microsoft.AspNetCore.HostFilteringStartupFilter.<>c__DisplayClass0_0.<Configure>b__0(IApplicationBuilder app)

   at Microsoft.AspNetCore.Watch.BrowserRefresh.HostingStartup.<>c__DisplayClass1_0.<Configure>b__0(IApplicationBuilder app)

   at Microsoft.AspNetCore.Hosting.GenericWebHostService.StartAsync(CancellationToken cancellationToken)

   at Microsoft.Extensions.Hosting.Internal.Host.StartAsync(CancellationToken cancellationToken)

   at Microsoft.Extensions.Hosting.HostingAbstractionsHostExtensions.RunAsync(IHost host, CancellationToken token)

   at Microsoft.Extensions.Hosting.HostingAbstractionsHostExtensions.RunAsync(IHost host, CancellationToken token)

   at Microsoft.Extensions.Hosting.HostingAbstractionsHostExtensions.Run(IHost host)

   at Wowthing.Web.Program.Main(String[] args) in /app/src/Wowthing.Web/Program.cs:line 10

  Exception data:

    Severity: ERROR

    SqlState: 42704

    MessageText: operator class "gin_trgm_ops" does not exist for access method "gin"

    File: indexcmds.c

    Line: 2007

    Routine: ResolveOpClass

dotnet watch ❌ Exited with error code 134

dotnet watch ⏳ Waiting for a file to change before restarting dotnet...
madcowfred commented 2 years ago

The migrations are supposed to create the extension but uhh obviously don't.

X015 commented 2 years ago

Thank you got it working! I took it down with docker compose down and reinstalled it, I changed the redirect URL too point to my home server and not to localhost.

But i have a other Problem now

I can login via the BattleNET API and when trying to access the site i get this:

KABOOM! Something has gone horribly wrong, try reloading the page?

LOG:

[09:40:21.614 WRN Worker 2H] 129677501 UserUpload - Invalid realm: EU/Defias Brotherhood

[09:40:21.614 WRN Worker 2H] 129677501 UserUpload - Invalid realm: EU/Kilrogg

[09:40:21.614 WRN Worker 2H] 129677501 UserUpload - Invalid realm: EU/Ravencrest

and this

[11:26:54.440 ERR Scheduler ] Kaboom!

StackExchange.Redis.RedisConnectionException: No connection is active/available to service this operation: SET lock:scheduler, mc: 1/1/0, mgr: 10 of 10 available, clientName: Wowthing.Lib, IOCP: (Busy=0,Free=1000,Min=4,Max=1000), WORKER: (Busy=2,Free=32765,Min=4,Max=32767), v: 2.2.88.56325

at StackExchange.Redis.ConnectionMultiplexer.ThrowFailed[T](TaskCompletionSource`1 source, Exception unthrownException) in /_/src/StackExchange.Redis/ConnectionMultiplexer.cs:line 2829

--- End of stack trace from previous location ---

at Wowthing.Lib.Repositories.JobRepository.AcquireLockAsync(String key, String value, TimeSpan expiry) in /app/src/Wowthing.Lib/Repositories/JobRepository.cs:line 88

madcowfred commented 2 years ago

The scheduler one seems weird, it should be able to contact Redis if it's running. The other one is most likely that scheduled jobs are terrible and don't handle errors properly, can check the JS console (F11 usually) but easiest fix: