No problem coming from 3.1.3. For earlier versions consult V3.1.3.
V3.1.4 is in the process of being prepared to fit the needs for the DESY HSM disk cache.
Thecreate .(pset)(<pnfsId>)(size)(<size>) rm .(pset)(<pnfsId>)(size)(<size>)allows to set the size of a file only knowing its pnfsID. Simalar to .(fset) setting the size to a none zero value is only allowed once. To reset the size to zero rm .(pset)(...) has to be used. The .(pset) file doesn't exist as long as the filesize is zero.
V3.1.4 behaves somehow smarter concerning the shmat routines. Some smaller hosts have a rather low limit of shared memory attached to one process. If shmcom/shmcomlow.c detects that limit by not getting a new shared memory area attached, it detaches those shared memory portions which are no longer needed. The disadvantage is that this sheme hides the problem of a badly configured system.
The removal of a file is now recorded into $dbserverLog as well as in $pnfsdLog. The $dbserverLog prints detailed information about the attempt to copy the different levels into the $trash directory. For each level above 0, a return code character is printed inside brackets : <xxxxxxx>. Where the position of the 'x' corresponds to the level from 1 to 7 and the meaning of the characters are :
Code Meaning + The corresponding level was not empty and could be copied to $trash/<level>/<pnfsID> P The level file couldn't be opened. S The level file was empty. Q The trash file of that level couldn't be opened. R An I/O error occured while reading the level file. W An I/O error occured while writing the trash file. C An I/O error occured while closing the trash file. X An I/O error occured while renaming the trash file.
There is a list of reserved keywords which are not allowed to be used as database names. Those keywords are :
shmkey, shmclients, shmservers, pnfs, environment, database, trash, pnfscopies, pmountdLog, pnfsdLog, dbserverLog, pnfsdLevel, dbserverLevel, pmountdLevel, hardlinks, netmask, levelmask, remtrash
The shmcom/shmcomlow.c assumed a NULL as return code from shmat in cases of problems. BUT shmat returns a (void *) -1. This has been changed.