dCache 2.4 Release Notes

Highlights:

Table of contents

Upgrade Instructions

Starting with version 2.4.0, dCache requires Java 7.

On upgrade from dCache 2.3 you need to drop the tables AUTHGROUP, AUTHGROUPLIST, AUTHRECORD and AUTHSEQUENCE.

psql -U postgres dcache
dcache=# DROP TABLE AUTHGROUP;
dcache=# DROP TABLE AUTHGROUPLIST;
dcache=# DROP TABLE AUTHRECORD;
dcache=# DROP TABLE AUTHSEQUENCE;

Incompatibilities

Please consider the following changes when upgrading from a version before dCache 2.3.0:

Compatibility

If NFS4.1 and HTTP PUT redirect are not used, then 2.5 doors, head nodes can be mixed with pools of releases 2.2 or newer. Doors and head nodes have to be updated at the same time.

If server side SRM copy is used dCache 2.5 is not compatible with pools of dCache 2.2.8 or before. Please upgrade to dCache 2.2.9 in this case.

dCache 2.4.2

Service: pool

Fixed timeout bug in migration module

Service: spacemanager

Fixed a bug that produced a stack-trace if space-manager operations were attempted when the spacemanager was disabled.

Service: httpd

Fixed a problem with usage charts on the pool and pool groups pages not being shown when using certain settings for system locals.

Service: billing

Fixed incompatibility of JAIDA libraries with changes in java.awt package in Java 1.7 which prevented the generation of the billing histograms. The fix is backward compatible with Java 1.6.

Service: srm

Fixed a bug that prevented clean shutdown of the SRM.

Service: ftp

Fixed typo for gridftp and kerberosftp.

Service: nfs

Added the new property nfs.idmap.legacy to the nfs.properties. Set this property to true if you want to allow dCache to send the internal numeric id to the nfs server instead of a string pricipal.

Service: dCap

Changed the cell name for the authenticated dcap door from DCap-${host.name} to DCap-auth-${host.name} to distiguish it from the plain dCap cell and assigned port 22129 to it.

Restored authenticated dcap door functionality when using gplazma2.

dcache script

Fixed a bug that lead to an error message when on attempts to run the dcache command.

# dcache status
/usr/share/dcache/lib/loadConfig.sh: line 89: getProperty: command not found
/usr/share/dcache/lib/loadConfig.sh: line 90: getProperty: command not found
/usr/bin/dcache: line 370: getProperty: command not found

Properties

New properties:

Changelog 2.4.1 to 2.4.2

dCache 2.4.1

Chimera

Fixed incorrect reply on database errors which may cause data loss on flush. The situation may occur if chimera's postgresql database is not available during flush to the HSM.

Service: gridftp

Fixed the issue that mkdir did not work with UberFTP.

Service: pool

Fixed mover start time in a JobInfo.

Changelog 2.4.0 to 2.4.1

dCache 2.4.0

chimera

Added support for ACCESS_TIME into ChimeraNameSpaceProvider. For performance reasons dCache can refrain from updating files access time on read. This behavior is controlled by atime.gap parameter. Set this parameter to a positive number. For example:

[namespace/pnfsmanager]
atime.gap=5
The value is in seconds. If the difference between a file's current atime value and the new one is smaller than the gap, then the file's atime will not be updated.

Modified behaviour of chimera not to throw an NPE if a file has no AccessLatency or RetentionPolicy. As AccessLatency and RetentionPolicy are required values in dCache, a more meaningful error message is provided.

Increased available space from 10 Petabyte to 1 Exabyte.

Service: pool

Changed the behaviour for updating a file's access time on read. The p2p transfers do not trigger an update of the last access time any more and a cached entry will not be put at the end of the garbage collection queue after beeing accessed for p2p. I.e. p2p has no influence on garbage collection and access time. It is as if the file had not been touched.

Replaced erroneous IllegalArgumentException with IllegalStateException

Improved performance of the message processing especially when on high load.

Service: poolmanager

Fixed behaviour for onerror setting and added billing notifications if the PoolManager suspended files.

Service: admin

Made gplazma configurable for the admin interface. To start an extra gplazma service add

[adminDomain/admin]
useGPlazmaAuthorizationModule=true
to the admin domain.

Service: webadmin

Improved table layout for webadmin.

Adjusted match field in the Pool Selection Setup for small screens.

Got rid of drop boxes in CellServices.

Improved usability by adding sticky headers into the Active Transfer page.

Introduced an info-box that pops up on MouseOver (on the Layout row) and shows the percentage of Space Usage as well as it explains the colored layout for the Space Usage und PoolGroups pages.

Removed the column "Enabled" in the PoolGroup view.

Improved the Infobox for Space Usage and PoolGroups. It is now possible to copy text from the Infobox.

Fixed an issue which produced the error message Error serializing object class.

Service: httpd

Fixed shutdown logic.

Service: billing

Pre-existent billing databases with data in the five basic tables (billinginfo, doorinfo, storageinfo, hitinfo, costinfo) can now be migrated using the migrate_from_messageinfo.sql script (previously would not run); similarly, those few databases (such as at Fermi) with pre-existent aggregate tables can be migrated using migrate_from_preexistent.

Created a poolmanager.cache-hit-messages.enabled property. This property is used to specify whether or not to send a cache hit or miss message to the billing cell on each request. This property must be explicitly set to true if the administrator wishes to see this data plotted on the billing plots page. Example:

[dCacheDomain]
poolmanager.cache-hit-messages.enabled=true
[dCacheDomain/poolmanager]
[dCacheDomain/broadcast]
[dCacheDomain/loginbroker]
[dCacheDomain/topo]

Modified billing to record PnfsId as NULL for data without PnfsId.

Deleted code that produced redundant information.

Service: gplazma

Modified gPlazma to report when a login fails due to a plugin failing to instantiate or a misconfigured gplazma.conf file.

Fixed a bug that prevented XACML plugin from working.

Fixed a bug to allow the XACML client to request a mapping when:

Service: srm

Made certificate locations configurable.

Service: xrootd

Removed a limitation on xrootd authentication bucket size. The limit would have resulted in error messages like:

Caused by: java.io.IOException: Encountered a bucket with length 11088. Maximum
allowed bucket length 10000.

Introduced new property to enable ChannelHandlerPlugins in xrootd door. The xrootdAuthNPlugin and xrootdAuthZPlugin properties are deprecated and replaced by the new xrootdPlugins property.

Service: ftp

Fixed bug, that caused Weak FTP not to work with SrmSpaceManager.

Fixed a regression that prevented read-only for anonymous users in the plain FTP door.

Service: webdav

Fixed breadcrumb path.

Updated buffering property such that we do not create temporary buffer files in /tmp on redirect and on directory listing.

Properties

New properties: Deprecated properties (Properties which are not used anymore, but still work and will become obsolete or forbidden):

Miscellaneous

Updated Spring, DataNucleus, Slf4j, Logback, findbugs, rrd4j, and H2 to their latest versions.

Upgraded third party WebDAV library (Milton 1.8.0.1).

Updated to StringTemplate version 4. If custom billing or webdav HTML templates are used, the StringTemplate v4 documentation at http://www.stringtemplate.org/ should be consulted. In particular custom webdav HTML templates will have to be adjusted as the template group file format has changed (although removing the 'group list;' header may be enough).

Several components in dCache use RequestExecutionTimeGauge to track different counters. Made these counters available through Java Management Extensions (JMX) and accessible with external monitoring tools as well as jconsole.

Improved performance of our shell scripts.

Improved resilience against overload in the dCache message routing system.

Changelog 2.3.0 to 2.4.0

Crossed out entries have been merged into the 2.3 branch.