XFS: RevServer, web hosts, and you
Richard Gaskin
ambassador at fourthworld.com
Tue Jan 22 14:33:29 EST 2013
I recently had occasion to learn a bit more about file systems than I
had intended, and will share what I've learned here because it may
affect some RevServer or Rev CGI installations on third-party hosts:
PROBLEM: Some file I/O operations fail under XFS
------------------------------------------------
Dreamhost and some other web hosting companies have begun rolling out
new servers which use the XFS file system.
XFS is said to have better performance than EXT3 and even EXT4 used on
most Linux systems, but apparently this comes with a risk of
compatibility issues.
With LiveCode I've found two specific issues, though there may be others:
1. put url ("file:PathToLocalFile")
This fails, with sysError reporting 75. Oddly, using
"open..."/"read..."/"close..." works fine.
2. put the files
This also fails, always returning empty even when you know there are
files there.
While researching this I found some comments in the RealBASIC list
archives suggesting that the RB engine also has problems with the XFS
file system, so this is not solely a LiveCode issue.
In fact, it seems there may be a few other programs that have also
experienced problems with XFS.
DIAGNOSIS
---------
You can determine which file system your host is using by logging into
the system via SSH and running this command:
df -T
This will produce a columnar output which lists the various volumes and
their file systems available to your account. Note the second column on
the line for /home (often the last line of the output). It's usually
either EXT3, EXT4, or XFS.
If it's XFS you may want to try a quick script to verify that your
system is having the same limitations I had, either attempting to get a
list of files using "the files" or reading a local file using "put url...".
REMEDY: Short-term
------------------
If your system is using XFS, the quickest short-term solution is to ask
your web hosting company to move your account to a system that is both
32-bit compatible and also uses either EXT3 or EXT4.
With Dreamhost, it took a little back-and-forth via email, but as with
the RealBASIC user I'd come across they eventually offered to move my
accounts to a compatible system.
Hopefully your web host will be able to do the same.
REMEDY: Long-term
-----------------
With the apparent growing popularity of XFS on web servers, clearly any
long-term solution will require a version of the LiveCode engine which
is compatible with XFS.
I've been using my Dev Program "Quick Incident" benefits to enlist the
assistance of David Williams at RunRev, who's been enormously helpful in
going through the code to try to pinpoint the underlying cause.
His diagnosis is still ongoing at the moment, and as I learn more I'll
report back.
If we're lucky we'll find that there are alternative API calls that
RunRev could use for XFS which will take care of this. If so, we can
then expect a future version of LiveCode to be compatible with XFS.
We may also find that the issue may be a bug in the driver or other
component in the system, in which case we'll have to monitor progress on
that and see how it goes.
Hopefully one way or another we'll have a good long-term solution in
place soon.
The RunRev team is putting in an admirable effort toward this, and in
the meantime if you experience file I/O issues on your web server and
can verify that your host is using XFS, you may want to contact your
hosting company to see if they can move your account to a machine using
a different file system.
--
Richard Gaskin
Fourth World
LiveCode training and consulting: http://www.fourthworld.com
Webzine for LiveCode developers: http://www.LiveCodeJournal.com
Follow me on Twitter: http://twitter.com/FourthWorldSys
More information about the use-livecode
mailing list