Performance Issues After Upgrading to OJS 3.5.0.0

HI,

PHP-8.3
MySQL-8.4

We have successfully upgraded our OJS-3.4.0-8 system to OJS version 3.5.0.0, and would like to report a few performance-related issues for your kind consideration:

  • The Editorial section takes a considerable amount of time to load article lists.

  • When switching simultaneously between multiple editorial tabs, the content often fails to load.

  • On the Admin homepage, clicking on the Dashboard does not load the page or remains unresponsive.

To help illustrate these issues, please find a demonstration video here: [Video Link]

Admin homepage, clicking on the Dashboard

Hi @shantanusingh,

The path in that video suggestions that you’re using version 3.5.0rc2; can you confirm that you’re using the 3.5.0-0 release?

Regards,
Alec Smecher
Public Knowledge Project Team

Hi @asmecher Thanks for reply.

I referred to the previous link as an example because the same duration is being taken to load the article list, which is why I included it for comparison.

innodb_buffer_pool_size=4G
innodb_buffer_pool_instances=4
innodb_log_buffer_size=100M

Now, I am sharing a new screen recording captured after the upgrade to OJS 3.5, for your reference.

Hi @asmecher,

Is there any update on the improvements in editorial accessibility?

We have the same problem, is this issue solved?

Analizando un poco el código se puede modificar el número de resultados por página, modificando el archivo:

lib/pkp/pages/dashboard/PKPDashboardHandler.php

Cambiando el nĂşmero de resultados a uno menor (lĂ­nea 60), por ejemplo:

public int $perPage = 5;

Esto reduce considerablemente el tiempo de respuesta.

Saludos

1 Like

Hi all,

Thanks for the tip, @jose_manuel; meanwhile, I’m working on performance improvements, which should be included in the 3.5.0-2 release when that is ready.

Regards,
Alec Smecher
Public Knowledge Project Team

2 Likes

This! Guess I’m not the only one with this issue. And I thought that the problem is with the database tables that survived several major version upgrades where something might have gotten corrupt in the process…

For me, clicking through the editorial dashboard (e.g., between Active submissions, Published, etc.) or switching the tabs to see the “next 30” submissions consumes 100% of a 2.2GHz Xeon core for several seconds, with the load split between php-fpm and mariadb (in unequal measure, like, approximately 2:1 to 4:1). This is very painful when the number of submission in a section is high - with 400+ submissions, the wait time is more than 5 seconds. As this is a test journal with a 1-core poor man’s VPS, even with one user when I try to do any action in parallel with the resource-hogging request that action sometimes fails to load (maybe that’s what happened when @shantanusingh’s dashboard became unresponsive).

My benchmarks are not very scientific, but I don’t know any better :sweat_smile:

So I guess we’re eagerly waiting for @asmecher’s performance improvements in the next version.

The system is Debian 13 with PHP 8.4.14 and mariadb 11.8.3. No settings were changed from their defaults for mariadb, and only the very basic limits (upload_max_filesize, post_max_size, memory and execution time limits) were increased in php.ini.

Besides, can anyone suggest any OJS-specific performance increasing tweaks to either the php or the database settings, or the defaults should work fine in most cases? I couldn’t find anything related in the official docs or on this forum.

Hi all,

You can get an immediate performance boost on the submission lists by making this change (in lib/pkp); this will be included in OJS/OMP/OPS 3.5.0-2, to be released shortly. However, I still have more work to do in tracking down a tricky performance regression before it’ll be as snappy as I’d like.

Regards,
Alec Smecher
Public Knowledge Project Team

Hi @asmecher,

As per your suggestion, I have implemented the recommended code changes and replaced the entire code segment.

protected function getStageAssignmentsBySubmissions(Enumerable $submissions, array $roleIds = []): LazyCollection
    {
        $submissionIds = $submissions->map(fn (Submission $submission) => $submission->getId())->toArray();
        return StageAssignment::withSubmissionIds($submissionIds)
            ->withRoleIds(empty($roleIds) ? null : $roleIds)
            ->lazy()
            ->remember();
    }

After doing so, I tested the Editor Dashboard, and I’m pleased to report that it is now functioning much better than before.

Add Reviewer needs a little improvement to load faster.

However, I encountered an issue — an “An unexpected error has occurred. Please reload the page and try again.” message appears occasionally when switching between different menu options on the dashboard.

For your reference, I’m sharing:

  • A video link demonstrating the issue: Video Link
  • The error log for analysis.
[12-Nov-2025 06:01:39 UTC] Error: Call to undefined method PKP\submission\reviewAssignment\ReviewAssignment::getReviewerRecommendationId() in H:\wamp64\www\ojs3501\lib\pkp\classes\submission\maps\Schema.php:690
Stack trace:
#0 H:\wamp64\www\ojs3501\lib\pkp\classes\submission\maps\Schema.php(512): PKP\submission\maps\Schema->getPropertyReviewAssignments(Object(Illuminate\Support\Collection), Array, false)
#1 H:\wamp64\www\ojs3501\classes\submission\maps\Schema.php(55): PKP\submission\maps\Schema->mapByProperties(Array, Object(APP\submission\Submission), false)
#2 H:\wamp64\www\ojs3501\lib\pkp\classes\submission\maps\Schema.php(341): APP\submission\maps\Schema->mapByProperties(Array, Object(APP\submission\Submission), false)
#3 H:\wamp64\www\ojs3501\lib\pkp\classes\submission\maps\Schema.php(399): PKP\submission\maps\Schema->mapToSubmissionsList(Object(APP\submission\Submission), Object(Illuminate\Support\LazyCollection), Array, Object(Illuminate\Support\Collection), Object(Illuminate\Support\Collection), Object(Illuminate\Support\Collection), false, NULL, NULL)
#4 H:\wamp64\www\ojs3501\lib\pkp\lib\vendor\laravel\framework\src\Illuminate\Collections\LazyCollection.php(805): PKP\submission\maps\Schema->PKP\submission\maps\{closure}(Object(APP\submission\Submission), 146017)
#5 H:\wamp64\www\ojs3501\lib\pkp\lib\vendor\laravel\framework\src\Illuminate\Collections\LazyCollection.php(1733): Illuminate\Support\LazyCollection->Illuminate\Support\{closure}()
#6 [internal function]: Illuminate\Support\LazyCollection->Illuminate\Support\{closure}()
#7 H:\wamp64\www\ojs3501\lib\pkp\lib\vendor\laravel\framework\src\Illuminate\Collections\LazyCollection.php(106): iterator_to_array(Object(Generator))
#8 H:\wamp64\www\ojs3501\lib\pkp\lib\vendor\laravel\framework\src\Illuminate\Collections\Traits\EnumeratesValues.php(970): Illuminate\Support\LazyCollection->all()
#9 [internal function]: Illuminate\Support\LazyCollection->jsonSerialize()
#10 H:\wamp64\www\ojs3501\lib\pkp\lib\vendor\laravel\framework\src\Illuminate\Http\JsonResponse.php(86): json_encode(Array, 0)
#11 H:\wamp64\www\ojs3501\lib\pkp\lib\vendor\symfony\http-foundation\JsonResponse.php(49): Illuminate\Http\JsonResponse->setData(Array)
#12 H:\wamp64\www\ojs3501\lib\pkp\lib\vendor\laravel\framework\src\Illuminate\Http\JsonResponse.php(32): Symfony\Component\HttpFoundation\JsonResponse->__construct(Array, 200, Array, false)
#13 H:\wamp64\www\ojs3501\lib\pkp\lib\vendor\laravel\framework\src\Illuminate\Routing\ResponseFactory.php(104): Illuminate\Http\JsonResponse->__construct(Array, 200, Array, 0)
#14 H:\wamp64\www\ojs3501\lib\pkp\api\v1\_submissions\PKPBackendSubmissionsController.php(239): Illuminate\Routing\ResponseFactory->json(Array, 200)
#15 H:\wamp64\www\ojs3501\lib\pkp\lib\vendor\laravel\framework\src\Illuminate\Routing\CallableDispatcher.php(40): PKP\API\v1\_submissions\PKPBackendSubmissionsController->assigned(Object(Illuminate\Http\Request), 'IJAgS', 'v1')
#16 H:\wamp64\www\ojs3501\lib\pkp\lib\vendor\laravel\framework\src\Illuminate\Routing\Route.php(244): Illuminate\Routing\CallableDispatcher->dispatch(Object(Illuminate\Routing\Route), Object(Closure))
#17 H:\wamp64\www\ojs3501\lib\pkp\lib\vendor\laravel\framework\src\Illuminate\Routing\Route.php(215): Illuminate\Routing\Route->runCallable()
#18 H:\wamp64\www\ojs3501\lib\pkp\lib\vendor\laravel\framework\src\Illuminate\Routing\Router.php(808): Illuminate\Routing\Route->run()
#19 H:\wamp64\www\ojs3501\lib\pkp\lib\vendor\laravel\framework\src\Illuminate\Pipeline\Pipeline.php(170): Illuminate\Routing\Router->Illuminate\Routing\{closure}(Object(Illuminate\Http\Request))
#20 H:\wamp64\www\ojs3501\lib\pkp\classes\middleware\HasRoles.php(75): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#21 H:\wamp64\www\ojs3501\lib\pkp\lib\vendor\laravel\framework\src\Illuminate\Pipeline\Pipeline.php(209): PKP\middleware\HasRoles->handle(Object(Illuminate\Http\Request), Object(Closure), Object(Illuminate\Support\Collection))
#22 H:\wamp64\www\ojs3501\lib\pkp\classes\middleware\HasContext.php(35): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#23 H:\wamp64\www\ojs3501\lib\pkp\lib\vendor\laravel\framework\src\Illuminate\Pipeline\Pipeline.php(209): PKP\middleware\HasContext->handle(Object(Illuminate\Http\Request), Object(Closure))
#24 H:\wamp64\www\ojs3501\lib\pkp\classes\middleware\HasUser.php(35): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#25 H:\wamp64\www\ojs3501\lib\pkp\lib\vendor\laravel\framework\src\Illuminate\Pipeline\Pipeline.php(209): PKP\middleware\HasUser->handle(Object(Illuminate\Http\Request), Object(Closure))
#26 H:\wamp64\www\ojs3501\lib\pkp\lib\vendor\laravel\framework\src\Illuminate\Pipeline\Pipeline.php(127): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#27 H:\wamp64\www\ojs3501\lib\pkp\lib\vendor\laravel\framework\src\Illuminate\Routing\Router.php(807): Illuminate\Pipeline\Pipeline->then(Object(Closure))
#28 H:\wamp64\www\ojs3501\lib\pkp\lib\vendor\laravel\framework\src\Illuminate\Routing\Router.php(786): Illuminate\Routing\Router->runRouteWithinStack(Object(Illuminate\Routing\Route), Object(Illuminate\Http\Request))
#29 H:\wamp64\www\ojs3501\lib\pkp\lib\vendor\laravel\framework\src\Illuminate\Routing\Router.php(750): Illuminate\Routing\Router->runRoute(Object(Illuminate\Http\Request), Object(Illuminate\Routing\Route))
#30 H:\wamp64\www\ojs3501\lib\pkp\lib\vendor\laravel\framework\src\Illuminate\Routing\Router.php(739): Illuminate\Routing\Router->dispatchToRoute(Object(Illuminate\Http\Request))
#31 H:\wamp64\www\ojs3501\lib\pkp\classes\handler\APIHandler.php(103): Illuminate\Routing\Router->dispatch(Object(Illuminate\Http\Request))
#32 H:\wamp64\www\ojs3501\lib\pkp\lib\vendor\laravel\framework\src\Illuminate\Pipeline\Pipeline.php(170): PKP\handler\APIHandler->PKP\handler\{closure}(Object(Illuminate\Http\Request))
#33 H:\wamp64\www\ojs3501\lib\pkp\classes\middleware\PolicyAuthorizer.php(71): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#34 H:\wamp64\www\ojs3501\lib\pkp\lib\vendor\laravel\framework\src\Illuminate\Pipeline\Pipeline.php(209): PKP\middleware\PolicyAuthorizer->handle(Object(Illuminate\Http\Request), Object(Closure))
#35 H:\wamp64\www\ojs3501\lib\pkp\lib\vendor\laravel\framework\src\Illuminate\Foundation\Http\Middleware\TransformsRequest.php(21): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#36 H:\wamp64\www\ojs3501\lib\pkp\lib\vendor\laravel\framework\src\Illuminate\Foundation\Http\Middleware\ConvertEmptyStringsToNull.php(31): Illuminate\Foundation\Http\Middleware\TransformsRequest->handle(Object(Illuminate\Http\Request), Object(Closure))
#37 H:\wamp64\www\ojs3501\lib\pkp\lib\vendor\laravel\framework\src\Illuminate\Pipeline\Pipeline.php(209): Illuminate\Foundation\Http\Middleware\ConvertEmptyStringsToNull->handle(Object(Illuminate\Http\Request), Object(Closure))
#38 H:\wamp64\www\ojs3501\lib\pkp\lib\vendor\laravel\framework\src\Illuminate\Foundation\Http\Middleware\TransformsRequest.php(21): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#39 H:\wamp64\www\ojs3501\lib\pkp\lib\vendor\laravel\framework\src\Illuminate\Foundation\Http\Middleware\TrimStrings.php(51): Illuminate\Foundation\Http\Middleware\TransformsRequest->handle(Object(Illuminate\Http\Request), Object(Closure))
#40 H:\wamp64\www\ojs3501\lib\pkp\lib\vendor\laravel\framework\src\Illuminate\Pipeline\Pipeline.php(209): Illuminate\Foundation\Http\Middleware\TrimStrings->handle(Object(Illuminate\Http\Request), Object(Closure))
#41 H:\wamp64\www\ojs3501\lib\pkp\lib\vendor\laravel\framework\src\Illuminate\Http\Middleware\ValidatePostSize.php(27): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#42 H:\wamp64\www\ojs3501\lib\pkp\lib\vendor\laravel\framework\src\Illuminate\Pipeline\Pipeline.php(209): Illuminate\Http\Middleware\ValidatePostSize->handle(Object(Illuminate\Http\Request), Object(Closure))
#43 H:\wamp64\www\ojs3501\lib\pkp\classes\middleware\ValidateCsrfToken.php(55): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#44 H:\wamp64\www\ojs3501\lib\pkp\lib\vendor\laravel\framework\src\Illuminate\Pipeline\Pipeline.php(209): PKP\middleware\ValidateCsrfToken->handle(Object(Illuminate\Http\Request), Object(Closure))
#45 H:\wamp64\www\ojs3501\lib\pkp\classes\middleware\DecodeApiTokenWithValidation.php(76): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#46 H:\wamp64\www\ojs3501\lib\pkp\lib\vendor\laravel\framework\src\Illuminate\Pipeline\Pipeline.php(209): PKP\middleware\DecodeApiTokenWithValidation->handle(Object(Illuminate\Http\Request), Object(Closure))
#47 H:\wamp64\www\ojs3501\lib\pkp\classes\middleware\SetupContextBasedOnRequestUrl.php(63): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#48 H:\wamp64\www\ojs3501\lib\pkp\lib\vendor\laravel\framework\src\Illuminate\Pipeline\Pipeline.php(209): PKP\middleware\SetupContextBasedOnRequestUrl->handle(Object(Illuminate\Http\Request), Object(Closure))
#49 H:\wamp64\www\ojs3501\lib\pkp\classes\middleware\AllowCrossOrigin.php(34): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#50 H:\wamp64\www\ojs3501\lib\pkp\lib\vendor\laravel\framework\src\Illuminate\Pipeline\Pipeline.php(209): PKP\middleware\AllowCrossOrigin->handle(Object(Illuminate\Http\Request), Object(Closure))
#51 H:\wamp64\www\ojs3501\lib\pkp\lib\vendor\laravel\framework\src\Illuminate\Pipeline\Pipeline.php(127): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#52 H:\wamp64\www\ojs3501\lib\pkp\classes\handler\APIHandler.php(102): Illuminate\Pipeline\Pipeline->then(Object(Closure))
#53 H:\wamp64\www\ojs3501\lib\pkp\classes\core\APIRouter.php(116): PKP\handler\APIHandler->runRoutes()
#54 H:\wamp64\www\ojs3501\lib\pkp\classes\core\Dispatcher.php(157): PKP\core\APIRouter->route(Object(APP\core\Request))
#55 H:\wamp64\www\ojs3501\lib\pkp\classes\core\PKPApplication.php(426): PKP\core\Dispatcher->dispatch(Object(APP\core\Request))
#56 H:\wamp64\www\ojs3501\index.php(21): PKP\core\PKPApplication->execute()
#57 {main}

If I am replacing particular section (Line 1074-1083) of OJS-3.5.0-1 classes/submission/maps/Schema.php then it is not working and below error appeared. So I have replaced the whole code with your suggestion file.

[12-Nov-2025 11:15:19 UTC] ParseError: syntax error, unexpected token "->" in H:\wamp64\www\ojs3501\lib\pkp\classes\submission\maps\Schema.php:1082
Stack trace:
#0 H:\wamp64\www\ojs3501\lib\pkp\lib\vendor\composer\ClassLoader.php(427): Composer\Autoload\{closure}('H:\\wamp64\\www\\o...')
#1 H:\wamp64\www\ojs3501\classes\submission\maps\Schema.php(45): Composer\Autoload\ClassLoader->loadClass('PKP\\submission\\...')
#2 H:\wamp64\www\ojs3501\lib\pkp\lib\vendor\composer\ClassLoader.php(576): include('H:\\wamp64\\www\\o...')
#3 H:\wamp64\www\ojs3501\lib\pkp\lib\vendor\composer\ClassLoader.php(427): Composer\Autoload\{closure}('H:\\wamp64\\www\\o...')
#4 [internal function]: Composer\Autoload\ClassLoader->loadClass('APP\\submission\\...')
#5 H:\wamp64\www\ojs3501\lib\pkp\lib\vendor\laravel\framework\src\Illuminate\Container\Container.php(959): ReflectionClass->__construct('APP\\submission\\...')
#6 H:\wamp64\www\ojs3501\lib\pkp\lib\vendor\laravel\framework\src\Illuminate\Container\Container.php(832): Illuminate\Container\Container->build('APP\\submission\\...')
#7 H:\wamp64\www\ojs3501\lib\pkp\lib\vendor\laravel\framework\src\Illuminate\Container\Container.php(763): Illuminate\Container\Container->resolve('APP\\submission\\...', Array)
#8 H:\wamp64\www\ojs3501\lib\pkp\lib\vendor\laravel\framework\src\Illuminate\Foundation\helpers.php(124): Illuminate\Container\Container->make('APP\\submission\\...', Array)
#9 H:\wamp64\www\ojs3501\lib\pkp\classes\core\MapContainer.php(37): app('APP\\submission\\...', Array)
#10 H:\wamp64\www\ojs3501\lib\pkp\classes\core\MapContainer.php(42): PKP\core\MapContainer->getMap('APP\\submission\\...', Array)
#11 H:\wamp64\www\ojs3501\lib\pkp\classes\submission\Repository.php(104): PKP\core\MapContainer->withExtensions('APP\\submission\\...')
#12 H:\wamp64\www\ojs3501\lib\pkp\api\v1\_submissions\PKPBackendSubmissionsController.php(241): PKP\submission\Repository->getSchemaMap()
#13 H:\wamp64\www\ojs3501\lib\pkp\lib\vendor\laravel\framework\src\Illuminate\Routing\CallableDispatcher.php(40): PKP\API\v1\_submissions\PKPBackendSubmissionsController->assigned(Object(Illuminate\Http\Request), 'IJAgS', 'v1')
#14 H:\wamp64\www\ojs3501\lib\pkp\lib\vendor\laravel\framework\src\Illuminate\Routing\Route.php(244): Illuminate\Routing\CallableDispatcher->dispatch(Object(Illuminate\Routing\Route), Object(Closure))
#15 H:\wamp64\www\ojs3501\lib\pkp\lib\vendor\laravel\framework\src\Illuminate\Routing\Route.php(215): Illuminate\Routing\Route->runCallable()
#16 H:\wamp64\www\ojs3501\lib\pkp\lib\vendor\laravel\framework\src\Illuminate\Routing\Router.php(808): Illuminate\Routing\Route->run()
#17 H:\wamp64\www\ojs3501\lib\pkp\lib\vendor\laravel\framework\src\Illuminate\Pipeline\Pipeline.php(170): Illuminate\Routing\Router->Illuminate\Routing\{closure}(Object(Illuminate\Http\Request))
#18 H:\wamp64\www\ojs3501\lib\pkp\classes\middleware\HasRoles.php(75): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#19 H:\wamp64\www\ojs3501\lib\pkp\lib\vendor\laravel\framework\src\Illuminate\Pipeline\Pipeline.php(209): PKP\middleware\HasRoles->handle(Object(Illuminate\Http\Request), Object(Closure), Object(Illuminate\Support\Collection))
#20 H:\wamp64\www\ojs3501\lib\pkp\classes\middleware\HasContext.php(35): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#21 H:\wamp64\www\ojs3501\lib\pkp\lib\vendor\laravel\framework\src\Illuminate\Pipeline\Pipeline.php(209): PKP\middleware\HasContext->handle(Object(Illuminate\Http\Request), Object(Closure))
#22 H:\wamp64\www\ojs3501\lib\pkp\classes\middleware\HasUser.php(35): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#23 H:\wamp64\www\ojs3501\lib\pkp\lib\vendor\laravel\framework\src\Illuminate\Pipeline\Pipeline.php(209): PKP\middleware\HasUser->handle(Object(Illuminate\Http\Request), Object(Closure))
#24 H:\wamp64\www\ojs3501\lib\pkp\lib\vendor\laravel\framework\src\Illuminate\Pipeline\Pipeline.php(127): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#25 H:\wamp64\www\ojs3501\lib\pkp\lib\vendor\laravel\framework\src\Illuminate\Routing\Router.php(807): Illuminate\Pipeline\Pipeline->then(Object(Closure))
#26 H:\wamp64\www\ojs3501\lib\pkp\lib\vendor\laravel\framework\src\Illuminate\Routing\Router.php(786): Illuminate\Routing\Router->runRouteWithinStack(Object(Illuminate\Routing\Route), Object(Illuminate\Http\Request))
#27 H:\wamp64\www\ojs3501\lib\pkp\lib\vendor\laravel\framework\src\Illuminate\Routing\Router.php(750): Illuminate\Routing\Router->runRoute(Object(Illuminate\Http\Request), Object(Illuminate\Routing\Route))
#28 H:\wamp64\www\ojs3501\lib\pkp\lib\vendor\laravel\framework\src\Illuminate\Routing\Router.php(739): Illuminate\Routing\Router->dispatchToRoute(Object(Illuminate\Http\Request))
#29 H:\wamp64\www\ojs3501\lib\pkp\classes\handler\APIHandler.php(103): Illuminate\Routing\Router->dispatch(Object(Illuminate\Http\Request))
#30 H:\wamp64\www\ojs3501\lib\pkp\lib\vendor\laravel\framework\src\Illuminate\Pipeline\Pipeline.php(170): PKP\handler\APIHandler->PKP\handler\{closure}(Object(Illuminate\Http\Request))
#31 H:\wamp64\www\ojs3501\lib\pkp\classes\middleware\PolicyAuthorizer.php(71): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#32 H:\wamp64\www\ojs3501\lib\pkp\lib\vendor\laravel\framework\src\Illuminate\Pipeline\Pipeline.php(209): PKP\middleware\PolicyAuthorizer->handle(Object(Illuminate\Http\Request), Object(Closure))
#33 H:\wamp64\www\ojs3501\lib\pkp\lib\vendor\laravel\framework\src\Illuminate\Foundation\Http\Middleware\TransformsRequest.php(21): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#34 H:\wamp64\www\ojs3501\lib\pkp\lib\vendor\laravel\framework\src\Illuminate\Foundation\Http\Middleware\ConvertEmptyStringsToNull.php(31): Illuminate\Foundation\Http\Middleware\TransformsRequest->handle(Object(Illuminate\Http\Request), Object(Closure))
#35 H:\wamp64\www\ojs3501\lib\pkp\lib\vendor\laravel\framework\src\Illuminate\Pipeline\Pipeline.php(209): Illuminate\Foundation\Http\Middleware\ConvertEmptyStringsToNull->handle(Object(Illuminate\Http\Request), Object(Closure))
#36 H:\wamp64\www\ojs3501\lib\pkp\lib\vendor\laravel\framework\src\Illuminate\Foundation\Http\Middleware\TransformsRequest.php(21): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#37 H:\wamp64\www\ojs3501\lib\pkp\lib\vendor\laravel\framework\src\Illuminate\Foundation\Http\Middleware\TrimStrings.php(51): Illuminate\Foundation\Http\Middleware\TransformsRequest->handle(Object(Illuminate\Http\Request), Object(Closure))
#38 H:\wamp64\www\ojs3501\lib\pkp\lib\vendor\laravel\framework\src\Illuminate\Pipeline\Pipeline.php(209): Illuminate\Foundation\Http\Middleware\TrimStrings->handle(Object(Illuminate\Http\Request), Object(Closure))
#39 H:\wamp64\www\ojs3501\lib\pkp\lib\vendor\laravel\framework\src\Illuminate\Http\Middleware\ValidatePostSize.php(27): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#40 H:\wamp64\www\ojs3501\lib\pkp\lib\vendor\laravel\framework\src\Illuminate\Pipeline\Pipeline.php(209): Illuminate\Http\Middleware\ValidatePostSize->handle(Object(Illuminate\Http\Request), Object(Closure))
#41 H:\wamp64\www\ojs3501\lib\pkp\classes\middleware\ValidateCsrfToken.php(55): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#42 H:\wamp64\www\ojs3501\lib\pkp\lib\vendor\laravel\framework\src\Illuminate\Pipeline\Pipeline.php(209): PKP\middleware\ValidateCsrfToken->handle(Object(Illuminate\Http\Request), Object(Closure))
#43 H:\wamp64\www\ojs3501\lib\pkp\classes\middleware\DecodeApiTokenWithValidation.php(76): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#44 H:\wamp64\www\ojs3501\lib\pkp\lib\vendor\laravel\framework\src\Illuminate\Pipeline\Pipeline.php(209): PKP\middleware\DecodeApiTokenWithValidation->handle(Object(Illuminate\Http\Request), Object(Closure))
#45 H:\wamp64\www\ojs3501\lib\pkp\classes\middleware\SetupContextBasedOnRequestUrl.php(63): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#46 H:\wamp64\www\ojs3501\lib\pkp\lib\vendor\laravel\framework\src\Illuminate\Pipeline\Pipeline.php(209): PKP\middleware\SetupContextBasedOnRequestUrl->handle(Object(Illuminate\Http\Request), Object(Closure))
#47 H:\wamp64\www\ojs3501\lib\pkp\classes\middleware\AllowCrossOrigin.php(34): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#48 H:\wamp64\www\ojs3501\lib\pkp\lib\vendor\laravel\framework\src\Illuminate\Pipeline\Pipeline.php(209): PKP\middleware\AllowCrossOrigin->handle(Object(Illuminate\Http\Request), Object(Closure))
#49 H:\wamp64\www\ojs3501\lib\pkp\lib\vendor\laravel\framework\src\Illuminate\Pipeline\Pipeline.php(127): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#50 H:\wamp64\www\ojs3501\lib\pkp\classes\handler\APIHandler.php(102): Illuminate\Pipeline\Pipeline->then(Object(Closure))
#51 H:\wamp64\www\ojs3501\lib\pkp\classes\core\APIRouter.php(116): PKP\handler\APIHandler->runRoutes()
#52 H:\wamp64\www\ojs3501\lib\pkp\classes\core\Dispatcher.php(157): PKP\core\APIRouter->route(Object(APP\core\Request))
#53 H:\wamp64\www\ojs3501\lib\pkp\classes\core\PKPApplication.php(426): PKP\core\Dispatcher->dispatch(Object(APP\core\Request))
#54 H:\wamp64\www\ojs3501\index.php(21): PKP\core\PKPApplication->execute()

Hi @shantanusingh,

I suspect you’re mixing main branch code together with stable-3_5_0. Rather than downloading entire files from Github – which is probably the cause of the problem – use the patch tool on your server to apply the change. You can download patches from github following these instructions. This will make sure that only the desired change is applied, and it’ll let you know if that’s not possible due to e.g. an unexpected mismatch in the code.

Regards,
Alec Smecher
Public Knowledge Project Team

Hi @asmecher,

We have tested our database with OJS 3.5.0-2, but the performance issues are still persistent.

Please see the video demonstrating the issue (14.48 minutes).

When switching between Active Submissions, Needs Editor, and All in Submission stage, the page sometimes loads quickly, but often takes a considerable amount of time to respond.
The issue becomes more noticeable when switching directly between these menus.

When switching from Needs Reviewer to ..,…(Menus in between),.. Declined menu (or other review-stage queues), the page frequently hangs or takes an unusually long time to load.

Opening an individual submission also takes longer than expected.
After the article finally loads, attempting to search reviewers shows no results, indicating that the search request is either timing out or failing.
After adding a reviewer to an article, the reviewer doesn’t appear or takes a long time to load.

In Users & Roles, searching for any user returns no results, even when valid information is entered.

My local system configuration:

  • Memory allocation 4G in php.ini (RAM 16GB)
  • WAMP server
  • i7 processor
  • SSD

Hi, I would like to inform you that even in version 3.5.0-3 the bug has not been resolved. If we do not make 5-10 articles visible, we get the error and the articles are not displayed.

Hi,

Same problems here, but with versiĂłn 3.5.0-2. Coming from 3.3.0-10.

A heavy journal indeed. But running smoothly when in version 3.3.0-10

Also, in the front-end articles take a lot of time to load.

Will appreciate any advice from the team if possible.

Thanks in advance

Regards,

Juan

Hi all,

@simgiallorosso, when you say “the error”, can you provide more details?

@jascanio, there are already improvements in OJS 3.5.0-3; I’d suggest upgrading to that. We’ll be doing more performance work in upcoming builds.

Regards,
Alec Smecher
Public Knowledge Project Team

Hi

Thanks for your prompt reply.

Ok. We’ll upgrade to 3.5.0-3 from 3.5.0-2

Regards,

Juan

The most important detail is that if there are more than 15 items to display in the list, even with version 3.5.0-3 the query fails and fails.
We had to display a maximum of 10 items in the list.

with this solution we did not solve our issue

Hi @simgiallorosso

Thanks for pinpointing.

I’ll give it a thought. We’re not in live mode yet. Just did upgrading in our testing environment, which is what we always do prior to going live.

Our journal is a very prolific one, with a community of more than 6k active users worldwide.

So we consider sensible upgrading to last 3.4 stable release and wait until a 3.5.1(or 2)-X is released, for the sake of UX and journal editorial processing stability.

What I have been able to see and use so far in our testing 3.5.0-2, and at the PKP School, looks really promising. PKP has addressed extremely usefull functionalities and I know that this is requiring them lots of effort.

Regards,

Juan

Hi, I’m making an update that I hope will be helpful to everyone.

The problem occurs with Postgres databases, while on another magazine we updated to 3.5.0-3 with MySQL databases and the problem doesn’t occur.

Perhaps it can help developers understand the problem.

Regards