Page MenuHomePhabricator

Fatal error from "Data repair and upgrade" / "php maintenance/runJobs.php" ...
Closed, ResolvedPublic

Description

Author: dan.bolser

Description:
After doing a "Data Transfer" of ~700 pages, I noticed lots of properties of the new pages were not set, so I ran "Data repair and upgrade" from Special:SMWAdmin. Then I checked the job queue from "Special:Statistics" (it read 0), but I went and hit "php maintenance/runJobs.php" after a little while I got the following error...

...
2009-05-29 08:16:01 0 SMWUpdateJob RH037H20
2009-05-29 08:16:01 0 SMWUpdateJob RH038H10
2009-05-29 08:16:01 0 SMWUpdateJob RH038I04
2009-05-29 08:16:01 0 SMWUpdateJob Property:Has_marker
PHP Fatal error: Argument 1 passed to SMWUpdateJob::__construct() must not be null, called in /local/ws/www-potato/httpd/htdocs/potato/wiki/includes/JobQueue.php on line 188 and defined in /local/ws/www-potato/httpd/htdocs/potato/wiki/extensions/SemanticMediaWiki/includes/jobs/SMW_UpdateJob.php on line 26

Note: 'There is no page titled "Property:Has_marker"'

This may be related to the fact that originally the Data Transfer process didn't seem to do anything, and I got it going by hitting "php maintenance/runJobs.php" in the first place.

I just ran that again (job queue read 66), and it finished without error.

Thought I better log a bug, seeing as this was a 'fatal error'.

Dan.


Version: unspecified
Severity: normal

Details

Reference
bz18997

Event Timeline

bzimport raised the priority of this task from to Medium.Nov 21 2014, 10:36 PM
bzimport set Reference to bz18997.

dan.bolser wrote:

(In reply to comment #0)

After doing a "Data Transfer" of ~700 pages, I noticed lots of properties of
the new pages were not set, so I ran "Data repair and upgrade" from
Special:SMWAdmin. Then I checked the job queue from "Special:Statistics" (it
read 0), but I went and hit "php maintenance/runJobs.php" after a little while
I got the following error...

...
2009-05-29 08:16:01 0 SMWUpdateJob RH037H20
2009-05-29 08:16:01 0 SMWUpdateJob RH038H10
2009-05-29 08:16:01 0 SMWUpdateJob RH038I04
2009-05-29 08:16:01 0 SMWUpdateJob Property:Has_marker
PHP Fatal error: Argument 1 passed to SMWUpdateJob::__construct() must not be
null, called in
/local/ws/www-potato/httpd/htdocs/potato/wiki/includes/JobQueue.php on line 188
and defined in
/local/ws/www-potato/httpd/htdocs/potato/wiki/extensions/SemanticMediaWiki/includes/jobs/SMW_UpdateJob.php
on line 26

Note: 'There is no page titled "Property:Has_marker"'

This may be related to the fact that originally the Data Transfer process
didn't seem to do anything, and I got it going by hitting "php
maintenance/runJobs.php" in the first place.

I just ran that again (job queue read 66), and it finished without error.

I'm still seeing missing properties. Job queue length reads 50 but "php maintenance/runJobs.php" isn't doing anything...

I just started a new "Data repair and upgrade".
Job queue length reads 0.

Now "php maintenance/runJobs.php" is doing stuff again...

As before:

2009-05-29 08:34:04 0 SMWUpdateJob RH038H10
2009-05-29 08:34:04 0 SMWUpdateJob RH038I04
2009-05-29 08:34:04 0 SMWUpdateJob Property:Has_marker
PHP Fatal error: Argument 1 passed to SMWUpdateJob::__construct() must not be null, called in /local/ws/www-potato/httpd/htdocs/potato/wiki/includes/JobQueue.php on line 188 and defined in /local/ws/www-potato/httpd/htdocs/potato/wiki/extensions/SemanticMediaWiki/includes/jobs/SMW_UpdateJob.php on line 26

Finished off the job (hit "php maintenance/runJobs.php")...

Job queue length reads 63.

NOW CREATING THE "Property:Has_marker" PAGE (type = string).

Job queue length reads 669.

NOTE! The values of the marker property were of the form "pm:#wxyz", so I think the "pm:" part was causing some problems because it looks like a namespace and the default property type is page...

php maintenance/runJobs.php ...

Running ... ran without errors

Job queue length reads 32.

Still missing properties...

Hitting "Data repair and upgrade"...

Hitting "php maintenance/runJobs.php"

Hitting the same bug again...

2009-05-29 08:48:07 0 SMWUpdateJob RH038H10
2009-05-29 08:48:08 0 SMWUpdateJob RH038I04
PHP Fatal error: Argument 1 passed to SMWUpdateJob::__construct() must not be null, called in /local/ws/www-potato/httpd/htdocs/potato/wiki/includes/JobQueue.php on line 188 and defined in /local/ws/www-potato/httpd/htdocs/potato/wiki/extensions/SemanticMediaWiki/includes/jobs/SMW_UpdateJob.php on line 26

Hmm... that's actually not the same error as before...

I'm guessing me providing more details of what I'm doing at this point is counter productive. I thought the above may be useful for you to track down what was going on. I'll keep doing more of the same in the hope that I start to see all properties returned by all queries.

Cheers,
Dan.

Thought I better log a bug, seeing as this was a 'fatal error'.

Dan.

This escaped my attention since it was tagged as "enhancement". The reason for the confusing outputs might be, that you do not actually see the title that causes the problem, but the title that was successfully processed previously.

I have modified SVN to not include this runtime check for Title -- the parent class Job does not have this requirement either, so it should be okay. The rest of the code is actually quite careful about NULL titles already, so maybe the check was just overlooked when trying to fix a similar problem earlier. This change does not remove the problem that some titletext gets into the job queue although it is not a valid page title, but it certainly avoids the SMW-based error that you report.

Other errors could occur due to the general situation in your wiki -- feel free to reopen this bug in this case.