Last modified: 2010-05-15 15:29:01 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 T2619, the corresponding Phabricator task for complete and up-to-date bug report information.
Bug 619 - Sun's diff3 makes concurrent edits produce a blank page instead of edit-conflict
Sun's diff3 makes concurrent edits produce a blank page instead of edit-conflict
Status: RESOLVED FIXED
Product: MediaWiki
Classification: Unclassified
History/Diffs (Other open bugs)
1.3.x
All All
: Normal normal (vote)
: ---
Assigned To: Nobody - You can work on this!
http://wiki.cs.princeton.edu/
: testme
Depends on:
Blocks:
  Show dependency treegraph
 
Reported: 2004-10-01 19:56 UTC by Steve Elgersma
Modified: 2010-05-15 15:29 UTC (History)
1 user (show)

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


Attachments

Description Steve Elgersma 2004-10-01 19:56:32 UTC
User A starts an edit on a page, user B then starts a second edit.  If user A
commits the edit, that change will be visible until user B commits his edit, at
which point the page becomes blank (although history is available), instead of
displaying the edit conflict screen.  This is 100% reproduceable (please feel
free to use the Sandbox: http://wiki.cs.princeton.edu/index.php/Sandbox).

System components:
Apache 1.3.31 (running on a recently-patched Solaris9 system), PHP 4.3.9, MySQL
4.0.18 (also running on Solaris9)

The problem does NOT occur when installing the software (v1.3.4) on a Linux
server (this was tested on two different Linux machines, one using the same
database server as above).

Other conditions:
* Client access from 3 different machines (Linux, Mac and Windows)
* Browsers used: Firefox, Mozilla, Netscape, IE, Safari
* Combinations of logged-in and anonymous users used to edit test pages
Comment 1 Rowan Collins [IMSoP] 2004-10-02 13:11:08 UTC
This could be a problem with "diff3", used by the conflict merging code. Being
an external program, this is good candidate for varying by OS. Could you try
setting $wgDiff3=''; in your LocalSettings.php, and seeing if that makes a
difference: it should fall back to giving an edit conflict screen every time.

My guess is the Solaris diff3 takes different command line paramaters, so isn't
behaving as MediaWiki expects.
Comment 2 Steve Elgersma 2004-10-02 14:34:57 UTC
(In reply to comment #1)
> This could be a problem with "diff3", used by the conflict merging code. Being
> an external program, this is good candidate for varying by OS. Could you try
> setting $wgDiff3=''; in your LocalSettings.php, and seeing if that makes a
> difference: it should fall back to giving an edit conflict screen every time.
> 
> My guess is the Solaris diff3 takes different command line paramaters, so isn't
> behaving as MediaWiki expects.

Setting $wgDiff3 solved the problem, both for the NULL value, and (as I happened to
have it) pointing it to the GNU version of diff3.  The Solaris diff3 is sufficiently
different from the GNU version to cause things to fail.

I'm not resolving the bug, in hopes that the install process could be modified
to detect
(or not, as the case may be) the GNU diff3.
Comment 3 Rowan Collins [IMSoP] 2004-10-02 15:51:46 UTC
(In reply to comment #2)
> I'm not resolving the bug, in hopes that the install process could be modified
> to detect
> (or not, as the case may be) the GNU diff3.

Well, it looks like there isn't much chance of getting a compatible result out
of the Solaris diff3: from the look of its man page at
http://docs.sun.com/db/doc/816-0210/6m6nb7m7g?a=view it will only ever output ed
scripts, not the diffs and merges that we want.

As for checking if the detected binary is the GNU version, we should be able to
execute "{$wgDiff3} --version" and see if the output begins "diff3 (GNU
diffutils)"; perhaps, as suggested, the installer could seek out an instance of
'diff3', and only set $wgDiff3 in the install if it is the GNU version. If it
exists but is wrong, a message could be displayed on the installation screen
explaining this.
Comment 4 Anthony 2004-10-05 15:30:36 UTC
changed severity to normal as workaround has been provided
Comment 5 ssd.moz 2005-03-31 21:07:28 UTC
Probably many systems have both gnu diff3 and vendor diff3 in the path, so it
might be useful to not just test diff3, but if it fails, look for another one.
Comment 6 Adam 2005-04-19 00:04:03 UTC
This bug also happens on AIX 5.1, and probably other AIX versions.
Comment 7 River Tarnell 2005-06-30 08:24:51 UTC
fixed for the Solaris case in 1.5, will be in 1.5beta2.  testing for AIX 
and other systems would be nice. 

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


Navigation
Links