Hi all,
I am using OJS 3.1.1.2. and have a problem with only one submission, all others are working OK. The problem is that when viewing one (not yet published) submission the list of participants on the right sidebar doesn’t load, only spinning:
The error in the console is following:
VM1477:1 GET https://…/index.php/ZdravVest/$$$call$$$/grid/users/stage-participant/stage-participant-grid/fetch-grid?submissionId=2972&stageId=4&_=1588447886862 500 (Internal Server Error)
Unfortunately I can’t find anything useful in the server/access logs. Note that this happens for this particular submission only.
Any idea how to proceed with the investigation?
Regards, Primož
Hi @primozs,
There will definitely be something logged in the web server error log when you see a 500 code. What do you see there?
Regards,
Alec Smecher
Public Knowledge Project Team
Hi @asmecher,
Unfortunately I cannot find anything in the logs. The interesting is that everzthing else works. So all other submissions, etc. Also within this submission I can check metadata, history, reviews,… Just the list of contributors is spinnign forever.
This make sme thinking something is wrong with this concrete submisssion. I have enables the ‘WEB debugging’ - the lines in the config.inc.php. I don’t see anything there. Do you mind if I send the output privately to you if you get any idea how to proceed?
Best regards, Primož
Hi @primozs,
There will definitely be something logged in the server side logs; if you don’t see anything in your PHP error log then it’s possible that you might find something in your Apache error log. I’m not sure which “web debugging” setting you’re referring to, though?
Regards,
Alec Smecher
Public Knowledge Project Team
Hi @asmecher,
What I wanted to say with the ‘web debugging’ is that I switched on the settings:
- debug (for DB)
- show_stacktrace
- display_errors
- log_web_service_info
so I got some things to look at. However in this case only the left hand menu is displayed, the rest not, except the ‘debug lines’.
Best regards, Primož
Hi @primozs,
I’d suggest disabling debug
and display_errors
; they’ll interfere with OJS. The log_web_service_info
setting isn’t relevant to what you’re encountering and I’d suggest leaving it Off
. Likewise, leave the show_stacktrace
option Off
; we’ll need to find/identify the error message before this will be helpful.
Try those settings, then review your logs carefully to see if anything shows up when you hit the problem page.
Regards,
Alec Smecher
Public Knowledge Project Team
Hi @asmecher,
Thank you for being so patient. Finally I got the error in the php.log that shows something:
[12-May-2020 16:35:08 UTC] PHP Fatal error: Call to a member function getFullName() on null in …/lib/pkp/controllers/grid/users/stageParticipant/StageParticipantGridCellProvider.inc.php on line 36
Any idea how to proceed?
Best regards, Primož
PS: I have looked in the DB and found perfectly OK entry in the authors table for this submission and author.
Hi @primozs,
That’s a data error; look for entries in your stage assignments that reference non-existent users:
SELECT sa.* FROM stage_assignments sa LEFT JOIN users u ON (sa.user_id = u.user_id) WHERE u.user_id IS NULL;
These rows should probably be deleted. (Make sure to take a good backup first!)
Regards,
Alec Smecher
Public Knowledge Project Team
Hi @asmecher,
I found the problem at the same time also by myself: There was an error in the stage_assignments table, where the submission author was wrong, the user_is was pointing to not existing user. I investigated a bit more and (I believe) I found correct user, changed the wrong user_id and now it looks OK.
But, the point is how that happened. I am not sure, but I strongly believe that I merged two users and the author/stage_assignments was not updated properly. So I would suggest to look at the code and verify if there is something in that area.
Best regards, Primož
Hi @primozs,
It’s likely that you encountered one of several past bugs over the years related to the “Merge Users” feature. It’s possible that some database entities got left behind. There are several solutions to the general problem of data quirks that accumulate over the years, and we’ll probably pursue both:
- A database checker that corrects/warns of problems
- More use of
JOIN
in place of LEFT JOIN
in SQL fetches, and
- Conditionals in PHP code for cases where data can’t be fetched (added for this case)
Those are all longer-term projects, though.
Regards,
Alec Smecher
Public Knowledge Project Team