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