1.9.4 Release Notes

The main focus areas of the 1.9.4 release are access control for staging from tape, a more scalable xrootd redirector, and a few performance improvements in Chimera.

Upgrade Instructions

Incompatibilities

Please consider the following changes when upgrading from a version before 1.9.4-1:

When upgrading the SRM door from 1.9.1-10, 1.9.2-9, or 1.9.4-1, the SRM database needs to be cleaned manually. See details below.

Compatibility

It is safe to mix pools of releases 1.9.1 to 1.9.4, and they can be used with any version of the head nodes. Head nodes and doors must be upgraded to 1.9.4 together and cannot be mixed with head nodes or doors of 1.9.1, 1.9.2, or 1.9.3. Components of different 1.9.4 releases can be mixed freely. 1.9.0 is no longer supported.

Compatibility Matrix

We distinguish between pool components and head nodes. Any component which is not a pool is considered a head node, including doors. The following table shows compatibility between different releases.

1.9.4-2 Head1.9.4-2 Pool
Head 1.9.1-1..7,9noyes
1.9.1-8noyes[1]
1.9.2-1..5,8noyes
1.9.2-6,7noyes[1]
1.9.3-1..2noyes
1.9.4-1,2yes yes
Pool 1.9.1-1..7,9yesyes
1.9.1-8yes[1]yes
1.9.2-1..5,8yesyes
1.9.2-6,7yes[1]yes
1.9.3-1..2yes yes
1.9.4-1,2yes yes
  1. The migration module will not work for -target=pgroup and -target=link.

1.9.4-2

When upgrading the SRM door from 1.9.1-10, 1.9.2-9, or 1.9.4-1, the content of the srmrequestcredentials table has to be deleted. This table is present in the database used by the SRM door. Use the psql utility to connect to the database and issue the commands:

\c dcache
delete from srmrequestcredentials;

For instance like this:

Welcome to psql 8.3.7, the PostgreSQL interactive terminal.

Type:  \copyright for distribution terms
       \h for help with SQL commands
       \? for help with psql commands
       \g or terminate with semicolon to execute query
       \q to quit

postgres=# \c dcache
You are now connected to database "dcache".
dcache=# delete from srmrequestcredentials ;
DELETE 149
dcache=# 

Updates to FTP doors: Fixed a race condition.

Updates to chimeraDomain and Chimera: Fixed PostgreSQL 8.1 compatibility. Eliminated warnings of missing PinboardAppender in Chimera client tools.

Updates to replicaDomain: Replica manager was broken in 1.9.4-1 and is now fixed.

Updates to info provider: The execution bit of info-based-infoProvider.sh is not set.

Updates to srm: Fixed a race condition. Fixed a security issue. Improved database connection handling in space manager. Fixes a database leak.

Updates to pools: Fixed race conditions in DCAP, XROOTD and pool-to-pool support.

Changelog 1.9.4-1 to 1.9.4-2

1.9.4-1

Access control for staging

Initially dCache has been designed to be a disk cache in front of a Tape Storage System, moving files onto the tape-backend and restoring them when needed. Those operations are handled transparently to the user. The downside of this approach is that a simple read of a file, not being on disk, automatically triggers a tape operation. As tape operations are expensive and may interfere with storing RAW data, coming from the Tier 0, this feature had to be reviewed. As a result, it has been agreed with the experiments that no non-production user should be allowed to trigger such a tape operation. dCache is now implementing a first version of such a protective mechanism. A dCache system administrator may specify a set of DN/FQAN's which are allowed to trigger tape read accesses for files not being available on disk. Users, requesting tape-only files, and not being on that white list, will receive a permission error and no tape operation is launched.

To enable stage protection, add the following line to config/dCacheSetup:

stageConfigurationFilePath=${ourHomeDir}/config/StageConfiguration.conf

The file config/StageConfiguration.conf will contain the white list. Lines starting with a hash symbol (#) are discarded as comments. Other lines may contain one or two regular expressions enclosed in double quotes. The first matches the DN, and the second the FQAN. The regular expression syntax follows the syntax defined for the Java Pattern class.

The following is an example:

# Allow all ATLAS users who have the role 'production'
".*" "/atlas/Role=production"

In the current release, the white list must be available to all doors and to the pin manager. This requirement will likely change in a future release.

Chimera

It is vital that the Chimera schema is updated when upgrading to dCache 1.9.4. This can be done using the following command:

psql -f /opt/d-cache/libexec/chimera/sql/create.sql chimera
psql -f /opt/d-cache/libexec/chimera/sql/pgsql-procedures.sql chimera

As most of the structures already exist, the above scripts will generate error messages about existing relations, entries, and triggers. These are safe to ignore.

Several performance improvements have been made in Chimera. Most notably the path to PNFS ID translation should now be faster when using PostgreSQL. A functionality issue relating to the use of symbolic links has been fixed. This issue caused the path to PNFS ID translation to fail when symbolic link were used.

The Chimera NFS server has seen a couple of performance improvements too. More importantly, a conformance issue was fixed, which solves a problem with the find utility when used with Chimera.

Xrootd

The xrootd door (which serves the role of an xrootd redirector) has been reimplemented. The new implementation should be more scalable, more robust and consume fewer resources. The xrootd mover on the pool (which serves the role of an xrootd data server) has not been reimplemented.

The new xrootd door has a different Java package name. Hence it is essential that dCacheSetup is updated to refer to the correct authorization plugin. In config/dCacheSetup, the line

xrootdAuthzPlugin=org.dcache.xrootd.security.plugins.tokenauthz.TokenAuthorizationFactory

has to be changed to

xrootdAuthzPlugin=org.dcache.xrootd2.security.plugins.tokenauthz.TokenAuthorizationFactory

Without this change, all transfers will fail. If the above line is not present, then the xrootd door has not been configured for token based authorization and in that case no configuration changes are required.

The new door has no configurable upper limit on the number of active connections.

Changelog 1.9.3-1 to 1.9.4-1