Page MenuHomePhabricator

Install of MW on DB2 fails (new-index.php r70326)
Closed, InvalidPublic

Description

Author: dnessett

Description:
screen shot of db2 install failure

Install of MW over a db2 database fails with the following error:

SQL error: [IBM][CLI Driver][DB2/LINUX] SQL0420N Invalid character found in a character string argument of the function "SMALLINT". SQLSTATE=22018 SQLCODE=-420

Backtrace:

#0 /usr/local/src/mediawiki/latest_trunk/trunk/phase3/includes/db/Database.php(524): DatabaseIbm_db2->doQuery('UPDATE /* Artic...')
#1 /usr/local/src/mediawiki/latest_trunk/trunk/phase3/includes/db/DatabaseIbm_db2.php(1194): DatabaseBase->query('UPDATE page SE...', 'Article::update...')
#2 /usr/local/src/mediawiki/latest_trunk/trunk/phase3/includes/Article.php(1813): DatabaseIbm_db2->update('page', Array, Array, 'Article::update...')
#3 /usr/local/src/mediawiki/latest_trunk/trunk/phase3/config/Installer.php(1367): Article->updateRevisionOn(Object(DatabaseIbm_db2), Object(Revision))
#4 /usr/local/src/mediawiki/latest_trunk/trunk/phase3/config/index.php(47): require('/usr/local/src/...')
#5 {main}

I am using the new installer:

$ svn info new-index.php
Path: new-index.php
Name: new-index.php
URL: http://svn.wikimedia.org/svnroot/mediawiki/trunk/phase3/config/new-index.php
Repository Root: http://svn.wikimedia.org/svnroot/mediawiki
Repository UUID: dd0e9695-b195-4be7-bd10-2dea1a65a6b6
Revision: 72074
Node Kind: file
Schedule: normal
Last Changed Author: ialex
Last Changed Rev: 70326
Last Changed Date: 2010-08-02 01:31:23 -0700 (Mon, 02 Aug 2010)
Text Last Updated: 2010-08-10 07:36:19 -0700 (Tue, 10 Aug 2010)
Checksum: 3f7ce7ab31622c6af32887cd5d23711b

I have attached a screen shot to provide context for the error.


Version: 1.17.x
Severity: major

Attached:

DB2_install_error.png (1×1 px, 102 KB)

Details

Reference
bz25002

Event Timeline

bzimport raised the priority of this task from to Medium.Nov 21 2014, 11:10 PM
bzimport set Reference to bz25002.
bzimport added a subscriber: Unknown Object (MLST).

I'm thinking support should be removed, little development, bar getting caught in other changes...

dnessett wrote:

(In reply to comment #2)

I'm thinking support should be removed, little development, bar getting caught
in other changes...

Works for me. The reason I am installing over multiple databases is I am trying to set up a testing environment against which functionality for the selenium framework is tested before submitting patches. If there is official withdrawal of support for DB2 or any other db software, that makes things simpler.

Stack trace indicates that you've been using the OLD updater, which makes sence since DB2 isn't currently supported by the new one.

(In reply to comment #3)

[...] If there is official withdrawal
of support for DB2 or any other db software, that makes things simpler.

It's not official, but since

Sorry, hit enter prematurely. Continuing my thought:

It's not official yet, but had been proposed before due to lack of active support. This may happen as soon as 1.17 simply because the new installer currently supports only three open-source databases.

For the reference:
http://www.mediawiki.org/w/index.php?title=New-installer_issues&diff=309243&oldid=309227

I've added the DB2 maintainer to this bug's CC.

dnessett wrote:

(In reply to comment #5)

Sorry, hit enter prematurely. Continuing my thought:

It's not official yet, but had been proposed before due to lack of active
support. This may happen as soon as 1.17 simply because the new installer
currently supports only three open-source databases.

For the reference:
http://www.mediawiki.org/w/index.php?title=New-installer_issues&diff=309243&oldid=309227

I've added the DB2 maintainer to this bug's CC.

Thanks for the info.

I had planned on installing the free Oracle db software and having a MW installation that runs over it, but if it is not supported, that would be unnecessary work. Is there somewhere that states the official dbs for each MW release? For example, while DB2 and Oracle may not be supported for 1.17, I would be interested if they are officially supported for 1.16.

[21:19:26] <^demon> See, I consider Oracle semi-functional.
[21:19:29] <^demon> It mostly works.

leons.petrazickis wrote:

@Max: Thanks for the CC.

I'm about to commit my outstanding changes. Looking over the diffs now. They add prepared statement support (to allow INSERT and UPDATE of more than 32k of text) and fix some issues with the schema.

I haven't looked at new installer yet unfortunately. I'm going to be advising a database class this fall that's going to be working with DB2 and PHP, and there may be some student volunteers working with me to improve DB2 support in MediaWiki.

@dan: There are issues with DB2 functionality in 1.16.

dnessett wrote:

(In reply to comment #7)

[21:19:26] <^demon> See, I consider Oracle semi-functional.
[21:19:29] <^demon> It mostly works.

My main interest is testing my code against those dbs that are considered officially supported. So, if there is a list of these (which, I suppose would depend on the release), then I will use it and stop testing against the others.

(In reply to comment #9)

(In reply to comment #7)

[21:19:26] <^demon> See, I consider Oracle semi-functional.
[21:19:29] <^demon> It mostly works.

My main interest is testing my code against those dbs that are considered
officially supported. So, if there is a list of these (which, I suppose would
depend on the release), then I will use it and stop testing against the others.

I answered this (and I think other) questions in http://article.gmane.org/gmane.science.linguistics.wikipedia.technical/49561 back in September. As far as I'm concerned, the ones worth testing and maintaining right now are:

mySQL, PostgreSQL, SQLite, Oracle.

Until DB2 and MSSQL finish their DatabaseBase subclasses and generally work (I'm aware that Postgres and Oracle still fail on some edge cases, but their completeness is far beyond the other two here), I don't see any need to test them and even less need to include them in the installer and advertise their use.

The one caveat is: while Oracle does have a working schema, DatabaseBase class and (almost complete) new installer code, the maintainer hasn't been writing patches to upgrade the database, so support is not complete and should NOT be recommended outside of development environments.

DB2 and MSSQL have code in the old installer, which may or may not work. In either case, it's not getting fixed at this point. The old installer is dead.

Marking INVALID. Reported bug was with old installer. New installer contains no DB2 support.