cerpus / Edlib

Edlib is an application for creating, sharing, storing and using rich interactive learning resources.
https://docs.edlib.com
GNU General Public License v3.0
40 stars 7 forks source link

Change CA config to support Redis clustering #2716

Closed Kamelon7 closed 4 months ago

Kamelon7 commented 4 months ago

While config/database.php is set up to support clustering, this only helps the webserver CA service (app). Some of the other services (fpm) still won't work with clustering enabled on Redis.

To Reproduce Connect CA to a Redis instance with clustering enabled, and see log errors.

Screenshots Log examples:

fpm-1      | {"message":"`SELECT` failed: ERR SELECT is not allowed in cluster mode [tcp://edlib-cerpus-test-cache.saiiw4.clustercfg.euw1.cache.amazonaws.com:6379]","context":{"requestId":"23279cff-e008-4216-b8c6-4953e39e34df","exception":{"class":"Predis\\Connection\\ConnectionException","message":"`SELECT` failed: ERR SELECT is not allowed in cluster mode [tcp://edlib-cerpus-test-cache.saiiw4.clustercfg.euw1.cache.amazonaws.com:6379]","code":0,"file":"/app/vendor/predis/predis/src/Connection/AbstractConnection.php:155","trace":["/app/vendor/predis/predis/src/Connection/StreamConnection.php:263","/app/vendor/predis/predis/src/Connection/AbstractConnection.php:180","/app/vendor/predis/predis/src/Connection/StreamConnection.php:288","/app/vendor/predis/predis/src/Connection/StreamConnection.php:394","/app/vendor/predis/predis/src/Connection/AbstractConnection.php:110","/app/vendor/predis/predis/src/Client.php:331","/app/vendor/predis/predis/src/Client.php:313","/app/vendor/laravel/framework/src/Illuminate/Redis/Connections/Connection.php:116","/app/vendor/laravel/framework/src/Illuminate/Redis/Connections/Connection.php:216","/app/vendor/laravel/framework/src/Illuminate/Cache/RedisStore.php:100","/app/vendor/laravel/framework/src/Illuminate/Cache/Repository.php:217","/app/vendor/laravel/framework/src/Illuminate/Cache/CacheManager.php:419","/app/vendor/laravel/framework/src/Illuminate/Support/Facades/Facade.php:338","/app/app/Http/Controllers/HealthController.php:17","/app/vendor/laravel/framework/src/Illuminate/Routing/Controller.php:54","/app/vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php:43","/app/vendor/laravel/framework/src/Illuminate/Routing/Route.php:259","/app/vendor/laravel/framework/src/Illuminate/Routing/Route.php:205","/app/vendor/laravel/framework/src/Illuminate/Routing/Router.php:798","/app/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:141","/app/vendor/laravel/framework/src/Illuminate/Routing/Middleware/SubstituteBindings.php:50","/app/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:180","/app/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/VerifyCsrfToken.php:78","/app/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:180","/app/vendor/laravel/framework/src/Illuminate/View/Middleware/ShareErrorsFromSession.php:49","/app/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:180","/app/vendor/laravel/framework/src/Illuminate/Session/Middleware/StartSession.php:121","/app/vendor/laravel/framework/src/Illuminate/Session/Middleware/StartSession.php:64","/app/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:180","/app/vendor/laravel/framework/src/Illuminate/Cookie/Middleware/AddQueuedCookiesToResponse.php:37","/app/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:180","/app/vendor/laravel/framework/src/Illuminate/Cookie/Middleware/EncryptCookies.php:67","/app/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:180","/app/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:116","/app/vendor/laravel/framework/src/Illuminate/Routing/Router.php:797","/app/vendor/laravel/framework/src/Illuminate/Routing/Router.php:776","/app/vendor/laravel/framework/src/Illuminate/Routing/Router.php:740","/app/vendor/laravel/framework/src/Illuminate/Routing/Router.php:729","/app/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php:190","/app/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:141","/app/vendor/laravel/vapor-core/src/Http/Middleware/ServeStaticAssets.php:21","/app/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:180","/app/app/Http/Middleware/RequestId.php:31","/app/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:180","/app/vendor/laravel/framework/src/Illuminate/Http/Middleware/TrustProxies.php:39","/app/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:180","/app/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php:21","/app/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ConvertEmptyStringsToNull.php:31","/app/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:180","/app/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php:21","/app/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TrimStrings.php:40","/app/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:180","/app/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ValidatePostSize.php:27","/app/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:180","/app/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/PreventRequestsDuringMaintenance.php:86","/app/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:180","/app/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:116","/app/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php:165","/app/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php:134","/app/public/index.php:53"]}},"level":400,"level_name":"ERROR","channel":"production","datetime":"2024-04-22T07:56:24.431737+00:00","extra":{}}