pterodactyl / panel

Pterodactyl® is a free, open-source game server management panel built with PHP, React, and Go. Designed with security in mind, Pterodactyl runs all game servers in isolated Docker containers while exposing a beautiful and intuitive UI to end users.
https://pterodactyl.io
Other
6.66k stars 1.69k forks source link

SQL Exception with nullable variables #3038

Closed acl1704 closed 3 years ago

acl1704 commented 3 years ago

Background (please complete the following information):

Describe the bug Creating a server with variables that are all blank, and are all nullable, results in an Error 500, specifically:

[2021-01-26 11:38:30] production.ERROR: QueryException: SQLSTATE[23000]: Integrity constraint violation: 1048 Column 'variable_value' cannot be null (SQL: insert intoserver_variables(server_id,variable_id,variable_value) values (86, 249, ?)) in /var/www/pterodactyl/vendor/laravel/framework/src/Illuminate/Database/Connection.php:671

To Reproduce Steps to reproduce the behavior:

  1. Use an egg where all variables available are nullable.
  2. Leave all variables blank during server creation.
  3. Create server.
DaneEveritt commented 3 years ago

Please include the full stacktrace.

acl1704 commented 3 years ago

[2021-01-26 11:38:30] production.ERROR: QueryException: SQLSTATE[23000]: Integrity constraint violation: 1048 Column 'variable_value' cannot be null (SQL: insert into `server_variables` (`server_id`, `variable_id`, `variable_value`) values (86, 249, ?)) in /var/www/pterodactyl/vendor/laravel/framework/src/Illuminate/Database/Connection.php:671
Stack trace:
#0 /var/www/pterodactyl/vendor/laravel/framework/src/Illuminate/Database/Connection.php(631): Illuminate\Database\Connection->runQueryCallback
#1 /var/www/pterodactyl/vendor/laravel/framework/src/Illuminate/Database/Connection.php(465): Illuminate\Database\Connection->run
#2 /var/www/pterodactyl/vendor/laravel/framework/src/Illuminate/Database/Connection.php(417): Illuminate\Database\Connection->statement
#3 /var/www/pterodactyl/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(2728): Illuminate\Database\Connection->insert
#4 /var/www/pterodactyl/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Builder.php(1403): Illuminate\Database\Query\Builder->insert
#5 /var/www/pterodactyl/app/Repositories/Eloquent/EloquentRepository.php(315): Illuminate\Database\Eloquent\Builder->__call
#6 /var/www/pterodactyl/app/Services/Servers/ServerCreationService.php(290): Pterodactyl\Repositories\Eloquent\EloquentRepository->insert
#7 /var/www/pterodactyl/app/Services/Servers/ServerCreationService.php(169): Pterodactyl\Services\Servers\ServerCreationService->storeEggVariables
#8 /var/www/pterodactyl/vendor/laravel/framework/src/Illuminate/Database/Concerns/ManagesTransactions.php(28): Pterodactyl\Services\Servers\ServerCreationService->Pterodactyl\Services\Servers\{closure}
#9 /var/www/pterodactyl/app/Services/Servers/ServerCreationService.php(172): Illuminate\Database\Connection->transaction
#10 /var/www/pterodactyl/app/Http/Controllers/Admin/Servers/CreateServerController.php(126): Pterodactyl\Services\Servers\ServerCreationService->handle
#11 (0): Pterodactyl\Http\Controllers\Admin\Servers\CreateServerController->store
#12 /var/www/pterodactyl/vendor/laravel/framework/src/Illuminate/Routing/Controller.php(54): call_user_func_array
#13 /var/www/pterodactyl/vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php(45): Illuminate\Routing\Controller->callAction
#14 /var/www/pterodactyl/vendor/laravel/framework/src/Illuminate/Routing/Route.php(239): Illuminate\Routing\ControllerDispatcher->dispatch
#15 /var/www/pterodactyl/vendor/laravel/framework/src/Illuminate/Routing/Route.php(196): Illuminate\Routing\Route->runController
#16 /var/www/pterodactyl/vendor/laravel/framework/src/Illuminate/Routing/Router.php(685): Illuminate\Routing\Route->run
#17 /var/www/pterodactyl/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(128): Illuminate\Routing\Router->Illuminate\Routing\{closure}
#18 /var/www/pterodactyl/app/Http/Middleware/AdminAuthenticate.php(33): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}
#19 /var/www/pterodactyl/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Pterodactyl\Http\Middleware\AdminAuthenticate->handle
#20 /var/www/pterodactyl/app/Http/Middleware/RequireTwoFactorAuthentication.php(68): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}
#21 /var/www/pterodactyl/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Pterodactyl\Http\Middleware\RequireTwoFactorAuthentication->handle
#22 /var/www/pterodactyl/app/Http/Middleware/LanguageMiddleware.php(37): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}
#23 /var/www/pterodactyl/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Pterodactyl\Http\Middleware\LanguageMiddleware->handle
#24 /var/www/pterodactyl/vendor/laravel/framework/src/Illuminate/Routing/Middleware/SubstituteBindings.php(41): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}
#25 /var/www/pterodactyl/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\Routing\Middleware\SubstituteBindings->handle
#26 /var/www/pterodactyl/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/VerifyCsrfToken.php(76): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}
#27 /var/www/pterodactyl/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\Foundation\Http\Middleware\VerifyCsrfToken->handle
#28 /var/www/pterodactyl/vendor/laravel/framework/src/Illuminate/Session/Middleware/AuthenticateSession.php(58): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}
#29 /var/www/pterodactyl/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\Session\Middleware\AuthenticateSession->handle
#30 /var/www/pterodactyl/vendor/laravel/framework/src/Illuminate/Auth/Middleware/Authenticate.php(44): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}
#31 /var/www/pterodactyl/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\Auth\Middleware\Authenticate->handle
#32 /var/www/pterodactyl/vendor/laravel/framework/src/Illuminate/View/Middleware/ShareErrorsFromSession.php(49): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}
#33 /var/www/pterodactyl/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\View\Middleware\ShareErrorsFromSession->handle
#34 /var/www/pterodactyl/vendor/laravel/framework/src/Illuminate/Session/Middleware/StartSession.php(116): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}
#35 /var/www/pterodactyl/vendor/laravel/framework/src/Illuminate/Session/Middleware/StartSession.php(62): Illuminate\Session\Middleware\StartSession->handleStatefulRequest
#36 /var/www/pterodactyl/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\Session\Middleware\StartSession->handle
#37 /var/www/pterodactyl/vendor/laravel/framework/src/Illuminate/Cookie/Middleware/AddQueuedCookiesToResponse.php(37): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}
#38 /var/www/pterodactyl/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse->handle
#39 /var/www/pterodactyl/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(103): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}
#40 /var/www/pterodactyl/vendor/laravel/framework/src/Illuminate/Routing/Router.php(687): Illuminate\Pipeline\Pipeline->then
#41 /var/www/pterodactyl/vendor/laravel/framework/src/Illuminate/Routing/Router.php(662): Illuminate\Routing\Router->runRouteWithinStack
#42 /var/www/pterodactyl/vendor/laravel/framework/src/Illuminate/Routing/Router.php(628): Illuminate\Routing\Router->runRoute
#43 /var/www/pterodactyl/vendor/laravel/framework/src/Illuminate/Routing/Router.php(617): Illuminate\Routing\Router->dispatchToRoute
#44 /var/www/pterodactyl/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(165): Illuminate\Routing\Router->dispatch
#45 /var/www/pterodactyl/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(128): Illuminate\Foundation\Http\Kernel->Illuminate\Foundation\Http\{closure}
#46 /var/www/pterodactyl/vendor/fideloper/proxy/src/TrustProxies.php(57): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}
#47 /var/www/pterodactyl/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Fideloper\Proxy\TrustProxies->handle
#48 /var/www/pterodactyl/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php(21): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}
#49 /var/www/pterodactyl/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\Foundation\Http\Middleware\TransformsRequest->handle
#50 /var/www/pterodactyl/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php(21): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}
#51 /var/www/pterodactyl/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\Foundation\Http\Middleware\TransformsRequest->handle
#52 /var/www/pterodactyl/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ValidatePostSize.php(27): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}
#53 /var/www/pterodactyl/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\Foundation\Http\Middleware\ValidatePostSize->handle
#54 /var/www/pterodactyl/vendor/laravel/framework/src/Illuminate/Cookie/Middleware/EncryptCookies.php(66): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}
#55 /var/www/pterodactyl/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\Cookie\Middleware\EncryptCookies->handle
#56 /var/www/pterodactyl/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/CheckForMaintenanceMode.php(63): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}
#57 /var/www/pterodactyl/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\Foundation\Http\Middleware\CheckForMaintenanceMode->handle
#58 /var/www/pterodactyl/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(103): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}
#59 /var/www/pterodactyl/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(140): Illuminate\Pipeline\Pipeline->then
#60 /var/www/pterodactyl/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(109): Illuminate\Foundation\Http\Kernel->sendRequestThroughRouter
#61 /var/www/pterodactyl/public/index.php(53): Illuminate\Foundation\Http\Kernel->handle```