Slow "New Page" from Versions interface

Permalink
Hi,

I am having an issue with the new page functionality from within versions. When I click new page either the system doesn't respond at all (recognize I clicked add page), it takes 30 - 40 seconds for the composer interface to come up, or I get a 504 gateway timeout error.

(Edit begins here)

After a timeout occurs the "new page" exists in in Drafts. After picking a location, and attempting to publish I receive the following error:

Call to a member function publish() on null

Details

/home2/public_html/cms2/updates/concrete5-8.2.1/concrete/controllers/panel/page/check_in.php(112): Error->null
/home2/public_html/cms2/updates/concrete5-8.2.1/concrete/src/Controller/AbstractController.php(172): Concrete\Controller\Panel\Page\CheckIn->submit
/home2/public_html/cms2/updates/concrete5-8.2.1/concrete/src/Controller/AbstractController.php(172): null->call_user_func_array
/home2/public_html/cms2/updates/concrete5-8.2.1/concrete/src/Routing/ControllerRouteCallback.php(27): Concrete\Core\Controller\AbstractController->runAction
/home2/public_html/cms2/updates/concrete5-8.2.1/concrete/src/Routing/Router.php(149): Concrete\Core\Routing\ControllerRouteCallback->execute
/home2/public_html/cms2/updates/concrete5-8.2.1/concrete/src/Http/DefaultDispatcher.php(114): Concrete\Core\Routing\Router->execute
/home2/public_html/cms2/updates/concrete5-8.2.1/concrete/src/Http/DefaultDispatcher.php(54): Concrete\Core\Http\DefaultDispatcher->handleDispatch
/home2/public_html/cms2/updates/concrete5-8.2.1/concrete/src/Http/Middleware/DispatcherDelegate.php(39): Concrete\Core\Http\DefaultDispatcher->dispatch
/home2/public_html/cms2/updates/concrete5-8.2.1/concrete/src/Http/Middleware/ThumbnailMiddleware.php(60): Concrete\Core\Http\Middleware\DispatcherDelegate->next
/home2/public_html/cms2/updates/concrete5-8.2.1/concrete/src/Http/Middleware/MiddlewareDelegate.php(38): Concrete\Core\Http\Middleware\ThumbnailMiddleware->process
/home2/public_html/cms2/updates/concrete5-8.2.1/concrete/src/Http/Middleware/FrameOptionsMiddleware.php(39): Concrete\Core\Http\Middleware\MiddlewareDelegate->next
/home2/public_html/cms2/updates/concrete5-8.2.1/concrete/src/Http/Middleware/MiddlewareDelegate.php(38): Concrete\Core\Http\Middleware\FrameOptionsMiddleware->process
/home2/public_html/cms2/updates/concrete5-8.2.1/concrete/src/Http/Middleware/CookieMiddleware.php(37): Concrete\Core\Http\Middleware\MiddlewareDelegate->next
/home2/public_html/cms2/updates/concrete5-8.2.1/concrete/src/Http/Middleware/MiddlewareDelegate.php(38): Concrete\Core\Http\Middleware\CookieMiddleware->process
/home2/public_html/cms2/updates/concrete5-8.2.1/concrete/src/Http/Middleware/ApplicationMiddleware.php(29): Concrete\Core\Http\Middleware\MiddlewareDelegate->next
/home2/public_html/cms2/updates/concrete5-8.2.1/concrete/src/Http/Middleware/MiddlewareDelegate.php(38): Concrete\Core\Http\Middleware\ApplicationMiddleware->process
/home2/public_html/cms2/updates/concrete5-8.2.1/concrete/src/Http/Middleware/MiddlewareStack.php(86): Concrete\Core\Http\Middleware\MiddlewareDelegate->next
/home2/public_html/cms2/updates/concrete5-8.2.1/concrete/src/Http/DefaultServer.php(85): Concrete\Core\Http\Middleware\MiddlewareStack->process
/home2/public_html/cms2/updates/concrete5-8.2.1/concrete/src/Foundation/Runtime/Run/DefaultRunner.php(115): Concrete\Core\Http\DefaultServer->handleRequest
/home2/public_html/cms2/updates/concrete5-8.2.1/concrete/src/Foundation/Runtime/DefaultRuntime.php(102): Concrete\Core\Foundation\Runtime\Run\DefaultRunner->run
/home2/public_html/cms2/updates/concrete5-8.2.1/concrete/dispatcher.php(39): Concrete\Core\Foundation\Runtime\DefaultRuntime->run
/home2/public_html/cms2/concrete/bootstrap/configure.php(59): null->require
/home2/public_html/cms2/concrete/dispatcher.php(16): null->require
/home2/public_html/cms2/index.php(27): null->require


Have any of you seen anything like this that could help me track it down?

I'm running C5 v 8.2.1 on MySQL 5.6.32 and PHP 7.0.1.

thanks

 
MrKDilkington replied on at Permalink Reply
MrKDilkington
Hi bayleafmedia,

Does this happen on pages with many versions?

Are you using shared web hosting?
bayleafmedia replied on at Permalink Reply
yes on both accounts. The shared hosting for my client has is not a bottom-of-the-line service, if that information helps.

The page I want to duplicate has 40 edits. It does not work. I have successfully duplicated two pages (make a new page from an existing version) each with 5 and 6 versions.

thanks
bayleafmedia replied on at Permalink Reply
I just tried to make a new page out of the unpublished versions (which list as having a single #41 edit). That's a no-go.
MrKDilkington replied on at Permalink Reply
MrKDilkington
@bayleafmedia

Are any of these pages, copies of copies?

As a workaround, have you tried using the sitemap to make a copy?
bayleafmedia replied on at Permalink Reply
Thanks again for the response. This is my home page, and is not an original, not copied from anything. I am attempting to make a copy of it so I can work on some DB integrations. without interfering with home page operations.

About using the sitemap... That is where I am making duplicates:
1. click on desired page.
2. click versions.
3. click version number.
4. click add new page.

Is there another way you were thinking of that I am not familiar with (there is much I am not familiar with :) )

thanks
MrKDilkington replied on at Permalink Reply
MrKDilkington
@bayleafmedia

I was able to reproduce the issue using a fresh install with default sample content. After installing concrete5, and without making any changes to the home page, I tried adding a page from the initial version. This created the error "Call to a member function publish() on null" when publishing the page.

Do you have this issue with copying from versions when using a page other than the home page?

I did not have any issues with timeouts. Copying a page from versions might be an intensive process with many page versions and possible permissions. I wonder if increasing the PHP max_execution_time would help with the time out.

As an alternative to creating a page version copy, you could export the database and copy the site files to a local development server. This would allow you to have a safe place to work on the page without affecting your live site.

In the sitemap, you can drag an existing page onto another page to trigger a popup that allows you to move, alias, or copy the dragged page. This does not appear to work with the home page.
Dashboard > Sitemap > Full Sitemap
MrKDilkington replied on at Permalink Reply
MrKDilkington
I created a GitHub issue for this.
https://github.com/concrete5/concrete5/issues/5898...
Gondwana replied on at Permalink Reply
Gondwana
I seem to recall that it's difficult/impossible to change which page is considered to be the home page. I wonder if the current problem has a common root cause; something to do with only one page being allowed to have no (null) parent. When you copy the home page, you'd have two null-parented pages.

</wild-speculation>