Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Problem with new v3 install - Undefined property: stdClass::$majorOutage #4397

Closed
Digital-Daz opened this issue Jun 9, 2024 · 9 comments
Closed

Comments

@Digital-Daz
Copy link

Hi all, I have just installed version 3.x and after creating a component my status page now gives the above error.

Any ideas where I can begin to look?

TIA
Daz

@Digital-Daz
Copy link
Author

Maybe this helps:

[previous exception] [object] (ErrorException(code: 0): Undefined property: stdClass::$majorOutage at /var/www/Cachet/vendor/cachethq/core/src/Status.php:57)
[stacktrace]
#0 /var/www/Cachet/vendor/laravel/framework/src/Illuminate/Foundation/Bootstrap/HandleExceptions.php(255): Illuminate\Foundation\Bootstrap\HandleExceptions->handleError()
#1 /var/www/Cachet/vendor/cachethq/core/src/Status.php(57): Illuminate\Foundation\Bootstrap\HandleExceptions->Illuminate\Foundation\Bootstrap\{closure}()
#2 /var/www/Cachet/vendor/cachethq/core/src/Status.php(22): Cachet\Status->majorOutage()
#3 /var/www/Cachet/vendor/cachethq/core/src/View/Components/StatusBar.php(18): Cachet\Status->current()
#4 /var/www/Cachet/vendor/laravel/framework/src/Illuminate/View/Component.php(135): Cachet\View\Components\StatusBar->render()
#5 /var/www/Cachet/storage/framework/views/b29c17fee5685ace755096dfc31a7fc7.php(60): Illuminate\View\Component->resolveView()
#6 /var/www/Cachet/vendor/laravel/framework/src/Illuminate/Filesystem/Filesystem.php(123): require('...')
#7 /var/www/Cachet/vendor/laravel/framework/src/Illuminate/Filesystem/Filesystem.php(124): Illuminate\Filesystem\Filesystem::Illuminate\Filesystem\{closure}()
#8 /var/www/Cachet/vendor/laravel/framework/src/Illuminate/View/Engines/PhpEngine.php(58): Illuminate\Filesystem\Filesystem->getRequire()
#9 /var/www/Cachet/vendor/livewire/livewire/src/Mechanisms/ExtendBlade/ExtendedCompilerEngine.php(22): Illuminate\View\Engines\PhpEngine->evaluatePath()
#10 /var/www/Cachet/vendor/laravel/framework/src/Illuminate/View/Engines/CompilerEngine.php(72): Livewire\Mechanisms\ExtendBlade\ExtendedCompilerEngine->evaluatePath()
#11 /var/www/Cachet/vendor/livewire/livewire/src/Mechanisms/ExtendBlade/ExtendedCompilerEngine.php(10): Illuminate\View\Engines\CompilerEngine->get()
#12 /var/www/Cachet/vendor/laravel/framework/src/Illuminate/View/View.php(207): Livewire\Mechanisms\ExtendBlade\ExtendedCompilerEngine->get()
#13 /var/www/Cachet/vendor/laravel/framework/src/Illuminate/View/View.php(190): Illuminate\View\View->getContents()
#14 /var/www/Cachet/vendor/laravel/framework/src/Illuminate/View/View.php(159): Illuminate\View\View->renderContents()
#15 /var/www/Cachet/vendor/laravel/framework/src/Illuminate/Http/Response.php(69): Illuminate\View\View->render()
#16 /var/www/Cachet/vendor/laravel/framework/src/Illuminate/Http/Response.php(35): Illuminate\Http\Response->setContent()
#17 /var/www/Cachet/vendor/laravel/framework/src/Illuminate/Routing/Router.php(918): Illuminate\Http\Response->__construct()
#18 /var/www/Cachet/vendor/laravel/framework/src/Illuminate/Routing/Router.php(885): Illuminate\Routing\Router::toResponse()
#19 /var/www/Cachet/vendor/laravel/framework/src/Illuminate/Routing/Router.php(805): Illuminate\Routing\Router->prepareResponse()
#20 /var/www/Cachet/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(144): Illuminate\Routing\Router->Illuminate\Routing\{closure}()
#21 /var/www/Cachet/vendor/laravel/framework/src/Illuminate/Routing/Middleware/SubstituteBindings.php(50): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#22 /var/www/Cachet/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(183): Illuminate\Routing\Middleware\SubstituteBindings->handle()
#23 /var/www/Cachet/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/VerifyCsrfToken.php(78): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#24 /var/www/Cachet/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(183): Illuminate\Foundation\Http\Middleware\VerifyCsrfToken->handle()
#25 /var/www/Cachet/vendor/laravel/framework/src/Illuminate/View/Middleware/ShareErrorsFromSession.php(49): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#26 /var/www/Cachet/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(183): Illuminate\View\Middleware\ShareErrorsFromSession->handle()
#27 /var/www/Cachet/vendor/laravel/framework/src/Illuminate/Session/Middleware/StartSession.php(121): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#28 /var/www/Cachet/vendor/laravel/framework/src/Illuminate/Session/Middleware/StartSession.php(64): Illuminate\Session\Middleware\StartSession->handleStatefulRequest()
#29 /var/www/Cachet/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(183): Illuminate\Session\Middleware\StartSession->handle()
#30 /var/www/Cachet/vendor/laravel/framework/src/Illuminate/Cookie/Middleware/AddQueuedCookiesToResponse.php(37): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#31 /var/www/Cachet/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(183): Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse->handle()
#32 /var/www/Cachet/vendor/laravel/framework/src/Illuminate/Cookie/Middleware/EncryptCookies.php(67): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#33 /var/www/Cachet/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(183): Illuminate\Cookie\Middleware\EncryptCookies->handle()
#34 /var/www/Cachet/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(119): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#35 /var/www/Cachet/vendor/laravel/framework/src/Illuminate/Routing/Router.php(805): Illuminate\Pipeline\Pipeline->then()
#36 /var/www/Cachet/vendor/laravel/framework/src/Illuminate/Routing/Router.php(784): Illuminate\Routing\Router->runRouteWithinStack()
#37 /var/www/Cachet/vendor/laravel/framework/src/Illuminate/Routing/Router.php(748): Illuminate\Routing\Router->runRoute()
#38 /var/www/Cachet/vendor/laravel/framework/src/Illuminate/Routing/Router.php(737): Illuminate\Routing\Router->dispatchToRoute()
#39 /var/www/Cachet/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(200): Illuminate\Routing\Router->dispatch()
#40 /var/www/Cachet/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(144): Illuminate\Foundation\Http\Kernel->Illuminate\Foundation\Http\{closure}()
#41 /var/www/Cachet/vendor/livewire/livewire/src/Features/SupportDisablingBackButtonCache/DisableBackButtonCacheMiddleware.php(19): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#42 /var/www/Cachet/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(183): Livewire\Features\SupportDisablingBackButtonCache\DisableBackButtonCacheMiddleware->handle()
#43 /var/www/Cachet/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php(21): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#44 /var/www/Cachet/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ConvertEmptyStringsToNull.php(31): Illuminate\Foundation\Http\Middleware\TransformsRequest->handle()
#45 /var/www/Cachet/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(183): Illuminate\Foundation\Http\Middleware\ConvertEmptyStringsToNull->handle()
#46 /var/www/Cachet/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php(21): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#47 /var/www/Cachet/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TrimStrings.php(40): Illuminate\Foundation\Http\Middleware\TransformsRequest->handle()
#48 /var/www/Cachet/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(183): Illuminate\Foundation\Http\Middleware\TrimStrings->handle()
#49 /var/www/Cachet/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ValidatePostSize.php(27): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#50 /var/www/Cachet/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(183): Illuminate\Foundation\Http\Middleware\ValidatePostSize->handle()
#51 /var/www/Cachet/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/PreventRequestsDuringMaintenance.php(99): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#52 /var/www/Cachet/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(183): Illuminate\Foundation\Http\Middleware\PreventRequestsDuringMaintenance->handle()
#53 /var/www/Cachet/vendor/laravel/framework/src/Illuminate/Http/Middleware/HandleCors.php(49): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#54 /var/www/Cachet/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(183): Illuminate\Http\Middleware\HandleCors->handle()
#55 /var/www/Cachet/vendor/laravel/framework/src/Illuminate/Http/Middleware/TrustProxies.php(39): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#56 /var/www/Cachet/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(183): Illuminate\Http\Middleware\TrustProxies->handle()
#57 /var/www/Cachet/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(119): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#58 /var/www/Cachet/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(175): Illuminate\Pipeline\Pipeline->then()
#59 /var/www/Cachet/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(144): Illuminate\Foundation\Http\Kernel->sendRequestThroughRouter()
#60 /var/www/Cachet/public/index.php(60): Illuminate\Foundation\Http\Kernel->handle()
#61 {main}

@jbrooksuk
Copy link
Member

Hey @PBXForums, sorry you're having this issue! Do you have any components currently configured?

@Digital-Daz
Copy link
Author

Hi,

Yes, I created one component group and one component to test with.

@Digital-Daz
Copy link
Author

I can confirm that deleting the component fixes it.

@jbrooksuk
Copy link
Member

Interesting. Can you provide more information on the group and component you're creating that causes this exception? What status does the component have etc?

@Digital-Daz
Copy link
Author


component
I have recreated another without adding it to a component group and get an error.

As simple as can be really.

@Digital-Daz
Copy link
Author

Digital-Daz commented Jun 13, 2024

Just to come back on this issue...

I'm not a programmer but manage to find the following call seemed to have the problem:

return ($this->components()->majorOutage / $this->components()->total) * 100 >= $majorOutageRate;

Looking at the following function I could see that it was an sql query of some sort

    public function components()
    {
        return $this->components ??= Component::query()
            ->toBase()
            ->selectRaw('count(*) as total')
            ->selectRaw('sum(case when status = ? then 1 else 0 end) as operational', [ComponentStatusEnum::operational])
            ->selectRaw('sum(case when status = ? then 1 else 0 end) as performanceIssues', [ComponentStatusEnum::performance_issues])
            ->selectRaw('sum(case when status = ? then 1 else 0 end) as partialOutage', [ComponentStatusEnum::partial_outage])
            ->selectRaw('sum(case when status = ? then 1 else 0 end) as majorOutage', [ComponentStatusEnum::major_outage])
            // @todo Handle authenticated users.
            ->first();
    }

I am using postgresql and way back in my memory, I remember something about case sensitivity I had from a problem years ago and so I changed the previous call to:

return ($this->components()->majoroutage / $this->components()->total) * 100 >= $majorOutageRate;

This now seems to work just fine.

I'm probably barking up the wrong tree but it may help.

@jbrooksuk
Copy link
Member

@PBXForums that sounds like it's the issue! I'll fix this.

@jbrooksuk
Copy link
Member

This was fixed in cachethq/core.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants