Ojs 3.3.0-20 indexing process does not finish and stops silently after about 20 hours

Describe the issue or problem
ojs 3.3.0-20 indexing process does not finish and stops silently after about 20 hours. Hence some of the journals that have not been indexed are not searchable.

Steps I took leading up to the issue
For example:

nohup php -d max_execution_time=0 tools/rebuildSearchIndex.php > ./rebuildSearchIndex.log 2>&1 &

What application are you using?
ojs 3.3.0-20

Additional information
below are all content logged in my log file rebuildSearchIndex.log

nohup: ignoring input Clearing index … done Indexing “Alberta Journal of Educational Research” … 3315 articles indexed Indexing “ARIEL: A Review of International English Literature” … Syntax Warning: May not be a PDF file (continuing anyway) Syntax Error (26): Illegal character ‘>’ Syntax Error: Couldn’t find trailer dictionary Syntax Error: Couldn’t find trailer dictionary Syntax Error: Couldn’t read xref table /journals/86/articles/35402/submission/proof/35402-50-89424-1-10-20130217.doc is not a Word Document. 6384 articles indexed Indexing “ARCTIC” … 5105 articles indexed Indexing “The Calgary Papers in Military and Strategic Studies” … 32 articles indexed Indexing “Canadian Journal for New Scholars in Education/ Revue canadienne des jeunes chercheures et chercheurs en éducation” … Syntax Error: Expected the default config, but wasn’t able to find it, or it isn’t a Dictionary 916 articles indexed Indexing “Canadian Journal of Counselling and Psychotherapy” …

I have tried many days and at this point I am out of idea, not sure what else to do so I appreciate any pointer to further troubleshoot this issue. I hope you can help.

Best regards,
Dung.

In addition today I have found error during the indexing process, but now sure how to fix this:

[29-Oct-2025 04:46:00 America/Edmonton] PHP Fatal error: Uncaught TypeError: Cannot access offset of type string on string in /ojs-3.3.0-20/lib/pkp/classes/core/DataObject.inc.php:133
Stack trace:
#0 /ojs-3.3.0-20/lib/pkp/classes/db/SchemaDAO.inc.php(243): DataObject->setData(‘biography’, ‘’, ‘en_US’)
#1 /ojs-3.3.0-20/lib/pkp/classes/submission/PKPAuthorDAO.inc.php(134): SchemaDAO->_fromRow(Array)
#2 /ojs-3.3.0-20/lib/pkp/classes/db/DAOResultFactory.inc.php(100): PKPAuthorDAO->_fromRow(Array)
#3 /ojs-3.3.0-20/lib/pkp/classes/db/DAOResultIterator.inc.php(33): DAOResultFactory->next()
#4 /ojs-3.3.0-20/lib/pkp/classes/db/DAOResultFactory.inc.php(182): DAOResultIterator->__construct(Object(DAOResultFactory))
#5 /ojs-3.3.0-20/lib/pkp/classes/services/PKPAuthorService.inc.php(69): DAOResultFactory->toIterator()
#6 /ojs-3.3.0-20/lib/pkp/classes/publication/PKPPublicationDAO.inc.php(62): PKP\Services\PKPAuthorService->getMany(Array)
#7 /ojs-3.3.0-20/classes/publication/PublicationDAO.inc.php(39): PKPPublicationDAO->_fromRow(Array)
#8 /ojs-3.3.0-20/lib/pkp/classes/db/DAOResultFactory.inc.php(100): PublicationDAO->_fromRow(Array)
#9 /ojs-3.3.0-20/lib/pkp/classes/db/DAOResultIterator.inc.php(33): DAOResultFactory->next()
#10 /ojs-3.3.0-20/lib/pkp/classes/db/DAOResultFactory.inc.php(182): DAOResultIterator->__construct(Object(DAOResultFactory))
#11 /ojs-3.3.0-20/lib/pkp/classes/services/PKPPublicationService.inc.php(80): DAOResultFactory->toIterator()
#12 /ojs-3.3.0-20/lib/pkp/classes/submission/PKPSubmissionDAO.inc.php(93): PKP\Services\PKPPublicationService->getMany(Array)
#13 /ojs-3.3.0-20/lib/pkp/classes/db/DAOResultFactory.inc.php(100): PKPSubmissionDAO->_fromRow(Array)
#14 /ojs-3.3.0-20/lib/pkp/classes/db/DAOResultIterator.inc.php(62): DAOResultFactory->next()
#15 /ojs-3.3.0-20/classes/search/ArticleSearchIndex.inc.php(278): DAOResultIterator->next()
#16 /ojs-3.3.0-20/tools/rebuildSearchIndex.php(59): ArticleSearchIndex->rebuildIndex(true, Object(Journal), Array)
#17 /ojs-3.3.0-20/tools/rebuildSearchIndex.php(75): rebuildSearchIndex->execute()
#18 {main}
thrown in /ojs-3.3.0-20/lib/pkp/classes/core/DataObject.inc.php on line 133

Update,

I have found a fix for this bug when you upgrade from php 7.4 to php 8.x

the changes that I made, please notice the file name _old is on the right and fixed is on the left. This resolved more than 1 indexing issue, it also resolve other profile and dashboard issue.

Dung.

Hi @dung,

I think this is a data error – you have a mix of localized and non-localized data that is causing problems. Check the author_settings table to make sure that all entries with a setting_name of “biography” have a valid locale code in the “locale” column.

Regards,
Alec Smecher
Public Knowledge Project Team

1 Like

Thank you @asmecher I will clean up my data (is a proper fix instead of getting around with the code changes).