What’s new in dCache 2.12
The release notes
AuthorsGerd Behrmann <behrmann@ndgf.org>
Paul Millar <paul.millar@desy.de>
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 besrm.request.ls.max-in-progress
asls
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 assrm.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
andsrm.protocols.disallowed.put
now includefile
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