Last modified: 2014-09-26 06:29:03 UTC

Wikimedia Bugzilla is closed!

Wikimedia migrated from Bugzilla to Phabricator. Bug reports are handled in Wikimedia Phabricator.
This static website is read-only and for historical purposes. It is not possible to log in and except for displaying bug reports and their history, links might be broken. See T67698, the corresponding Phabricator task for complete and up-to-date bug report information.
Bug 65698 - Under HHVM: Call to a member function getGuid() on a non-object
Under HHVM: Call to a member function getGuid() on a non-object
Status: RESOLVED FIXED
Product: MediaWiki extensions
Classification: Unclassified
WikidataClient (Other open bugs)
unspecified
All All
: Normal major (vote)
: ---
Assigned To: Wikidata bugs
u=dev c=backend p=0
: hhvm, need-volunteer, upstream
Depends on:
Blocks: 64415
  Show dependency treegraph
 
Reported: 2014-05-23 21:45 UTC by Max Semenik
Modified: 2014-09-26 06:29 UTC (History)
9 users (show)

See Also:
Web browser: ---
Mobile Platform: ---
Assignee Huggle Beta Tester: ---


Attachments

Description Max Semenik 2014-05-23 21:45:27 UTC
From a HHVM job runner:

Exception from line 432 of /usr/local/apache/common-local/php-1.24wmf5/extensions/Wikidata/vendor/wikibase/data-model/src/Claim/Claims.php: Call to a member function getGuid() on a non-object (NULL)
Backtrace:
#0 /usr/local/apache/common-local/php-1.24wmf5/extensions/Wikidata/vendor/wikibase/data-model/src/Entity/Entity.php(810): Wikibase\DataModel\Claim\Claims->getDiff(Wikibase\DataModel\Claim\Claims)
#1 /usr/local/apache/common-local/php-1.24wmf5/extensions/Wikidata/extensions/Wikibase/lib/includes/changes/EntityChange.php(324): Wikibase\DataModel\Entity\Entity->getDiff(Wikibase\DataModel\Entity\Item)
#2 /usr/local/apache/common-local/php-1.24wmf5/extensions/Wikidata/extensions/Wikibase/client/includes/ChangeHandler.php(278): Wikibase\EntityChange::newFromUpdate(string, Wikibase\DataModel\Entity\Item, Wikibase\DataModel\Entity\Item)
#3 /usr/local/apache/common-local/php-1.24wmf5/extensions/Wikidata/extensions/Wikibase/client/includes/ChangeHandler.php(387): Wikibase\ChangeHandler->mergeChanges(array)
#4 /usr/local/apache/common-local/php-1.24wmf5/extensions/Wikidata/extensions/Wikibase/client/includes/ChangeHandler.php(415): Wikibase\ChangeHandler->coalesceRuns(array)
#5 /usr/local/apache/common-local/php-1.24wmf5/extensions/Wikidata/extensions/Wikibase/client/includes/ChangeHandler.php(466): Wikibase\ChangeHandler->coalesceChanges(array)
#6 /usr/local/apache/common-local/php-1.24wmf5/extensions/Wikidata/extensions/Wikibase/lib/includes/ChangeNotificationJob.php(128): Wikibase\ChangeHandler->handleChanges(array)
#7 /usr/local/apache/common-local/php-1.24wmf5/maintenance/runJobs.php(110): Wikibase\ChangeNotificationJob->run()
#8 /usr/local/apache/common-local/php-1.24wmf5/maintenance/doMaintenance.php(109): RunJobs->execute()
#9 /usr/local/apache/common-local/php-1.24wmf5/maintenance/runJobs.php(281): include(string)
#10 /usr/local/apache/common-local/multiversion/MWScript.php(97): include(string)
#11 {main}
Comment 1 Tim Starling 2014-06-02 06:13:18 UTC
We really need full job parameters if we're going to debug these job queue failures effectively. Even correlated runJobs.log lines would not be enough in this case, since the strings in the log lines are truncated at 1024 characters, and changeIds is usually larger than that.
Comment 2 Ori Livneh 2014-06-18 01:25:55 UTC
I don't think this is too mysterious. Claims.php has the following code (L432-434):

    assert( $oldClaim instanceof Claim );
    assert( $newClaim instanceof Claim );
    assert( $oldClaim->getGuid() === $newClaim->getGuid() );

The expectation was presumably that if either $oldClaim or $newClaim are null, the final assert would never get executed. That isn't the case.

I do note that HHVM and PHP have somewhat different assert settings at the moment:

    PHP
    ~~~
    option                  ini_get()               assert_options()
    **********************************************************************
    assert.active           "1"                     1
    assert.warning          "1"                     1
    assert.bail             "0"                     0
    assert.quiet_eval       "0"                     0


    HHVM
    ~~~~
    option                  ini_get()               assert_options()
    **********************************************************************
    assert.active           ""                      0
    assert.warning          ""                      0
    assert.bail             ""                      0
    assert.quiet_eval       ""                      false


I'll see if I can get them to match.
Comment 3 Ori Livneh 2014-06-18 02:03:41 UTC
Upstream(?) PR: https://github.com/wmde/WikibaseDataModel/pull/120
Comment 4 Ori Livneh 2014-06-18 12:55:59 UTC
Upstream PR merged.
Comment 5 Aaron Schulz 2014-07-07 22:45:05 UTC
Was this deployed on production yet? I still see this.
Comment 6 Ori Livneh 2014-07-07 22:47:23 UTC
(In reply to Aaron Schulz from comment #5)
> Was this deployed on production yet? I still see this.

No, not yet.
Comment 7 Aaron Schulz 2014-08-01 20:56:48 UTC
Reopening since this problem still occurs on production and spams the logs. The change needs to go through the pipeline.
Comment 8 Lydia Pintscher 2014-08-19 12:18:02 UTC
This needs to be checked in datamodel 0.8.2.
Comment 9 Ori Livneh 2014-09-26 06:28:54 UTC
This doesn't appear in the last month's worth of logs.

Note You need to log in before you can comment on or make changes to this bug.


Navigation
Links