6.0.0-beta1
7/9/25

[#12906] Horde doesn't work on NFS
Summary Horde doesn't work on NFS
Queue Horde Base
Queue Version 5.1.5
Type Bug
State Not A Bug
Priority 1. Low
Owners
Requester bra (at) fsn (dot) hu
Created 01/08/2014 (4200 days ago)
Due
Updated 01/09/2014 (4199 days ago)
Assigned
Resolved 01/08/2014 (4200 days ago)
Github Issue Link
Github Pull Request
Milestone
Patch No

History
01/09/2014 06:28:09 AM bra (at) fsn (dot) hu Comment #3 Reply to this comment
I guess doing mandatory locking in getPackage may not be needed, so 
this could be made optional, if it fails, just do the thing without 
the lock.
I've already opened a bug there, I hope they will take care of it.

Thanks.
01/08/2014 03:57:25 PM Michael Rubinsky Comment #2
State ⇒ Not A Bug
Priority ⇒ 1. Low
Reply to this comment
This is a limitation of PEAR, it requires that the process owner be 
able to create a lock file in the pear directory. You can talk to the 
folks at PEAR to see if it's possible to work around this on a 
read-only NFS share. It might even be possible to manually set the 
directory to create the lock...
01/08/2014 09:02:46 AM bra (at) fsn (dot) hu Comment #1
Priority ⇒ 2. Medium
Patch ⇒ No
Milestone ⇒
Queue ⇒ Horde Base
Summary ⇒ Horde doesn't work on NFS
Type ⇒ Bug
State ⇒ Unconfirmed
Reply to this comment
I've a recently upgraded Horde from FreeBSD packages. The server runs 
from a read only NFS server, so every directory and file are on NFS 
and are read only.
When I log into Horde, I get the following error:
[08-Jan-2014 09:46:44 Europe/Budapest] PHP Fatal error:  Call to 
undefined method PEAR_Error::getName() in 
/usr/local/share/pear/Horde/Core/Db/Migration.php on line 93

Placing two debug log statements around that line:
-----------------------------------8<-----------------------------------
        foreach (glob($pear->get('data_dir') . '/*/migration') as $dir) {
                 Horde::log("XXX ".$dir, Horde_Log::ERR);
                 Horde::log("XXX 
".$registry->getPackage(basename(dirname($dir)),
  'pear.horde.org'), Horde_Log::ERR);
             $app = $registry->getPackage(
-----------------------------------8<-----------------------------------
revealed the following:
Jan  8 09:46:44 [imp] XXX 
/usr/local/share/pear/data/Horde_ActiveSync/migration [pid 2333 on 
line 90 of "/usr/local/share/pear/Horde/Core/Db/Migration.php"]
Jan  8 09:46:44 [imp] XXX could not acquire shared lock 
(/usr/local/share/pear/.lock) [pid 2333 on line 91 of 
"/usr/local/share/pear/Horde/Core/Db/Migration.php"]

Doing a ktrace on the php process gives:
   2333 php-fpm  CALL  open(0x810f64348,0<O_RDONLY>,<unused>0)
   2333 php-fpm  NAMI  "/usr/local/share/pear/.lock"
   2333 php-fpm  RET   open 16/0x10
   2333 php-fpm  CALL  fstat(0x10,0x8112bc540)
   2333 php-fpm  STRU  struct stat {dev=973143809, ino=3195588, 
mode=-rw-r--r-- , nlink=1, uid=0, gid=0, rdev=42672, 
atime=1389170490.846139742, stime=1389170490.846139742, 
ctime=1389170490.846139742, birthtime=-1, size=0, blksize=4096, 
blocks=1, flags=0x0 }
   2333 php-fpm  RET   fstat 0
   2333 php-fpm  CALL  lseek(0x10,0,SEEK_CUR)
   2333 php-fpm  RET   lseek 0
   2333 php-fpm  CALL  flock(0x10,0x1<LOCK_SH>)
   2333 php-fpm  RET   flock -1 errno 45 Operation not supported

which makes sense, flock over NFS doesn't work. Last year this setup 
worked. What has changed since then?
Could you please correct, or work around this to make Horde runnable 
over NFS again?

Saved Queries