Page MenuHomePhabricator

Catchable fatal error: Argument 1 passed to EducationProgram\Events\{closure}() must be an instance of _DiffOp, instance of DiffOp_Copy given in EditEventCreator.php
Closed, ResolvedPublic

Description

[21-Nov-2013 22:43:24] Catchable fatal error: Argument 1 passed to EducationProgram\Events\{closure}() must be an instance of _DiffOp, instance of DiffOp_Copy given at /usr/local/apache/common-local/php-1.23wmf4/extensions/EducationProgram/includes/Events/EditEventCreator.php on line 159
Server: mw1172
Method: POST
URL: http://en.wikipedia.org/w/index.php?title=User_talk:Werieth&action=submit
Backtrace:
#0 /usr/local/apache/common-local/php-1.23wmf4/extensions/EducationProgram/includes/Events/EditEventCreator.php(159): EducationProgram\Events\{closure}()
#1 [internal function]: EducationProgram\Events\{closure}(Object(DiffOp_Copy))
#2 /usr/local/apache/common-local/php-1.23wmf4/extensions/EducationProgram/includes/Events/EditEventCreator.php(162): array_filter(Array, Object(Closure))
#3 /usr/local/apache/common-local/php-1.23wmf4/extensions/EducationProgram/includes/Events/EditEventCreator.php(108): EducationProgram\Events\EditEventCreator->createEditEvents(Object(Revision), Object(User), Array)
#4 /usr/local/apache/common-local/php-1.23wmf4/extensions/EducationProgram/EducationProgram.hooks.php(448): EducationProgram\Events\EditEventCreator->getEventsForEdit(Object(WikiPage), Object(Revision), Object(User))
#5 [internal function]: EducationProgram\Hooks::onNewRevisionFromEditComplete(Object(WikiPage), Object(Revision), false, Object(User))
#6 /usr/local/apache/common-local/php-1.23wmf4/includes/Hooks.php(199): call_user_func_array('EducationProgra...', Array)
#7 /usr/local/apache/common-local/php-1.23wmf4/includes/GlobalFunctions.php(4032): Hooks::run('NewRevisionFrom...', Array)
#8 /usr/local/apache/common-local/php-1.23wmf4/includes/WikiPage.php(1800): wfRunHooks('NewRevisionFrom...', Array)
#9 [internal function]: WikiPage->doEditContent(Object(WikitextContent), '/* Restoring */...', 98, false, NULL, 'text/x-wiki')
#10 /usr/local/apache/common-local/php-1.23wmf4/includes/Article.php(2030): call_user_func_array(Array, Array)
#11 /usr/local/apache/common-local/php-1.23wmf4/includes/EditPage.php(1772): Article->__call('doEditContent', Array)
#12 /usr/local/apache/common-local/php-1.23wmf4/includes/EditPage.php(1772): Article->doEditContent(Object(WikitextContent), '/* Restoring */...', 98, false, NULL, 'text/x-wiki')
#13 /usr/local/apache/common-local/php-1.23wmf4/includes/EditPage.php(1213): EditPage->internalAttemptSave(Array, false)
#14 /usr/local/apache/common-local/php-1.23wmf4/includes/EditPage.php(416): EditPage->attemptSave()
#15 /usr/local/apache/common-local/php-1.23wmf4/includes/actions/EditAction.php(50): EditPage->edit()
#16 /usr/local/apache/common-local/php-1.23wmf4/includes/actions/EditAction.php(74): EditAction->show()
#17 /usr/local/apache/common-local/php-1.23wmf4/includes/Wiki.php(441): SubmitAction->show()
#18 /usr/local/apache/common-local/php-1.23wmf4/includes/Wiki.php(305): MediaWiki->performAction(Object(Article), Object(Title))
#19 /usr/local/apache/common-local/php-1.23wmf4/includes/Wiki.php(596): MediaWiki->performRequest()
#20 /usr/local/apache/common-local/php-1.23wmf4/includes/Wiki.php(460): MediaWiki->main()
#21 /usr/local/apache/common-local/php-1.23wmf4/index.php(49): MediaWiki->run()
#22 /usr/local/apache/common-local/w/index.php(3): require('/usr/local/apac...')
#23 {main}


Version: master
Severity: normal

Details

Reference
bz57380

Event Timeline

bzimport raised the priority of this task from to Needs Triage.Nov 22 2014, 2:32 AM
bzimport set Reference to bz57380.
  • Bug 57417 has been marked as a duplicate of this bug. ***

Change 97026 had a related patch set uploaded by AndyRussG:
Update _DiffOp to DiffOp following rename in core

https://gerrit.wikimedia.org/r/97026

Change 97026 merged by Reedy:
Update _DiffOp to DiffOp following rename in core

https://gerrit.wikimedia.org/r/97026

This was actually caused by my change. I'm certain I checked for the class name in almost all Gerrit exctensions, including EducationProgram. I do not know what went wrong here. My apologies for this breakage.

Sam has deployed a fix and things appear to be working again.

andrew.green.df wrote:

Please don't worry about it, Siebrand...!!! (And while it really doesn't matter, are you quite sure it was you? https://gerrit.wikimedia.org/r/#/c/92588/3/includes/diff/DairikiDiff.php)

Also--and I guess this is kinda off-topic--is there a stream somewhere for announcing potentially breaking API changes? If not, maybe one should be proposed?

(In reply to comment #5)

Please don't worry about it, Siebrand...!!! (And while it really doesn't
matter, are you quite sure it was you?
https://gerrit.wikimedia.org/r/#/c/92588/3/includes/diff/DairikiDiff.php)

Also--and I guess this is kinda off-topic--is there a stream somewhere for
announcing potentially breaking API changes? If not, maybe one should be
proposed?

Oh, it wasn't me, it was Max. I'm currently going through all of core to fix CodeSniffer and static code analysis issues. It's a lot of work, but the rate at which I'm finding bugs that can be fixed, and would have otherwise gone unnoticed is considerable and makes it worth while, I think.

Part of the cleanup is also removing classes with underscores. I have clones of most extensions in Gerrit (there are 650 or so, I have roughly 610). I'm planning to remove all underscores from class names, where they exist (as well as from files those classes with underscores are in). An example of the release notes I'm preparing is at https://gerrit.wikimedia.org/r/#/c/96469/5/RELEASE-NOTES-1.23

RELEASE-NOTES often get merge conflicted, so I want to update the release notes in a stand-alone patch set if and when the referenced patch is merged, and then get that merged quickly. I plan on using Autoloader.php to identify the classes that had their names changed.

andrew.green.df wrote:

(In reply to comment #6)

(In reply to comment #5)

Please don't worry about it, Siebrand...!!! (And while it really doesn't
matter, are you quite sure it was you?
https://gerrit.wikimedia.org/r/#/c/92588/3/includes/diff/DairikiDiff.php)

Also--and I guess this is kinda off-topic--is there a stream somewhere for
announcing potentially breaking API changes? If not, maybe one should be
proposed?

Oh, it wasn't me, it was Max. I'm currently going through all of core to fix
CodeSniffer and static code analysis issues. It's a lot of work, but the rate
at which I'm finding bugs that can be fixed, and would have otherwise gone
unnoticed is considerable and makes it worth while, I think.

Part of the cleanup is also removing classes with underscores. I have clones
of
most extensions in Gerrit (there are 650 or so, I have roughly 610). I'm
planning to remove all underscores from class names, where they exist (as
well
as from files those classes with underscores are in). An example of the
release
notes I'm preparing is at
https://gerrit.wikimedia.org/r/#/c/96469/5/RELEASE-NOTES-1.23

RELEASE-NOTES often get merge conflicted, so I want to update the release
notes
in a stand-alone patch set if and when the referenced patch is merged, and
then
get that merged quickly. I plan on using Autoloader.php to identify the
classes
that had their names changed.

Cool, thanks for the info!!!