dCache 2.6 Release Notes

Highlights:

Table of contents

Upgrade Instructions

dCache 2.6 requires Java 7.

Please notice that due to the change to jpnfs-0.0.5, all NFS clients (v3 and v4) have to unmount prior update.

Please read the preliminary version of the Ultimate Golden Release Upgrade Guide carefully.

Compatibility

If NFS4.1 and HTTP PUT redirect are not used, then 2.6 doors and 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.6 is not compatible with pools of dCache 2.2.8 or before and it is also not compatible with pools of dCache 2.3.x and 2.4.x. Please upgrade the pools of dCache 2.2.8 and before to dCache 2.2.9 or higher and pools of dCache 2.3.x or 2.4.x to dCache 2.6.x in this case.

dCache 2.6.51

ftp

Fix security vulnerability in gsi and kerberos authenticated ftp.

dCache 2.6.50

Affecting multiple services

dCache uses a standard format to monitor the performance of various components: in the srm door to record how quickly SRM requests are processed (print srm counters command), the generic cell message monitoring (monitoring info command), and pnfsmanager service (the "Statistics" section in info). This release fixes a rounding error that prevents these statistics from including long-lived requests.

pinmanager

The pinmanager service has the ls command that allows the admin to limit the results to a specific pin or all pins against some PNFS-ID. This release fixes listing by pin id.

srm

This release fixes the srm service so it cancels corresponding pinmanager requests when an SRM client aborts a bring-online request.

Changelog 2.6.49 to 2.6.50

dCache 2.6.49

dcap

Update dcap door to avoid possible NullPointerException when describing an error to the client.

Changelog 2.6.48 to 2.6.49

dCache 2.6.48

pool

When a client reads a file, the pool reads blocks of data from the local filesystem. When reading such a block, the pool could receive fewer bytes than requested. Previously, the pool assumed that this only happens when the end-of-file is reached; however, this is not guaranteed. Should this assumption be violated then the data sent to the client will be corrupt. In practise, the pool's assumption is true for Linux and local filesystems; however, the code has been updated to remove this theoretical cause of corruption.

Changelog 2.6.47 to 2.6.48

dCache 2.6.47

pool

When attempting to upgrade non-precious and non-cached files (e.g. a file marked broken), the receiving end of the migration module would answer twice: first (correctly) with a failure and then (incorrectly) with a success. This is now fixed.

Changelog 2.6.46 to 2.6.47

dCache 2.6.46

Changes affecting multiple services

Various scripts, including the dcache command, invoke the java command with a list of directories in which Java should look for support libraries. Previously, the current working directory was (mistakenly) included in that list. This could lead to odd behaviour; one particular example is running a dcache database command from the /etc/dcache directory. This release fixes this problem by excluding the current directory.

When there is some problem in the communication between domains and error message is logged. Previously the explanation for the problem was logged as "null". With this release, a more descriptive explanation is provided.

Changelog 2.6.45 to 2.6.46

dCache 2.6.45

nfs/pnfsmanager

This patch fixes a race condition in Chimera that affects the nfs door and the pnfsmanager service. The effect is that, if two clients attempt to delete the same target (a file, link or directory) at the same time then the nlink count for the parent directory is decreased twice. "At the same time" means within the time taken to process the deletion; this is instance-specific but should be much less than 1 ms for well-configured systems. Sites can repare any incorrect nlinks with the following SQL:

UPDATE t_inodes SET inlink = (
    SELECT COUNT(*) FROM t_dirs  WHERE t_inodes.ipnfsid = t_dirs.iparent
) WHERE itype = 16384;

This is safe to run on a running production instance, but may take some time and will affect dCache's responsiveness while running.

Changelog 2.6.44 to 2.6.45

dCache 2.6.44

ftp

The response from the plain (unencrypted) ftp door if the user specifies the wrong password is badly formed. Althogh it is possible that some clients are robust against such incorrect responses, with this release the ftp door responds correctly.

webdav

Fixes a bug where, if a double-slash is present, all parts of the path leading up to the double-slash are ignored; for example, with the bug, a path like /a/b//c/d is handled as if /c/d was specified. With this release, double-slashes are treated like single slashes; the above example is handled as if /a/b/c/d was specified.

Changelog 2.6.43 to 2.6.44

dCache 2.6.43

Changes affecting multiple services

Previously releases of dCache claimed to support Java-8; however, this is not true. For Java-8 support, sites must upgrade to dCache v2.10 or newer.

httpd

Fix two minor issues when authenticating with the webadmin interface: "unauthorised access" and being redirected to the home page. The unauthorised access error can occur when selecting "Login" under the bird logo (top right corner); this is now fixed. The redirection problem occurs when selecting a tab that requires administrative privileges while not logged in; this redirects the browser to the login page. Previously, after a successful login, the browser was redirected to the home page. Now the browser is redirected to the selected tab.

Wnnhen logged in to the webadmin with admin privileges the "Pool Usage" and "Active Transfers" tabs include a "Deselect All" button that should clear all the "Selected" check-boxes. This now works.

webdav

A previous bug-fix release fixed how dCache responds when the client attempts to DELETE a non-existent file. Unfortunately, this triggered a different problem where such activity results in a stack-trace that starts java.lang.ClassCastException: java.lang.String cannot be cast to javax.security.auth.Subject. This second problem is now fixed.

Changelog 2.6.42 to 2.6.43

dCache 2.6.42

info-provider

In previous releases, the info-provider assumed the broker domain is dCacheDomain. This assumption has been removed.

nfs

Update to nfs4j v0.7.9. Avoid errors when the door is heavily loaded and the client closes a file. Avoid potential deadlock under the same circumstances. Add the pnfs and nopnfs options for controlling whether PNFS is supported. Fix parsing the exports when a host is mentioned multiple times. Note that localhost must now have an explicit entry in the exports file.

webdav

Although dCache behaves correctly if the client interrupts a proxied transfer; however, this is logged as a bug. This is now fixed.

Changelog 2.6.41 to 2.6.42

dCache 2.6.41

Changes affecting multiple services

Although dCache system configuration property names do not contain spaces, it is possible to define such properties. Previously, doing so breaks the dcache command. This is now fixed.

srm

Previously, if the SRM client requests listing a directory, specifies a non-zero offset and does not limit the response size then dCache would fail this request with an IllegalArgumentException. This is now fixed.

webdav

With the recent upgrade of the Milton library some new behaviour was introduced. One example is that, under certain circumstances (and to support certain clients) the Milton library returns a 401 (not authorised) when attempting to delete a non-existing file. Unfortunately, this change then broke ATLAS clients. This patch updates dCache so it returns 404 (not found) under these circumstances.

Fix the response when a client requests a byte-range beyond the end of a file. This is necessary for compatibly with ARC clients.

Changelog 2.6.40 to 2.6.41

dCache 2.6.40

nfs

Under heavy load, if the nfs door is restarted, the new door may receive response messages from requests send by the previous door. In previous versions of dCache, this situation triggered a stack-trace. This is now fixed.

pool

The NFS specification allows the server to specify multiple addresses when telling the client where to connect; for example, specifying both an IPv4 and an IPv6 address, or both addresses for multi-homed machines. This requires the client to choose the appropriate interface. For Scientific Linux 6, the kernel client will always use the first supplied address in the list and fail if it cannot access the pool with that address. With this release, pools will order the list, using heuristics to select which IPv4 address is "correct" and list it first.

poolmanager

With previous dCache versions, the WAAS selection algorithm had a bug where it could (mistakenly) consider pools full if all pools had very fresh files. This is fixed with this release.

webdav

Upgrade to Milton v2.6. This fixes the buffering problem where a proxied vector read request results in the entire file being written to a tmp directory and not deleted. With this release, requests for 100 kiB or less data result in no data being written to disk; requests for more than 100 kiB are still written to disk, but only the data needed to satisfy the request is stored and the file is deleted once the response has been sent. Some issues persist: data isn't deleted if there is a failure sending it to the client and the whole file is requested from the pool.

Changelog 2.6.39 to 2.6.40

dCache 2.6.39

httpd

In previous versions of dCache, the webadmin war file is automatically unpacked. This has been problematic as a dCache upgrade did not always trigger updating the unpacked webadmin, resulting in dCache running the older webadmin. With this release, dCache no longer unpacks the war file; the webadminWarunpackdir property is now obsolete.

dCache versions including and after 2.6.36 required sites to delete existing RRD files when upgrading; i.e., run the command rm -f /var/lib/dcache/plots/*.rrd when the domain hosting the httpd service is stopped. This release reverts that change, but requires sites that have already upgraded to repeat the rm command. Sites upgrading from an earlier dCache version do not need to delete anything.

nfs

Protect against a `NullPointerException` if the client attempts to read the contents of a file's level where that level exists in the database but contains a Nil value. This does not happen under normal circumstances.

pool

The Berkeley DB, which may be used to store file metadata on the pool, does not like being interrupted. The pool tries hard to avoid interrupting reading or writing; this release fixes one place that slipped through.

Changelog 2.6.38 to 2.6.39

dCache 2.6.38

Changes affecting multiple services

A bug was discovered that resulted in the nlink count becoming negative. While wrong, this had a knock-on effect that prevented pnfsmanager and nfs services from listing the affected directory. With this release, directory listing are robust against such problems.

alarms

Fix alarm definition that triggers when the pool discovers a file with the wrong checksum. Previously it mistakenly triggered if an upload was incomplete.

nfs

Update nfs4j to v0.7.8. This brings some small performance benefits when listing a directory and for reading data through NFS v3.

Fix bug where, when a client read activity is proxied, the corresponding dcap mover wasn't removed if client didn't wait for the queued mover to start. Previously, such movers would accumulate on the pool.

pnfsmanager

Prevent attempts to remove the . and .. directories.

webadmin

Display the command's output in the cell admin page to use a monospace font.

Remove a javascript error due to missing clojure dependency.

Changelog 2.6.37 to 2.6.38

dCache 2.6.37

httpd

Make webadmin functional again.

nfs

Performance improvements.

pnfsmanager

Fix the message reported when moving (or renaming) a file or directory and certain problems were found: the destination directory isn't a directory, the source doesn't exist, or overwriting with different types (e.g., overwriting a directory with a file).

poolmanager

If a site using WAAS specifies too large a Space Cost Factor then the algorithm used for write pool selection breaks down, logging Unreachable statement. Starting with this release, a warning is logged indicating the cause of the problem.

Changelog 2.6.36 to 2.6.37

dCache 2.6.36

Fixes affecting multiple services

Running the eval admin command so it returns a non-zero return-code would respond indicating that a bug had been found. This has been fixed.

An named environment may be executed and can contain a reference to itself. If this recursion is unchecked, eventually memory is exhausted and the domain would restart. Now an error is logged and the domain is not killed.

Previously, some exceptions were logged with the wrong cell context or without any context. This has been fixed.

billing

Billing records issued by doors never included the file's size. This is now fixed for all doors except NFS.

gplazma

The xacml plugin now supports the gums server returning GID values.

pool

Fix internal copying of files (triggered by the SRM copy command) so they respect the LAN port range.

Fix migration module's random pool selection so that it does not select pools that are full.

Fix NullPointerException triggered when using migration module's proportional pool selection and all pools are full.

The rep ls command can calculate per-storage-class statistics. This release fixes a problem where files without a storage-info would trigger an IllegalStateException when calculating these statistics.

Fix sweeping of files without a storage-info. Previously an IllegalStateException was thrown; this could be triggered by the admin interface or by the sweeper.

Fix a problem where the pool would register free space before actually deleting the file from the file system; for a brief moment, the pool would appear to have more free space that is actually available.

Periodically, pools check that dCache's internal accounting of total and free capacity does not exceed the OS supplied values for the partition (i.e., the output from the df command); if they do then the dCache internal accounting is adjusted to match. The dCache.org team have observed that, after a file is deleted, some seconds may elapse before the corresponding extra free capacity is reported by the OS. To protect pools from this effect, the total and free capacity check is suppressed for 60 seconds after a file was deleted.

srm

Fix the srm service's admin interface ls command so that listed jobs can optionally include only those that have failed, have completed or were cancelled.

webadmin

Webadmin periodically creates billing graphs by querying the billing service for the information it needs. Previously, if this query failed (e.g., the billing service was restarted or failed to start first) then no further billing graphs are generated and a domain restart is needed. As a result of this work, the properties poolqplots.refresh-interval, poolqplots.refresh-interval-unit, httpd.plots.pool-queue.refresh and httpd.plots.pool-queue.refresh.unit are no longer supported. The httpd.plots.pool-queue.min-time-step and httpd.plots.pool-queue.min-time-step.unit properties now also cover this configuration.

Changelog 2.6.35 to 2.6.36

dCache 2.6.35

Fixes affecting multiple services

The nfs and srm both cache replies from gPlazma to increase the speed of authenticating and identifying the user. Previously transient errors when communicating with gPlazma were also cached, delaying the recovery time from such errors. Now, such errors are not cached.

nfs

No longer trigger an NullPointerException when opening the .(parent)() dot-command file in Chimera's root directory.

pool

Fix xrootd support for vector read. The problem was discovered with ROOT v6, which reports errors like Single readv transfer is too large.

xrootd

Fix problems when calculating a response to the kXR_set request. If encountered, the problem results in the following being logged, where nnn in xrootd-disk-nnn is some integer number:

Uncaught exception in thread xrootd-disk-nnn java.lang.IllegalStateException: null

Changelog 2.6.34 to 2.6.35

dCache 2.6.34

Fixes affecting multiple services

Two problems are fixed that affected those services that make use of the grid trust store (/etc/grid-security/certificates): gplazma, srm, gsiftp, webdav and xrootd:

Two problems are fixed that affected services providing GSI or plain SSL authentication using the jGlobus library:

Fixed thread safetly of timestamp formatting, principally used in logging and generating the output of admin commands.

billing

Fixes a bug where the bytes read graph can show inflated values.

nfs

Fix permission check when client requests a list of some directory's contents.

Add support for mounting when the server-side mount-point is a sym-link.

Changelog 2.6.33 to 2.6.34

dCache 2.6.33

Utilities

The chimera-cli command is updated to provide the full usage hints if the user supplies fewer arguments than are required. With this change, the list of available commands is now also shown. This fix is from Onno Zweers. Thanks Onno!

pnfsmanager

Previously, the automatic schema management for Chimera failed to create an index on the iparent column of t_dirs table. The lack of this index results in deletions becoming progressively slower as dCache stores more files. If your dCache instance was created with dCache v2.3.0 or newer then it is likely affected by this problem. Instances created with an earlier version are not affected. The pnfsmanager service will check for the index when it starts and add the index if it is missing. Alternatively, the check may be performed manually using the dcache database update command.

pool

This release fixes several issues with the sweeper:

poolmanager

In previous versions, poolmanager would log a stack-trace if a user attempts to open a file for reading and no read pool could be found because a unit failed to match. Now the failure is logged as a normal message.

xrootd

The xrootd door now informs billing when a user uses the xrootd protocol to delete a file.

gplazma

The ldap plugin allows a door to request converting a uid or gid back to a username; currently, only the nfs door makes use of this functionality, when generating a directory list. In previous dCache releases, the plugin behaved incorrectly if the uid or gid is unknown; this is now fixed.

Changelog 2.6.32 to 2.6.33

dCache 2.6.32

Packaging

Add python-psycopg2 as recommended dependency to debian package; it's needed by the dcache-star command.

alarms

The alert should be generated if a pool's background checksum scanning ("scrubbing") discovers a broken file. With this release, such alerts are now generated.

poolmanager

Stage and pool-to-pool transfers, triggered by poolmanager, are monitored by poolmanager querying the source pool to check if the request is still active. In previous versions of dCache, for n transfers from a pool, this monitoring generated O(n*n) of network traffic. In particular, poolmanager's monitoring of bulk staging requests can result in sufficient network traffic between the pool and poolmanager that other dCache activity is impacted. With this release, the monitoring traffic is reduced in general, most prominently for large concurrent activity, such as bulk stage requests.

The rc destroy command has been removed. The implementation was incomplete and the operation was dangerous.

If the door resubmits a request to poolmanager that triggers staging of a file, poolmanager uses additional memory while waiting for the stage to complete. For bulk staging, this additional memory usage can be significant, potentially resulting in poolmanager exhausting the available memory. This release updates poolmanager so a door resubmitting a stage request does not increase the memory footprint of poolmanager.

The poolmanager has an incomplete feature called 'clumping'. This is where poolmanager can handle multiple select-pool-for-read requests for the same file as a single request. There is a hard-coded clumping limit that prevents too many files from being handled together; this allows poolmanager to choose an alternative pool when staging or replicating to make the file available. Once this limit is reached, subsequent open requests for the same file will fail in poolmanager. Doors handle this failure differently; the xrootd and webdav doors propagates this failure back to the client, while the dcap and ftp doors will resubmit the request to poolmanager. This release increases the clumping limit from 1 to 20; it also changes the behaviour of the doors so all will retry the pool-selection if the clumping limit is reached. This fixes the 'request clumping limit reached' failures.

This release fixes a race-condition between two clients opening the same file. Previously, if poolmanager starts processing the second open request as it is finishing processing the first then there is a tiny chance that the second request is lost.

Changelog 2.6.31 to 2.6.32

dCache 2.6.31

webadmin

Fixes a regression that prevented the admin from deleting alerts in the alarm system.

Improve esthetics of the pool queue plot grid.

pool

Fixes a problem where, under specific circumstances, a pool with a file's data will erroneously claim it does not have that file's data. This problem occurs only if an HTTP or xrootd client attempts to read a file immediately after uploading it; it does not affect other protocols. If a client triggers the problem then PnfsManager will remove the pool as the location of the file's data with two consequences: first, the file cannot be read; second, the orphaned entry will not be removed if the file is deleted. With this release, the problem is fixed; we recommend running the 'pnfs register' command on all pools as a precaution against orphaned entries.

info-provider

Suppress publishing NFS door endpoints. Publishing these endpoints can result in sites failing functional tests since dCache running an NFS endpoint does not mean that files are accessible from the test machine.

Changelog 2.6.30 to 2.6.31

dCache 2.6.30

pool

The background checksum scanner now treats files that cannot be accessed as an error rather than skipping them.

Fix the response headers when HTTP clients (such as Davix) make a request for multiple fragments of a file.

pnfsmanager

For systems using enstore, fix restoring of files with filenames that contain a '+' in the filename.

chimera

Update stored procedure to remove ambiguity in how non-ASCII characters are represented.

Changelog 2.6.29 to 2.6.30

dCache 2.6.29

xrootd

Fix redirection to IPv6 pools.

Report read requests that suffer a permission denied failure as Read permission denied rather than Write permission denied.

To allow xrootd plugins to intercept and translate errors.

Update dCache responses to avoid intermittent failures with xrdfs.

webadmin

Fix login bug that results in Access Denied page.

dcap

Provide more robust cleanup if there is a problem after the client finishes reading or writing data. The symptom is an increasing number of "active transfers" reported in the web monitoring pages. Eventually, the httpd and webadmin services consume all available memory and the domain(s) hosting them will die with an OutOfMemoryError.

Scripts

Update dCache scripts to allow running with Java 8 runtime.

Changelog 2.6.28 to 2.6.29

dCache 2.6.28

libraries

Update jGlobus version. This results in better error reporting for FTP transfers and X.509 certificates with a comma in the DN are handled correctly.

info-provider

Update the use of xmllint to include the '--noent' option; mitigation against CVE-2014-0191 resulted in xmllint behaving differently when '--noent' is omitted.

xrootd

Add support for additional xrootd client commands: querying the server configuration and a file's checksum, and locating a file.

pool

Add support for additional xrootd client commands: querying the server configuration and a file's checksum, and locating a file. The pool now redirects the client back to the xrootd door if the opaque part of URL is missing.

Changelog 2.6.27 to 2.6.28

dCache 2.6.27

httpd

Prevent reading of configuration files.

srm

Ensure that request history information is listed chronologically.

pnfsmanager

Don't log "duplicate key" errors if the error is understood.

pool

Make pools more robust against the unexpected. Files that appear unexpectedly (e.g., an HSM script delivers a file after dCache has cancelled the request) do not trigger the pool from disabling itself but are deleted; requests to create a file that already exists trigger re-registration of that file in pnfsmanager.

Log a stack-trace for pool-to-pool transfers that encounter an extreme problem with the virtual machine.

webdav

Work-around bug in StringTemplate library that can result in NullPointerException being logged when generating an error response for the client.

Changelog 2.6.26 to 2.6.27

dCache 2.6.26

nfs

This release sees several prominent NFS fixes:

alarms

Add missing configuration elements and documentation to support sending an email when an alert is received.

statistics

Fix NullPointerException in statistics service

pool

Report correct client IP to billing for passive FTP transfers; previously the proxy address of the FTP door was reported, even when there is a direct connection between client and pool.

poolmanager

Fix infinite loop when selecting a pool from the lru partition type.

Changelog 2.6.25 to 2.6.26

dCache 2.6.25

poolmanager

Fix a problem with WASS pool selection where the selection of a pool with a large number of writers (typical of a tape read pool) would be artificially inhibited. If enough eligible pools suffer this then pool manager would report that no pool is available for staging.

Changelog 2.6.24 to 2.6.25

dCache 2.6.24

pool

Avoid that fast xrootd or HTTP clients can trigger out-of-memory exception if they write too quickly. This can happen if the pool is slow or runs out of disk space.

Fix the responsiveness of 'mover ls' when a pool is full.

ftp

Fix the CKSM command for paths containing a space.

Changelog 2.6.23 to 2.6.24

dCache 2.6.23

Pool

Fixed WebDAV and HTTP support for libneon clients. This includes ROOT as it now uses the davix library, which is built on libneon.

Changelog 2.6.22 to 2.6.23

dCache 2.6.22

xrootd

Improve compatibility with the xrdfs, the newer xrootd client.

Fixes dCache's response to the LOCATE, LOGIN and OPEN requests.

Pool

Fixed when a replica's access-time is updated. Previously it was updated on pool-to-pool transfers and not updated for regular downloads, the opposite of what is supposed to happen. This bug affected pool garbage collection order, space cost calculation and updating the file's access time in the namespace

Fixed logging messages from migration tasks, pool-to-pool tasks, and sticky bit expiration.

Admin

Fix logged error when typing 'save' in the admin interface for a service has no configuration file.

SRM

Fix a number of problems when undertaking a third-party copy with SRM v1.1: the client ignored failures to set the file status to 'Done', it also changed the file status to 'Done' even when then transfer failed, and the server did not accept 'Failed' as a file status.

Changelog 2.6.21 to 2.6.22

dCache 2.6.21

Web Admin

Fix a bug in the Tape Transfer Queue page that causes a page refresh to hang occationally with "IndexOutOfBoundsException" being logged.

Pool

Fixed two problems with file migration: that cancelled permanent jobs are resurrected after a pool restart and that the migration clear command does not remove failed jobs.

Communication

Provide better logging if a dCache domain cannot connect to the host described by the dcache.broker.host property.

Changelog 2.6.20 to 2.6.21

dCache 2.6.20


Webadmin

Fixed several bugs in the statistics and info parts of the webadmin pages. Place hard-limit of 10,000 entries in alarms table.

Configuration

Add explanation of the annotations at the top of each defaults file.

Changelog 2.6.19 to 2.6.20

dCache 2.6.19


NFS

Door provides a shorter guaranteed respond time. This helps avoid that a client backs off all activity, which needlessly slowing down traffic.

SRM

In the admin interface, the output from the ls queues command shows detailed information about requests, grouped by the type of operation. This release fixes a bug where the information in the section about downloads (GET) requests was partially incorrect: the section describing GET requests in READY state mistakenly showed 3rd-party copy requests in READY state.

Webadmin

Fix a bug discovered now that Java 7 includes stricter enforcement of code behaviour. The problem triggers stack-traces to be logged in the domain's log file with the following message: Comparison method violates its general contract!.

WebDAV

There are several reasons why a user's request is rejected from within the webdav door, some of which are not clearly distinguished. This makes diagnosing a problem harder. This release now logs the missing information at debug level.

Solaris support

Fix a bug introduced in the previous release of dCache. The effect is that the dcache command changes the node's hostname to -s.

Pool

Fix a race-condition when migrating files. The symptom is a stack-trace with the following message: java.lang.IllegalStateException: Unexpected source pool list: Exactly one item was expected, but it contained 0.

SRM, NFS

Avoid that internal statistics to prevent integer overflow on busy sites.

Changelog 2.6.18 to 2.6.19

dCache 2.6.18


Configuration

Fix a problem where dCache did not honour changes to the configuration. This is triggered if a new file is created. Also fix a problem where configuration files copied between nodes resulted in dCache using the the wrong host name on Macs.

Chimera: fix deleting symbolic links

Fix a bug where Chimera would delete the target of a symbolic link when instructed to delete the symbolic link.

Changelog 2.6.17 to 2.6.18

dCache 2.6.17


NFS

There are two issues that this release fixes with dCache's NFS v3 implementation. It is safe to upgrade dCache with mounted client machines.

Directory tags

Provide work-around to problem where operations on directory tags gave input/output error under NFS v3. The following illustrates the kind of problems:

[root@example]# grep "" $(cat '.(tags)()')
grep: .(tag)(AccessLatency): Input/output error
grep: .(tag)(RetentionPolicy): Input/output error
.(tag)(sGroup):store-group
grep: .(tag)(OSMTemplate): Input/output error
[root@example]# echo StoreName new-store-name >'.(tag)(OSMTemplate)'
-bash: .(tag)(OSMTemplate): Input/output error

The underlying problem is due to the finite size NFS v3 provides for representing a file and how the tag dot-commands are represented. Before, the NFS v3 limit was reached for tag names longer than 7 characters: sGroup worked, but OSMTemplate failed. With this version of dCache, the limit is pushed back to tags longer than 28 characters. This is sufficient for the tags that dCache understands.

Creating hard links

Attempting to create hard links in dCache with NFS v3 fail with a file exists error message. This release of dCache fixes that problem.

jGlobus

Affected services: xrootd (with xrootdPlugins=gplazma:gsi), webdav (with webdavProtocol=https-jglobus), gridftp, srm.

The upgrade from jGlobus 1.8 to 2.0 introduced a performance regression: the last-modified time of CA-related files are checked for each request, which, when these files are stored on a shared filesystem, introduces unacceptable latency. This release uses an updated jGlobus that throttles how often it checks the last-modified attribute of files.

Pool-to-pool transfers

Affected services: transfermanager, replicamanager, admin.

The transfermanager, replicamanager and the admin p2p commands rely on the same underlying pool-to-pool transfer mechanism that moves files when hot files are detected or to satisfy user read requests; however, currently they are unable to initiate such transfers. This release of dCache fixes the problem.

AccessLantecy and RetentionPolicy

Fix that, under certain circumstances, dCache can log the wrong AccessLatency and RetentionPolicy information.

gPlazma

The login-result printer now also prints the public-key size for X.509 certificates.

Poolmanager

The rebalancer command accepts options to modify its behaviour. The online help has been updated to better describe these options.

Pool

The migration move and migration cache commands are mistakenly shown as migration copy commands in the output of migration ls, migration info and when saved to the setup file. This release fixes that.

Changelog 2.6.16 to 2.6.17

dCache 2.6.16


Service: pool

Fix regression in the migration module that prevented it from operating only on replicas that are not sticky.

Fix dcap support for clients that create a new files by interleaving write and seek operations.

Changelog 2.6.15 to 2.6.16

dCache 2.6.15


Miscellaneous

Updated the jglobus library. This solves an issue with the error message No Signing policy for <CA DN>.

Fixed compatibility issues with xrootd plugins.

Changelog 2.6.12 to 2.6.15

dCache 2.6.12


Chimera

Added stored procedures to encode file paths in SI URI so that ChimeraEnstoreStorageInfoExtractor can handle paths containing special symbols or non-ASCII characters.

Service: gplazma

Fixed a bug that could cause multiple FQANs to be created, which would result in failures in billing and spacemanager.

Service: httpd

Fixed the problem that no admin commands could be issued from the "ActiveTransfer" and from the "PoolUsage" page.

Added select/deselect all on lists on the "Pool Usage" and "Active Transfer" pages (when in authorized admin mode).

Service: srm

Fixed the meta data lookup for busy files.

Service: xrootd

Fixed some protocol compliance issues in the xrootd implementation.

Miscellaneous

Fixed a race condition of the doors in registration of mover creation and termination.

Changelog 2.6.11 to 2.6.12

dCache 2.6.11


Chimera

Improved the performance of chimera on file creation with ACL enabled.

Improved the speed of directory listing of large directories.

Service: pnfsmanager

Fixed race conditions in PnfsManager.

Service: httpd

Fixed bug where on some systems automatic cleanup of temporary directories was eliminating the webapp application files and thus causing the webadmin pages to fail to be found.

Removed the hardcoded binding of the host name to allow for ipv6 binding of the httpd service.

Fixed an issue with some of the tables in the webadmin service which were not refreshing. Update correctly occurs now on reload, resubmission of the form through link clicking, and on many pages by automatic page refresh. Fixed issues preventing the sorting of tables and subtables in webadmin.

Service: billing

Improved the insert que logic and therefore introduced the new properties billing.db.inserts.queue-delegate.type, billing.db.inserts.max-queue-size, billing.db.inserts.max-batch-size and billing.db.inserts.drop-messages-at-limit. The properties billingMaxInsertsBeforeCommit,billingMaxTimeBeforeCommitInSecs are now obsolete (but have not been marked as such).

Service: spacemanager

Fixed authorization bug in space reservation for non-srm transfers.

Service: xrootd

Modified the xrootdPlugins property to be unscoped. This ensures that the property is respected when it is configured in dcache.conf. Previously it was ignored.

Service: nfs

Changed the default for nfs.idmap.legacy to be true.

Properties

New properties: Modified defaults:

Miscellaneous

JNA jar was pulled with NFS code which led to the situation that there were two JNA jar files in /usr/share/dcache/classes/. This has been fixed.

Fixed a bug whereby a combination of gsidcap with a VOMS cert and XACML authentication/mapping failed to authorize the user.

Made srmclient scripts relocatable.

Switched jpnfs to version 0.5.6. to allow correct handling of directory listings.

Changelog 2.6.10 to 2.6.11

dCache 2.6.10


Service: pool

Fixed the multi-value support of the -pnfsid option in the migration module. Also fixed the help text.

Fixed a problem with the billing database triggers which under continuous heavy loads (> 300 Hz of billing messages) led eventually to an Out-Of-Memory error in the billing domain.

Changelog 2.6.9 to 2.6.10

dCache 2.6.9


Service: pool

Fixed startup for pools that saved configuration earlier than dCache version 2.2.

Changelog 2.6.8 to 2.6.9

dCache 2.6.8


Service: httpd

Fixed access to the active transfers html and txt pages.

Service: admin

Fixed the issue that the migration module would silently ignore unknown options. The specific problem here was that the option pnfsids, which with the trailing 's' is an invalid option, lead to move or copy all files of the pool instead of a limited number of files.

Changelog 2.6.7 to 2.6.8

dCache 2.6.7


Service: gplazma

Introduced the new property gplazma.ldap.userfilter to specify DN search criteria. The default value is uid = %s.

Fixed a bug in the nis plugin such that the plugin fails on invalid mapping.

Service: httpd

Introduced the possibility to sort domain entries on the CellAdmin page.

Service: spacemanager

Fixed a bug in which PoolIoFileMessage was not forwarded to pool manager when spacemanager was disabled.

Improved the performance when heavy write activity would slow down read requests, even though read requests are simply forwarded by pool manager.

Service: srm

Improved the database update logic and the job loading logic.

Service: dcap

Removed noise from dcap mover in the pinboard.

Properties

New properties:

Miscellaneous

Fixed the enforcement of the security flavor in the export file /etc/exports (example entry: /some/export/path *(rw,sec=krb5)) by updating the jpnfs library.

Changelog 2.6.6 to 2.6.7

dCache 2.6.6


Service: pool

Fixed a problem with restoring permanent migration jobs. A regression was introduced in dCache 2.6 in how migration jobs are restored on pool startup. The issue was that restored migration jobs would have null as the command string, which would show up in migration ls and migration info output, as well as stored back to the pool setup file when the save command was used. In the latter case, a subsequent pool restart would fail.

Service: httpd

Fixed the problem that cellinfo page was not recreated on page reload.

Service: statistics

Fixed a bug which prevented under certain conditions the top-level index.html from being created.

Service: alarms

Fixed a bug (in the Debian package) where the alarms directory (/var/lib/dcache/alarms) was owned by root instead of the user dcache.

Service: gplazma

Added a new plugin to enable banning of users.
Users to be banned need to be added to the file /etc/dcache/ban.conf as
ban <principal type>:<value>
Example:

ban name:ernie
ban kerberos:BERT@EXAMPLE.COM
ban com.example.SomePrincipal:Samson

Service: doors

Fixed the problem that the empty string was not accepted for *.security.ciphers configuration properties.

Miscellaneous

Updated the nfs library to resolve problems with file overwrite and with delayed checksum calculation on write.

Fixed a regression in message queue length reporting.

Changelog 2.6.5 to 2.6.6

dCache 2.6.5


Some people have reported a problem upgrading to dCache 2.6 with ownership of the function path2inodes being user postgres rather than chimera. The symptom of this problem is either dcache database update command failing with errors like

# dcache database update
PnfsManager@namespaceDomain:
...
ERROR - Change Set org/dcache/chimera/changelog/changeset-1.9.13.xml::9::tigran failed.  Error: Error executing SQL CREATE OR REPLACE FUNCTION
                path2inodes(root varchar, path varchar, OUT inode t_inodes)
                RETURNS SETOF t_inodes AS $$
...
            $$ LANGUAGE plpgsql;: ERROR: must be owner of function path2inodes
or dCache fails to start with similar errors.

The problem may be solved by changing the owner of this function. The SQL to do this is

ALTER FUNCTION public.path2inodes(root character varying, path character varying, OUT inode t_inodes) OWNER TO chimera;

If the problem is not only about the path2inodes function the SQLs to change the ownership from postgres to chimera are

psql -qAt -c "select tablename from pg_tables where schemaname = 'public';" -U postgres chimera  \
        | awk '{ print "alter table", $1, "owner to chimera;" }' \
        | psql -U postgres chimera

psql -qAt -c "select routine_name from information_schema.routines where routine_schema = 'public';" -U postgres chimera  \
        | awk '{ printf( "update pg_proc set proowner = (select usesysid from pg_user where usename = '"'"'chimera'"'"') where proname = '"'"'%s'"'"';\n", $1);}'  \
        | psql -U postgres chimera

Chimera

Fixed a problem with chimera-cli. The error message started like:

[root@vm-dcache-test ~]# chimera-cli ls /
Exception in thread "main" java.lang.ClassNotFoundException: org/postgresql/Driver

Service: pool

Fixed a small memory leak that occurs whenever more than one http or more than one xrootd transfer is started on a pool.

Fixed an issue in the pool's replicateOnArrival feature. If enabled it failed with an error stating that required attributes where missing.

Service: poolmanager, doors

Fixed a regression that caused the poolmanager to forget the previously tried stage pool and thus could select the same pool twice in a row when retrying a failed stage requests. Both - pool manager and doors have to be updated, although the patch does not break any version compatibility.

Service: pnfsmanager

Fixed the problem that prevented pre 2.6 pools to use the rh restore command with a 2.6 pnfsmanager.

Service: httpd

Fixed the issue of a stack trace occasionally seen in the webadmin log file on restart of the service.

Service: billing

It is no longer required that the billing service is located on the same file partition as the httpd web server.

The database schema for the billinginfo table has been modified to include a boolean p2p indicating a pool-to-pool transfer. An sql script for migrating old data is included (/usr/share/dcache/migration/migrate_to_billing_with_p2p.sql). This is an optional procedure to make the billing table consistent which will require several hours of downtime

Added the new properties billing.plot.refresh-threshold, billing.plot.height, billing.plot.width, billing.plot.default-style and billing.plot.default-scale for the billing plots.

Fixed two bugs in the migration scripts (/usr/share/dcache/migration/migrate_from_messageinfo.sql and /usr/share/dcache/migration/migrate_from_preexistent.sql).

Fixed a bug preventing inserts into the billinginfo table.

Service: alarms

Fixed the problem that alarms messages froze the whole dCache.
Changed the default value of the property alarms.remote-logging.level from error to off.

Added the property alarms.server.log.level. Alarms can now be defined at all logging levels. However, the volume of traffic sent to the server (where the logging message is captured and converted into a potential alarm) increases dramatically below the WARN level. If this kind of alarm is desired, it is advisable to run the RDBMS version of the store, as the XML store fills up to scores of pages very quickly and searching becomes slow. Logging messages from the logging server and the domain in which it runs are not sent to the store, but are written to the server.log.
Substituted the property alarms.remote-logging.level by dcache.log.level.remote.
Added the properties dcache.log.server.host and dcache.log.server.port.

Fixed the problem that an SQL stack trace error was generated in the httpd log under the condition that the alarmserver was not running.
Changed the default value of the property alarms.store.db.type from rdbms to off, which deactivates all attempted connections to the store.

Service: gplazma

Fixed a problem with DN extraction, where the DN of a proxy certificate rather than the DN of the user was extracted.

Service: srm

Fixed a bug that allowed users to delete files with lcg-del, srmrm and srm-advisory-delete even when set to "read-only" in storage-authzdb.

Implemented SRM_FILE_BUSY response for srmRm when another request for the same SURL exists.

Service: dcap

Fixed a race condition in cell lookup which produced a stack trace.

Service: webdav

Fixed HTTP PUT, which was broken due to a regression.

Removed the property webdavChrootToUserRoot. An authenticated users root directory is now always enforced, but only by checking that the request is within the users root path. If a user has a non-null root and accesses the root of the webdav door, a redirect to the users home directory is generated.

Properties

New properties: Obsolete properties (Properties which are not used anymore and have no effect on dCache):

Removed the property webdavChrootToUserRoot.

Miscellaneous

Logging

Fixed login manager login limit interpretation.

Fixed the problem that the info-provider was broken.

Switched the voms-api to version 2.0.6 fixing the exception problem: "Certificate verification: Maximum certification path length exceeded.".

Removed the superfluous definition loginBroker=LoginBroker in dcache.properties.

Changelog 2.6.4 to 2.6.5

dCache 2.6.4


Service: gplazma

Fixed the issue that authzdb may add a second UserNamePrincipal and thus cause the validation phase of a login to fail. This is a regression introduced in dCache 2.6.1.

Changelog 2.6.3 to 2.6.4
  • [fc1bf39] gplazma2-grid: Fix user name regression in authzdb plugin

dCache 2.6.3


Service: xrootd

Fixed the problem that the xrootdMoverMaxFrameSize property was ignored by the xrootd mover.

Service: nfs

Added the new property nfs.published.name to make the protocol family name configurable which is published as supported transfer protocol by SRM.

Fixed an issue which occurres when the mover takes too much time to finish.

Fixed no_root_squash exports.

Added support for old file handles which will allow to update dCache 2.2 to dCache 2.6 without remounting the existing clients.

Service: dcache, gridftp, webdav, httpd, gsidcap and SRM

Banned Diffie-Hellman ciphers if a broken version of Java (1.7.0_6 and higher) is used.
Added the new configuration properties dcache.security.ciphers, webdav.security.ciphers, webdav.security.ciphers, httpd.security.ciphers, gsidcap.security.ciphers, gridftp.security.ciphers and srm.security.ciphers.

Service: spacemanager

Fixed pre-stage with dcap when spacemanager is enabled.

Properties

New properties:
  • nfs.published.name
  • dcache.security.ciphers
  • webdav.security.ciphers
  • httpd.security.ciphers
  • gsidcap.security.ciphers
  • srm.security.ciphers
  • gridftp.security.ciphers

Miscellaneous

Fixed a compatibility issue with some versions of curl and other clients that send empty SSL messages.

Changelog 2.6.2 to 2.6.3

  • [a570346] nfs: allow protocol family name be configurable
  • [c35a52e] Ban all Diffie-Hellman ciphers in Java 1.7.0_6 and higher
  • [a72e976] system-test: add ability to autogenerate host credentials
  • [e7d6a8a] pool: Make xrootd max frame size configurable
  • [d11d1cf] spacemanager: unknown message have to be sent to Poolmanager
  • [0914ddd] libs: update jpnfs to 0.5.1
  • [221dd50] nfs: return NFSERR_DELAY if we can't kill mover
  • [59bba56] libs: Upgrade to JGlobus 2.0.6-rc3.d

dCache 2.6.2


Chimera

Fixed a bug that caused the directory mode to be corrupted in case of creation or update of a directory tag.

Service: pool

Improved log levels and log messages of common errors found in production log files.

Improved the pool performance by removing the caching behaviour of file meta backend.

Fixed an issue, when pool startup failed due to a corrupt storage info file.

Service: webadmin

Added support for banning problematic ciphers.

Service: gplazma

Simplified the mapping plugin interface.

Service: srm

Made login broker of SRM configurable and cleaned up properties.
The SRM uses two login brokers, one for lookup and one for registration. New properties with that begin with srm.lookup and srm.loginbroker have been introduced respectively.

Removed duplicate session ID in NDC.

Service: webdav

Fixed a problem where the interpretation of the properties webdavWantClientAuth and webdavNeedClientAuth was reversed.

Added support for banning problematic ciphers.

dcache script

dcache alarm send

Fixed a bug where the command dcache alarm send -s resulted in an error message if -s did not provide a path (e.g., "src://example" rather than "src://example/").

Miscellaneous

Fixed the problem that the HSM cleaner never received pool-up notifications by the broadcaster.

Changelog 2.6.1 to 2.6.2

  • [c0387b6] system-test: avoid awkward cell.name values
  • [b14356a] GLUE2: add GLUE2EndpointImplementation information
  • [b5863df] Various improvements to short-lived Java invocations
  • [7317640] srm: Make login broker of SRM configurable and clean up properties
  • [97f7014] pool: Improve logging of common errors
  • [5067c3b] dcache: alarms fix four small bugs
  • [e18badc] pool: Remove caching behaviour of file meta backend
  • [9e9250e] broadcast: Fix expiration of dynamic subscribers
  • [5d234a7] gplazma: Simplify mapping plugin interface
  • [691c062] webdav: Fix interpretation of client cert properties
  • [cac019b] Add support for banning problematic ciphers for Jetty SSL connectors
  • [2d993a3] chimera: update tags mtime on re-write
  • [6328b1a] scripts: fix invalid path in dcache-pool-meta-preupgrade
  • [ca30091] chimera: fix corruption of directory mode on tag update
  • [c843a45] pool: Improve resilience against broken SI files
  • [8b35637] ftp: Remove duplicate session ID in NDC
  • [52a0147] core: fix bad merge of c843a45

dCache 2.6.1


Service: pool

Set a timeout value for pool to pool transfers. This allows a pool to pool transfer to time out if the underlying TCP connection "gets stuck".

Service: admin

Added the new commands nfs stats and nfs sessions to the admin interface, which can be used to monitor doors and movers. cd to a pool to use these commands.

Service: billing

Fixed a bug in the web pages for Alarms and Pool Queue Plots where the settings selected by a user/session would become global. The fix now isolates user/session settings from each other.

Fixed string lengths in billing databse tables. Tables created automatically contained character columns limited to 256 which is too restrictive for path and errormessage columns in billinginfo, doorinfo and storageinfo tables. Additionaly, the length of pnfsid string was limited to 36.

Service: alarms

Changed the default values for the property alarms.store.db.type from xml to rdbms and for webadmin.alarm.cleaner.enabled to false. Please note that the alarms database must be created before booting the domain in which the alarmserver runs.

Fixed the behavior of display table header checkboxes after refresh.

Modified the alarms page to allow the user to express a single result range for the query (for instance, 0 to 100, 50 to 75, etc.).

Increased the lenght of the info and notes fields of the alarm/log entry for the alarm service to 8000.

Fixed a bug in the web pages for Alarms and Pool Queue Plots where the settings selected by a user/session would become global. The fix now isolates user/session settings from each other.

Service: srm

Substituted the error message "[] java.io.EOFException" which occured if the client disconnects during the SSL handshake by a more informative message which is logged at debug level.

Modified the behaviour of dCache such that the spacemanager service is no longer needed, when the space-manager is disabled in the configuration.
Sites that do not support space-reservations (as indicated by the srmSpaceManagerEnabled property) are no longer forced to run the space-manager service. They may continue to run this service, but it has no effect.
Sites that support space-reservations are unaffected by this patch.

Service: xrootd

Fixed a bug, that caused the door to become unresponsive on reverse DNS lookup on the client IP.

Service: ftp

Improved the error message that occurs when authentication fails with a certificate chain validation error to contain information about the certificate that triggered the failure.

Added an explanation of the overwriteEnabled configuration option. This controls dCache's behaviour when user attempts to overwrite an existing file via FTP or SRM.
The default behaviour is not standards-compliant. This patch does NOT alter this behaviour. Sites are invited to review their configuration.

Service webdav

Fixed a bug, that caused the door to become unresponsive on reverse DNS lookup on the client IP.

Switched the JGlobus WebDAV SSL connector to use the configured path.

Service: nfs

Fixed a bug, that caused the door to become unresponsive on reverse DNS lookup on the client IP.

dcache script

dcache database update

Fixed a bug which did not allow the update when the billing database did not exist.

Properties

Obsolete properties (Properties which are not used anymore and have no effect on dCache):
  • httpd.static-content.plots.subdir

Miscellaneous

Upgraded several third party dependencies.

Banned elliptic curve ciphers to prevent unsupported ciphers from being selected. This is a work-around for broken JVMs to allow newer clients to connect to dCache. A log message that includes "CKR_DOMAIN_PARAMS_INVALID" is symptomatic of this problem.

Changelog 2.6.0 to 2.6.1

  • [b688545] axis: fix NPE when the class providing a SOAP service has void method
  • [5eb4f9b] SRM: log client disconnecting at debug level
  • [a565a8a] SRM: don't talk to SpaceManager when disabled
  • [87fff03] gplazma2-xacml: fix regression on network address sort
  • [6c85331] ftp: Log CertPath in case CertPath validation fails
  • [4a5a661] ftp: Log stack trace on authentication failure
  • [77a351b] wevdav,xrootd,nfs: Fix blocking reverse DNS lookup
  • [42e5849] dcache: alarm service -- change default db to rdbms
  • [333cf8b] Minor bug fix upgrades for third party dependencies
  • [b1e8efc] nfsv4: initialise CDC for better logging
  • [8c9eca5] webadmin: alarms -- fix behavior of display table header checkboxes
  • [38b613b] webadmin: add range to alarm query api and panel
  • [19fe23c] skel: httpd.properties mark plots subdir as obsolete
  • [82ddd9c] gplazma-xacml: turn down noise level
  • [dccaf0e] skel: fix billing database properties to work with dcache database commands
  • [f3e2432] common: backoff fix error in precondition check
  • [4e9c5d6] nfs: use worker thread
  • [7d11702] nfs: add more admin command to monitor door and movers
  • [7785336] dcache: fix billing liquibase add plpgsql changeset
  • [4685d53] webadmin: make srmSpaceManagerEnabled aware; enable real backoff on collectors
  • [edf7ea5] dcache: alarms package.jdo missing varchar length on text fields
  • [93d0ba6] webdav: switch hard-coded JGlobus paths to those configured
  • [73fb7ef] webadmin: make query and filter options set in browser session-specific (alarms, poolqueueplots)
  • [e1d2957] dcache: alarm command line, fix minor bug
  • [53bc345] Fix dCache FTP and SRM to be standards-compliant by default
  • [66fa382] libs: use jglobus-2.0.6-rc2
  • [b891224] Ban elliptic-curve ciphers to prevent unsupported ciphers from being selected
  • [9a6691b] dcache: billing -- fix error in liquibase varchar changeset
  • [3228655] pool: Configure timeout for pool to pool transfer

dCache 2.6.0


Chimera

Removed the create.sql script. For a freshly installed dCache, it is now necessary to use the command dcache database update to run the chimera-cli commands before starting dCache.

Improved the chimera-cli script:

  • Added the new command chimera-cli rmtag to remove a single directory tag.

  • Updated the chimera-cli chown command such that it is possible to set the gid ownership.

  • Improved the functionality of the command chimera-cli checksum. It is now possible to to list the checksum of a specific type, to add a checksum value of a specific type and to remove the checksum of a specific type.

Added the dot command cat ".(get)()(locality)" to find out file locality (status), i.e., ONLINE, NEARLINE, UNAVAILABLE, etc. This status should reflect actual network availability rather than the static state stored in the database.

Fixed compatibility issues with uberftp and list operations on the root directory.

Service: pool

  • Added support for injecting xrootd channel handler plugins in pools. The xrootdPlugins property is now defined separately for pools and doors. If specified outside the scope of a door or pool, the property has to be prefixed with the scoping operator. Existing deployments may have to update their configuration accordingly! Please also have a look at the pool.properties and the xrootd.properties files.

  • Modified the file metadata backend of pools such that, like for the database backend, StorageInfo is only cached. If the pool becomes memory constrained, the garbage collector can evict unreferenced StorageInfo objects. They will be reloaded from disk on demand.

  • Fixed a regression in the migration module. The regression broke the functionality of the migration info command.

  • Upgraded to Berkeley DB version 5.0.58

    The file format changed. Pools using the Berkeley DB backend will be upgraded to the new format during the first startup. Automatic downgrade is not possible.

    Note that it may be necessary to run a small script to prepare for the upgrade. If the pool fails to start with an EnvironmentFailureException failure after upgrading, then the admin needs to run the /usr/sbin/dcache-pool-meta-preupgrade script.

  • Added a filter to silence low-level I/O logging for xrootd and http.

  • Fixed race conditions and counting errors in mover scheduler.

  • Improved the killing of movers on shutdown of dCache.

  • Improved the checksum module.

  • Allowed mover queues with zero capacity.

  • Modified xrootd and http movers. The properties xrootdMoverXXX and httpMoverXXX in the files pool.properties and xrootd.properties are now interpreted per pool, and not per domain.

  • Fixed the wrong logging when a file is restored from tape and the restore fails.

  • Fixed a null pointer exception in the hsms attached to pool command.

Service: poolmanager

Improved the psu create unit help-hint. It did not mention the -protocol option which is needed to create a protocol-based unit.

Fixed a rebalancer bug related to the use of non-US locale.

Set default number of allowed replicas to three.

Service: pnfsmanager

Introduced the properties pnfsmanager/db.connections.partition-count, pnfsmanager/db.connections.max-per-partition and pnfsmanager/db.connections.min-per-partition which can be used to control the database connection pool size.

Fixed compatibility issues with uberftp and list operations on the root directory.

Removed the set storageinfo command, which had been deprecated for a while.

Service: spacemanager

Improved logging to not produce an error message for transfers that are not subject to space management.

Service: replica manager

Fixed a NullPointerException when database connection checkout fails.

Service: admin

Improved the error message for the ssh2 admin interface when the host keys do not have the right permission or ownership.

Introduced the new property admin.ssh2.gid with default value 0. In order to be allowed to access the ssh2 admin interface the group ID of a user contained in the dcache.kpwd file needs to match the value of admin.ssh2.gid.

Service: httpd

Replaced the old main page by the webadmin page. The old main page with links to the old sub-pages is still available at http://...:2288/old.

Added Pool Queue Activity Plots to webadmin. The new properties, which are also listed below, can be found in the file /usr/share/dcache/defaults/poolqplots.properties.

Fixed a bug which crashed the webadmin.

Fixed a bug which was triggered under certain conditions when pool-queue-plotting is enabled.

Service: billing

  • Introduced the properties billing/db.connections.max-per-partition and billing/db.connections.min-per-partition which can be used to control the database connection pool size.

  • Added indexes for billing database.

       column                  index name
    billinginfo.client        billinginfo_client_idx
    billinginfo.initiator     billinginfo_initiator_idx
    billinginfo.pnfsid        billinginfo_pnfsid_idx
    billinginfo.storageclass  billinginfo_storageclass_idx
    billinginfo.transaction   billinginfo_transaction_idx
    doorinfo.owner            doorinfo_owner_idx
    doorinfo.pnfsid           doorinfo_pnfsid_idx
    doorinfo.transaction      doorinfo_transaction_idx
    storageinfo.pnfsid        storageinfo_pnfsid_idx
    storageinfo.transaction   storageinfo_transaction_idx
    storageinfo.storageclass  storageinfo_storageclass_idx
    hitinfo.pnfsid            hitinfo_pnfsid_idx
    hitinfo.transaction       hitinfo_transaction_idx
    
    As a result the billing cell might be slow to start (depending on amount of data).

    If you already created indexes on some of these columns by hand, then it is best to rename these indexes during downtime according to the naming scheme above using the command: ALTER INDEX name RENAME TO new_name; Then the update would skip existing indexes.

  • Modified billing to reflect pool-to-pool (p2p) transfers in the billing message. The initiator on p2p transfers is now prefixed by 'pool:', analogously with 'door:'. To reflect p2p transfers [p2p=$p2p$] can be added to the MoverInfoMessage. As usual, do not edit the billing.properties file add the property billing.format.MoverInfoMessage to your dcache.conf or layout file. This has not been added for compatibility reasons.

Service: alarms

  • Modified the initialization process of the alarms service to make it easier to use an RDBMS instead of the XML file to store the alarms. Just create the alarms database with

    createdb -U srmdcache alarms

    and set the property alarms.store.db.type=rdbms in the dcache.conf file.

  • The default name for the XML storage has changed from alarms.xml to store.xml.

  • Moved the server-side alarm definitions to a separate file. The location of this file is defined by the property alarms.definitions.path which defaults to /var/lib/dcache/alarm/alarm-definitions.xml.

  • The alarms definitions are pure XML now.

  • The new property alarms.remote-logging.level controls the logging level.

  • Provided drop-down choices for the type of the alarm on the alarms web page. Please note that this presupposes that the httpd service has access to the same file system as that used by the alarm server.

  • Provided a choice between ALL, ALARMS ONLY, NO ALARMS on the alarms web page which allows you to filter out the error or warn messages from the marked alarms, or display them, as desired. Note that when ALL is chosen, marked alarms will appear as dark red entries in the list.

  • Added a check which will refuse to start the alarms service if it is combined with other services in the same domain.

  • Modified the initialization of the alarms service to handle special cases.

Service: statistics

Fixed wrong documentation on statistics help page.

Service: gplazma

  • Fixed a bug introduced in dCache 2.5.0 which caused the failure of the initialization of kerberosftp and dcap cells.

  • Solved a compatibility issue between 2.2 head nodes and 1.9.12 pools.

  • Added a plugin to fix the authentication with JAAS. The plugin converts principals generated by the JAAS plugin to gPlazma supported equivalents like DN, username, kerberos, FQAN or name.

    Example gplazma.conf:

    auth jaas
    ...
    map optional mutator gplazma.mutator.accept=org.apache.activemq.jaas.UserPrincipal
    gplazma.mutator.produce=username
    map sufficient nsswitch
    ...
    

    Service: srm

    Dropped the property srmLsRequestLifetime which has never been used. The SRM now honours the property srmAuthzCacheLifetime.

    Improved the logging in case of an unexpected internal error.

    Third-party copies no longer require the port number to be specified. If a port isn't specified in the URI then the well-established default value for that protocol is used.

    Fixed credential delegation for srmCopy transfers

    Fixed illegalStateException which was generated when an expired job existed while the SRM was starting.

    Removed the support for the async connector. Therefore the property srmJettyConnectorType is now obsolete.

    Service: gridftp

    Fixed broken Adler32 checksum computation.

    Discontinued exporting child cells as well known. Now, the complete cell address needs to be provided when cd'ing into a child cell of a FTP door.

    Service: webdav

    Please note that we support webdav level 1 (webdav without locking).

    Made checksum information available via HTTP via RFC-3230.

    Service: nfs

    Made the location of the export file configurable by using the new property nfs.export.file.

    Switched to jpnfs-0.0.5. This allows full acl support, proper behavior for read-only exports, significant performance improvement on listing of big directories and support for 4MB IO blocks. The NFS file handle is modified to allow changes in the exports file to be validated for each request. With the exports reload command in the admin interface this makes any change in export file to take an immediate effect.

    Added a possibility to list exports per host: exports ls [hostname].

    Service: nfsv4.1

    Added the dot command cat ".(get)()(locality)" to find out file locality (status), i.e., ONLINE, NEARLINE, UNAVAILABLE, etc. This status should reflect actual network availability rather than the static state stored in the database.

    Service: dcap

    Discontinued exporting child cells as well known. Now, the complete cell address needs to be provided when cd'ing into a child cell of a DCAP door.

    Service: gsidcap

    Optimized the network output for gsidcap by sending more data in one go on the control channel.

    Fixed a memory leak which occured under rare conditions.

    doors

    Fixed compatibility issues with uberftp and list operations on the root directory.

    dcache script

    dcache status

    Added information on how long a domain has been running or restarting to the dcache status command. The duration is given in seconds (if less than 2 minutes), minutes (if less than 2 hours), hours (if less than 2 days), days (if less than 2 weeks) or weeks otherwise.

    dcache database ls

    Improved the dcache database ls command to show information on the minimum- and maximum- number of connections.

    dcache alarm add

    Use the dcache alarm add command to add an alarm definition to the alarm-definitions.xml file.

    dcache alarm modify

    Use the dcache alarm modify command to modify an alarm definition in the alarm-definitions.xml file.

    dcache alarm remove

    Use the dcache alarm remove command to remove an alarm definition from the alarm-definitions.xml file.

    dcache alarm send

    You can use the dcache alarm send command to send an arbitrary alarm to a running alarm server.

    Properties

    New properties:
    • admin.ssh2.gid
    • billing/db.connections.max-per-partition
    • billing/db.connections.min-per-partition
    • pnfsmanager/db.connections.partition-count
    • pnfsmanager/db.connections.max-per-partition
    • pnfsmanager/db.connections.min-per-partition
    • poolqplots.enabled
    • poolqplots.refresh-interval
    • poolqplots.refresh-interval-unit
    • poolqplots.rrdb.image-type
    • poolqplots.rrdb.plot.height
    • poolqplots.rrdb.plot.width
    • poolqplots.rrdb.plot.label-span
    • poolqplots.rrdb.plot.label-unit
    • poolqplots.rrdb.plot.label-unit-count
    • poolqplots.rrdb.plot.major-unit
    • poolqplots.rrdb.plot.major-unit-count
    • poolqplots.rrdb.plot.minor-unit
    • poolqplots.rrdb.plot.minor-unit-count
    • poolqplots.rrdb.plot.right-margin
    • poolqplots.rrdb.plot.x-label-format
    • poolqplots.rrdb.plot.span-size
    • poolqplots.rrdb.plot.span-unit
    • poolqplots.rrdb.plot.step-size
    • poolqplots.rrdb.plot.step-unit
    • poolqplots.rrdb.db.version
    • poolqplots.rrdb.plot.y-label
    • poolqplots.rrdb.plot.heartbeat-factor
    • nfs.export.file
    • alarms.definitions.path
    • alarms.remote-logging.level
    Obsolete properties (Properties which are not used anymore and have no effect on dCache):
    • srmLsRequestLifetime
    • srmJettyConnectorType

    Miscellaneous

    • The single.conf layout has been updated to make it easier to add new domains.

    • Upgraded ActiveMQ to version 5.7.0.

    • Updated OpenMQ libs to version 4.5.2. We recommend to use an OpenMQ 4.5 broker with dCache.

    • Fixed a race condition in the LocationManager.

    • Fixed kill command in the SystemCell.

    • Increased speed of system shutdown by fixing several small problems.

    • Added a producer of StAR accounting records. The StAR producer works with EGI's Apel SSM v2. Sites publishing StAR records for EGI must update their SSM RPM to at least v2.0.1.

    • Restored pre-2.5 pool compatibility for protocol infos.

    • Defined the new java property org.dcache.net.localaddresses to provide a way to force dCache to use defined IP adresses. This property can be set in the dcache.conf or in the layout file.

      dcache.java.options.extra= -Dorg.dcache.net.localaddresses=ip1,ip2
      The value can be a comma separated list of ip addresses. Please notice that some components will pick only the first address.

    • Improved compatibility issue with Java 7.

    • Removed low level logging of cell communication and reduced low level cell nucleus logging to trace level.

    • Fixed the problem of a DN containing double slashes like in http://

    • Upgraded to Jetty 7.6.

    • Removed the attributes storageInfo.fileSize, storageInfo.retentionPolicy and storageInfo.accessLatency. The description of the fields fileSize, retentionPolicy and accessLatency from the billing.properties file has been removed accordingly. Please adapt your billing.format.StorageInfoMessage if you used these attributes.

    • Improved the formatting of the help output of some commands in the admin shell.

    • Fixed a bug in the Debian package where the alarms directory is owned by root instead of dcache user.

    • Added a prototype of a JSON API. It is accessed through HTTP, eg http://localhost:2288/api/PoolManager or http://localhost:2288/api/PoolManager/psu.activePools.

      In contrast to the info service, API requests trigger queries to the actual service. Thus the information is guaranteed to be up to date. The downside is that frequent probes would incure overhead. The API is not guaranteed to be stable at this point (i.e., we may change it in between releases). The goal is that any information that can extracted through the ssh interface is also available through the API.

    Changelog 2.5.0 to 2.6.0

    As we recently switched from SVN to github the changelog looks different now. It does not show revision numbers anymore but commit ids.

    • [c0edaf9] dcap: v. minor tidy up
    • [de2ee90] gsidcap: remove extra TCP frame
    • [6428b9e] gsi-/keberos-dcap: don't sent '\n' as separate SSL frame
    • [282f067] gplazma: add missing directory-listing-handler
    • [955e741] chimera-cli: fix output of 'ls' cmd
    • [bff3740] config: remove broker.scheme=none from single.conf
    • [8dd8d94] scripts: add state duration to 'dcache status' output
    • [f0443cd] Backoff utilities: controller, algorithm interface and standard implementation
    • [134cfd3] scripts: fix dcache cmd for zero-length cache file
    • [4dd842d] core: drop getHosts() and getport() from IpProtocolInfo
    • [c83fdcb] ssh2Admin: server key bug
    • [c0a7264] ssh2: Introduction of admin group ID
    • [dfa6fc5] defaults: fix double-reported TCP port for http
    • [228ba86] dcap client: close tunnel when closing control channel
    • [96deefa] system-test: fix layouts config
    • [2dc4723] namespace: add PnfsHandler-only constructor to RemoteNameSpaceProvider
    • [2623461] cells: Avoid use of raw types
    • [234ea6e] Avoid use of raw types
    • [1d36f52] srm: reduce dependency on SrmDCacheConnector
    • [38e4e04] srm: remove dead configuration options, fix 'gplazma' support
    • [9962dcd] chimera-cli: add ability to remove a directory tag
    • [1d56502] poolmanager: fix the online help for psu create unit
    • [be864e8] billing: expose BoneCP connection pool size as configuration
    • [d07e01c] pnfsmanager: expose BoneCP connection pool size as configuration
    • [e39b022] LocationManager: fix stack-trace when broker.host is unknown
    • [949703d] config: fix error message for obsolete properties
    • [f4ef444] chimera-cli: fix chown so gid-ownership may be set
    • [3c37b0f] scripts: show database connection bounds
    • [cd09462] srm: inject SRM Configuration and Storage objects into Axis
    • [ea154e4] gging to SLF4J 1.7.2
    • [6234e60] dcache: Avoid use of raw types
    • [de65b38] srm: Avoid use of raw types
    • [1f51b95] webadmin: Avoid use of raw types
    • [8cc5e7a] webdav: Update to Milton 2
    • [c37de7f] Gridftp: fix issue with checksum calculation. FileChannel has to be set to 0th position before checksum is calculated
    • [23f13d0] webdav: Fix third party dependency
    • [add75fa] webadmin: Change webadmin controller to use backoff controller
    • [39cec78] Fix several logging related issues
    • [21fd8dd] webdav: Update to Milton 2.3.0.4
    • [343c804] Fix billing plot scalability issue - 2.5+
    • [56f3484] alarms: Remove unused alarms property
    • [2520eaf] webadmin: Add Pool Queue Activity Plots to webadmin
    • [3387730] webadmin: broken unit tests fix
    • [453c1fd] get rid of deprecated class RemoteGsiftpDelegateUserCredentialsMessage
    • [782fe34] webdav: Replace HttpManagerBuilder with HttpManagerFactory
    • [175af64] Updated system-test package.
    • [a198e7b] replicamanager: Fix ClassCastException (regression)
    • [09997bf] Various minor and automatic cleanups of the source code
    • [5efd9f2] Update third party dependencies
    • [e2cbf55] jms: Upgrade to ActiveMQ 5.7.0
    • [49394ac] Update OpenMQ libs to version 4.5.2
    • [23603fa] Indentation fixes.
    • [d147d7b] pool: Fix timeout bug in migration module
    • [8ff8a20] Update SMC to 6.1.0
    • [87b29c9] Ensure newline at end of file.
    • [7653aae] core: remove CompletionHandler
    • [f58fff3] cells: Fix cell shell regression
    • [2ba5c9f] space-manager: fail requests when disabled
    • [73bfa59] Make help strings static and final
    • [f5f81e6] Fix minor issues identified by IntelliJ
    • [3d0fec3] Use collection interfaces rather than concrete classes
    • [a6c8c97] chimera: remove SQL file that creates an initial namespace
    • [e59531a] nfs: make location of export file configurable
    • [5245c98] Use FileAttributes class in pool and pool related messages
    • [3810557] location manager: fix race condition for default configuration
    • [cb6e40b] system-test: fix minor problems
    • [991d2e6] Ensure new line at end of file.
    • [5489493] gplazma-kpwd: fix double caching of file content
    • [62e36ad] cells: remove redundant instanceof
    • [bf10dfc] poolmanager,httpd,etc: Use cell address to query pools
    • [327b428] httpd: Use full cell address for login broker messaging
    • [f997fc4] Declare help strings as constants.
    • [1a64ddf] poolmanager: Add interfaces for PoolMonitor and PoolSelector
    • [048660e] system-tests: verify machine trusts dCache Test CA
    • [d20662a] System cell: fix kill command
    • [d5a4df0] build: suppress external bouncycastle dependencies
    • [4acadb6] pool: Add support for xrootd ChannelHandler plugins
    • [8290f2f] pool: Let file backend cache StorageInfo
    • [6febf98] webdav: Upgrade to Milton 2.3.0.6
    • [a3e102c] srm: Use correct scheduler for space reservation requests
    • [b6344ed] httpd: Don't use system locale when generating HTML
    • [806a4f9] pom: move to oncrpc4j
    • [30bfe2e] nfs4: decrease log level for forward/reverse id mapping
    • [323fb2a] pinmanager: Retry stage failures
    • [3880d4e] pinmanager, poolmanager: Add utilities for PoolMonitor remoting
    • [142e215] Cleanup shutdown code
    • [62e8541] poolmanager: Return pool address in PoolMgrGetPoolMsg
    • [09cbbd7] dcap, gridftp: Do not export child cells as well known
    • [8b1b486] Reindent file
    • [5ec44ba] Get rid of unused imports
    • [94b0830] Remove imports of classes from same package
    • [31c6757] Get rid of redundant imports
    • [a235f21] Avoid use of fully qualified class names
    • [de45d40] Missing image resource for poolqueue plots.
    • [60f8aa7] star: add producer
    • [a99a89d] pool: Clean up RemoteHttpDataTransfer mover
    • [4fc6e2b] axis: better logging of problems
    • [b7bc58d] webdav: add support for RFC-3230
    • [855837a] alarms: improvements (core and webadmin)
    • [c789a24] alarms: add to Alarm key regex group
    • [ca6eed7] Defective patch for commit 18109
    • [c0bc096] Add legacy GlobusPrincipal class to restore 2.2 pool compatibility
    • [b04ab2f] Restore pre-2.5 pool compatibility for protocol infos
    • [02f3590] checksum: only accept valid checksums
    • [a960ac4] alarms: report command execution exceptions through logging system
    • [36252a7] transfer: do not retry upload if pool already contains a replica
    • [a5c9ff0] SSH 1 login to admin broken
    • [1d8413a] Add set of standard alarms to logback.xml
    • [439c54b] Webadmin redirects to http after admin page login
    • [7cef67e] chimera: do not ask for tape location for newly created files
    • [4602f17] nfsv41: speedup exclusive open
    • [26a7411] space-manager: refactor how spaceManagerDisabled is handled
    • [90ab6c0] Alarms: fix minor configuration issues
    • [8c4cd3c] StAR: update to SSM 2
    • [72142e2] Make webadmin login more intuitive and friendly
    • [0e10456] space-manager: tidy up logging
    • [b460302] implement ability to chroot to user root directory extracted from login record.
    • [d0bb771] cells: login manager should not publish to login broker if accept thread is dead
    • [803e9be] cells: add getOption with default
    • [4e56932] loginmanager: small cleanup in options parsing
    • [60f68e3] srm: add default port numbers for 3rd party copy
    • [8ac2be5] nfs4: fix IO on file levels
    • [7a8e367] http: add utility method for decoding RFC 3230 Digest
    • [825aed5] javatunnel: drop unused copy of Args
    • [8b097b1] src: move ArgsTest to the module where Args is defined (cells)
    • [58c9412] nfsv41: remove client session on destroy
    • [1069d91] mover: refactor ChecksumMover
    • [387656a] Remove unused style sheets from webadmin war
    • [7af4309] chimera: fix primary key of checksum table
    • [047126f] chimera: update 'checksum' command to be more useful
    • [d0d0f94] Webadmin: eliminate css redundancy; adjust colors to conform with dCache.org
    • [d048fa9] chimera: revert 18161
    • [5cc6010] srm: Fix credential delegation for srmCopy transfers
    • [cc0e1e9] doors,pnfsmanager,chimera: Add checks for root directory
    • [50ff9b2] SRM: report RuntimeException as bugs
    • [2931cb7] poolmanager: Fix glob matching for psu commands
    • [73ab426] common: provide a way to force dCache to use defied IP addresses
    • [9942273] Clean up import statements
    • [a6416a7] Fix log filtering initialization
    • [6d60e44] alarms: Infrastructure Revision
    • [208c3a3] add useful indexes
    • [abd9d74] Clean up CacheException class
    • [980e834] spacemanager: Get rid of log errors that are no errors
    • [4ab9351] Clean up version number handling
    • [2a03a72] Turn down log level of info and debug messages
    • [d9a817a] Add JSON API for dCache
    • [988ade1] Committed files I forgot to add to SVN in previous commit.
    • [cbbb5ca] Added files I forgot to add to SVN in previous commits.
    • [3b19738] Adjust log levels of various messages
    • [d4a3326] embedded gplazma fragment: bug fix
    • [5b3bb2e] wicket: Exclude cglib dependency
    • [a76957b] replicamanager: Fix NullPointerException
    • [0f83ee8] Reverted commit r18191
    • [67d8a29] replicamanager: Fix NullPointerException
    • [a5ff9ac] poolmanager: Fixes rebalancer bug related to use of non-US locale
    • [952fa87] Fixed a few logging related loose threads
    • [4cee546] Revert recent changes to log levels
    • [8cba216] HSQLDB changelogs for billing brought up to date
    • [feed297] Resolve conflicting imports in Junit test
    • [6891f84] Fix system-test webadmin gid
    • [d6b67c9] pool: Fix migration module regression
    • [605f7f7] pool: Upgrade to Berkeley DB version 5.0.58
    • [332810c] cells: Refactor cell tunnel code and clean up CellMessage format
    • [3a5d25f] cells: Add encode/decode primitives to CellMessage
    • [b5afeba] pool: Fix problem with negative number of active movers
    • [1c351b3] cells: Preallocate killer thread
    • [b1764a1] cells: Kill the remaining bits of the legacy logging system
    • [3137ab1] cells: Fix retry loop and logging in sendAndWaitToPermanent
    • [2c3f687] cells: Don't retry send during shutdown
    • [797efe5] pool: Shut down timer thread in netty movers
    • [fe7635b] pool: Use immutable collections in IoQueueManager
    • [bef8f45] pool: Shut down various thread pools on shutdown
    • [ee37d47] Introduce cell address caching in AbstractCellComponent
    • [6e65d1a] login-cli: fix NPE on get identity of non existing principal
    • [9ff3b37] Add missing file to rpm server spec.
    • [38be7b9] nfsv41: detach expired session from client
    • [4d8817a] statistics: statisticsHelp.html - wrong colors
    • [864830b] alarms: Alarm-Definitions, dcache commands for alarms, alarm definitions using auto-completion
    • [76c8533] alarms: Fix bug related to webadmin
    • [1f3d33a] Remove alarm server from system-test
    • [42388b0] Make webadmin the home httpd page
    • [f370ba9] pool: Avoid CellInfo query for billing registration at end of transfer
    • [e875c96] pool: Add filter to silence low-level I/O logging
    • [4d73152] pool: Simplify ChecksumMover interface
    • [fb6367e] chimera: Fix spelling error in method name
    • [e769d4c] pnfsmanager: Remove unused PnfsSetLengthMessage
    • [88b5041] pnfsmanager: Remove PnfsSetStorageInfoMessage
    • [a2a707b] Chimera: Fix timing bug in Chimera test
    • [846bb90] [fix] Add serialVersionUID field to legacy principals
    • [9d261fa] pool: Simplify CellStubHelper
    • [864f82a] pom: use pdm plugin 3.0.1
    • [e206e66] pool: Fix race conditions and counting errors in mover scheduler
    • [806aa55] pool: Kill movers on shutdown
    • [3c255f3] pool: Ensure clean thread shutdown
    • [d180e90] pool: Use ListenableFuture rather than CompletionHandler
    • [f31e94b] poolmanager: Clarify use of preallocated space in pool selection
    • [6c7de8a] pool: Let DoorTransferFinished and PoolFileFlushed use FileAttributes
    • [c957736] login: add commands to dump and clear login cache
    • [fe621dd] Deprecate access latency, retention policy and file size in StorageInfo
    • [8bae36e] pool: Rewrite checksum module
    • [b51412c] pool: Use DiskErrorCacheException rather than CacheException.ERROR_IO_DISK
    • [f4ed5c5] srm: Log stack trace for bugs while saving jobs
    • [f113467] srm: Fix IllegalStateException during startup
    • [cb2007a] Squashed commit of the following:
    • [7f356e1] pom: scm should point to github
    • [dff9aea] alarms: Add check for whether the alarms service is the only service in the domain
    • [eee1ed8] Squashed commit of the following:
    • [949069d] core: fix checksum paresing in Storageinfos
    • [07c09b3] pom: use custom jglobus2 libraries
    • [c0327e1] pom: fix bad version number introduced by 07c09b31d2
    • [69ac979] Restore pinboard default log level to info
    • [22075ef] pool: Revert change to ListenableFuture
    • [39fb620] Fix NPE in GenericStorageInfo#equals
    • [4bf5f6b] pool: Allow ReplicaDescriptor#getFileAttributes on closed descriptor
    • [60bb2de] pool: Fix corruption error message
    • [5cb9897] pool: Make use of AbstractCell in NFS execution service
    • [a20e141] Add throwable to a couple of more CacheException subclasses
    • [f1a6cf6] Add checkum to error message when parsing fails
    • [6c6c885] Make CDC AutoCloseable
    • [5120744] Exclude Spring internal beans from 'bean ls' output
    • [c014ea9] pnfsmanager: Include legacy attributes in storageinfoof CLI output
    • [d41b3c8] Revert "pool: Revert change to ListenableFuture"
    • [96f2b78] pool: Revert change to ListenableFuture
    • [e3358e1] pool: Allow mover queues with zero capacity
    • [cfa6124] pool: Move scheduling state into SimpleIoScheduler
    • [96792f4] Change webadmin alarms DAO to do lazy initialization for XML database
    • [c6c422f] billing: Add p2p attribute to MoverInfoMessage
    • [9e6e93f] Fix regression introduced in Junit test by patch 5407
    • [d06b943] Upgrade to Jetty 7.6
    • [a1c116f] Fix 'dcache version' regression
    • [bc2ade5] pool: Move post processing to post execution service
    • [5e2d8fd] pool: Move transfer error handling to execution service
    • [3982bb3] pool: Add flag to create data file when repository entry is created
    • [20bcc19] pool: Get rid of PoolIORequest
    • [edd2b6e] pool: Decouple scheduler from execution services
    • [53ebf50] cells: Let CellPath#revert return a copy
    • [726cee2] pool: Add Mover interface
    • [c448bab] pool: Rename and parameterize execution services
    • [3b88e57] pool: Decouple pool from MoverProtocol
    • [70c1961] pool: Remove the unused MoverProtocol#wasChanged method
    • [38f75c2] pool: Restore mover CDC during kill
    • [70ef318] pool: Fix NPE in HTTP mover
    • [dd1031b] pool: Port xrootd and http movers to thread-less architecture
    • [8739da0] Workaround for Java bug on Mac OS X
    • [5f9fc31] pool: Clean up local interface resolution in HTTP transfer service
    • [82d3bc5] nfs4: Add .(get)(filepath)(locality) command to NFS4 (revised)
    • [8ce45fe] libs: update to Netty 3.6
    • [98a0c7b] pool: Utilitize chunked response infrastructure in xrootd4j
    • [1c75200] poolmanager: set default number of allowed replicas to 3
    • [b371e4d] nfs: switch to jpnfs-0.0.5
    • [34dba7f] chimera: special files mtime should be always current time
    • [5ce8a9c] pool: Fix CPU spin in Netty based transfer services
    • [fabb5ef] spacemanager: fix NPE and corresponding logging
    • [3214bc2] nfs: add a possibility to list exports per host
    • [9c7df0b] gplazma: Remove internal principals from reply
    • [0151fd8] pool: Make access time update non-blocking
    • [34ea012] Add ANSI output for admin shell help text
    • [c279f43] pool: Clean up flush controller
    • [d67ac58] pkgs: Debian package missing chown for alarms directory
    • [969903b] A step towards configurable cell names for gPlazma and billing
    • [d114427] pool: Don't claim a restore was successfull when it failed
    • [94acc72] ftp: Fix regression in gPlazma and billing cell names
    • [7501658] ftp: Fix NPE regression in door initialization
    • [bf94aa4] cleaner: Fix null pointer exception in 'hsms attached to pool' command
    • [dc8d726] gplazma2-jaas: add principal mutator plugin
    • [53e4eec] Remove deprecated code.
    • [c636e10] system-test: downgrade missing trust from an error to a warning