Executive summary

Hightlights from this release:

  • New site description property to add local branding.

  • Admin shell supports Ctrl-C to interrupt commands.

  • Alarms service can share domains with other services.

  • Improved attribute handling in Chimera.

  • Shorter session identifiers.

  • FTP and DCAP cell names are unique across restarts.

  • Info provider publishes all global network interfaces.

  • Improved login broker registration and SRM door selection, including improved IPv6 support.

  • Improved and more robust NFS proxy mode.

  • On the fly checksum calculation for NFS and xrootd.

  • Improved nearline storage Service Provider Interface for more flexible drivers.

  • Precomputed repository statistics in pools.

  • HTTP and xrootd uploads block until post-processing completes.

  • Reduced memory consumption in pools using Berkeley DB.

  • Site specific srmPing attributes.

  • Parameterized WebDAV templates.

  • More uniform access logs.

  • Localized timestamps in pinboard.

  • Improved bash completion.

Incompatibilities

  • Java 8 is required for running dCache 2.12. Both the Oracle JDK and OpenJDK are supported.

  • The poolmanager.conf file should be regenerated using the save command before upgrading.

  • Instatiation of WAR files in the httpd service has changed. Custom httpd.conf configurations will have to be updated.

  • Local customizations to the WebDAV directory listing template will likely have to be updated.

  • Third party xrootd channel handler plugins from previous releases are not compatible with dCache 2.12. Contact the vendor for updates plugins.

  • Local modifications to logback.xml should be reapplied to the upstream version.

  • The authorization rules for space reservations without an owner has changed.

  • The webadmin interface no longer provides access to the info service. The same functionality is available through other httpd plugins.

  • The xrootd mover now uses ports from the LAN port range by default. Previous releases of dCache always used the WAN port range. Note that the xrootd mover port range is configurable with this release.

Release 2.12.41

Changes affecting multiple services

Fixed an issue with the dcache heap dump command when called with a simple file name as the output path. In this case the dump could in some cases be written to a different directory while the script claimed the dump had failed. The dcache dump heap command has a --force option for cases in which the JVM is unresponsive. This option was ignored for processes not running as root. This is fixed now.

cells

A bouncing message bug in System cell is fixed.

pnfsmanager

Setting atime-gap to –1 (default value) should disable file’s last access time updates. Nevertheless, this was not the case and atime update was always enabled. This is fixed now and file’s last access time can be disabled as described in the documentation.

pool

Fix race condition in request scheduler.

srm

The ls -completed=n command has been observed to fail with SRMInvalidRequestException. This is fixed now and the output format of listing list requests has been changed to match that of other requests.

Changelog 2.12.40..2.12.41

881c125
[maven-release-plugin] prepare release 2.12.41
feba897
srm: Fix listing of completed list requests
a2f72b2
dcache: fix heap dump to simple file names
6fa86bf
script: Make dump heap –force work for non-root processes
80d6737
srm: Do not expose TURL before request is ready
199ec29
pool: Fix race condition in request scheduler
73cbf17
billing: additional fixes to insert triggers
eaaacca
system-test: update disposable-CA generated credentials
2c42840
pnfsmanager: fix atime update regression
8ad5df0
cells: Avoid bouncing message on no-route errors in System cell
b470500
[maven-release-plugin] prepare for next development iteration

Release 2.12.40

many

When representing checksums in the admin interface and configuration files, checksums are now presented in an improved format.

Changelog 2.12.39..2.12.40

5b217ac
[maven-release-plugin] prepare release 2.12.40
e02ef32
common: fix ChecksumType.toString()
1de77dd
[maven-release-plugin] prepare for next development iteration

Release 2.12.39

pool

The nearline storage subsystem has a thread pool for various tasks. Some of these tasks are blocking. Since the thread pool is unlimited, a high inflow of new requests can cause the thread pool to grow rapidly and even exceed thread limitations. In that case the pool dies. In the current release a new pool.limits.nearline-threads property is introduced which allow to limit the number of threads used by the nearline storage subsystem. Note that, the default is 30 threads.

Changelog 2.12.38..2.12.39

e2d6cba
[maven-release-plugin] prepare release 2.12.39
3d71337
pool: Fix regression breaking hopping mananger
e0a1ea8
[maven-release-plugin] prepare for next development iteration

Release 2.12.38

cells

LoginManager would occasionally generate error messages similar to “Discarding listening on $LOCATION 53684’ because its age of 18721640 ms exceeds its time to live of 4500 ms.”. This was due to erroneous reuse of old message envelopes in the internal messaging. This change fixes that problem.

This change addresses a potential problem in which messages sent between cells in the same domain could appear older than they are and thus would risk being discarded due to the time-to-live being expired.

srm

A Tier–1 site reported problems with a major WLCG VO’s read requests. Investigating the source of the problems showed that the srm_ifce library, used by the (outdated) GFAL v1 and the (supported) GFAL v2 SRM libraries, drastically limits the permitted lifetime of requests without providing admins any way to configure this.

For sites seeing errors related to desiredTotalRequestTime being exceeded, this change provides the new configuration option srm.request.maximum-client-assumed-bandwidth in srm.properties as a work-around.

Sites not observing such errors do not need to change anything with regard to this value.

Changelog 2.12.37..2.12.38

c872817
[maven-release-plugin] prepare release 2.12.38
26a2595
srm: add short request lifetime work-around
eed1247
chimera: Fix regression in inheriting ACLs on directory creation (HSQLDB)
8b09975
cells: Improve robustness of message time to live
81e2610
cells: Fix erroneous reuse of message envelope in location manager registration
9a085f1
[maven-release-plugin] prepare for next development iteration

Release 2.12.37

pnfsmanager

Billing entries for SRM uploads recently lost the storage class part of the entry. This update fixes that issue.

poolmanager

This modification fixes a potential race condition in pool manager.

webdav

This modification corrects the error reporting under WebDAV. When attempting to delete a non-existing file, unauthenticated users receive a 401 Unauthorized response, while authenticated users receive a 404 Not Found response.

Changelog 2.12.36..2.12.37

73b31fe
[maven-release-plugin] prepare release 2.12.37
2e08c79
pnfsmanager: Fix regression in SRM billing entries
21b78f3
poolmanager: Fix race condition in pool selection unit
5d3ae1a
webdav: fix 404 error if attempting to delete a nonexistent file
f180f26
[maven-release-plugin] prepare for next development iteration

Release 2.12.36

pnfsmanager

With this release, PnfsManager adds safety checks rejecting invalid upload paths that SRM might erroneously supply. This release hardens an installation against possible bugs triggering data loss.

This release adds a check that detects failed or incomplete SRM uploads and prevents the file from being committed to its final path. Common symptoms of this bug were zero sized files that experiment catalogues registered as successfully uploaded.

srm

This release adds a check to detect broken uploads using SRM during the final stage of file transmission. While it causes transfers to take a little more time, resilience against upload failures is increased.

Changelog 2.12.35..2.12.36

403ccef
[maven-release-plugin] prepare release 2.12.36
5fbf2f2
srm: Check for broken files during srmPutDone
3a0e35d
pnfsmanager: Check file size and upload completion when committing temporary upload paths
5933fa2
pnfsmanager: Protect against erroneous upload paths
f870a4c
[maven-release-plugin] prepare for next development iteration

Release 2.12.35

Changes affecting multiple services

Several cases of slow performance were reported while deleting directory in Chimera. This is now fixed.

alarms

On heavily loaded systems creating alarms at very high frequencies and with comparatively slow databases for alarm logging, components ran out of memory and blocked. This release introduces a mechanism that will drop alarm messages that would cause the system to fail, ensuring continued operation. Note that no messages that are critical to system operation will ever be dropped by this change.

pool

When command execution to migrate files between pools (e.g. migration concurrency or migration copy) is interrupted due to the failure to find migration job the returned error message is considered as a bug. This is now fixed so that a new message is returned indicating that the job being requested does not exist.

srm

When file upload is cancelled the value of temporary upload path tracked by SRM could be a value different from a regular path, either because it was changed outside of dCache, or it contains entries from a very old version of dCache. This could result in data loss while canceling upload. The current release fixed a potential data loss scenario.

statistics

The statistics service creates static HTML pages that describe dCache usage over time as simple files that the webadmin service can serve. This includes information about pools and store-units. The problem is that the statistics webpages do not show information about any pool or store-unit that contains a / in the name. This is now fixed. A side-effect is that the history of any pool or store-unit containing a ^ in the name is lost.

Changelog 2.12.34..2.12.35

80e19a0
[maven-release-plugin] prepare release 2.12.35
f4ef746
chimera: Alter statistics target for t_tags(itagid)
48f67ab
srm: Add safe-guard against invalid file ID in put requests
f6e25e6
pool: Don’t consider failure to find migration job a bug
3456532
statistics: encode ‘/’ in filenames
0996385
2.12 alarms: change executor to have bounded queue and discard events on overrun
0b1ceec
[maven-release-plugin] prepare for next development iteration

Release 2.12.34

alarms

On heavily loaded systems creating alarms at very high frequencies and with comparatively slow databases for alarm logging, components ran out of memory and blocked. This release introduces a mechanism that will drop alarm messages that would cause the system to fail, ensuring continued operation. Note that no messages that are critical to system operation will ever be dropped by this change.

nfs

Pinning files is now a non-blocking operation. For files stored on tape, this should result in a more responsive system behaviour, avoiding NFS blocking in situations with many concurrent pin requests.

Changelog 2.12.33..2.12.34

3244337
[maven-release-plugin] prepare release 2.12.34
d939fe24
Revert “(2.12) alarms: change executor to have bounded queue and discard events on overrun”
d077daa
(2.12) alarms: change executor to have bounded queue and discard events on overrun
02f9d10
adjust commit 5acde923f467ec3e391988ecd1dac05163dbbb1b to 2.12 branch code
5acde92
nfs: use noitify instead of blocking sendAndWait when sending pin/unpin messages via touch “.(get)(<file_name>)(pin)” command
beadc49
[maven-release-plugin] prepare for next development iteration

Release 2.12.33

Changes affecting multiple services

Sometimes when a cell start up was interrupted an error message was logged as a bug. This is now fixed.

info-provider

The GLUE infomation provider supplies information about the dCache instance, which is important for the clients in WLCG area. Because in dCache different doors can have different roots, clients may need to adjust their path when accessing dCache through different doors. The info-provider is updated so that a new path root property is provided. This allows clients to modify paths, as necessary. Note that the SRM door already supports this translation when redirecting clients for transfers.

Changelog 2.12.32..2.12.33

55c72df
[maven-release-plugin] prepare release 2.12.33
1dabddf
info-provider: publish door root path
c521c20
cells: Suppress illegal state exception during initialization
b925d7a
[maven-release-plugin] prepare for next development iteration

Release 2.12.32

spacemanager

Spacemanager backs off when it encounters a problem writing to the database. Previously, if the problem was due to deadlocks then the two tasks involved are delayed by the same amount, which means it is possible that subsequent attempt will also deadlock. This release randomises the delay to reduce the likelihood of this problem occuring.

Changelog 2.12.31..2.12.32

a6ae924
[maven-release-plugin] prepare release 2.12.32
f828a77
spacemanager: Randomize backoff in case of transient errors
995bb3a
[maven-release-plugin] prepare for next development iteration

Release 2.12.31

pool

This release fixes a bug that caused the output of the rep ls -s admin command to contain negative values.

xrootd

Fix dCache handling of open requests where uploads were considered downloads.

Changelog 2.12.30..2.12.31

80f1481
[maven-release-plugin] prepare release 2.12.31
339e39b
Revert “pool: Expose Berkeley DB configuration as dCache properties”
c087a98
xrootd: Fix classification of uploads
d0c9c32
pool: Expose Berkeley DB configuration as dCache properties
7db91b3
pool: Fix accounting error in repository statistics
29afb53
[maven-release-plugin] prepare for next development iteration

Release 2.12.30

Changes affecting multiple services

Don’t log Error while reading from tunnel: java.nio.channels.AsynchronousCloseException when a domain shuts down.

Changelog 2.12.29..2.12.30

788a8fb
[maven-release-plugin] prepare release 2.12.30
dd3522b
cells: Don’t log AsynchronousCloseException when tunnel closes
e38c4ac
[maven-release-plugin] prepare for next development iteration

Release 2.12.29

Changes affecting multiple services

Update the Spring, Milton, AspectJ, Jetty and DataNucleus-core libraries to latest version. All dCache services are affected.

pool

If a 3rd-party transfer fails then the pool may log and report incomplete information on why this happened. This release fixes this problem.

Changelog 2.12.28..2.12.29

94cca4f
[maven-release-plugin] prepare release 2.12.29
169868f
2.12: upgrade third party dependencies
996d442
http–3rd-party: ensure IOException logged with toString
2553f06
info: fix test to be less critical on timing
f39b002
[maven-release-plugin] prepare for next development iteration

Release 2.12.28

pool

Add new options to the rep set sticky command to allow filtering by access-latency, retention-policy, storage class and cache class.

Add an option to migration module to support filtering by cache class.

Add the -meta-only option to migration module. This limits the affected replicas to those where the file’s data is not transferred; i.e., the target is some existing replica of the file. Local replicas that do not exist on any other pool are skipped.

Extend the migration module’s -sticky option to allow negated selection. This is marked by prefixing the sticky owner with a -. For example, -sticky=-system selects replicas that do not have the system sticky.

Fix persistency of the sticky bits. Should a replica’s list of sticky bits be modified by either the rep set sticky command or the migration module modifying some existing replica then the sticky flags are held in memory but not written to the Berkeley DB. The next restart of the pool will loose that information, potentially resulting in data loss. Pools that store metadata as files are not affected.

poolmanager

Previous releases of dCache contained a bug where replicas generated by pool-to-pool copies failed to include the access latency and retention policy. While not directly affecting dCache operations, the result is that this information is no longer reliable.

spacemanager

Fix listing by PNFS-ID. Glob support is removed as it was non-functional.

Changelog 2.12.27..2.12.28

0b51fad
[maven-release-plugin] prepare release 2.12.28
6ec95f2
pool: Do not output expired sticky flags
5d5b399
pool: Only save sticky bits if not already set
1d1396a
poolmanager: Fix missing access latency and retention policy on pool to pool copy
2f1c917
pool: Make bulk sticky bit operation robust against repository changes
6765f35
pool: Throw IllegalArgumentException on rep set sticky errors
f45c4f1
spacemanager: Fix listing by pnfs id
80a2299
pool: Extend migration module with -meta-only option
3d3d115
pool: Add option to migration module to filter by cache class
5a773c8
pool: Add bulk mode for rep set sticky command
40cfaa8
pool: Add migration option to filter by absense of sticky flags
ed33d6a
pool: Fix persistence of sticky bits
17919de
[maven-release-plugin] prepare for next development iteration

Release 2.12.27

Changes affecting multiple services

This release fixes a caching issue where changes to inode metadata (e.g., ownership or permissions) for / (the root directory of Chimera) are not visible until the service is restarted. This affects NFS doors and pnfsmanager service.

Changelog 2.12.26..2.12.27

691ac98
[maven-release-plugin] prepare release 2.12.27
1c5eeae
chimera: Prevent filling of stat cache of root inode
79d2825
[maven-release-plugin] prepare for next development iteration

Release 2.12.26

Changes affecting multiple services

The chimera library, used by PnfsManager and NFS, contains possible race conditions that can lead to a NullPointerException. These are updated so that Chimera gives the correct error message under these circumstances.

The chimera library, used by the pnfsmanager and nfs services, contains a bug where two near-simultaneous attempts to delete a hitherto empty directory and write a file into the same directory will both succeed but leave an orphaned file: it exists in the t_dirs table but the parent does not exist in t_inodes table. This seems to be triggered when an ftp door fails with no write pool configured. This release fixes this problem.

pnfsmanager

Fix the error message (logged by the domain hosting pnfsmanager) if an attempt to finalise an SRM upload fails within pnfsmanager, or if an attempt to cancel an SRM upload fails within pnfsmanager.

poolmanager

When reporting an alarm that a pool is declared DOWN, the message mistakenly omitted the name of the pool. This is now fixed.

webdav

Update to the latest version of milton.

xrootd

Update the alice-token plugin to allow the host name check to succeed on dual-stack (IPv4 and IPv6) machines.

Fix door so that it no longer logs: An exceptionCaught() event was fired, and it reached at the tail of the pipeline. It usually means the last handler in the pipeline did not handle the exception.

Log initial response (usually that an asynchronous reply is forthcoming) when client attempts to open a file.

When authenticating with the GSI plugin, provide an informative message if the host private key file cannot be understood.

Changelog 2.12.25..2.12.26

09294f5
[maven-release-plugin] prepare release 2.12.26
e89ad32
xrootd: Update alice token plugin to fix IPv6 compatibility
fb1caf4
xrootd: Upgrade to xrootd4j 2.1.3
898aca3
chimera: Detect races in directory deletion
e6c1eba
chimera: Detect races during move
5d4ddf3
xrootd: Fix logging of Netty exceptions
5458879
webdav: update to latest milton
616006f
PnfsManager: remove copy-n-paste error in error message
7a96427
(2.12) pool manager: add pool name to alarm
62bcade
system-test: Fix grid-security settings
cd09ca4
rpm: enforce SL5 compatibility when building RPM packages
f281635
[maven-release-plugin] prepare for next development iteration

Release 2.12.25

Changes affecting multiple services

Eliminate race condition that can lead to a NullPointerException if a cell does not shut down cleanly.

The dcache script no longer checks whether the hostkey.pem file is in PKCS#8 format when dcache stop is invoked. Previously this could lead to orphaned dCache domains; for example, when upgrading dCache RPM.

admin

Fix potential IndexOutOfBoundsException should the response from the acm cell be malformed.

alarms

Update the text format of logged and emailed alarms so that messages include the type of alarm rather than simply the phrase ALARM [ ALARM_TYPE ]. Note that the alarms.email.encoding-pattern and alarms.history.encoding-pattern properties have been updated; sites that have modified either of these properties must review their configuration to take advantage of this update.

pool

Fix an intended pool-to-pool transfer optimisation: the receiving pool failed to reuse a delayed mover, should the pool-to-pool request timeout and be retried.

Fix pools so that they do not log NullPointerException if a pool receives a request to restore a file from an HSM to which it has no access.

Scripts

Fix how the writedata command in the chimera shell accepted data: the command-line argument was ignored if supplied and data was taken from stdin, if no argument was supplied then the command would fail with NullPointerException. Note: this command does NOT write data into dCache, but into Chimera.

srm

Fix the context information included when logging failures to write job information to the database.

Changelog 2.12.24..2.12.25

d1470ff
[maven-release-plugin] prepare release 2.12.25
2e127dc
srm-client, dcache: fixed passing incompatible arguments to functions
9895474
dcache: removed unecessary use of non-short-circuit logic
aae27f0
(2.12) alarms: modify logback encoding to show actual alarm type
cb1ad93
pool: Fix NPE when restoring file
4b5c2c3
scripts: do not check for PKCS#8 formatted hostkey.pem on shutdown
68ad142
chimera: Null value passed to non-null parameter in org.dcache.chimera.cli.Shell$WriteCommand.call()
83ae856
srm: Use correct logging context when saving jobs
89c2cb3
cells: Fix NPE during shutdown
62e26c4
[maven-release-plugin] prepare for next development iteration

Release 2.12.24

Changes affecting multiple services

When starting up, all doors (dcap, ftp, nfs, srm, webdav, xrootd) and pools advertise their presence to other dCache components before they are able to handle incoming requests. This can lead to subsequent queries timing out as the service finishes starting up. With this version of dCache, doors and pools only advertise their presence once they can handle incoming requests.

pool

This release updates how dCache configures the Berkeley DB when used for storing pool metadata. In addition, dCache will now no longer disable the pool when suffering a Berkeley DB-related problem if the Berkeley DB environment is still valid. Combined, these two changed should greatly reduce the occurances of pools disabling themselves when under heavy IO load.

Changelog 2.12.23..2.12.24

565ad27
[maven-release-plugin] prepare release 2.12.24
deba764
pool: Refine Berkeley DB failure handling
0a2e281
Don’t announce cells to other services until they have started
7a02965
[maven-release-plugin] prepare for next development iteration

Release 2.12.23

Changes affecting multiple services

The ftp, webdav and xrootd doors will delete the target file if an upload was unsuccessful. The copy manager (part of the transfermanagers service) has a similar behaviour if an internal copy is unsuccessful. If this delete was unsuccessful (e.g., the client deleted the file itself) previous dCache versions would log this at ERROR level. With this dCache version, such occurrences are logged at DEBUG level.

nfs

Fix race condition that can occur when a pool is first accepting pNFS transfers if multiple requests are processed almost simultaneously.

webdav

Adds support for the Robots Exclusion Standard (/robots.txt). The default advice is that web-crawlers should avoid indexing all content in dCache.

The webdav door has separate configuration allowing the admin to configure the door-local path that contains site-local files and the URI prefix to access those files. Earlier versions of dCache mistakenly used the former for the latter, which this release fixes.

Changelog 2.12.22..2.12.23

9ae334c
[maven-release-plugin] prepare release 2.12.23
21358b4
webdav: Respect webdav.static-content.uri property
69c7947
doors: Do not log failure to delete absent files on upload failures:
6425229
nfs4: fix race in request processing
51380b6
webdav: Add robots.txt
6b7db97
[maven-release-plugin] prepare for next development iteration

Release 2.12.22

Changes affecting multiple services

In earlier versions of dCache, the code-base would always establish a node’s FQDN through a DNS query on start-up. For some services and for dCache scripts (for example, the chimera script), this information is not used. With this release, dCache only makes the DNS query when it is necessary, so domains hosting services that do not need this information and scripts will start faster.

dcap

Doors describe their root path to SRM so it can calculate appropriate TURLs. Previous versions of dCache had dcap doors register incorrect paths, which this release fixes.

dCache configuration allows an admin to control if certain ciphers are allowed. In particular, this allows sites to remove support for problematic ciphers or hashing algorithms. This release fixes a problem where the GSI-dcap door failed to honour such settings.

pool

The replica-manager periodically requests a list of file replicas that a pool is hosting. In previous versions of dCache, if the pool finds a broken file then an error is returned to replica-manager. The replica-manager then considered the entire pool as being offline. With this version od dCache, such errors are logged on the pool. The replica-manager will not consider the pool as hosting that file’s data, but will otherwise consider the pool online.

The different HSM operations (flush, stage and remove) have internal timeouts after which the pool considers the request as failed. In previous versions of dCache, the default pool setup includes a four hour timeout for flush and stage but neglected to set a default for delete. This omission caused delete operations to time-out very quickly. With this release, delete operations also have a default of four hours.

Fix the Ruby implementation of the hsmcp script (hsmcp.rb) so it can parse new command-line arguments that include concurrency options.

The concurrency for active HSM operations is configurable and may be adjusted dynamically. In earlier versions of dCache, decreasing the concurrency only became effective when that operation started to idle. This has been fixed so the limits start to have an effect as operations complete.

Each movers can have one of three priority (LOW, MEDIUM, HIGH) and a selection discipline (FIFO or LIFO). The documented behaviour was for queue with names that start with - have LIFO discipline and those that start with any other character have FIFO discipline. Due to a bug, the order was wrong, with the priorities inverted and the two disciplines swapped, so LOW priority movers were started before MEDIUM level and MEDIUM were started before HIGH. This release fixes this so HIGH priority movers are selected preferentially over MEDIUM and, MEDIUM priority movers are chosen over LOW priority; however, it was decided to keep the disciplines as in previous versions and updated the documentation accordingly. There are several reasons for this: first, there is no difference between LIFO and FIFO when movers are not queued; second, neither discipline will help if the pool is persistently overloaded; third, LIFO discipline (although unfair) is documented as providing a better overall throughput during a time-limited overload; fourth, by default dCache has been running with LIFO discipline since v1.9.11 (released 2011–01–13) without any apparent problems.

HTTP third-party transfers report back if there was a problem verifying that the transfer was successful. One possible problem is that the remote server failed to supply checksum information. Reporting of such situations is now fixed.

webadmin

The dCache alarms page in webadmin can be slow to respond when first visited. This is because the page attempts to load all alarm events when showing this page. With this version of dCache, the initial visit is limited to the most recent 100 events. The auto-refresh of this page has become an option shown within the page and is switched off by default.

webdav

In previous versions of dCache, should a user cancel a transfer shortly after a mover is created then there was a risk that the mover is abandoned. This is fixed with this release.

xrootd

Fix race-condition that can lead to a stack-trace like:

Uncaught exception in thread xrootd-net-13 java.util.ConcurrentModificationException: null
        at java.util.HashMap$HashIterator.nextNode(HashMap.java:1429) ~[na:1.8.0_60]
        at java.util.HashMap$KeyIterator.next(HashMap.java:1453) ~[na:1.8.0_60]
        at org.dcache.xrootd.door.XrootdRedirectHandler.channelInactive(XrootdRedirectHandler.java:147) ~[dcache-xrootd-2.13.9.jar:2.13.9]

In earlier versions of dCache, if the xrootd door times out for a write request while waiting for the mover to send the redirection information then the mover is abandoned. This is fixed with this release.

Changelog 2.12.21..2.12.22

a6769fb
[maven-release-plugin] prepare release 2.12.22
106ff3d
hsmcp: update to match new HSM interface.
56e7e34
(2.12) webadmin: improve user-friendliness of alarms page on load
c59accc
(2.12) old replica manager: prevent pool being listed as offline when there are files with corrupt metadata
01bf9bb
webdav: Kill abandoned movers
df15146
xrootd: Kill mover on aborted write
10eca56
pool: Fix transfer prioritization
db4c2fd
pool: Add nearline storage default timeouts
a49e0e1
xrootd: Fix race condition in request cancelation
1a37723
pool: Let script nearline storage provider scale down when lowering limits
1c39fc9
dcap: Fix broken argument parsing
dd36b02
dcap: Fix socket factory argument parsing
49b46fe
Fix build and startup regression
bb305dc
pool: Fix error reporting in remote HTTP mover
2ab927f
prepare for next development iteration

Release 2.12.21

srm

Fix security vulnerability in srm EGI-SVG–2015–9495 (restricted).

Release 2.12.20

Changes affecting multiple services

In many cases, poolmanager would timeout after ten seconds when asked which pool to use for a transfer. This behaviour was not intended. The consequence of this bug is protocol specific: for some protocols, the door retries internally while other doors propagate this error to the client. Another consequence was the increased risk of the domain hosting poolmanager running out of memory, particularly when staging files. This release fixes the underlying problem. It is recommended that all doors be upgraded.

Fix a performance regression when deleting directories; the fix affects the pnfsmanager and nfs services.

spacemanager

Fix bug that can result in leaked entries in space-manager file management from failed uploads. The problem is most likely triggered when a client cancels an FTP upload at the same time as the correponding SRM upload request expires. The problem may also be triggered by communication failure with PnfsManager and the user deleting the failed upload before the pool retries.

srm

Fix support for credential delegation if the credential’s certificate is sent over multiple SSL frames. This most likely happens when the certificate exceeds the maximum frame size.

Changelog 2.12.19..2.12.20

3fca055
[maven-release-plugin] prepare release 2.12.20
278665c
spacemanager: Fix race condition leading to leaked reservation entries
04c42b0
chimera: Resolve performance regression in directory deletion
a952fd3
doors: Fix pool selection timeout handling
b6f77ce
Fix timeout math to avoid overflow
e3b0c25
srm: Fix credential delegation
aa1453e
Preparing for next release cycle

Release 2.12.19

ftp

Fix security vulnerability in gsi and kerberos authenticated ftp.

Release 2.12.18

Changes affecting multiple services

The System cell of each domain contains a version command that allows discovery of which dCache version is running. This release fixes this command. Note: there is no problem with the dcache script’s version command.

nfs

The NFS protocol provides access to additional infomation through dot commands. This release fixes the nameof and pathof commands for non-ASCII filenames.

pnfsmanager

Fix that dCache respects the setgid bit on a parent directory when the user uploads a file via the SRM protocol. Important: the srm node should be updated at the same time.

srm

This release overhauls the srm service’s queuing behaviour. To reduce likelihood of bulk operations overwhelming dCache, the srm limits the number of requests it processes concurrently to some configurable maximum. It places any additional schedulable activity (LS, GET, PUT, BRING-ONLINE and RESERVE-SPACE) into queues; the next request from the queue is processed when a processing slot becomes available. Previously, the process of selecting which queued request to process next was both unfair and inefficent: as the queue size increased, the srm node consumed considerably more CPU effort and individuals experienced increased latency.

This release sees the introduction of a new queuing mechanism designed to overcome these problems. The queing strategy is both configurable and pluggable, allowing the admin to control the desired characteristics. Some of the queuing strategies shipped with dCache are designed to share the available processing slots fairly between users or between groups of users; this grouping of users is also both configurable and pluggable, with dCache shipping with many useful choices. See the srm default configuration properties file for further details.

Enforce authorisation of requests to finalise or cancel an upload. When initiating an upload, the user’s uid and primary gid are taken as the request owner-uid and owner-gid respectively. Only users that have the same uid as the request’s owner-uid or are a member of the request’s owner-gid are allowed to cancel or finalise an upload. Important: the srm must be updated if the pnfsmanager is updated.

webadmin

This release fixes a bug with the periodic building of billing plots. Previously, if the billing service took too long to reply then there would be no further updates to the billing plots.

Changelog 2.12.17..2.12.18

7a296ae
[maven-release-plugin] prepare release 2.12.18
13176ab
srm: Refactor scheduler to avoid unused queues and per user counters
91fa27b
srm: Reimplement scheduling policy to resolve scalability issues
29093ab
rpm: remove “commented out” macros lines from spec file
df78cfa
chimera: fix nameof and pathof for paths containing unicode
e9288e9
chimera: Let SRM respect setgid on upload
9192d47
srm: Add authorization to put done and abort requests
a8592f5
module: cells
a96600d
(2.12) dcache-webadmin: add TimeoutCacheException to catch clause in billing service
8fcf3fd
[maven-release-plugin] prepare for next development iteration

Release 2.12.17

Changes affecting multiple services

Specifying the DISABLE_BROKEN_DH flag in the dcache.authn.ciphers configuration property disables all Diffie-Hellman ciphers if Java 7 is used; if dCache is run with Java 8 then this flag has no effect. Disabling DH ciphers is necessary because Java 7 contains a broken implementation of Diffie-Hellman, which was fixed with the release of Java 7 update 51. This dCache release updates the behaviour of the DISABLE_BROKEN_DH flag to allow Diffie-Hellman ciphers if dCache is run within Java 7 update 51 or later.

The description of the DISABLE_EC and DISABLE_RC4 flags have been expanded and updated.

This release updates advice on how the dcache.net.listen configuration property should be set when clients should use a DNS alias FQDN (a CNAME record) rather than the FQDN of one of the door’s public interfaces.

infoprovider

An earlier patch added support for publishing a single dCache instance with multiple SRM endpoints. This provided incompatible with sites that use a DNS alias for their official SRM endpoint, so that change is reverted with this release. Support for publishing multiple SRM endpoints is available with dCache v2.13.

nfs

Add support for the TEST_STATEID and FREE_STATEID RPC methods. These are used by the Linux kernel during recovery procedure. The previous lack of support for these methods can lead to the leaking of stateids, which can lead to NFS4ERR_RESOURCE : Too many states being logged.

pool

Improve the error message (logged by the pool and in billing) should the FTP mover fail to connect to the client.

Changelog 2.12.16..2.12.17

dfcaca9
[maven-release-plugin] prepare release 2.12.17
b1693c5
pool: fix ftp mover to provide better logging when failing to connect
7df8d99
properties: update description of dcache.net.listen
9eaca9c
crypto: refine handling of broken ciphers
600c9d2
Revert “infoprovider: remove single SRM instance limitation”
d5bdd5a
libs: update to nfs4j–0.10.6
a397627
[maven-release-plugin] prepare for next development iteration

Release 2.12.16

Changes affecting multiple services

The event logger records when messages are received and sent by cells. Some cell messages send string commands; if so, the log entry contains that string. In previous releases, such string commands were mistakenly double-escaped. This is fixed with this release.

ftp

Fix debug output to include the flavour of GSS implementation; for example, GssFtpDoorV1::secure_reply: going to authorize using k5

pnfsmanager

When a user attempts to delete a symbolic link using a non-NFS door, previous versions of dCache would resolve the symbolic link to determine whether the user is allowed to delete the symblic link: only if the user is allowed to delete the symblic link’s target would the symbolic link be removed. With this release, the check verifies if the user is allowed to delete the symbolic link instead.

pool

This release updates the JVM command-line to make it explicit that compressed object references are in use. This allows the Berkeley DB library to calculate a more accurate cache size, potentially improving pool performance.

In previuos releases, any attempt is made to query a pool’s info (e.g., via the admin interface) while the pool is initialising will block until the initialisation has completed. This has a knock-on effect of blocking all subsequent messages. With this release, requesting information about a pool will not block during initialisation.

Fix high memory usage during pool initialisation if pool has any precious files.

xrootd

The access log for the domain hosting an xrootd door would contain incomplete information about xrootd interactions: certain responses were logged without the corresponding xrootd session. This is now fixed.

Earlier releases will record a stack-trace if xrootd recieves a malformed request. This is now fixed.

Changelog 2.12.15..2.12.16

7d3c77c
[maven-release-plugin] prepare release 2.12.16
73526d0
cell: Don’t quote string command in event logger
6807e63
pool: Explicitly enable compressed oops to calculate correct cache size
2042ab2
pool: Fix locking bug causing high memory usage during pool initialization
97a5085
chimera: Fix path resolution on delete
349fd09
xrootd: Fix ‘xrootd logs stack-trace on malformed request’
5177c6c
move execution of the superclass method before any concrete class initializations
6db3f1a
pool: do not list a repository during initialization
c80eef6
xrootd: Add session to access log
7acc9fc
[maven-release-plugin] prepare for next development iteration

Release 2.12.15

gplazma

This release fixes a regression where using the xacml gPlazma plugin would prevent gsiftp-based transfers from succeeding.

pool

The Berkeley DB based metadata storage can sometimes fail. Should this happen, the pool must be restarted. In previously releases, such problems were logged with an unclear message and a stack-trace; the pool would continue to operate but would fail all subsequent transfers; nothing made it clear the pool must be restarted. With this release, such Berkeley DB problems will be logged with a concise error message and the pool will be disable, making the restart requirement explicit.

Fix regression in the migration module that could caused more replicas to be created than was desired and could cause replication to fail with a No targets error message.

srm

In previous versions of dCache, the ls operation in SRM occationally returned incomplete or inconsistent results. This is now fixed.

Changelog 2.12.14..2.12.15

97fa0f8
[maven-release-plugin] prepare release 2.12.15
7da0087
pool: Fix race condition in migration module
f50f847
srm: fix race condition in ls response
651876b
pool: Disable pool on meta data failures
d477039
(2.12) gplazma-xacml: add GlobusPrincipal (DN) to identified principals
1a6ccb9
[maven-release-plugin] prepare for next development iteration

Release 2.12.14

Changes affecting multiple services

In previous releases, dCache required a layout file be present, even if that file was empty. This has two negative impacts: the dcache stop (typically invoked automatically when updating a package) would not work, nodes where only scripts (e.g., info-provider) are used would require unecessary configuration. With this release, a missing file generates a warning but does not prevent the dcache stop command or scripts from working. This warning may be suppressed by setting dcache.layout.uri to an empty string.

httpd

The tape related queues (flush and restore) have no maximum limit, yet both the old web information and new webadmin show a dummy maximum value for these queues. This meaningless maximum value is no longer shown.

info

The info service collects information about, amongst other things, the interface(s) a door listens on. This is made available in different formats. The URL-formatted version, used by info-provider, always used an IP address even when a name was known. This is now fixed.

infoprovider

It is possible to run multiple SRM endpoints in dCache, provided certain restrictions are upheld. With this release, the info-provider publishes multiple SRM endpoints correctly.

nfs

Some shells, when attempt to overwrite a tag’s content using NFS, do so in a way that Chimera previously failed to support. This failure was reported back to the user as a remote I/O error. This release fixes this problem.

Log NFS clients that provide a stale client-ID.

When configured to support NFS v3, the nfs door will attempt to start the embedded portmap service if it cannot find the system portmap service. Previous releases of dCache would log a stack-trace if starting the embedded portmap service fails. With this release such failures are logged but no stack-trace is generated.

pool

Reduce latency when a pool processes a request to start a read mover. This improves dCache responsiveness when a client opens a file for reading.

The NFS mover uses the file’s size when processing read and write requests. For read operations, the file size cannot change. This release takes advantage of this to reduce the load on the underlying filesystem.

Reduce memory churn on pool when processing NFS requests. With this release, fewer small objects are created, resulting in less pressure on Java’s memory garbage-collector and consequently reduced likelihood of latency spikes.

poolmanager

Poolmanager may attempt to create additional copies of a file, only to discover such attempts fail because of other constraints. This leads to the log file containing entries like P2P denied: already too many copies and P2P denied: No pool candidates available/configured/left for p2p or file already everywhere. With this release, such entries are logged at info level: they no longer appear in the log file, but are available via the poolmanager’s pinboard.

Changelog 2.12.13..2.12.14

b112154
[maven-release-plugin] prepare release 2.12.14
cc72c19
systemtest: fix install command in credentials command
da2968f
chimera: throw FileExistChimeraException if tag already exists
d9ece66
infoprovider: remove single SRM instance limitation
43ca28e
(2.12) webadmin: do not display numerical value for max restores or stores
311eee9
boot: Don’t fail on missing layout file
e04b7b1
info: Publish host name rather than host address
e5c2da8
httpd: Do now show maximum for restore and flush queues
1d7da7d
poolmanager: Reduce log level of p2p denial
266c396
libs: update to nfs4j–0.10.5
c474005
pool: simplify duplicate request handling
b8b2768
pool: do not create new stateid in NfsMover#getStateId()
0dba2c8
[maven-release-plugin] prepare for next development iteration
c9e2abe
pool: reduce load on back-end file system

Release 2.12.13

Changes affecting multiple services

A new security configuration option allows the dCache admin to ban all SSL/TLS ciphers that use the RC4 cipher. RFC–7465 states services MUST NOT accept an RC4-based cipher suite. Adding the DISABLE_RC4 option to the dcache.authn.ciphers makes dCache compliant with RFC–7465. This option is not enabled by default to avoid possible regression with clients that require the RC4 cipher. This property affects dcap (with GSI), ftp (with GSI), srm, webadmin, webdav (with SSL/TLS), xrootd (GSI plugin) services.

pnfsmanager

Fixed ACL inheritance when uploading data through SRM. In earlier versions of dCache, a file uploaded through SRM failed to inherit any inheritable ACEs from the parent directory.

This release brings some modest performance improvements when creating upload directories. This improvement is available automatically only to sites that have not yet upgraded to 2.10 (or later). Sites already running 2.10 or later can enjoy the same improvements by deleting the upload directory (/upload by default) to allow dCache to recreate it. Important: deleting the upload directory will fail any current SRM uploads; it is recommended to do this during down-time.

pool

The pool’s migration module may be invoked with different pool selection modes: the -select option. The random selection option (-select=random) excludes pools that are full, but mistakenly considers replicas that could be deleted (i.e., non-sticky cached replicas) as part of the used space; this treats a pool as full even when the pool has removable files. With this release, pools that are full but contain some cached files are potential targets for random pool selection.

In earlier releases of dCache, the save command failed to record the stage, flush and remove timeouts for nearline storage (rh set timeout, st set timeout, rm set timeout respectively). This is now fixed.

The pool’s NFS mover will remember the previous TCP port on which it listened and will attempt to reuse it after restarting.

Scripts

Fix JAR selection when a short-lived java process is started. This is typically done when using one of the scripts.

spacemanager

Fix writing into a reservation when using a protocol that does not provide a username or FQAN; for example, when writing into dCache using NFS and with the WriteToken directory tag set. Previously writing would fail with a Message processing failed: null group message.

srm

The srm service can generate RemoteException stack traces when dCache is behaving correctly. These are now logged at debug level and without a stack trace.

Changelog 2.12.12..2.12.13

5bf8b63
[maven-release-plugin] prepare release 2.12.13
7d4ff26
pool: introduce unique port number for nfs mover
f4b1982
pool: Store nearline storage timeouts to pool setup file
b87aef9
pnfsmanager: Create base upload directories without tags and acls
7f383a0
pnfsmanager: Inherit ACLs on upload with SRM
516ea4b
chimera: Add ACL insert triggers for HSQLDB
779a9d8
Fix limited class path generation
9e550df
pool: Let random pool selection select pools with removable files
d09b2c2
crypto: allow banning of RC4 cipher suites
f843bf9
spacemanager: Allow unowned files in reservations
a7e2e1f
srm: Don’t log erroneous stack trace
09eecf7
[maven-release-plugin] prepare for next development iteration

Release 2.12.12

Changes affecting multiple services

This release upgrades the BouncyCastle version from v1.45 to v1.46. The main motivation is to improve concurrency, so obtaining better performance on multi-core machines. The update affects the xacml and voms plugins to gPlazma and any door configured to use (or that always uses) GSI authentication: dcap, ftp and srm. There is no cross-dependency; domains hosting these service may be updated independently.

admin

Fix the set timeout admin command so that dCache honours the supplied value.

nfs

Show additional information about proxied data transfers.

The info command no longer shows lists of clients, pools and transfers. Instead, that information is available via new admin commands: show clients, show pools and show transfers respectively.

Include the direction (READ or WRITE) when describing a transfer.

pnfsmanager

Fix possible leaked upload directory if PnfsManager takes too long to create the upload directory.

scripts

The chimera script provides both an interactive shell and the ability to run a Chimera operation as a single command-line invocation. This release fixes an problem where the single Chimera operation fails to provide the output if it is too short.

srm

If a client releases a reservation using the SRM protocol while another SRM client is querying for information about that reservation then there is a risk that the reservation will appear to exist for some 30 seconds, despite the reservation being successfully released. This release fixes this problem.

Changelog 2.12.11..2.12.12

47ca9be
[maven-release-plugin] prepare release 2.12.12
cd1f733
nfs: include read/write information to transfers
623c597
admin: Respect user timeout
cffd303
nfs: show mover info when proxy io is displayed
b130ce9
nfs-proxy: update proxy-io adapter interface to expose open-stateid
368d76c
nfs: add new commands to admin interface
b8c4743
nfs-proxy: modify ProxyIOAdapter interface to provide forEach method
a9da0bb
libs: Update to voms-api-java 2.0.10.1
e90f009
srm: Fix cache invalidation of space meta data
6ddd5f0
libs: use bouncycastle–1.46
d58c771
libs: update jglobus to 2.0.6.9d
20e57cf
chimera: Fix single command invocation of chimera utility
9a6e948
pnfsmanager: Resolve upload directory leak caused by missing reply flag
11769ca
[maven-release-plugin] prepare for next development iteration

Release 2.12.11

Changes 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), in the nfs door and pool to monitor NFS performance (stats and nfs stats commands, respectively), 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.

nfs

The nfs door will proxy data for clients as a fall-back for 4.1/pNFS and for all 4.0 clients. To do this, the door uses a built-in NFS client to contact the pool directly. Previously, if this built-in NFS client fails to connect to the pool then a door leaks a file-descriptor. This is now fixed.

When attempting to proxy client IO requests, the door would make a single attempt to connect to the pool; if this fails, the door fails the client’s IO request. With this release, the door will attempt multiple times (initially waiting 100 ms between the first and second attempt and doubling the delay after each attempt) until 15 seconds has elapsed.

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.

pnfsmanager

With this release, the path of automatically generated upload directories has changed slightly to improve SRM upload performance. Previously, these generated paths had the form <upload>/<unique-ID>, where <upload> is the value of the dcache.upload-directory configuration property (/upload by default) and <unique-ID> is some unique value (a UUID). With this release, these directories have the form <upload>/<processor-ID>/<unique-ID>, where <processor-ID> is some small integer value. Standard-conforming clients are unaffect by this change and no action are needed by the admin from this change.

Update pnfsmanager to avoid creating temporary directories if the srm has already discarded the request. This helps dCache recover more quickly when it is overloaded from SRM uploads.

pool

This release introduces the pool.mover.nfs.port.min and pool.mover.nfs.port.max configuration properties. Previously, pools listened on a random port between dcache.net.lan.port.min and dcache.net.lan.port.max; the two new configuration properties take the two dcache... configuration properties as default values. If pool.mover.nfs.port.min and pool.mover.nfs.port.max have the same value, the pool will always listen on the same TCP port for NFS connections. Note that such a value must be unique across all pools hosted on the same node. Important: it is recommended to update pool configure so, after a restart, they always listen on the same TCP port for NFS; this is because a pool listening on a different port after a restart can trigger high load on the client machine.

This release updates the error the pool reports to an NFS client when the client attempts to read or write and the pool cannot find the mover. This situation is mostly likely caused by restarting the pool. When it receives the modified reponse, the client will fall back to using proxy-IO. This allows NFS clients that were reading a file to survive a pool restart.

Fixed pool’s erroneous interpretation of the HSM timeout (4 hours, by default) as being from when a staging request was initially received, rather than from when it started processing the request (by starting the HSM script or via the new plug-in mechanism).

This release fixes how a pool’s invokates the HSM script. Previously, the pool mistakely omitted the additional arguments that an admin may configure the pool to include.

replicamanager

This release fixes the Can't clear the tables error reported when starting replicamanager service with certain PosgreSQL versions.

spacemanager

Fix the update space admin command so it can remove any ownership from a reservation. The reservation’s owner is allowed to release the reservation via the SRM protocol. If the reservation has no owner, it may only be released through the admin interface.

srm

The info admin command provides details about the srm service, including information specifically about SRM activity that can be processed synchronously or asynchronously: get, put, reserve-space, ls, and bring-onling. This information describes how many requests are in each of the possible states, one of which is Waiting for CPU. This release fixes the output of the info command to show the correct Waiting for CPU values.

This release drastically improve srm service performance when there are a large number (e.g., thousands) of queued requests; for example, this brings considerable improve for bulk bring-online requests.

This release also brings improved performance when the SRM has only a few queued requests; more specifically, when the number of queued requests is less than or equal the number of currently unoccupied max-inprogress slots. For example, if dCache is not processing any GET requests then the first srm.request.get.max-inprogress GET requests are processed more quickly.

Fix the srm service switching from synchronous to asynchronous processing when processing a bulk-requests with many files; in earlier releases, such large requests could prevent a request from falling back to asynchronous processing.

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

Changelog 2.12.10..2.12.11

6184096
[maven-release-plugin] prepare release 2.12.11
f9b2547
(2.12) replica manager: fix table truncation
be7fb68
pool: report IO error if we cant find NFS mover
ee4e990
pool: dedicated port range for nfs
7fc04c9
common: Fix division by zero regression in gauges
0dd8246
common: Fix rounding error in request gauge
ae842b2
pnfsmanager: Discard upload path creation request on TTL expiration
c88f4cd
nfs-proxy: introduce an exponential backoff when connecting to pools
ea1b3d5
nfs-proxy: close RPC client if we fail to connect
92380a7
pnfsmanager: Use per-thread upload directory to reduce lock contention
edd5fd2
srm: Optimize scheduler performance
ecf29e1
srm: Further optimize SRM scheduler
19251f3
srm: Abort pinning when cancelling bring-online requests
227ea6c
system-test: Enable MVCC and logging for HSQLDB
2000367
srm: Fix sync to async mode timeout
a22278b
pinmanager: Fix listing by id
d0188a4
pool: Add HSM options to hsm script remove callout
a1a4d6d
srm: Fix queue size reporting
7d53884
pool: Fix timeout behavior of HSM requests
ec10e4f
spacemanager: Allow spaces to become unowned
8ce0ab5
[maven-release-plugin] prepare for next development iteration

Release 2.12.10

alarms

Update output of the predefined ls admin command.

nfs

There was an error in how ACLs were interpreted by the nfs door where multiple ACEs for the same user were compacted ignoring the flags. With this release, ACEs against the same user but with different flags are honoured.

Changelog 2.12.9..2.12.10

8e56410
[maven-release-plugin] prepare release 2.12.10
d0d7b2e
cli: remove stray separator in predefined alarms printout
eb5b8bd
libs: update nfs4j to 0.10.4
a807eae
[maven-release-plugin] prepare for next development iteration

Release 2.12.9

dcap

No longer log a stack-trace when transfering a file if the client is expected to connect to the pool (the “active client mode” option; the -A in the dccp command) and the pool is shutdown before the client connects.

pnfsmanager

With the 2.12 release, the internal representation of an incomplete file (one that is being uploaded) changed, so that a file’s size was not available. This had an unfortunate consequence in spacemanager, resulting in messages like IllegalStateException: Attribute is not defined: SIZE when a client creates an empty file. This is fixed when pnfsmanager is updated.

srm

Some SRM requests support bulk requests, where multiple SURLs are processed in the same fashion. The assumption was that the SURLs in a bulk request are distinct. Bulkd requests have been observed that violate this assumption: a request with a SURL appears more than once. This causes problems when staging files from tape. With this release, a SURL that appears multiple times in a request is processed exactly once.

Changelog 2.12.8..2.12.9

01ba7f9
[maven-release-plugin] prepare release 2.12.9
578e93b
dcap: fix stack-trace when shutting down pool waiting for connection
88c144b
srm: Remove duplicate SURLs in bringonline and get requests
0265a86
chimera: Provide SIZE attribute if a file got any locations
6d1e5c8
system-test: add missing dCache disposible CA certificate
2e465c3
system-test: add regenerated host and user credentials
1d24c96
[maven-release-plugin] prepare for next development iteration

Release 2.12.8

Changes affecting multiple services

In previous versions of dCache deleting a directory with the last reference to a tag did not remove that tag. With the introduction of upload directories this problem became acute, as many such directories are created and deleted. With this release, deleting the directory with a tag’s last reference is very likely (but not guaranteed) to remove that tag’s inode. Further information about this will be made available via user-forum. The update affects both the nfs door and pnfsmanager; however, most sites will see the most benefit from updating pnfsmanager. Important #1 an updated nfs door will wait for database changes that updating pnfsmanager will enact. Important #2 the database changes enacted by pnfsmanager can take awhile (an hour or so for large dCache instances) as the change adds an index to the t_inodes database table.

Provide better logging of why NFS problems occurred. Use a hexadecimal number to log the NFS sesssion rather than the raw bytes, which are likely not a valid string. The pools accessible via the NFS protocol and the nfs door are affected; nodes hosting these services may updated independently.

The “standard” Linux flag to mark an ACE as inherit-only is i, yet previous versions of dCache accepted only ‘o’ as the inherit-only flag. With this release, both o and i are accepted. The chimera shell, pnfsmanager and nfs door are affected; nodes hosting these services and scripts may be updated independently.

admin

Restore compatibility with loginbroker information for pcells; in particular, the problem affected information provided by the srm door.

Do not loop endlessly if the admin door was unable to send command output due to the client disconnecting.

dcap

Previously the dcap door provided the dcap client with the wrong errno (error number) should the client attempt to operate on a nonexisting file or directory: EIO was returned instead of ENOENT. This is now fixed.

nfs

Provide better diagnostic error messages should there be an unexpected problem.

pnfsmanager

Allow updates to file and directory ACLs even if ACLs are not enabled.

pool

The file integrety checking (single file, entire pool one-off check and background checking) produced ambiguous output; for example, not being able to scan a file because it is still being uploaded counted towards an “error” count, but no corresponding log message is included. With this release, the output is less ambiguous and distinguishes between corruption, temporary and more permanent problems.

Fix error in checksum calculation code that resulted in logging an attempt to read a negative offset.

replicamanager

Added an admin command to query pool-manager for an updated list of pools that are a member of the resilient pool group. This allows adjustments to the set of pools participating in replication without restarting the replicamanager service.

Changelog 2.12.7..2.12.8

e2e59a9
[maven-release-plugin] prepare release 2.12.8
4d2d7c9
ChecksumChannelTest: refactor and active ignored tests
351ed7f
ChecksumChannel: fix int overrun bug on filling up gaps > Integer.MAX_VALUE
5256e33
acl: fix compatibility with linux ace
04a13ed
nfs: make use of chained exceptions
26e62a8
chimera: Delete unreferences tag inodes
423d5e0
libs: update to nfs4j–0.10.3
99fe6b6
replicamanager: add an admin command to re-fetch resilient pool group
3190276
admin: Restore pcells compatibility with loginrbroker
6a4b7cb
admin: Avoid endless exception loop upon client disconnect
477b320
chimera-provider: allow to set acl even if ACL is not enabled.
346d058
pool: update scrubber messages to be less ambigous
104bf77
dcap: fileAttributesNotAvailable must set pass ENOENT to the client
ec21804
[maven-release-plugin] prepare for next development iteration

Release 2.12.7

Changes affecting multiple services

In prior versions of dCache, the path field that billing logs for transfers contained the actual transfer path; i.e., for SRM-initiated uploads this was the auto-generated path from the TURL and not the user-supplied path from the SURL. This proved confusing so, with this release, the path field now has the user-supplied path (i.e., from the SURL). An additional field (transferPath) has the transfer path. While this is not logged by default, billing configuration (the billing.text.format.mover-info-message and similar properties) may be updated to include it. All doors used by srm clients and the billing service should be updated.

Update chimera to allow a user to specify AUDIT and ALARM types of ACEs. These currently have no effect in dCache, but it is now legal to specify them. The node hosting the nfs door needs to be updated for NFS protocol support and pnfsmanager need to be updated for other protocols and the admin interface to support these ACE types.

admin

This release fixes the the legacy admin mode (available by specifying -s legacy to the OpenSSH client). This was not compatible with earlier dCache versions if no TTY was provided.

dcap

This version of dCache uses the connected socket when discovering the IP address of the client for “channel binding”, rather than a constant value. This is important for dual-stack machines (with both IPv4 and IPv6 addresses) that host dcap doors with either gsi- or kerberos-based authentication.

nfs

When the nfs door acts as a proxy between the client and the pool (e.g., should a pNFS transfers fail), a slow pool response can result in the client retrying the request. Repeated retrying can result in a denial-of-service, in which the nfs door stops responding to additional NFS requests from clients. This is fixed with this release.

pool

Fix parsing of certain HSM-related error messages that would previously have failed with an index out of bounds error.

spacemanager

In earlier versions of dCache, if a file is deleted while being uploaded the space-manager will consider the transfer as successful (and so using some of the reservation’s capacity) whereas the pool would delete the file immediately after the upload is complete. Such “leaks” results in a reservation being reported as having more used capacity and less free capacity than it should.

srm

Fix reloading of SRM jobs if srm.persistence.enable.store-transient-state is set to false (the default value); in previous versions no jobs were reloaded.

The srm service maintains a counter of the number of requests for each different type. With earlier versions of dCache, if the srm encounters jobs that have timed out while the service was no running, these counters became inaccurate. This is now fixed.

When an srm request times out, dCache may need to take some action to “clean up”; for example, removing the upload directory. If srm is configured to discard all requests on start-up these cleanup operations did not happen. This is fixed with this release. As a consequence, startup times will be longer.

If srm.persistence.enable.store-transient-state is set to false (the default value) then transfer requests do not survive an srm service restart if the limit on concurrent transfers prevented handing out the TURLs. With this release, such requests survive an srm restart.

Previously, if srm.persistence.enable.store-transient-state is set to false (as is the default) then information needed to clean up a job might not be stored in the database. If, after restarting the srm, the job times out or is aborted then there is insufficient information to clean up, resulting in upload directories not being cleaned, pins (for bring-online requests) not being cleared, copy requests not being cancelled and lifetime extensions being lost. These problems are fixed with this release.

Changelog 2.12.5..2.12.7

4f25b7a
[maven-release-plugin] prepare release 2.12.7
1bfb844
all: Fix several NPEs when submitting billing messages
2b8c822
[maven-release-plugin] prepare for next development iteration
41d8da3
[maven-release-plugin] prepare release 2.12.6
db4e4cc
nfs-proxy: do not block forever on proxy requests
0679585
srmclient: consider copyjobfile when deciding whether to delegate
f616773
srm: Fix scheduler counter initialization on restart
1dc7621
doors: Log real path in billing
7f754d2
srm: Allow the SRM to take action upon cleaned requests
361040a
srm: Fix loading of jobs during restart
b80c065
srm: Force save jobs when adding information needed for cancellation
8c3b373
srm: Force save when job becomes RQUEUED
70956ea
pools: fix parsing error in HsmRunSystem
7b92c89
acl: accept AUDIT and ALARM ace types
eb28d23
javatunnel: use connected socket to discover local inet address
7a0b988
admin: Avoid line breaks when not connection from a TTY
cf0f5d2
spacemanager: Fix race condition leading to leaked files
7d809e4
[maven-release-plugin] prepare for next development iteration

Release 2.12.5

Changes affecting multiple services

When dCache suffers a sufficiently high inrush of requests that a cell’s request queue is exhausted, new requests to that cell are rejected. While overall dCache handles this situation correctly (degrading gracefully), the internal message counting and event logging were not updated correctly. This is now fixed.

Add support for a client opening a file twice and sharing the LAYOUTGET. The Linux kernel may do this if a file is opened more than once concurrently. In previous versions of dCache, should this happen the pool rejects the subsequent READ operations. The resulting client-driven recovery procedure then exhausts the set of available stateids. With this dCache version, overlapping opens from the same client will share the same mover and READ requests will be satisfied. This fix is only available if the nfs door and all pools accessible via NFS are updated.

Fix a bug that triggers a NullPointerException in webadmin. Although the problem is logged in webadmin, the cause is in the doors supplying the information. Therefore, the dcap and ftp doors are to be updated.

When publishing an IPv6 interface, do not include the zone information. Zone information is an extension to IPv6, which appends a ‘%’ plus some opaque identifier to the regular address. Not all clients understand this extension and reject the address as invalid. As zone information is not useful anyway, with this release zones are no longer published. This update is for all doors.

Fix possible NullPointerException in httpd and admin services.

In most cases dCache will publish door URLs with a hostname; if the address cannot be resolved then the address is used instead. Previously IPv6 addresses were written incorrectly: without the square brackets. This is now fixed if the info service and the info-provider scripts are updated.

The ftp and dcap doors create a new cell when a client connects. These child cells have an auto-generated name. Tunnel cells, which transport messages between domains also have auto-generated names. In previous versions of dCache, these names could contain a forward-slash character, which makes the cell name invalid. With this release, such auto-generated cell names never contain a slash.

admin

Ensure that the admin shell sends all the output from the last command, even if the input stream closes before the last command completes.

Fix division-by-zero error when the SSH client reports zero width or height. This happens forcing allocation of a pseudo TTY without having a real TTY (see the -t option to OpenSSH client).

pinmanager

Fix pinmanager so it does not log a stack-trace if it failed to fetch fresh pool status information from poolmanager while unpinning a file.

pool

Previously, the metadata reconstruction for files where the upload was not completed and written without the client specifying a retention policy would trigger a stack-trace java.lang.IllegalStateException: Attribute is not defined: RETENTION_POLICY. This is now fixed.

spacemanager

A number of sites have reported problems with the database resolving deadlocks. While such reports are expected and dCache behaves correctly when they happen, this release should reduce the likelihood of them appearing.

Changelog 2.12.4..2.12.5

03a1697
[maven-release-plugin] prepare release 2.12.5
0e93c40
info/info-provider: publish valid IPv6 addresses
5b980f8
loginbroker: strip off zone off published interface name
7835caa
admin: Avoid division by zero when the client reports a zero sized terminal
0f0245d
admin: Fix connection shutdown
af21ab0
spacemanager: Optimize space record deletion
34af523
dcache: Make cell communication use the correct timeout
ee368b9
nfs: share mover for the same client
dd87fb4
nfs: use NFSv4MoverHandler instead of Map in embedded NFS server
d15df28
httpd,admin: Fix NPE in transfer collectors
602947b
doors: Fix race condition that causes NPE in webadmin
865e9e5
cells: Fix event queue counting bug
537f405
cells: Avoid slash in cell names
1267180
pinmanager: Don’t log stack trace when unable to fetch pool monitor
4fb913a
pool: Fix meta data reconstruction
b818984
[maven-release-plugin] prepare for next development iteration

Release 2.12.4

Changes affecting multiple services

Avoid potential message loop when both sender and receipient domains are restarted while the message is in-flight.

The access log records the mapped dCache user in terms of uid and gid(s). The format was broken if the user has multiple gids. This is now fixed.

admin

The tab-completion feature of admin parses the help-hint to discover what expansions are available. This has been updated to support more commands.

httpd

Fix compatibility with pcells. This requires a corresponding update to pcells.

Changelog 2.12.3..2.12.4

2bb6bf9
[maven-release-plugin] prepare release 2.12.4
380206d
admin: Fix command completion
8ee0741
cells: Restore CellExceptionMessage encoding
e1c3895
httpd: Fix pcells compatibility
39f8ed0
access log: better fix for logging secondary gids
1d518eb
[maven-release-plugin] prepare for next development iteration

Release 2.12.3

admin

Restore support for pcells to gracefully handle timeouts.

Restore compatibility for pcells when querying space-manager.

cleaner

Fix bug reported as java.lang.ClassCastException: java.lang.String cannot be cast to [Ljava.lang.String;.

loginbroker

Restore compatibility with pcells.

nfs

Improve performance slightly.

Provide a better cache of the FsStat information. Amongst other things, this improves the responsiveness of the df command.

pool

With prior versions of v2.12 dCache, the pools suffered from a problem where the space accounting on the pool was wrong. This can lead to pools adopting an inconsistent state. For tape-attached pools, this can further lead to files being flushed multiple times.

SITES RUNNING 2.12 ARE STRONGLY ENCOURAGED TO UPGRADE THEIR POOLS

The pool recomputes the rep ls -s output, maintaining the value as files are added or removed. This patch fixes a bug in that calculation.

Fix pool reconstruction. If, on startup, the pool detects it is in an inconsistent state it will attempt to recover from that. With this release, this should work.

srm

Update SRM default property values. From various reports, it is clear that the current default values are not ideal for many sites. The following properties are adjusted:

  • srm.limits.jetty-connector.backlog increased to support bursts of activity; a larger value may be appropriate but not available due to default Linux configuration.

  • srm.request.threads reduced as processing is asynchronous.

  • srm.request.ls.threads change default to be srm.request.ls.max-in-progress as ls requests are blocking.

  • srm.request.max-requests increased to satisfy user-demand; needed as clients typically request more concurrent TURLs that they make concurrent requests.

  • srm.request.max-transfers increased to same value as srm.request.max-requests. This way (by default) dCache never blocks requests pending a client returning a TURL.

  • srm.persistence.remove-expired-period increased to 10 minutes to reduce stress on the database.

  • srm.service.pnfsmanager.timeout decrease to two minutes as PnfsManager should respond within that time and clients will likely disconnect if they don’t hear a response within that time.

  • srm.service.spacemanager.timeout decrease to 30 seconds as the service should respond quickly.

  • srm.protocols.disallowed.get and srm.protocols.disallowed.put now include file protocol by default.

  • srm.protocols.loginbroker.timeout decrease to 20 seconds as this is a very light-weight service.

Support catching and logging some bugs that previously would be silently ignored.

Previously the SRM used the varous retry-timeout properties (e.g., srm.request.retry-timeout, srm.request.get.retry-timeout) for two purposes: the retry period on internal failures and the (undocumented) maximum client poll period. This release includes max-poll-period properties (srm.request.max-poll-period, srm.request.get.max-poll-period, …) to handle the latter.

Fix a ConcurrentModificationException caused when SRM processes two requests close tegether.

Changelog 2.12.2..2.12.3

2033ed0
[maven-release-plugin] prepare release 2.12.3
34fbc14
admin: Propagate NoRouteToCellException to pcells
0a94175
pool: Fix file deletion
d3b6f42
admin: Restore pcells compatibility
a9db20c
srmclient: add support for userRequestDescription
282d23c
srm: log more SRM bugs
a6e3e08
Revert “pool: Make EntryState#DESTROYED deprecated”
344cde7
admin: Restore timeout semantics for pcells compatibility
0607cc9
loginbroker: Restore compatibility with pcells
6f91724
spacemanager: Move messages to dcache-vehicles
ee28b58
cleaner: Fix class cast exception
760b2ed
srm: Use more sensible default values
7cb91bf
srm: Introduce max pool period property
fa59fbe
srm: Fix ConcurrentModificationException in Axis
3b7abad
pool: Fix repository statistiscs collection
4a430dc
pool: Fix pool entry reconstruction
e932d2c
nfs: cleanup CDC related mess
c7c082b
[maven-release-plugin] prepare for next development iteration
a66a355
chimera: do not maintain time-based cached value of FsStat

Release 2.12.2

Changes affecting multiple services

Fixed access log recording of the mapped user identity so users with non-primary gids are logged without additional commas. This affects the srm, webdav, ftp and xrootd doors.

Upgrade to Netty v4.0.26, which is mostly to fix bugs. This affects the xrootd and pool services.

Fix the java.lang.IllegalStateException: Attribute is not defined: CACHECLASS problem. This problem can affect nearly all dCache services.

This release improves the quality of information recorded when logging problems and fixes synchronization of lease time. This affects the nfs door and pools.

nfs

When the nfs door logs something, the NDC (normally shown in square brackets) contains the clients IP address. Each time the door proxies a data transfer, an extra copy of the client IP address is added to the NDC, resulting in the client address appearing multiple times. This is now fixed.

pool

HTTP allows the client to make multiple requests with the same TCP connection, although not all clients make use of this. Previous releases failed to send the response headers for the second and subsequent requests; this is now fixed.

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.

Fix a problem where a door can trigger the pool to post-process a file many times. Each trigger starts a new thread, resulting in very large system load.

Fix NullPointerException, recorded as Failed to mark a promise as failure because it's done already.

Fix that, during startup, the pool would fail when recovering a broken file that has access-latency and retention-policy determined by spacemanager.

spacemanager

Improve the logging and handling of transitory errors.

Changelog 2.12.1..2.12.2

8ee9809
[maven-release-plugin] prepare release 2.12.2
5cf9f2d
pool: Fix and align pool meta data recovery with current pnfs manager
d5ce006
Fix serialization of cache class in FileAttributes
9adb604
access log: fix logging of secondary gids
e8f8373
pool: ignore duplicated mover kill requests
9fd69b2
spacemanager: Making logging and handling of transient errors more robust
afc9512
pool: Fix read corruption in HTTP mover
fb1101e
nfs: Pop elements of the NDC when leaving it’s scope.
39e6aa1
pool: Fix HTTP mover for multiple requests
42fd1d2
libs: update to nfs4j–0.10.2
1d79498
pool, xrootd: Upgrade to Netty 4.0.26
856ad65
pool: Fix NPE in xrootd mover
cd46377
[maven-release-plugin] prepare for next development iteration

Release 2.12.1

Changes affecting multiple services

This release fixes some issues common to both nfs door and pools. Provide better logging of unexpected client behaviour. Improve NFS response to some internal error conditions.

The LocationManager service is started automatically in the broker domain (typically dCacheDomain). This answers requests from other domains with instructions on how to connect to the dCache cluster (typically a star topology, other domains connecting to the dCacheDomain). With this release, the FQDN is sent rather than the hostname name. The node hosting the broker domain should be updated.

Previously, if a client attempts to write a file with Access Latency and Retention Policy that conflicts with the selected reservation a stack-trace was logged. This is now fixed: both the FTP door and spacemanager should be updated.

admin

The ssh admin interface contained a leak that resulted in the error IllegalStateException: Unable to negociate key exchange for item 1. This is now fixed.

dcap

Fix GSI authentication “tunnel” used by the dcap door.

nfs

Previously, if directory tags are updated fast enough then it was possible for clients to see the old value of the tag. This is now fixed.

Return correct number of bytes written when creating or updating a directory tag. Support registering IPv6 address in built-in portmap implementation (useful for NFSv3 clients).

Log abandoned movers with the corresponding stateid.

The NFS proxy, used by the door to talk to the pool on the client’s behalf, now provides more accurate information to the client about how the request was processed by the pool.

pool

Update the xrootd mover properties. The old pool.mover.xrootd.disk-threads property is now annotated as deprecated; pool.mover.xrootd.threads should be used instead. Some other properties that were ignored in the previous release are now annotated as obsolete or forbidden.

spacemanager

With RDBMs, transactional deadlock rollbacks are normal behaviour, which happen when the database must choose between two conflicting and concurrent changes. Previously, spacemanager would aggressively retry when this happens. This has been observed to trigger performance degradation. This release includes several strategies to minimise the impact of this.

Previously, the default number of space-manager threads was the same as the number of database connections. This does not take into account that there is background activity that also needs access to the database. With this release, the number of threads has been lowered; having a large number of threads also increases the likelihood of seeing transactional deadlock rollbacks.

Fix the shutdown sequence of spacemanager. Previously, shutting down a busy spacemanager could lead to attempts to modify the database after all database connections were closed; such failures were logged.

Reduce logging on various DB errors; generic transient errors are now warnings and transactional deadlock rollbacks are logged at debug level.

Changelog 2.12.0..2.12.1

1250210
[maven-release-plugin] prepare release 2.12.1
b8599c4c
LocationManager: Use fqdn instead of hostname
7591abb
spacemanager: Controlled shutdown
6644231
spacemanager: Make request processing more robust
bd9d56c
spacemanager: Reduce log level on various transient DB errors
d6aa627
chimera: fix updating of directory tags
3005032
libs: update to nfs4j–0.10.1
0b1cc91
spacemanager: Minor simplification to link group updates
d65a757
spacemanager: Don’t log stack-trace on AL/RP/Reservation conflict
52c5bd5
spacemanager: Lower default for number of threads
10e2727
pool: Update xrootd properties to reflect changes to Netty 4
d6d9425
ssh2: close file stream when reading authorized_keys file
cfa721d
javatunnel: fix array size to decode
736ef14
nfs4: log abandoned movers with WARN
cb8cb5e
[maven-release-plugin] prepare for next development iteration
be22774
nfs-proxy: modify ProxyIOAdapter interface

Release 2.12.0

Site description property

There are several places where dCache provides a short, human-readable description of this dCache instance or where this would make sense: the info-provider, the webdav directory listing and the webadmin interface. This release introduces the dcache.description property that is used as a default in these places.

Admin shell supports Ctrl-C

The Ctrl-C key combination may now be used to unblock the shell and make it available to read the next command. The default timeout has been increased to 5 minutes as pressing Ctrl-C is now preferred.

Note that pressing Ctrl-C does not actually cancel the execution of the command. The key combination merely cause the shell to stop waiting for the result.

Embeddable alarms service

Threading issues preventing the alarm service from running in the same domain as other services have been corrected so that it is now safe to do so. Two new properties have been added:

alarms.limits.workers
Number of worker threads for processing incoming logging events.
alarms.db.alarms-only
Only store alarms to the persistent store

DataNucleus property file inaccessible

The DataNucleus property file for low level database configuration is no longer exposed. The configuration properties alarms.db.datanucleus-properties.path, billing.db.config.path, and httpd.alarms.db.config.path are obsolete.

Chimera file attribute access optimized

This release optimizes how file attributes are updated in Chimera. This change reduces database load and latency on such updates.

Permission checks have been altered to always allow the owner of a file to update its attributes.

In previous releases, the last access time in Chimera was updated by pools when a pool is accessed. With this release, the atime is maintained by doors. Besides being a more correct implementation of atime, the new implementation is faster.

Unique FTP and DCAP cell names

DCAP and FTP doors instantiate a cell per client connection. The names of these cells are formed by concanating the door’s name with a counter. This counter used to reset on every restart. With this release, the names are derived from a time stamp and with high property the names are unique accross restarts. To reduce the length of the names, the counter is base 64 encoded.

Shorter session identifiers

Most log messages include a session identifier and link all log messages generated by a common user session. These session identifiers are usually formed by combining a cell name with a counter. For FTP and DCAP doors this lead to session identifiers with two counters, resulting in needlessly long identifiers. With this release such redundancy is avoided.

Default FTP internal network interface changed

FTP doors can act as proxies for the data channel between pools and clients. When establishing such a proxy, the FTP door listens for a connection from the pool. Before, the interface the door would listen on on multi-homed hosts would default to the interface the FTP client connected over. Since the client connection has no relationship to which network pools are accessible from, this release changes the door such that it listens to the interface to which the host name resolves. Like before, the default can be overriden by setting the ftp.net.internal property.

Network interface scope published

The info service enumerates the network interfaces of all doors. Previously these interfaces were ordered to list an external interface first. With this release, the scope of the interface (e.g. global, site local, link local, etc). is included instead.

The info-provider is updated to make use of the scope to only publish global network interface and to export all of them.

loginbroker and SRM gain IPv6 support

The loginbroker service acts as a registry for doors and their network interfaces.

With this release, doors register both IPv4 and IPv6 interfaces with their loginbrokers. The discovery of network interfaces is now dynamic such that interfaces that disappear or appear after a door is started will be removed from or added to the registration in the loginbrokers.

Doors now also accept a hostname or FQDN for their *.net.listen property. When registering with a loginbroker, both the name and the resolved IP address is published. The info-provider and the SRM will use this name rather than doing a reverse lookup on the IP address as they did before. If an IP address is used in the configuration, it is the door than now performs a reverse lookup.

The SRM will prefer a TURL that retains the protocol family the SRM client used. That is, for an IPv6 client an IPv6 TURL is preferred, and for an IPv4 client an IPv4 TURL is preferred. The SRM will fall back to the other protocol family if necessary. Note however that TURLs still contain the host name as published by the doors.

Scoped door selection in SRM

With this release the SRM tries to take where the client connected from into account when it selects a door.

The selection logic has been modified such that it will select a network interface with the smallest possible scope as big as the scope of the interface the client connected over. E.g. if the client connected on a network interface with global scope, the SRM will select a door with global scope. If the client connected over a site local interface, the SRM will prefer a door with a site-local interface, but will fall back to selecting an interface with global scope if necessary.

NFS doors use NFS to access pool data

An NFS door can act as a data-proxy between the NFS client and the pools. In previous releases, the NFS door internally used the DCAP protocol between the door and pools. Starting with this release, NFS doors use the NFS 4 protocol instead. The use of NFS provides more robust proxy support in case of network failures.

As part of this change, the lifetime of NFS movers has changed.

Additionally, NFS has seen many performance improvements in this release.

New NFS export options

Added a nopnfs export option to doors to force the use of proxy mode.

Added anonuid and anongid to map all accesses to a particular UID and GID, e.g. /data hostA(rw,all_squash,anonuid=17,anongid=18).

On the fly checksum calculation for NFS and xrootd

Both NFS and xrootd uploads now support calculating checksums during upload when enabled in the pool’s checksum policy. This avoids the long pause at the end of the upload that is usually caused by calculating the checksum after the transfer.

Automatic gap calculation for small pools

Pools have a gap setting that reduces the risk of running out of space during uploads. Once less space than the gap is free, pools will no longer accept new files. In previous releases, small pools less than the size of the default gap would be inaccessible, often leading to confusion during testing. With this release, small pools automatically reduce the gap.

Improved nearline storage SPI

The nearline storage service provider interface has been enhanced to allow nearline storage drivers to query the logical path of a file being flushed. The interface has also been extended such that it is easier to report error codes on failures.

The packaging of the SPI has been changed to make it easier to develop third party drivers without having to depend on the entire dCache code base.

Improved network interface selection in pools

The logic used to select a network interface for a transfer has been improved. This in particular affects partially multi-stacked installations.

Consistent csm info output

With this release, the output format of the csm info command in pools is consistent with the option values of the csm set command.

Updated default checksum policy for new pools

Newly created pools now default to on-transfer checksumming rather than on-write. For large files, the on-write checksum policy often leads to timeouts and throughput issues.

The on-restore policy is now enabled by default.

Explicit port range for xrootd and http movers

The new configuration properties pool.mover.http.port.{min,max} and pool.mover.xrootd.port.{min,max} allow the port range for HTTP and xrootd to be controlled.

Precomputed repository statistics

The pool rep ls -s command used to recalculated per storage group statistics on every invocation. For large pools this was quite slow, leading to timeouts in the admin shell and in the statistics service. With this release the result is precomputed.

Much improved support for control channel free protocols

dCache was born with protocols having seperate control channel and data channels. This has proven to be challenge for protocols like HTTP and xrootd that do not maintain a control channel to the door for the duration of the transfer. In previous releases, there was no way for clients using these protocols to know whether post-processing failed or when it completed. Thus a client would be unaware of e.g. checksum failures or failures to register a file in Chimera, and a client that queried the door directly after it completed uploading would typically be met with an error.

Starting with this release, xrootd and http uploads will block until post-processing has completed. Any errors are propagated back to the client by the pool, and once the client is disconnected, it is guaranteed that the file is fully registered in Chimera.

Reduced memory consumption in pools with Berkeley DB backend

The memory consumption of pools using the Berkeley DB backend has been drastically reduced. The on-disk representation is unchanged.

Pool manager drops obsolete configuration command

The obsolete psu set linkGroup attribute command has been removed. The command had no effect. Sites are encouraged to check the pressence of this command in their poolmanager.conf file before updating. If pressent, the command can be removed by running save in the poolmanager service.

Space manager changes authorization policy for unowned reservations

In previous releases, unowned reservations could be released by anybody. Since this is unlikely to be desirable, this release changes the semantics such that reservations without an owner can only be released by the admin.

SRM enables history logging by default

The SRM supports writing a detailed log of all request state changes to the SRM database. This information is very valuable when one wants to reconstruct the events related to a transfer, for instance, when debugging why a particular transfer failed.

In previous releases this feature was disabled by default due to fear that it would overload the SRM database. Recent releases have however improved database performance in SRM to the point that we now change to enabling history logging by default.

At the same time we changed the default for when data is persistet to the database. This means that although all state transitions are by default recorded in the database, the database is not necessarily updated upon every state transition. This further reduces the database overhead of history logging.

Site specific srmPing attributes

The SRM protocol allows the srmPing reply to contain site specific key-value pairs. With this release, custom key-value pairs may be added in the dCache configuration using the srm.ping-extra-info properties.

Transfer managers service removes runtime database configuration

The admin commands set dbUrl, set dbUser and set dbpass have been dropped.

Webadmin HTML contains dCache version

The webadmin now includes a meta tag reporting the dCache version.

Webadmin features improved navigation bar

The navigation bar now disables the links to disabled pages.

Webadmin no longer exports the info service

The info service can no longer be access through webadmin. The info service is still exposed through the /info path of the httpd service and this is the preferred interface for scripts and other services to query the info service.

Updated httpd service configuration

The httpd service has been heavily refactored. The set update command that was lost in previous releases is once again exposed in the admin shell. The arguments to the ‘set webapp’ command have changed, which means that sites having a custom httpd.conf file likely have to adjust the configuration on update.

The httpd.container.webapps.tmp-dir propery is obsolete as WAR files are no longer unpacked.

WebDAV doors always use JGlobus for https

The WebDAV door previously had the choice of two different https implementations: The plain https setting would use Java’s TLS implementation, while the https-jglobus setting would use the TLS implementation for JGlobus.

In recent years, the two choices actually both used the TLS implementation bundled with Java. The difference between the two was merely how they dealt with certificate handling and internal abstractions. In dCache 2.11, the two code bases were further consolidated to the point that in this release we adopt JGlobus certificate handling for the plain https setting. The https-jglobus setting is deprecated.

One consequence is that the WebDAV door now uses the certificates in /etc/grid-security/ rather than those imported using the dcache import commands.

One of the benefits of the JGlobus certificate handling is that it supports VOMS attributes.

WebDAV door supports parameterised directory templates

The HTML generated by the WebDAV door is cusomizable using a templating language. Starting with this release, configuration properties prefixed with webdav.templates.config are exposed to the template language. Several such properties have been predefined. Consult the information in the webdav.properties file for details.

Sites that have already customized the template will likely have to update the template.

WebDAV blocks access to files being uploaded

When generating a directory listing, the WebDAV door now greys out files that are still being uploaded, preventing the user from clicking a download link that would fail anyway.

Sites that have customized the HTML template will likely have to update the template.

New threading model for HTTP and xrootd movers

The threading model of HTTP and xrootd movers has changed due to an upgrade to the Netty 4 I/O framework. Socket I/O and disk I/O are now served by the same threads. The pool.mover.http.disk-threads property is deprecated and has been replaced by pool.mover.http.threads. pool.mover.http.socket-threads is marked as forbidden, while pool.mover.http.memory-per-connection and pool.mover.http.memory are marked as obsolete.

Xrootd doors are build on the same Netty I/O frame works as the HTTP and xrootd movers. The upgrade to Netty 4 has caused the xrootd.max-total-memory-size and xrootd.max-channel-memory-size to be obsolete.

Third party xrootd plugins have to be ported to Netty 4

Any third party channel handler plugin has to be ported to Netty 4 and xrootd4j 2 before it is compatible with dCache 2.12. Please contact the third party vendor for further details.

Information to developers: If you develop channel handler plugins, it is of utmost importance that your plugins do not perform blocking operations on the Netty threads. Any blocking operation has to be offloaded to a thread pool maintained by the plugin. Please contact support@dcache.org for details.

More uniform access logs

Most doors in dCache support generating a so called access log that records any interaction with clients talking to the doors. The logs share many similarities, but used slightly different formatting and attribute names for the same concepts. This has now been cleaned up. If you developed parsers for the access logs, you most likley have to update these.

Compress events logs

Event logs are a debugging feature that record low-level events in an easy to parse format. Event logs are disabled by default. If enabled, the logs are rotated daily and starting with this release the rotated logs are automatically compressed.

Localized time stamps in pinboard log

Timestamps in the in-memory pinboard log used to follow a 12 hour format. The format has now been localized, meaning it will follow the conventions of the current local.

Renamed and improved wait-for-cells script

The wait-for-cells script uses the info service to determine whether the supplied list of cells is currently running. If not, the script will wait a defined period for the cells to appear before terminating with an error. This release improces the script, strips the .sh suffix and moves it to /usr/sbin/.

Improved bash completion script

The script implementing bash completion for the dcache command has been extended and now supports all sub-commands.

Updated third party libraries

A large number of third party libraries have been updated. The improvements in those libraries are too many to list here, although it many cases not immediately apparent when using dCache.

Changelog from 2.11.0 to 2.12.0

c2472ca
[maven-release-plugin] prepare release 2.12.0
a08fc5b
admin: Don’t send errors to stderr
be0a6e1
cells: log bugs found by CellShell
f8b5633
cells: fix how bugs are reported from ac_ command.
6f888e9
pool: Fix bug in migration module upgrade logic
b30bd03
pnfsmanager: Fix upload to space token that conflicts with AL and RP tags
1261c21
Fix: ChecksumChannel returns different checksum on second getChecksum
ff82b27
srm-client: Port delegation client to jline2
1445016
admin: Implement Ctrl-C to stop waiting for command
a985832
Downgrade maven-resources-plugin to fix build failure
93add52
ChecksumChannel: Support sparse files
853a826
admin, chimera, srm-client: Update to jline2
9ca71b5
spacemanager: Change release authorization for unowned reservations
ea9bffa
Fix valueSpec help parser
38df706
admin: Delete legacy shell implementation
1985d5d
pom: Update third party libraries
7cef919
pom: Update to latest maven plugins
c275812
spacemanager: Fix NPE in listing space reservations
ee39ee1
Maintain CDC of threads in decorated thread pool
f47beea
spacemanager: Log unexpected exceptions
51d5f24
spacemanager: Refactor linkgroup selection
ed52468
nfs-proxy: remove dcap based implementation
e9b1c8e
scripts: fix and update wait-for-cells
96dc283
nfs-proxy: introduce nfsv4.1 based proxy
af56f48
access: session is first item and log client socket once per FTP session
8f8cbca
pool enable on flight checksum calculation for nfs
5b4dd4c
pool: Drop some dead code in netty transfer service
107baa6
pool: Update csm defaults
1201de9
srm: Enable history logging by default
559a5c6
ChecksumChannel: Allow checksumming on out of order writes
211ea29
pool: Propagate post processing failures to HTTP clients
e85174b
pool: Propagate post processing failures to xrootd client
1fa3e71
update access log to record consistently client IP+port
ac20e61
add dcache.description property
4c11349
tunnel: use toString if IOException#getMessage returns null
eed1e93
pool: Refactor how the http mover closes files on upload
709432c
Exclude cwd from classpath
0ae956e
pool: Refactor mover execution tracking in http and xrootd transfer services
7f3fae9
pool: Unify channel handling between xrootd and http
f356892
pool: Rename several mover related methods
c31b1e1
pool: Share execution code for http and xrootd
19f7898
webdav: fix logging of unauthorized activity
a802682
ftp: log user’s identity only for the (successfully) command.
91e87d7
xrootd: Update Alice token plugin
3072fbe
pool: Separate success and failure flows on close in http and xrootd movers
dc7b1a3
pool: Make csm info and csm set use the same values
fa2fdf3
pool: Implement on-the-fly checksum calculation for xrootd
179719d
pool: Make port range explicit for http and xrootd mover
725ef68
pool: Move common elements of xrootd and http transfer service into base class
30d4f1e
pool: Merge NettyServer and TransferService for xrootd and http
6c9e2a4
pool: Use the door stub in http and xrootd transfer services
b70215a
pool: Minor refactoring of how movers invoke post processing
6e321ac
xrootd,pool: Port HTTP and xrootd to Netty 4
af49a5a
pool: Propagate HTTP mover failures to pool
1811f56
chimera: FsSqlDriver#isXxxKeyError accepts SQLException
707a909
commons: introduce SqlHelper#tryToRollback
2211352
gplazma: update error message for forbidden properties
8513c65
spacemanager: add blocking option to update link groups command
2723533
srm: don’t list absent information in ls
beb5014
access-log: unify approach to logging the user’s identity
39f19bc
pnfsmanager: log problems when creating upload directory
7282f87
webdav: add support for parameterised templates
aa85a17
srm: include the reason why upload failed
19ae273
bash-completion: update dcache bash-completion script
e0d745f
bash-completion: add dcache bash-completion script
fb33e16
chimera: fix race condition on remove
c8b3d16
webadmin: ensure unique id attributes for all (currently) tested UI elements
463a045
poolmanager: do not use SimpleDateFormat
f18c832
alarms: decouple remote log processing from local logging context
631876d
ftp: fix response if user fails to authenticate to weak FTP door
229e198
webadmin: make jquery selector specific to individual tables
175f2ab
webadmin: restore missing components to respect jquery script options
09095fc
srm: remove the necessity for all scheduled activity have delegated credentials
9042617
nfs-proxy: introduce ProxyIoFactory interface
b148653
acl: do not check for null results of canXXX
7be054f
srm: support handlers that do not require a delegated credential
c51d54b
srm: refactor user mapping
ef62de5
build: Add distribution management sections to pom
4209f22
pool: Rename Mover#postprocess
fa33d1d
Move info messages to dcache-vehicles
5d09f56
pool: Move nearline SPI to its own Maven module
88daff7
nfs-proxy: remove proxy adapter on IO errors
a8197a0
ftp: fix invalid default for ftp.authz.readonly property
defddae
nfs-proxy: enable proxy-IO for exports with ‘nopnfs’
870df89
nfs-proxy: do not rely on presence of file size in FileAttributes
708e12c
acl: posix always allows owner to update file attributes
ec0e7cf
pool: introduce configuration option ‘pool.service.door.timeout’
04fba3d
poolmanager: use thread pool to process write requests
8eda732
Move vehicles to separate Maven module
4e9eb16
webdav: fix double-slash bug by upgrading to patched milton
1a2dc42
pool: Extend nearline storage SPI with path and custom error codes
f365b48
dcap: make code cleanup
b4b2488
cells: add serialVersionId to DelayedReply
24a5e42
srm: refactor how request information is extracted
5c47ed0
webdav: fix NullPointerException when PUT as a child of a file
5172078
cells: remove (finally) custom FIFO implementation
9990718
src: drop custom Base64 implementation
7417022
pool: use Expect: 100-continue for 3rd-party copy, support redirection
4449c3c
pool: work-around pool returning “201 Created” before upload is complete
a90c4dc
srm: allow sites to configure additional TExtraInfo for srmPing responses
e128bd2
ftp: add user to access log
f435c15
scripts: fix error meessage on java version mismatch
4f3b755
srm-client: reduce default logging for srmfs
5193adf
nfs: remove handling of ‘nopnfs’ export option.
f9e235b
nfs: fix use of wrong ConcurrentHashMap implementation
c8f449c
libs: use nfs4j–0.10.0
feea8e9
pool: update NFS transfer service to validate inactive movers
e364b5f
common: use new java time API in NetLoggerBuilder
932fcf0
pool: Fix logging in HTTP mover
e1f3d69
srm: Fix calculation of total number of requests
32cafa1
srm: Drop retry limit from Job object
4929873
webdav: Alternative to fixing return code of DELETE of absent file
893381a
dcap: Fix typo that causes GSI and auth dcap to use the wrong port
e601b4b
nfs: always reply FILE_SYNC4 on write
f7064c2
webadmin: fix login redirect bug
30db118
info-provider: fix publishing SRM port number
5abc0e1
webdav: don’t log a stack-track when proxy transfer is interrupted
98c9798
info-provider: remove dCacheDomain assumption.
3bba25c
webdav: make progress markers more robust
2058a92
info-provider: don’t rely on interface order
43c232a
webdav: ghost-out files that are currently being uploaded
c07c2f6
cells: Fix message timeout in case of thread pool overflows
19c92cd
transfermanager: restore correct limit property on CopyManager
edf68e8
transfermanagers: Fix CopyManager
f99590c
loginbroker: IPv6 enable and other improvements
39a1931
chimera: handle NULL field of directory tags
eb1284a
transfermanager: fix billing stub initialization
9a4c357
nfs4: remove redundant code
6387245
transfermanager: fix bug in db property definition
39512a5
pinmanager: Adjust pinmanager defaults
dac4112
pool: Precompute rep ls -s output
dbb1294
pool: Reduce memory consumption of Berkeley DB backend
980b20c
pool: Make EntryState#DESTROYED deprecated
2f0a3e3
Avoid StorageInfo for storage class, cache class and hsm
26c5a40
Incorporate DCAP and NFS style writes into Transfer class
b93dfed
Add storage class, cache class and hsm to FileAttributes
3e32de3
Use Java 8 for StorageInfo string internalization
a032759
Internalize common strings in StorageInfo
3c70868
pool: Drop StorageInfo from CacheRepositoryEntryInfo
92fab40
pool: Automatically calculate a gap if not specified in the configuration
0ce3710
Upgrade to LiquiBase 3.3.2
da7ba82
bootloader: Don’t fail on missing cell name
d8182a5
check-config: fix warning for deprecated properties
bc0a8bf
pool: Refactor FTP mover
3c0c5cd
pool: Fix regression preventing configuration to be reloaded
7df46b7
transfermanager: fix DataNucleus injection and persistence calls
bc5b8b8
transfermanager: convert to Universal Spring Cell
5adbb91
datanucleus: make configuration consistent
afd5e7c
gitignore additions for IntelliJ
d590638
nfs4: add command to kill client by server short hand id
2615b95
nfs41: respect nopnfs export option
77e28cd
libs: move to nfs4j–0.9.4
dc464e7
Do not rely on pressence of file size in FileAttributes
d4615a2
webdav,srm: provide useful log messages for SSL handshake failures.
6aab01f
logs: compress event logs when rotating
48c4c90
Elliminate the internal/external comparator of NetworkUtils
68a5b55
pool: Refactor FTP mover logging
be20f11
pool: Fix regression causing FTP movers to default to proxy mode
1d2e6e2
nfs: Allow not to publish to loginbroker
6bd3d69
pnfsmanager: Don’t report file size on create unless it is known
1bb519f
pool: Preserve HSM option ordering
2735a88
cells: Delete pcells related classes
e4d8b60
webdav: Fix reported content length for partial GETs
4b5c8c7
ftp: ensure client command line is available in access log
d273f7e
webdav: Fix return code on DELETE of absent file
dc6eb56
chimera: setInodeAttributes have to throw FileNotFoundChimeraException
c88932b
srm: fix semi-infinite ls range with non-zero offset
253cfe6
chimera: update chimera API
d49dedc
chimera: relax mtime update validatrion in the tests
45ace4f
srm: Some automated refactorings
46050cc
Drop deprecated fields
abef327
Switch to using GlobusPrincipal from JGlobus 2
9937674
Refactor NetworkUtils to reduce redundancy
9cec3d1
Add caching of local addresses
e4b265b
pool: Improve selection of listening address
2d7c615
pool: Improve selection of listening address
16bbbcb
chimera: do not shutdown jdbc dataSource on close
b3b24bc
pool: Partially fix interface selection for FTP mover
cbf0e81
ftp: Clean up address handling
455ee76
pool: Fix typo that breaks pool.mover.ftp.allow-incoming-connections
982fe4a
shell: fix shell oracle for configuration keys with a space
fa30856
chimera: handle setattr on levels as on a regular files
7e21610
nfs: show current proxy-io transfers in the door
36ce252
chimera-cli: fix chown
f0d4e8f
dcap: Fix regression in published protocol family
70bbc29
ftp: fix help output
a800064
loginmanager: Fix leak caused by absent child limit
e3a2c1b
spacemanager: Fix null constraints and other schema migration issues
cb39909
spacemanager: Move dcache.enable.space-reservation to proper file
fced715
ftp: Some simple refactorings identified by IntelliJ
27e86a3
Fix typo in PnfsManager
b7ce95c
pool: Simplify synchronization in nearline storage handler
d9c3b50
alarms: Fix several resource leak and shutdown problems
765e6bf
alarms: Detach alarms appender on shutdown
a03c3d6
Port billing indexer to Java 8
b144df6
ssh: Allow empty lines and comments marked by hash in authorized_keys2
8e22744
logback: revert commit 1cc57b1efaced76d22e5b561f861c6daf981f249
fdb056c
dcap: check for url in some commands
ff1c133
pool: Fix shutdown of nearline storage subsystem
b2861a6
admin: Fix error reporting
7f61122
pool: add Io mode into mover’s status line
f1923b3
Make use of streams API
db256e6
spacemanager: Make use of lambda expressions and other minor fixes
1cc57b1
Use lambda expressions when suitable
6b23824
Make use of improved diamond operator
9094d68
spacemanager: Get rid of access latency and retention policy defaults
215db7d
When introduced we had no other way to set custom log levels than to have a logback.xml specific to system-test. Nowadays log levels can be adjusted through properties in our regular configuration files. Hence, there is no need for the custom logback configuration.
0a30343
Ensure that LoginManager threads are terminated on shutdown
8132416
pool: Expose error code to migration task callback
4080bcb
pool: Refactor migration module task to decouple it further from the pool
1b2c3ff
logback.xml: Replace layout by encoder
e359c62
nfs: stop embedded portmap on shutdown
b0c57c0
libs: update to nfs4j–0.9.3
952316f
nfs: return correct verifier on WRITE and COMMIT
42e31b5
poolmanager: Fix full pool detection for WASS
af625e3
ftp: Relax requirements for EPSV and EPRT
3f52dce
srm,webdav,httpd: Log SSL handshake failures
1d4fb58
ftp: Relax requirements for EPSV and EPRT
b0f88c5
Upgrade to Milton 2.6
3dca7ee
nfs: set file size in namespace on stable_how is FILE_SYNC4
8c295ee
info: Reduce safety limit to 50 ms
7c43c2a
pool: reorder ip addresses returned to NFS client
239b1de
chimera-provider: do not get file attributes prior update
681bc2a
chimera: make Stat aware of defined attributes
7231c65
pnfsmanager: update atime on get attribute if desired
61dfae7
pool: Fix ISE when flushing deleted file
e9738ab
httpd: Drop info pages from webadmin
9317083
info: Reduce delay between messages
c36188c
pnfsmanager: Propagate cleaner errors to RemoteNameSpaceProvider
c59f61e
spacemanager: Fix various error recovery scenarios
e76e54f
datanucleus: use persistence units
ef00af1
update schema version from 3.0 to 3.1
a6ef4b7
xrootd: Propagate mover errors to dCache
4162c2b
pool: Restore flush and stage stats in info
14d25b2
dcap: refactor PnfsSessionHandler to unify permission check and url handling
12d5aed
pool: Improve xrootd error message on missing UUID
e2cf8fd
cells: Drop support for auto starting CellAdapter
e6127d1
cells: Get rid of thread local holding the current message
cb62601
cells: Reduce coupling between CellAdapter and CommandInterpreter
019e10e
Fix NPE in cell initialization
96b28e2
Upgrade to latest version of third party libs
5ee36f2
Fix NPE in httpd service
19d6b12
pool: Avoid interrupting Berkeley DB in migration module server
39a6013
dcache-webadmin: revert rrd data source names
fa36eb2
cells: Refine TTL discard message
697921a
pool: Fix cleaning of stale locations
2b65220
xrootd,pool: Fix xrootd and http logging context
98586cd
Update to HikariCP 2.2.4
e00a1fc
jetty: update webdefault.xml to adhere to new specification
bfb939d
gplazma2-htpasswd: Avoid deprecated Guava classes
c1e04ff
httpd: Integrate handlers into spring wiring
6a750af
doors: Add pnfs ID to billing remove entries
bd03443
Limit MessageCallback to Message
0b23cfc
webadmin: Fix ClassCastException in cell admin
a2f3bb9
webadmin: remove redundant head element in alarms panel html
cdb086e
dcache-webadmin: change output field of cell admin page to monospace font
4018b84
srm-server: add servlet webapp–2.3.dtd file
960f118
dcache-webadmin: eliminate clojure dependency
d7c4108
libs: update to nfs4j–0.9.2
cb1b475
dcache-xrootd: Extend and improve xrootd access log plugin
d4b74df
chimera: Avoid deprecated Guava calls
52f2c53
gplazma-ldap: pull only required attribute
b53c69b
gplazma-ldap: support uniqueMember based group membership query
7c3d400
nfs-proxy: kill mover on close
0c9ea72
system-test: move alarms service to dCacheDomain
9a71efd
srm: Java 8 related updates
ee0d314
pool: Minor cleanup of xrootd logging
e2d9435
srm,webadmin,httpd: Upgrade to Jetty 9.2.4
fab3d39
webadmin: add meta tags to discover dCache version
508f2a1
libs: update jglobus to 2.0.6-rc8.d
a2cd5a3
pool: use entry’s actual LastAccessTime to update namespace
2a21b98
webadmin: refactor navigation bar
a8c0c7e
srm: Enable legacy GSI close by default
25250c0
xrootd: Add access-log plugin
e9cd8e9
cells: Port pinboard to Java 8
afa8210
fix WebDAV door logging stacktrace on USERINFO request
0f4c09f
Move to Java 8
7950b28
Revert “cells: Improve pinboard”
0cabf09
cells: Improve pinboard
2fda335
xrootd: Initialize session
f125236
imera: protect against NPE in FsSqlDriver#read
8685d9a
chimera: prevent attempts to remove ‘.’ and ‘..’
b573af6
Fix indentation
5be0afe
pool: Replace parboiled library with grappa
3d17f6f
httpd: Refactor handler instantiation
a0594fd
httpd: Refactor wiring code
90c7787
doors: Shorten session and initiator strings
84b324f
spacemanager: Avoid a transaction deadlock and reduce DB overhead
356a38b
pom:update scm and ci urls
e3ca25b
dcap: Drop dead code
c7b0b60
webdav: Drop plain https connector
8413169
Rename Transfer#sessionId to Transfer#id
dd9b7f9
ftp,dcap: Make cell names unique accross restarts
ba9363d
cells: Add Args#getBooleanOption utility methods
e862fcd
dcap: Initialize CDC session
6c6e496
srm: Fix logging of DN to access log
c57a0ae
webdav,srm: Do not manage life cycle of Jetty thread pool
042531c
srm-client: Report file level errors
7c56da8
releases: update dCache version to v2.12