Following up.
I did some tests on some Special Page extensions I wrote based on the updated
documentation at
mediawiki.org <http://mediawiki.org/>. Here they are, in case
anyone is interested. Both work, so the HTMLform callback is NOT the problem.
https://github.com/jimhu-tamu/scratch/tree/master/SpecialPageTests
<https://github.com/jimhu-tamu/scratch/tree/master/SpecialPageTests>
Since then, I have a new hypothesis about what is happening and am wondering if someone
here can clarify if this is correct or not.
The code is throwing the mass commit error only if something interrupts processing before
execution is complete - that includes my testing with die() statements or other errors
that I’ve been tracking down. So it seems like doing execution via the Special page is
caching all database interactions into some unknown number of transactions that never get
committed until page execution makes it all the way to the end. If it doesn’t, the mass
commit error happens.
It looks to me like in the earlier versions of MW creating a page is committed during
execution, so one can pull a revision for that page and do stuff to it in the same pass
through the special page execution. Now it’s acting like there is not revision to pull
after doing WikiPage::doEditContent(). When I comment out the right blocks of code, I can
see that I create the desired page from my template, but my attempt to pull the revision
text back out and do something to it blanks the page and causes errors from code that
expects there to be text in the revision.
I think I can find the problems now or do a different kind of workaround. But I’m curious
if I’m right about the transactions and uncommitted page creation.
Thanks
Jim
On Apr 23, 2019, at 11:15 AM, Jim Hu
<jim.hu.biobio(a)gmail.com> wrote:
It’s a custom extension used by my lab only, and while a version is on our public github,
it’s going to be hard to follow because of entanglement with some other custom code
libraries we use that wrap the WikiPage class to accommodate our use of the TableEdit
extension. If you want to look anyway, it’s here:
https://github.com/microbialphenotypes/OMPwiki/blob/master/OMP/specialpages…
But it would probably be more useful for you to wait until I can pare it down to
something that is minimal to see if I can isolate the problematic part and then push that
to github.
I was hoping someone had seen a similar problem with Special page development and had a
simpler answer!
Thanks!
Jim
On Apr 23, 2019, at 10:29 AM, Jaime Crespo
<jcrespo(a)wikimedia.org> wrote:
> For one of our custom wikis we have a Special
Page that creates new pages
> based on form input. This used to work in MW1.23 but in the long overdue
> update to MW1.31 it stopped working.
I am not familiar with Special:StrainNewPage, I am guessing that is
custom code not available from a standard extension? If it is not
private and you could share that custom code (or at least part of it)
maybe someone can help you better to see what is the problem in your
case. :-)
_______________________________________________
Wikitech-l mailing list
Wikitech-l(a)lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/wikitech-l