Last modified: 2012-05-15 14:26:27 UTC
Upon edit of any page, upon click of the "Save button" the edit fails. No error is returned to the browser (IE, FireFox, Netscape). An error is found under the Apache logs as follows:<br><br> [Fri Apr 22 11:11:42 2005] [notice] child pid 2433 exit signal Illegal instruction (4)<br><br> This problem can be reproduced at will.<br> Closer examination with the tusc analyzer shows:<br><br> readlink("/opt", "", 1024) ERR#22 EINVAL<br> readlink("/opt/mediawiki-1.4.1", "", 1024) ERR#22 EINVAL<br> readlink("/opt/mediawiki-1.4.1/includes", "", 1024) ERR#22 EINVAL<br> readlink("/opt/mediawiki-1.4.1/includes/normal", "", 1024) ERR#22 EINVAL<br> readlink("/opt/mediawiki-1.4.1/includes/normal/UtfNormal.php", "", 1024) ERR#22 EINVAL<br> open("/opt/mediawiki-1.4.1/includes/normal/UtfNormal.php", O_RDONLY, 0666) = 11<br> fstat(11, 0x67e82fd0) = 0<br> fstat(11, 0x67e830d0) = 0<br> lseek(11, 0, SEEK_CUR) = 0<br> lseek(11, 0, SEEK_SET) = 0<br> close(11) = 0<br> Received signal 10, SIGBUS, in user mode, [caught], partial siginfo<br> Siginfo: si_code: I_NONEXIST, faulting address: 0x67e92f28, si_errno: 0<br> PC: 0xc25b7a9f, instruction: 0x6bd33fc1<br> exit(4) [implicit] WIFSIGNALED(SIGILL)<br><br> The version page shows this:<br><br> MediaWiki (http://wikipedia.sf.net/): 1.4.2 <br> PHP (http://www.php.net/): 4.3.8 (apache2handler) <br> MySQL (http://www.mysql.com/): 4.1.10a-max<br><br> My Workaround is to use another system with older versions of everything.<br><br> MediaWiki (http://wikipedia.sf.net/): 1.4.1<br> PHP (http://www.php.net/): 4.2.3 (apache2filter)<br> MySQL (http://www.mysql.com/): 4.0.24-max<br><br> Any help would be appreciated.
I do run other MySQL and PHP applications on the same machine without error. Not that this adds a great deal of information, it does show that at least MySQL and PHP are working to a degree.
Try upgrading these seperately. Upgrade PHP first (least likely to be problematic), then MySQL. Next, try to upgrade Mediawiki. Make sure the MySQL version is correct in Localsettings.php. Also, check if other queries also fail e.g. registering, logging in, adding to watchlist, recentchanges, allpages, viewing watchlist.
Try upgrading these seperately. Upgrade PHP first (least likely to be problematic) Then MySQL. Next, try to upgrade Mediawiki. > Done. Have tried several versions. Make sure the MySQL version is correct in Localsettings.php. >The only versioning I can find is for MediaWiki and that is correct. Also, check if other queries also fail e.g. registering, logging in, adding to watchlist, recentchanges, allpages, viewing watchlist. > Unable to reproduce the problem in any area other than Edit Saves! All other areas look find. As mentined before, if I use very old versions of PHP and Apache, the problem goes away. The problems creep up on me when using new versions of Apache and PHP.
I'm currently working directly with HP technical support on this issue. I'm not sure where the fault lies at this point. I'm tending to believe it is an HP Apache Threading problem. HP is currently examining the core files produced when an edit/save is attempted. This problem cannot be reproduced in older versions of Apache and PHP, yet the older versions of PHP do not allow file tests and such as required by index.php. if( !file_exists( 'LocalSettings.php' ) ) {... <== won't work on earlier versions of PHP As strange as it sounds, my other 8 PHP applications are all working well on the same version of Apache/PHP that is troublesome to MediaWiki. Any help would be appreciated. I'll report back on what HP finds upon their analysis of the problem.
Oh yes - another somewhat important piece of info: I've upgraded to MW 1.4.4 and the problem still occurs.
I've since built my own httpd and php module on the aforementioned HP platform. The MediaWiki works without fail now. The primary difference between my build and the HP build of Apache: My is a non-threaded "prefork" Apache binary unlike the threaded "worker MPM" Apache binary. This problem is solved. The culprit; HP threading? I've sent the appropriate data back to HP and will post their reply. Since I'm not very familiar with BugZilla, I'm going to leave this issue open and post the reply from HP on this problem. If I close this issue, I'm not sure if I can get back in to add commentary. Bottom line: Version numbers are not that important - but build options are. HP supplied threaded Apache2 is not MediaWiki compatible (and would suspect other applications may break also). More to follow...
PHP explicitly recommends against the threaded model for Apache2 as it's known to break things. Either use prefork Apache, or the CGI interface for PHP instead of the Apache module.
After a bit of discussion, debugging, and consultation with the HP staff, they have found a fix. It appears to be a thread stack size problem. Increasing the thread stack size to 262144 seemed to do the trick. The case number at HP for this problem is: 3210446197. Also see: http://httpd.apache.org/docs-2.1/mod/mpm_common.html#threadstacksize For a more detailed discussion on the ThreadStackSize directive. I'm now closing this issue as the MediaWiki now works as designed.