Some citations missing after upgrade from OJS 3.1.1.4

Description of issue or problem I’m having:
After upgrade to version OJS 3.3.0.8 (from 3.1.1.4) many references from the publication/citations page are missing. They exist in the database in the citations table but are not shown in the application page. This happens for some publications while others are displayed as expected. I am unsure of the relation between the citations or publications that have this issue.

Steps I took leading up to the issue:
Upgrade from version 3.1.1.4 to 3.3.0.8 which went successfully.

What I tried to resolve the issue:
I am unsure why this is happening. There are no errors in the php error log at /logs/.php.error.log. Some of the missing citations are written in English Alphabet letters only, I am guessing it is not encoding issue. I see that the column names in the citation table are changed between version from submission_id to publication_id, it might have caused the issue during upgrade?

Application Version - e.g., OJS 3.1.2:
OJS 3.1.1.4 upgrade 3.3.0.8

Additional information, such as screenshots and error log messages if applicable:
image
3.1.1.4 citations table:
image
3.3.0.8 citations table:
image

Hi @Milos_Ilic,

It might be worth having a look at the advice given here, to see if that helps:

-Roger
PKP Team

Hi @rcgillis,

Thank you for reply!

I ran parseCitations.php script, it finished with some deprication errors, but I think it went successfully. Here is the output:

PS D:\wamp64\www\ojs3\lib\pkp\tools> php .\parseCitations.php all

Deprecated: Return type of ADODB_Iterator_empty::current() should either be compatible with Iterator::current(): mixed, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in D:\wamp64\www\ojs3\stanovnistvo\lib\pkp\lib\vendor\adodb\adodb-php\adodb.inc.php on line 3149

Deprecated: Return type of ADODB_Iterator_empty::next() should either be compatible with Iterator::next(): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in D:\wamp64\www\ojs3\stanovnistvo\lib\pkp\lib\vendor\adodb\adodb-php\adodb.inc.php on line 3153

Deprecated: Return type of ADODB_Iterator_empty::key() should either be compatible with Iterator::key(): mixed, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in D:\wamp64\www\ojs3\stanovnistvo\lib\pkp\lib\vendor\adodb\adodb-php\adodb.inc.php on line 3145

Deprecated: Return type of ADODB_Iterator_empty::valid() should either be compatible with Iterator::valid(): bool, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in D:\wamp64\www\ojs3\stanovnistvo\lib\pkp\lib\vendor\adodb\adodb-php\adodb.inc.php on line 3141

Deprecated: Return type of ADODB_Iterator_empty::rewind() should either be compatible with Iterator::rewind(): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in D:\wamp64\www\ojs3\stanovnistvo\lib\pkp\lib\vendor\adodb\adodb-php\adodb.inc.php on line 3139

Deprecated: Return type of ADORecordSet_empty::getIterator() should either be compatible with IteratorAggregate::getIterator(): Traversable, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in D:\wamp64\www\ojs3\stanovnistvo\lib\pkp\lib\vendor\adodb\adodb-php\adodb.inc.php on line 3204

Deprecated: Return type of ADODB_Iterator::current() should either be compatible with Iterator::current(): mixed, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in D:\wamp64\www\ojs3\stanovnistvo\lib\pkp\lib\vendor\adodb\adodb-php\adodb.inc.php on line 3276

Deprecated: Return type of ADODB_Iterator::next() should either be compatible with Iterator::next(): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in D:\wamp64\www\ojs3\stanovnistvo\lib\pkp\lib\vendor\adodb\adodb-php\adodb.inc.php on line 3280

Deprecated: Return type of ADODB_Iterator::key() should either be compatible with Iterator::key(): mixed, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in D:\wamp64\www\ojs3\stanovnistvo\lib\pkp\lib\vendor\adodb\adodb-php\adodb.inc.php on line 3272

Deprecated: Return type of ADODB_Iterator::valid() should either be compatible with Iterator::valid(): bool, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in D:\wamp64\www\ojs3\stanovnistvo\lib\pkp\lib\vendor\adodb\adodb-php\adodb.inc.php on line 3268

Deprecated: Return type of ADODB_Iterator::rewind() should either be compatible with Iterator::rewind(): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in D:\wamp64\www\ojs3\stanovnistvo\lib\pkp\lib\vendor\adodb\adodb-php\adodb.inc.php on line 3264

Deprecated: Return type of ADORecordSet::getIterator() should either be compatible with IteratorAggregate::getIterator(): Traversable, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in D:\wamp64\www\ojs3\stanovnistvo\lib\pkp\lib\vendor\adodb\adodb-php\adodb.inc.php on line 3356

This didn’t solve the issue however, I still have missing references. I am unsure if encoding is the issue, some of the citations use Serbian Cyrillic letters but most are in English Alphabet. Encoding of the database is utf8_unicode_ci and encoding of the citations table is utf8_general_ci. Since some of the citations are missing and some are displayed correctly, it could be some kind of encoding issue?

I am trying to change collation to utf8mb4 from utf8, I am getting error 1709 - Index column size too large. The maximum column size is 767 bytes. Trying to investigate that. Would mb4 collation be useful or am I wasting time debugging this right now?

Hi @Milos_Ilic,

Thanks for the update. Glad to hear it yielded at least some success…

This is a little outside of my skillset, but I’ll see if some of my colleagues can address your questions when they are available.

Best regards,

Roger
PKP Team

Hi @rcgillis,

Thank you! I will be waiting for the reply from your colleagues and continue to play with encoding settings. Please tell me if I need to share any more info.

Best regards,
Milos