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

MFARequired column accessed before creation #244

Open
Cheddam opened this issue Jul 2, 2019 · 9 comments
Open

MFARequired column accessed before creation #244

Cheddam opened this issue Jul 2, 2019 · 9 comments

Comments

@Cheddam
Copy link
Member

Cheddam commented Jul 2, 2019

A user ran into an issue upgrading a Kitchen Sink install to the 2.4 branch during the dev/build, potentially caused by MFA SiteConfig being accessed prior to the database update. The resolution was to wipe the database, but this won't be possible for end-users when adopting MFA during an upgrade.

Stacktrace
ERROR [Emergency]: Uncaught SilverStripe\ORM\Connect\DatabaseException: Couldn't run query:

SELECT DISTINCT "SiteConfig"."ClassName", "SiteConfig"."LastEdited", "SiteConfig"."Created", "SiteConfig"."AllChangesEnabled", "SiteConfig"."MFARequired", "SiteConfig"."MFAGracePeriodExpires", "SiteConfig"."ReviewPeriodDays", "SiteConfig"."ReviewFrom", "SiteConfig"."ReviewSubject", "SiteConfig"."ReviewBody", "SiteConfig"."GACode", "SiteConfig"."FacebookURL", "SiteConfig"."TwitterUsername", "SiteConfig"."FooterLogoLink", "SiteConfig"."FooterLogoDescription", "SiteConfig"."FooterLogoSecondaryLink", "SiteConfig"."FooterLogoSecondaryDescription", "SiteConfig"."EmptySearch", "SiteConfig"."NoSearchResults", "SiteConfig"."MainFontFamily", "SiteConfig"."HeaderBackground", "SiteConfig"."NavigationBarBackground", "SiteConfig"."CarouselBackground", "SiteConfig"."FooterBackground", "SiteConfig"."AccentColor", "SiteConfig"."TextLinkColor", "SiteConfig"."AkismetKey", "SiteConfig"."Title", "SiteConfig"."Tagline", "SiteConfig"."CanViewType", "SiteConfig"."CanEditType", "SiteConfig"."CanCreateTopLevelType", "SiteConfig"."SubsiteID", "SiteConfig"."LogoID", "SiteConfig"."LogoRetinaID", "SiteConfig"."FooterLogoID", "SiteConfig"."FooterLogoRetinaID", "SiteConfig"."FooterLogoSecondaryID", "SiteConfig"."FavIconID", "SiteConfig"."AppleTouchIcon144ID", "SiteConfig"."AppleTouchIcon114ID", "SiteConfig"."AppleTouchIcon72ID", "SiteConfig"."AppleTouchIcon57ID", "SiteConfig"."ID",
CASE WHEN "SiteConfig"."ClassName" IS NOT NULL THEN "SiteConfig"."ClassName"
ELSE 'SilverStripe\SiteConfig\SiteConfig' END AS "RecordClassName"

FROM "SiteConfig"

LIMIT 1

Unknown column 'SiteConfig.MFARequired' in 'field list'
IN GET dev/build
Line 64 in /home/user/Projects/ss45/vendor/silverstripe/framework/src/ORM/Connect/DBConnector.php

Source

55: if (!empty($sql)) {
56: $formatter = new SQLFormatter();
57: $formattedSQL = $formatter->formatPlain($sql);
58: $msg = "Couldn't run query:\n\n{$formattedSQL}\n\n{$msg}";
59: }
60:
61: if ($errorLevel === E_USER_ERROR) {
62: // Treating errors as exceptions better allows for responding to errors
63: // in code, such as credential checking during installation

  • 64: throw new DatabaseException($msg, 0, null, $sql, $parameters);
    65: } else {
    66: user_error($msg, $errorLevel);
    67: }
    68: }
    69:
    70: /**

Trace

SilverStripe\ORM\Connect\DBConnector->databaseError(Couldn't run query:

SELECT DISTINCT "SiteConfig"."ClassName", "SiteConfig"."LastEdited", "SiteConfig"."Created", "SiteConfig"."AllChangesEnabled", "SiteConfig"."MFARequired", "SiteConfig"."MFAGracePeriodExpires", "SiteConfig"."ReviewPeriodDays", "SiteConfig"."ReviewFrom", "SiteConfig"."ReviewSubject", "SiteConfig"."ReviewBody", "SiteConfig"."GACode", "SiteConfig"."FacebookURL", "SiteConfig"."TwitterUsername", "SiteConfig"."FooterLogoLink", "SiteConfig"."FooterLogoDescription", "SiteConfig"."FooterLogoSecondaryLink", "SiteConfig"."FooterLogoSecondaryDescription", "SiteConfig"."EmptySearch", "SiteConfig"."NoSearchResults", "SiteConfig"."MainFontFamily", "SiteConfig"."HeaderBackground", "SiteConfig"."NavigationBarBackground", "SiteConfig"."CarouselBackground", "SiteConfig"."FooterBackground", "SiteConfig"."AccentColor", "SiteConfig"."TextLinkColor", "SiteConfig"."AkismetKey", "SiteConfig"."Title", "SiteConfig"."Tagline", "SiteConfig"."CanViewType", "SiteConfig"."CanEditType", "SiteConfig"."CanCreateTopLevelType", "SiteConfig"."SubsiteID", "SiteConfig"."LogoID", "SiteConfig"."LogoRetinaID", "SiteConfig"."FooterLogoID", "SiteConfig"."FooterLogoRetinaID", "SiteConfig"."FooterLogoSecondaryID", "SiteConfig"."FavIconID", "SiteConfig"."AppleTouchIcon144ID", "SiteConfig"."AppleTouchIcon114ID", "SiteConfig"."AppleTouchIcon72ID", "SiteConfig"."AppleTouchIcon57ID", "SiteConfig"."ID",
CASE WHEN "SiteConfig"."ClassName" IS NOT NULL THEN "SiteConfig"."ClassName"
ELSE 'SilverStripe\SiteConfig\SiteConfig' END AS "RecordClassName"

FROM "SiteConfig"

LIMIT 1

Unknown column 'SiteConfig.MFARequired' in 'field list', 256, SELECT DISTINCT "SiteConfig"."ClassName", "SiteConfig"."LastEdited", "SiteConfig"."Created", "SiteConfig"."AllChangesEnabled", "SiteConfig"."MFARequired", "SiteConfig"."MFAGracePeriodExpires", "SiteConfig"."ReviewPeriodDays", "SiteConfig"."ReviewFrom", "SiteConfig"."ReviewSubject", "SiteConfig"."ReviewBody", "SiteConfig"."GACode", "SiteConfig"."FacebookURL", "SiteConfig"."TwitterUsername", "SiteConfig"."FooterLogoLink", "SiteConfig"."FooterLogoDescription", "SiteConfig"."FooterLogoSecondaryLink", "SiteConfig"."FooterLogoSecondaryDescription", "SiteConfig"."EmptySearch", "SiteConfig"."NoSearchResults", "SiteConfig"."MainFontFamily", "SiteConfig"."HeaderBackground", "SiteConfig"."NavigationBarBackground", "SiteConfig"."CarouselBackground", "SiteConfig"."FooterBackground", "SiteConfig"."AccentColor", "SiteConfig"."TextLinkColor", "SiteConfig"."AkismetKey", "SiteConfig"."Title", "SiteConfig"."Tagline", "SiteConfig"."CanViewType", "SiteConfig"."CanEditType", "SiteConfig"."CanCreateTopLevelType", "SiteConfig"."SubsiteID", "SiteConfig"."LogoID", "SiteConfig"."LogoRetinaID", "SiteConfig"."FooterLogoID", "SiteConfig"."FooterLogoRetinaID", "SiteConfig"."FooterLogoSecondaryID", "SiteConfig"."FavIconID", "SiteConfig"."AppleTouchIcon144ID", "SiteConfig"."AppleTouchIcon114ID", "SiteConfig"."AppleTouchIcon72ID", "SiteConfig"."AppleTouchIcon57ID", "SiteConfig"."ID",
CASE WHEN "SiteConfig"."ClassName" IS NOT NULL THEN "SiteConfig"."ClassName"
ELSE 'SilverStripe\SiteConfig\SiteConfig' END AS "RecordClassName"
FROM "SiteConfig"
LIMIT 1)
MySQLiConnector.php:181

SilverStripe\ORM\Connect\MySQLiConnector->query(SELECT DISTINCT "SiteConfig"."ClassName", "SiteConfig"."LastEdited", "SiteConfig"."Created", "SiteConfig"."AllChangesEnabled", "SiteConfig"."MFARequired", "SiteConfig"."MFAGracePeriodExpires", "SiteConfig"."ReviewPeriodDays", "SiteConfig"."ReviewFrom", "SiteConfig"."ReviewSubject", "SiteConfig"."ReviewBody", "SiteConfig"."GACode", "SiteConfig"."FacebookURL", "SiteConfig"."TwitterUsername", "SiteConfig"."FooterLogoLink", "SiteConfig"."FooterLogoDescription", "SiteConfig"."FooterLogoSecondaryLink", "SiteConfig"."FooterLogoSecondaryDescription", "SiteConfig"."EmptySearch", "SiteConfig"."NoSearchResults", "SiteConfig"."MainFontFamily", "SiteConfig"."HeaderBackground", "SiteConfig"."NavigationBarBackground", "SiteConfig"."CarouselBackground", "SiteConfig"."FooterBackground", "SiteConfig"."AccentColor", "SiteConfig"."TextLinkColor", "SiteConfig"."AkismetKey", "SiteConfig"."Title", "SiteConfig"."Tagline", "SiteConfig"."CanViewType", "SiteConfig"."CanEditType", "SiteConfig"."CanCreateTopLevelType", "SiteConfig"."SubsiteID", "SiteConfig"."LogoID", "SiteConfig"."LogoRetinaID", "SiteConfig"."FooterLogoID", "SiteConfig"."FooterLogoRetinaID", "SiteConfig"."FooterLogoSecondaryID", "SiteConfig"."FavIconID", "SiteConfig"."AppleTouchIcon144ID", "SiteConfig"."AppleTouchIcon114ID", "SiteConfig"."AppleTouchIcon72ID", "SiteConfig"."AppleTouchIcon57ID", "SiteConfig"."ID",
CASE WHEN "SiteConfig"."ClassName" IS NOT NULL THEN "SiteConfig"."ClassName"
ELSE 'SilverStripe\SiteConfig\SiteConfig' END AS "RecordClassName"
FROM "SiteConfig"
LIMIT 1, 256)
MySQLiConnector.php:276

SilverStripe\ORM\Connect\MySQLiConnector->preparedQuery(SELECT DISTINCT "SiteConfig"."ClassName", "SiteConfig"."LastEdited", "SiteConfig"."Created", "SiteConfig"."AllChangesEnabled", "SiteConfig"."MFARequired", "SiteConfig"."MFAGracePeriodExpires", "SiteConfig"."ReviewPeriodDays", "SiteConfig"."ReviewFrom", "SiteConfig"."ReviewSubject", "SiteConfig"."ReviewBody", "SiteConfig"."GACode", "SiteConfig"."FacebookURL", "SiteConfig"."TwitterUsername", "SiteConfig"."FooterLogoLink", "SiteConfig"."FooterLogoDescription", "SiteConfig"."FooterLogoSecondaryLink", "SiteConfig"."FooterLogoSecondaryDescription", "SiteConfig"."EmptySearch", "SiteConfig"."NoSearchResults", "SiteConfig"."MainFontFamily", "SiteConfig"."HeaderBackground", "SiteConfig"."NavigationBarBackground", "SiteConfig"."CarouselBackground", "SiteConfig"."FooterBackground", "SiteConfig"."AccentColor", "SiteConfig"."TextLinkColor", "SiteConfig"."AkismetKey", "SiteConfig"."Title", "SiteConfig"."Tagline", "SiteConfig"."CanViewType", "SiteConfig"."CanEditType", "SiteConfig"."CanCreateTopLevelType", "SiteConfig"."SubsiteID", "SiteConfig"."LogoID", "SiteConfig"."LogoRetinaID", "SiteConfig"."FooterLogoID", "SiteConfig"."FooterLogoRetinaID", "SiteConfig"."FooterLogoSecondaryID", "SiteConfig"."FavIconID", "SiteConfig"."AppleTouchIcon144ID", "SiteConfig"."AppleTouchIcon114ID", "SiteConfig"."AppleTouchIcon72ID", "SiteConfig"."AppleTouchIcon57ID", "SiteConfig"."ID",
CASE WHEN "SiteConfig"."ClassName" IS NOT NULL THEN "SiteConfig"."ClassName"
ELSE 'SilverStripe\SiteConfig\SiteConfig' END AS "RecordClassName"
FROM "SiteConfig"
LIMIT 1, Array, 256)
Database.php:185

SilverStripe\ORM\Connect\Database->SilverStripe\ORM\Connect{closure}(SELECT DISTINCT "SiteConfig"."ClassName", "SiteConfig"."LastEdited", "SiteConfig"."Created", "SiteConfig"."AllChangesEnabled", "SiteConfig"."MFARequired", "SiteConfig"."MFAGracePeriodExpires", "SiteConfig"."ReviewPeriodDays", "SiteConfig"."ReviewFrom", "SiteConfig"."ReviewSubject", "SiteConfig"."ReviewBody", "SiteConfig"."GACode", "SiteConfig"."FacebookURL", "SiteConfig"."TwitterUsername", "SiteConfig"."FooterLogoLink", "SiteConfig"."FooterLogoDescription", "SiteConfig"."FooterLogoSecondaryLink", "SiteConfig"."FooterLogoSecondaryDescription", "SiteConfig"."EmptySearch", "SiteConfig"."NoSearchResults", "SiteConfig"."MainFontFamily", "SiteConfig"."HeaderBackground", "SiteConfig"."NavigationBarBackground", "SiteConfig"."CarouselBackground", "SiteConfig"."FooterBackground", "SiteConfig"."AccentColor", "SiteConfig"."TextLinkColor", "SiteConfig"."AkismetKey", "SiteConfig"."Title", "SiteConfig"."Tagline", "SiteConfig"."CanViewType", "SiteConfig"."CanEditType", "SiteConfig"."CanCreateTopLevelType", "SiteConfig"."SubsiteID", "SiteConfig"."LogoID", "SiteConfig"."LogoRetinaID", "SiteConfig"."FooterLogoID", "SiteConfig"."FooterLogoRetinaID", "SiteConfig"."FooterLogoSecondaryID", "SiteConfig"."FavIconID", "SiteConfig"."AppleTouchIcon144ID", "SiteConfig"."AppleTouchIcon114ID", "SiteConfig"."AppleTouchIcon72ID", "SiteConfig"."AppleTouchIcon57ID", "SiteConfig"."ID",
CASE WHEN "SiteConfig"."ClassName" IS NOT NULL THEN "SiteConfig"."ClassName"
ELSE 'SilverStripe\SiteConfig\SiteConfig' END AS "RecordClassName"
FROM "SiteConfig"
LIMIT 1)
Database.php:258

SilverStripe\ORM\Connect\Database->benchmarkQuery(SELECT DISTINCT "SiteConfig"."ClassName", "SiteConfig"."LastEdited", "SiteConfig"."Created", "SiteConfig"."AllChangesEnabled", "SiteConfig"."MFARequired", "SiteConfig"."MFAGracePeriodExpires", "SiteConfig"."ReviewPeriodDays", "SiteConfig"."ReviewFrom", "SiteConfig"."ReviewSubject", "SiteConfig"."ReviewBody", "SiteConfig"."GACode", "SiteConfig"."FacebookURL", "SiteConfig"."TwitterUsername", "SiteConfig"."FooterLogoLink", "SiteConfig"."FooterLogoDescription", "SiteConfig"."FooterLogoSecondaryLink", "SiteConfig"."FooterLogoSecondaryDescription", "SiteConfig"."EmptySearch", "SiteConfig"."NoSearchResults", "SiteConfig"."MainFontFamily", "SiteConfig"."HeaderBackground", "SiteConfig"."NavigationBarBackground", "SiteConfig"."CarouselBackground", "SiteConfig"."FooterBackground", "SiteConfig"."AccentColor", "SiteConfig"."TextLinkColor", "SiteConfig"."AkismetKey", "SiteConfig"."Title", "SiteConfig"."Tagline", "SiteConfig"."CanViewType", "SiteConfig"."CanEditType", "SiteConfig"."CanCreateTopLevelType", "SiteConfig"."SubsiteID", "SiteConfig"."LogoID", "SiteConfig"."LogoRetinaID", "SiteConfig"."FooterLogoID", "SiteConfig"."FooterLogoRetinaID", "SiteConfig"."FooterLogoSecondaryID", "SiteConfig"."FavIconID", "SiteConfig"."AppleTouchIcon144ID", "SiteConfig"."AppleTouchIcon114ID", "SiteConfig"."AppleTouchIcon72ID", "SiteConfig"."AppleTouchIcon57ID", "SiteConfig"."ID",
CASE WHEN "SiteConfig"."ClassName" IS NOT NULL THEN "SiteConfig"."ClassName"
ELSE 'SilverStripe\SiteConfig\SiteConfig' END AS "RecordClassName"
FROM "SiteConfig"
LIMIT 1, Closure, Array)
Database.php:187

SilverStripe\ORM\Connect\Database->preparedQuery(SELECT DISTINCT "SiteConfig"."ClassName", "SiteConfig"."LastEdited", "SiteConfig"."Created", "SiteConfig"."AllChangesEnabled", "SiteConfig"."MFARequired", "SiteConfig"."MFAGracePeriodExpires", "SiteConfig"."ReviewPeriodDays", "SiteConfig"."ReviewFrom", "SiteConfig"."ReviewSubject", "SiteConfig"."ReviewBody", "SiteConfig"."GACode", "SiteConfig"."FacebookURL", "SiteConfig"."TwitterUsername", "SiteConfig"."FooterLogoLink", "SiteConfig"."FooterLogoDescription", "SiteConfig"."FooterLogoSecondaryLink", "SiteConfig"."FooterLogoSecondaryDescription", "SiteConfig"."EmptySearch", "SiteConfig"."NoSearchResults", "SiteConfig"."MainFontFamily", "SiteConfig"."HeaderBackground", "SiteConfig"."NavigationBarBackground", "SiteConfig"."CarouselBackground", "SiteConfig"."FooterBackground", "SiteConfig"."AccentColor", "SiteConfig"."TextLinkColor", "SiteConfig"."AkismetKey", "SiteConfig"."Title", "SiteConfig"."Tagline", "SiteConfig"."CanViewType", "SiteConfig"."CanEditType", "SiteConfig"."CanCreateTopLevelType", "SiteConfig"."SubsiteID", "SiteConfig"."LogoID", "SiteConfig"."LogoRetinaID", "SiteConfig"."FooterLogoID", "SiteConfig"."FooterLogoRetinaID", "SiteConfig"."FooterLogoSecondaryID", "SiteConfig"."FavIconID", "SiteConfig"."AppleTouchIcon144ID", "SiteConfig"."AppleTouchIcon114ID", "SiteConfig"."AppleTouchIcon72ID", "SiteConfig"."AppleTouchIcon57ID", "SiteConfig"."ID",
CASE WHEN "SiteConfig"."ClassName" IS NOT NULL THEN "SiteConfig"."ClassName"
ELSE 'SilverStripe\SiteConfig\SiteConfig' END AS "RecordClassName"
FROM "SiteConfig"
LIMIT 1, Array, 256)
MySQLDatabase.php:386

SilverStripe\ORM\Connect\MySQLDatabase->preparedQuery(SELECT DISTINCT "SiteConfig"."ClassName", "SiteConfig"."LastEdited", "SiteConfig"."Created", "SiteConfig"."AllChangesEnabled", "SiteConfig"."MFARequired", "SiteConfig"."MFAGracePeriodExpires", "SiteConfig"."ReviewPeriodDays", "SiteConfig"."ReviewFrom", "SiteConfig"."ReviewSubject", "SiteConfig"."ReviewBody", "SiteConfig"."GACode", "SiteConfig"."FacebookURL", "SiteConfig"."TwitterUsername", "SiteConfig"."FooterLogoLink", "SiteConfig"."FooterLogoDescription", "SiteConfig"."FooterLogoSecondaryLink", "SiteConfig"."FooterLogoSecondaryDescription", "SiteConfig"."EmptySearch", "SiteConfig"."NoSearchResults", "SiteConfig"."MainFontFamily", "SiteConfig"."HeaderBackground", "SiteConfig"."NavigationBarBackground", "SiteConfig"."CarouselBackground", "SiteConfig"."FooterBackground", "SiteConfig"."AccentColor", "SiteConfig"."TextLinkColor", "SiteConfig"."AkismetKey", "SiteConfig"."Title", "SiteConfig"."Tagline", "SiteConfig"."CanViewType", "SiteConfig"."CanEditType", "SiteConfig"."CanCreateTopLevelType", "SiteConfig"."SubsiteID", "SiteConfig"."LogoID", "SiteConfig"."LogoRetinaID", "SiteConfig"."FooterLogoID", "SiteConfig"."FooterLogoRetinaID", "SiteConfig"."FooterLogoSecondaryID", "SiteConfig"."FavIconID", "SiteConfig"."AppleTouchIcon144ID", "SiteConfig"."AppleTouchIcon114ID", "SiteConfig"."AppleTouchIcon72ID", "SiteConfig"."AppleTouchIcon57ID", "SiteConfig"."ID",
CASE WHEN "SiteConfig"."ClassName" IS NOT NULL THEN "SiteConfig"."ClassName"
ELSE 'SilverStripe\SiteConfig\SiteConfig' END AS "RecordClassName"
FROM "SiteConfig"
LIMIT 1, Array, 256)
DB.php:445

SilverStripe\ORM\DB::prepared_query(SELECT DISTINCT "SiteConfig"."ClassName", "SiteConfig"."LastEdited", "SiteConfig"."Created", "SiteConfig"."AllChangesEnabled", "SiteConfig"."MFARequired", "SiteConfig"."MFAGracePeriodExpires", "SiteConfig"."ReviewPeriodDays", "SiteConfig"."ReviewFrom", "SiteConfig"."ReviewSubject", "SiteConfig"."ReviewBody", "SiteConfig"."GACode", "SiteConfig"."FacebookURL", "SiteConfig"."TwitterUsername", "SiteConfig"."FooterLogoLink", "SiteConfig"."FooterLogoDescription", "SiteConfig"."FooterLogoSecondaryLink", "SiteConfig"."FooterLogoSecondaryDescription", "SiteConfig"."EmptySearch", "SiteConfig"."NoSearchResults", "SiteConfig"."MainFontFamily", "SiteConfig"."HeaderBackground", "SiteConfig"."NavigationBarBackground", "SiteConfig"."CarouselBackground", "SiteConfig"."FooterBackground", "SiteConfig"."AccentColor", "SiteConfig"."TextLinkColor", "SiteConfig"."AkismetKey", "SiteConfig"."Title", "SiteConfig"."Tagline", "SiteConfig"."CanViewType", "SiteConfig"."CanEditType", "SiteConfig"."CanCreateTopLevelType", "SiteConfig"."SubsiteID", "SiteConfig"."LogoID", "SiteConfig"."LogoRetinaID", "SiteConfig"."FooterLogoID", "SiteConfig"."FooterLogoRetinaID", "SiteConfig"."FooterLogoSecondaryID", "SiteConfig"."FavIconID", "SiteConfig"."AppleTouchIcon144ID", "SiteConfig"."AppleTouchIcon114ID", "SiteConfig"."AppleTouchIcon72ID", "SiteConfig"."AppleTouchIcon57ID", "SiteConfig"."ID",
CASE WHEN "SiteConfig"."ClassName" IS NOT NULL THEN "SiteConfig"."ClassName"
ELSE 'SilverStripe\SiteConfig\SiteConfig' END AS "RecordClassName"
FROM "SiteConfig"
LIMIT 1, Array)
SQLExpression.php:115

SilverStripe\ORM\Queries\SQLExpression->execute()
DataList.php:923

SilverStripe\ORM\DataList->first()
DataObject.php:3180

SilverStripe\ORM\DataObject::get_one(SilverStripe\SiteConfig\SiteConfig)
SiteConfig.php:273

SilverStripe\SiteConfig\SiteConfig::current_site_config()
SiteTree.php:1319

SilverStripe\CMS\Model\SiteTree->getSiteConfig()
SiteTree.php:1124

SilverStripe\CMS\Model\SiteTree->canView()
Hierarchy.php:204

SilverStripe\ORM\Hierarchy\Hierarchy->SilverStripe\ORM\Hierarchy{closure}(Page, SilverStripe\ORM\DataList)

call_user_func(Closure, Page, SilverStripe\ORM\DataList)
DataList.php:491

SilverStripe\ORM\DataList->filterByCallback(Closure)
Hierarchy.php:205

SilverStripe\ORM\Hierarchy\Hierarchy->Children()

call_user_func_array(Array, Array)
Extensible.php:144

SilverStripe\View\ViewableData->SilverStripe\Core{closure}(CWP\CWP\PageTypes\FooterHolder, Array)
CustomMethods.php:61

SilverStripe\View\ViewableData->__call(Children, Array)
FooterHolder.php:46

CWP\CWP\PageTypes\FooterHolder->redirectionLink()
RedirectorPage.php:67

SilverStripe\CMS\Model\RedirectorPage->Link()
SiteTreeSubsites.php:412

SilverStripe\Subsites\Extensions\SiteTreeSubsites->alternateAbsoluteLink()

call_user_func_array(Array, Array)
Extensible.php:144

SilverStripe\View\ViewableData->SilverStripe\Core{closure}(CWP\CWP\PageTypes\FooterHolder, Array)
CustomMethods.php:61

SilverStripe\View\ViewableData->__call(alternateAbsoluteLink, Array)
SiteTree.php:586

SilverStripe\CMS\Model\SiteTree->AbsoluteLink()

call_user_func_array(Array, Array)
ViewableData.php:485

SilverStripe\View\ViewableData->obj(AbsoluteLink)
DataObjectScaffolder.php:620

SilverStripe\GraphQL\Scaffolding\Scaffolders\DataObjectScaffolder->nestedDataObjectClasses()
DataObjectScaffolder.php:382

SilverStripe\GraphQL\Scaffolding\Scaffolders\DataObjectScaffolder->getDependentClasses()
SchemaScaffolder.php:367

SilverStripe\GraphQL\Scaffolding\Scaffolders\SchemaScaffolder->registerPeripheralTypes(SilverStripe\GraphQL\Manager)
SchemaScaffolder.php:287

SilverStripe\GraphQL\Scaffolding\Scaffolders\SchemaScaffolder->addToManager(SilverStripe\GraphQL\Manager)
Manager.php:279

SilverStripe\GraphQL\Manager->applyConfig(Array)
Manager.php:188

SilverStripe\GraphQL\Manager->configure()
Controller.php:77

SilverStripe\GraphQL\Controller->__construct(SilverStripe\GraphQL\Manager)

ReflectionClass->newInstanceArgs(Array)
InjectionCreator.php:23

SilverStripe\Core\Injector\InjectionCreator->create(SilverStripe\GraphQL\Controller, Array)
Injector.php:594

SilverStripe\Core\Injector\Injector->instantiate(Array, SilverStripe\GraphQL\Controller.frameworktest, singleton)
Injector.php:1002

SilverStripe\Core\Injector\Injector->getNamedService(SilverStripe\GraphQL\Controller.frameworktest, 1, Array)
Injector.php:955

SilverStripe\Core\Injector\Injector->get(SilverStripe\GraphQL\Controller.frameworktest)
Injector.php:523

SilverStripe\Core\Injector\Injector->convertServiceProperty(%$SilverStripe\GraphQL\Controller.frameworktest)
Controller.php:461

SilverStripe\GraphQL\Controller::flush()
FlushMiddleware.php:23

SilverStripe\Control\Middleware\FlushMiddleware->process(SilverStripe\Control\HTTPRequest, Closure)
HTTPMiddlewareAware.php:62

SilverStripe\Control\Director->SilverStripe\Control\Middleware{closure}(SilverStripe\Control\HTTPRequest)
RequestProcessor.php:66

SilverStripe\Control\RequestProcessor->process(SilverStripe\Control\HTTPRequest, Closure)
HTTPMiddlewareAware.php:62

SilverStripe\Control\Director->SilverStripe\Control\Middleware{closure}(SilverStripe\Control\HTTPRequest)
HybridSessionMiddleware.php:18

SilverStripe\HybridSessions\Control\HybridSessionMiddleware->process(SilverStripe\Control\HTTPRequest, Closure)
HTTPMiddlewareAware.php:62

SilverStripe\Control\Director->SilverStripe\Control\Middleware{closure}(SilverStripe\Control\HTTPRequest)
AllowedHostsMiddleware.php:60

SilverStripe\Control\Middleware\AllowedHostsMiddleware->process(SilverStripe\Control\HTTPRequest, Closure)
HTTPMiddlewareAware.php:62

SilverStripe\Control\Director->SilverStripe\Control\Middleware{closure}(SilverStripe\Control\HTTPRequest)
TrustedProxyMiddleware.php:176

SilverStripe\Control\Middleware\TrustedProxyMiddleware->process(SilverStripe\Control\HTTPRequest, Closure)
HTTPMiddlewareAware.php:62

SilverStripe\Control\Director->SilverStripe\Control\Middleware{closure}(SilverStripe\Control\HTTPRequest)
InitialisationMiddleware.php:59

CWP\Core\Control\InitialisationMiddleware->process(SilverStripe\Control\HTTPRequest, Closure)
HTTPMiddlewareAware.php:62

SilverStripe\Control\Director->SilverStripe\Control\Middleware{closure}(SilverStripe\Control\HTTPRequest)
HTTPMiddlewareAware.php:65

SilverStripe\Control\Director->callMiddleware(SilverStripe\Control\HTTPRequest, Closure)
Director.php:369

SilverStripe\Control\Director->handleRequest(SilverStripe\Control\HTTPRequest)
HTTPApplication.php:117

SilverStripe\Control\HTTPApplication::SilverStripe\Control{closure}(SilverStripe\Control\HTTPRequest)

call_user_func(Closure, SilverStripe\Control\HTTPRequest)
HTTPApplication.php:136

SilverStripe\Control\HTTPApplication->SilverStripe\Control{closure}(SilverStripe\Control\HTTPRequest)
HTTPMiddlewareAware.php:65

SilverStripe\Control\HTTPApplication->callMiddleware(SilverStripe\Control\HTTPRequest, Closure)
HTTPApplication.php:137

SilverStripe\Control\HTTPApplication->execute(SilverStripe\Control\HTTPRequest, Closure, 1)
HTTPApplication.php:118

SilverStripe\Control\HTTPApplication->handle(SilverStripe\Control\HTTPRequest)
cli-script.php:22

@NightJar
Copy link
Contributor

NightJar commented Jul 2, 2019

Oh gosh.

this is going though GraphQL scaffolding, which then appears to be attempting to instantiate a RedirectorPage and then flow through what I assume is a relation applied by Extension to a Page that acts as a holder for Footer Links (which I assume are also pages) which are controlled via the SiteConfig, which in turn is getting meddled with by Subsites, and eventually ultimately attempts to call the database before it's ready.

This appears to be a flush task that happens before the build (as we should flush the manifest first), but ultimately needs to be a post flush task, i.e. after the build takes place.

Is there a way to control this that you know of? @unclecheese ?

@robbieaverill
Copy link
Contributor

Is anyone able to reproduce this still? I haven't experienced this at all yet

@robbieaverill
Copy link
Contributor

Please reopen if you experience it again. I never saw this during MFA development

@cwchong
Copy link

cwchong commented May 27, 2020

Am experiencing it on a 4.4 installation. MFA installed on an existing developed site so its not on a clean installation

@Cheddam
Copy link
Member Author

Cheddam commented May 28, 2020

@cwchong Did you hit this issue when upgrading to 4.4, or in some other situation? Could you give some guidance on what other modules you have installed? (e.g. composer show)

@cwchong
Copy link

cwchong commented May 28, 2020

@Cheddam Tks, realised it was due to calling
SiteConfig::current_site_config();
from _config.php that is causing this. To work around it I just comment out those before build and uncomment after.
Needed that chunk of code as I am using Injector to replace Mailer's email credentials with values stored in SiteConfig; not sure if its best practice to have them in _config.php but that works.

Thanks

@gdelavil
Copy link

@cwchong thanks, your comment saved me! I thought I wouldn't be able to use MFA with Subsites, but removing the call to SiteConfig::current_site_config(); that I had in _config.php sorted out /dev/build for me.

I've also added it on an existing build, although it's silverstripe 4.5.1 in my case.

@dhensby
Copy link

dhensby commented Jun 17, 2020

Sounds like this can still be an issue in some circumstances...

@dhensby dhensby reopened this Jun 17, 2020
@robertvanlienden
Copy link

robertvanlienden commented Mar 24, 2022

Also having this issue, also calling SiteConfig::current_site_config(); in _config.php.
Happens with SS4.9 and 4.10.

I think this is worth fixing, because lots of SS-developers access the SiteConfig in _config.php to get some configurations.

For now, I've tried to move siteconfig logic to the PageController.php init. This fixes the issue, but this way its not possible to call the SiteConfg in _config.php.

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

No branches or pull requests

7 participants