What’s new in dCache 2.8
The release notes
AuthorGerd Behrmann <behrmann@ndgf.org>
Incompatibilities
The space manager database schema has changed. It will be updated on upgrade, which may take some time on large databases. Previous versions of dCache are not forward compatible with the new schema and the schema has to be explicitly rolled back before downgrading dCache.
The Chimera database schema has changed. It will be updated on upgrade, which may take some time on large databases.
The
chimera-cli
utility has been replaced bychimera
.In DCAP, ctime is now last attribute change time (like in Posix), not creation time.
The output format of the
metadataof
command in PNFS manager has changed.Link group attributes are no longer supported.
The space manager admin commandline interface has been rewritten, with several commands being removed, replaced, or modified.
The interpretation of the
spacemanager.enable.reserve-space-for-non-srm-transfers
property has changed.If the NFS door and PnfsManager are hosted in the same domain then the layouts file must have the ‘pnfsmanager’ service before the ‘nfs’ service.
Release 2.8.31
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), the generic cell message
monitoring (monitoring info
command), and pnfsmanager service (the
“Statistics” section in info
). This release fixes a rounding error
that prevents these statistics from including long-lived requests.
pinmanager
The pinmanager service has the ls
command that allows the admin to
limit the results to a specific pin or all pins against some PNFS-ID.
This release fixes listing by pin id.
srm
This release fixes the srm service so it cancels corresponding pinmanager requests when an SRM client aborts a bring-online request.
Changelog 2.8.30..2.8.31
- 17d3d93
- [maven-release-plugin] prepare release 2.8.31
- 4240870
- common: Fix division by zero regression in gauges
- 15fb0f3
- common: Fix rounding error in request gauge
- 2501714
- srm: Abort pinning when cancelling bring-online requests
- 98f1f30
- pinmanager: Fix listing by id
- b2a625f
- system-test: add missing dCache disposible CA certificate
- 250d073
- system-test: add regenerated host and user credentials
- c1dc098
- [maven-release-plugin] prepare for next development iteration
Release 2.8.30
dcap
Update dcap door to avoid possible NullPointerException when describing an error to the client.
Changelog 2.8.29..2.8.30
- 4fc4fac
- [maven-release-plugin] prepare release 2.8.30
- ea0e4a8
- dcap: do not call toString() on error object
- 4740b77
- [maven-release-plugin] prepare for next development iteration
Release 2.8.29
pool
When a client reads a file, the pool reads blocks of data from the local filesystem. When reading such a block, the pool could receive fewer bytes than requested. Previously, the pool assumed that this only happens when the end-of-file is reached; however, this is not guaranteed. Should this assumption be violated then the data sent to the client will be corrupt. In practise, the pool’s assumption is true for Linux and local filesystems; however, the code has been updated to remove this theoretical cause of corruption.
Changelog 2.8.28..2.8.29
- 91215c0
- [maven-release-plugin] prepare release 2.8.29
- 93a0cac
- pool: Fix read corruption in HTTP mover
- 1331e5c
- [maven-release-plugin] prepare for next development iteration
Release 2.8.28
pool
When attempting to upgrade non-precious and non-cached files (e.g. a
file marked broken
), the receiving end of the migration module would
answer twice: first (correctly) with a failure and then (incorrectly)
with a success. This is now fixed.
Changelog 2.8.27..2.8.28
- ac4af38
- [maven-release-plugin] prepare release 2.8.28
- 09a439f
- pool: Fix bug in migration module upgrade logic
- 841f3bd
- [maven-release-plugin] prepare for next development iteration
Release 2.8.27
Changes affecting multiple services
Various scripts, including the dcache
command, invoke the java
command with a list of directories in which Java should look for
support libraries. Previously, the current working directory was
(mistakenly) included in that list. This could lead to odd behaviour;
one particular example is running a dcache database
command from the
/etc/dcache
directory. This release fixes this problem by excluding
the current directory.
When there is some problem in the communication between domains and error message is logged. Previously the explanation for the problem was logged as “null”. With this release, a more descriptive explanation is provided.
Changelog 2.8.26..2.8.27
- 6971f30
- [maven-release-plugin] prepare release 2.8.27
- 01415de
- tunnel: use toString if IOException#getMessage returns null
- d810424
- Exclude cwd from classpath
- 4a6b7cc
- [maven-release-plugin] prepare for next development iteration
Release 2.8.26
Changes affecting multiple services
This patch fixes a race condition in Chimera that affects the nfs door and the pnfsmanager service. The effect is that, if two clients attempt to delete the same target (a file, link or directory) at the same time then the nlink count for the parent directory is decreased twice. “At the same time” means within the time taken to process the deletion; this is instance-specific but should be much less than 1 ms for well-configured systems. Sites can repare any incorrect nlinks with the following SQL:
UPDATE t_inodes SET inlink = (
SELECT COUNT(*) FROM t_dirs WHERE t_inodes.ipnfsid = t_dirs.iparent
) WHERE itype = 16384;
This is safe to run on a running production instance, but may take some time and will affect dCache’s responsiveness while running.
gplazma
The description for how to migrate away from using the forbidden
useGPlazmaAuthorizationModule
and useGPlazmaAuthorizationCell
properties had caused confusion. The description has now been updated
to be more explicit.
httpd
Fix filtering boxes and sorting on Pool Admin, Pool Usage, Poolgroups, Space Tokens and Tape Transfer Queue.
srm
Uploading a file with SRM involves three steps: preparing for the
upload (srmPrepareToPut
), uploading the file, marking the upload
finished (srmPutDone
). The third step can fail but previously the
response from dCache is always Upload failed.
. With this release, a
meaningful error message is returned.
Changelog 2.8.25..2.8.26
- a9d4f3c
- [maven-release-plugin] prepare release 2.8.26
- 18ca9d0
- gplazma: update error message for forbidden properties
- 486aeb5
- (2.8) webadmin: make jquery selector specific to individual tables
- b1142b0
- (2.8) webadmin: restore missing components to respect jquery script options
- c93f214
- srm: include the reason why upload failed
- a3c3ae6
- chimera: fix race condition on remove
- 92251fd
- webadmin: ensure unique id attributes for all (currently) tested UI elements
- 4cf15d9
- [maven-release-plugin] prepare for next development iteration
Release 2.8.25
ftp
Fix default value for ftp.authz.readonly
for plain (unencrypted)
doors. This restores the default value to the dCache v2.6 default
value of true
.
The response from the plain (unencrypted) ftp door if the user specifies the wrong password is badly formed. Althogh it is possible that some clients are robust against such incorrect responses, with this release the ftp door responds correctly.
webdav
Fixes a bug where, if a double-slash is present, all parts of the path
leading up to the double-slash are ignored; for example, with the bug,
a path like /a/b//c/d
is handled as if /c/d
was specified. With
this release, double-slashes are treated like single slashes; the
above example is handled as if /a/b/c/d
was specified.
Fix the NullPointerException triggered if client attempts to upload a file as a child of some existing file.
Changelog 2.8.24..2.8.25
- 80d7ff0
- [maven-release-plugin] prepare release 2.8.25
- 81c0b88
- ftp: fix response if user fails to authenticate to weak FTP door
- bcc51c3
- ftp: fix invalid default for ftp.authz.readonly property
- c6ce396
- webdav: fix double-slash bug by upgrading to patched milton
- 1a3360d
- webdav: fix NullPointerException when PUT as a child of a file
- 8c8c2c9
- [maven-release-plugin] prepare for next development iteration
Release 2.8.24
Changes affecting multiple services
Previously releases of dCache claimed to support Java–8; however, this is not true. For Java–8 support, sites must upgrade to dCache v2.10 or newer.
httpd
Fix two minor issues when authenticating with the webadmin interface: “unauthorised access” and being redirected to the home page. The unauthorised access error can occur when selecting “Login” under the bird logo (top right corner); this is now fixed. The redirection problem occurs when selecting a tab that requires administrative privileges while not logged in; this redirects the browser to the login page. Previously, after a successful login, the browser was redirected to the home page. Now the browser is redirected to the selected tab.
webdav
A previous bug-fix release fixed how dCache responds when the client
attempts to DELETE
a non-existent file. Unfortunately, this
triggered a different problem where such activity results in a
stack-trace that starts java.lang.ClassCastException:
java.lang.String cannot be cast to javax.security.auth.Subject
. This
second problem is now fixed.
Changelog 2.8.23..2.8.24
- d12c8a8
- [maven-release-plugin] prepare release 2.8.24
- 547f243
- Disallow Java 8
- aacde44
- webdav: Alternative to fixing return code of DELETE of absent file
- 29fbab9
- (2.8) webadmin: fix login redirect bug
- 6ac1b0c
- [maven-release-plugin] prepare for next development iteration
Release 2.8.23
info-provider
In previous releases, the info-provider assumed the broker domain is
dCacheDomain
. This assumption has been removed.
nfs
Update to nfs4j v0.7.9. Avoid errors when the door is heavily loaded
and the client closes a file. Avoid potential deadlock under the same
circumstances. Add the pnfs
and nopnfs
options for controlling
whether PNFS is supported. Fix parsing the exports when a host is
mentioned multiple times. Note that localhost
must now have an
explicit entry in the exports file.
pool
A recent release fixed a bug that caused
pool.mover.ftp.allow-incoming-connections
to be ignored. Fixing
that bug revealed another that caused the property to have the
opposite effect. This is now fixed.
webdav
Although dCache behaves correctly if the client interrupts a proxied transfer; however, this is logged as a bug. This is now fixed.
Changelog 2.8.22..2.8.23
- e7c2da3
- [maven-release-plugin] prepare release 2.8.23
- fddb44a
- webdav: don’t log a stack-track when proxy transfer is interrupted
- 3ec0541
- info-provider: remove dCacheDomain assumption.
- 8d751e9
- (2.8) gitignore additions for IntelliJ
- 639e52d
- libs: update to nfs4j–0.7.9
- 277f3cf
- pool: Fix regression causing FTP movers to default to proxy mode
- 127a01f
- [maven-release-plugin] prepare for next development iteration
Release 2.8.22
Changes affecting multiple services
Although dCache system configuration property names do not contain
spaces, it is possible to define such properties. Previously, doing
so breaks the dcache
command. This is now fixed.
If the number of concurrent connections is set to -1
then the ftp
and dcap doors will leak memory, eventually triggering an
out-of-memory error that will restart the domain. This is now fixed.
dcap
Fix regression against v2.6 and earlier dCache in how gsidcap doors are known to SRM and how they are published in BDII/GLUE.
pool
The pool.mover.ftp.allow-incoming-connections
property had no
effect. This is now fixed.
spacemanager
Adjust spacemanager schema migration to be aware of earlier dCache bugs and to work-around site-local indexes that clash with new indexes that dCache needs.
srm
Previously, if the SRM client requests listing a directory, specifies a non-zero offset and does not limit the response size then dCache would fail this request with an IllegalArgumentException. This is now fixed.
webdav
With the recent upgrade of the Milton library some new behaviour was
introduced. One example is that, under certain circumstances (and to
support certain clients) the Milton library returns a 401
(not
authorised) when attempting to delete a non-existing file.
Unfortunately, this change then broke ATLAS clients. This patch
updates dCache so it returns 404
(not found) under these
circumstances.
Fix the response when a client requests a byte-range beyond the end of a file. This is necessary for compatibly with ARC clients.
Changelog 2.8.21 to 2.8.22
- 1778656
- [maven-release-plugin] prepare release 2.8.22
- 8d7c305
- webdav: Fix reported content length for partial GETs
- 8c80c91
- webdav: Fix return code on DELETE of absent file
- 651a59b
- srm: fix semi-infinite ls range with non-zero offset
- c65a728
- pool: Fix typo that breaks pool.mover.ftp.allow-incoming-connections
- c5983ea
- shell: fix shell oracle for configuration keys with a space
- 1cdab85
- dcap: Fix regression in published protocol family
- 4ff3a11
- loginmanager: Fix leak caused by absent child limit
- f3917d1
- spacemanager: Fix null constraints and other schema migration issues
- b1e26a8
- [maven-release-plugin] prepare for next development iteration
Release 2.8.21
nfs
Under heavy load, if the nfs door is restarted, the new door may receive response messages from requests send by the previous door. In previous versions of dCache, this situation triggered a stack-trace. This is now fixed.
pool
The NFS specification allows the server to specify multiple addresses when telling the client where to connect; for example, specifying both an IPv4 and an IPv6 address, or both addresses for multi-homed machines. This requires the client to choose the appropriate interface. For Scientific Linux 6, the kernel client will always use the first supplied address in the list and fail if it cannot access the pool with that address. With this release, pools will order the list, using heuristics to select which IPv4 address is “correct” and list it first.
poolmanager
With previous dCache versions, the WAAS selection algorithm had a bug where it could (mistakenly) consider pools full if all pools had very fresh files. This is fixed with this release.
webdav
Upgrade to Milton v2.6. This fixes the buffering problem where a
proxied vector read request results in the entire file being written
to a tmp
directory and not deleted. With this release, requests for
100 kiB or less data result in no data being written to disk; requests
for more than 100 kiB are still written to disk, but only the data
needed to satisfy the request is stored and the file is deleted once
the response has been sent. Some issues persist: data isn’t deleted
if there is a failure sending it to the client and the whole file is
requested from the pool.
Changelog 2.8.20 to 2.8.21
- adfe43f
- [maven-release-plugin] prepare release 2.8.21
- 267e203
- poolmanager: Fix full pool detection for WASS
- 2bad558
- Upgrade to Milton 2.6
- dfd91c6
- pool: reorder ip addresses returned to NFS client
- 8e9bfbf
- nfs: fix NPE on door reboot
- 8c3b6b3
- [maven-release-plugin] prepare for next development iteration
Release 2.8.20
Changes affecting multiple services
Restarting a domain within an active dCache instance can lead to a
domain receiving messages for a cell as it is starting. Strict
control is require to avoid the cell attempting to process messages
before it is ready. This release fixes one place where this control
was missed, which could lead to a NullPointerException
. While this
problem can affect any core dCache service, it was noticed with the
spacemanager service.
httpd
dCache versions including and after 2.11.0, 2.10.9, 2.9.12, 2.8.16,
2.7.21 and 2.6.36 required sites to delete existing RRD files when
upgrading; i.e., run the command rm -f /var/lib/dcache/plots/*.rrd
when the domain hosting the httpd
service is stopped. This release
reverts that change, but requires sites that have already upgraded to
repeat the rm
command. Sites upgrading from an earlier dCache
version do not need to delete anything.
nfs
Protect against a NullPointerException
if the client attempts to
read the contents of a file’s level where that level exists in the
database but contains a Nil value. This does not happen under normal
circumstances.
pool
The Berkeley DB, which may be used to store file metadata on the pool, does not like being interrupted. The pool tries hard to avoid interrupting reading or writing; this release fixes one place that slipped through.
Changelog 2.8.19 to 2.8.20
- 8b245bc
- [maven-release-plugin] prepare release 2.8.20
- bb202c0
- imera: protect against NPE in FsSqlDriver#read
- 4da50fc
- Fix NPE in cell initialization
- 92db6bd
- pool: Avoid interrupting Berkeley DB in migration module server
- ac7a972
- dcache-webadmin: revert rrd data source names
- da00de9
- [maven-release-plugin] prepare for next development iteration
Release 2.8.19
httpd
In previous versions of dCache, the webadmin war file is automatically
unpacked. This has been problematic as a dCache upgrade did not
always trigger updating the unpacked webadmin, resulting in dCache
running the older webadmin. With this release, dCache no longer
unpacks the war file; the webadminWarunpackdir
and
httpd.container.webapps.tmp-dir
properties are now obsolete.
Changelog from 2.8.18 to 2.8.19
- 9143af5
- [maven-release-plugin] prepare release 2.8.19
- e6255d2
- [maven-release-plugin] prepare for next development iteration
- 79b8708
- (2.8) dcache-webadmin: change Jetty setting so .war is not unpacked
Release 2.8.18
Changes affecting multiple services
A bug was discovered that resulted in the nlink count becoming negative. While wrong, this had a knock-on effect that prevented pnfsmanager and nfs services from listing the affected directory. With this release, directory listing are robust against such problems.
alarms
Fix alarm definition that triggers when the pool discovers a file with the wrong checksum. Previously it mistakenly triggered if an upload was incomplete.
nfs
Update nfs4j to v0.7.8. This brings some small performance benefits when listing a directory and for reading data through NFS v3.
Fix bug where, when a client read activity is proxied, the corresponding dcap mover wasn’t removed if client didn’t wait for the queued mover to start. Previously, such movers would accumulate on the pool.
pnfsmanager
Prevent attempts to remove the .
and ..
directories.
webadmin
Display the command’s output in the cell admin page to use a monospace font.
Remove a javascript error due to missing clojure dependency.
Changelog from 2.8.17 to 2.8.18
- 1398703
- [maven-release-plugin] prepare release 2.8.18
- c93431e
- alarms: fix regex for checksum alarm
- 19282f9
- webadmin: remove redundant head element in alarms panel html
- c5de8f4
- dcache-webadmin: change output field of cell admin page to monospace font
- 687aa99
- (2.11) dcache-webadmin: eliminate clojure dependency
- 0751511
- nfs-proxy: kill mover if we get a timeout on redirect
- 90fe062
- libs: update to nfs4j–0.7.8
- e584a4c
- chimera: protect list initialization from FS inconsistencies
- d19ce90
- webadmin: tidy up unavailable page slightly
- 12ca4fd
- chimera: prevent attempts to remove ‘.’ and ‘..’
- 16ca7af
- [maven-release-plugin] prepare for next development iteration
Release 2.8.17
Fixes affecting multiple services
Update dcache check-config
to print an error if site-local
configuration contains scoped properties: one that contain a ‘/’
character.
httpd
Fix pool queue plots in webadmin.
nfs
Performance improvements.
pnfsmanager
Fix the message reported when moving (or renaming) a file or directory and certain problems were found: the destination directory isn’t a directory, the source doesn’t exist, or overwriting with different types (e.g., overwriting a directory with a file).
poolmanager
If a site using WAAS specifies too large a Space Cost Factor then the algorithm used for write pool selection breaks down, logging “Unreachable statement.” Starting with this release, a warning is logged indicating the cause of the problem.
Changelog from 2.8.16 to 2.8.17
- 6e4fb2a
- [maven-release-plugin] prepare release 2.8.17
- 17b6c99
- chimera: Add messages to JdbcFs#move exceptions
- f4c7a80
- poolmanager: Warn when spacecostfactor is too big
- 575bb58
- check-config: Produce error when using scoped properties
- ac38688
- (2.8) pool queue plots - fix partial package refactoring and neglected removal of jndi arguments
- 5e25480
- pom: update to nfs4j–0.7.7
- f8471dc
- [maven-release-plugin] prepare for next development iteration
Release 2.8.16
Fixes affecting multiple services
Running the eval
admin command so it returns a non-zero return-code
would respond indicating that a bug had been found. This has been
fixed.
An named environment may be executed and can contain a reference to itself. If this recursion is unchecked, eventually memory is exhausted and the domain would restart. Now an error is logged and the domain is not killed.
Previously, some exceptions were logged with the wrong cell context or without any context. This has been fixed.
billing
Billing records issued by doors never included the file’s size. This is now fixed for all doors except NFS.
gplazma
The xacml plugin now supports the gums server returning GID values.
pool
Fix internal copying of files (triggered by the SRM copy
command) so
they respect the LAN port range.
Fix migration module’s random pool selection so that it does not select pools that are full.
Fix NullPointerException triggered when using migration module’s proportional pool selection and all pools are full.
The rep ls
command can calculate per-storage-class statistics. This
release fixes a problem where files without a storage-info would
trigger an IllegalStateException when calculating these statistics.
Fix sweeping of files without a storage-info. Previously an IllegalStateException was thrown; this could be triggered by the admin interface or by the sweeper.
Fix a problem where the pool would register free space before actually deleting the file from the file system; for a brief moment, the pool would appear to have more free space that is actually available.
Periodically, pools check that dCache’s internal accounting of total
and free capacity does not exceed the OS supplied values for the
partition (i.e., the output from the df
command); if they do then
the dCache internal accounting is adjusted to match. The dCache.org
team have observed that, after a file is deleted, some seconds may
elapse before the corresponding extra free capacity is reported by the
OS. To protect pools from this effect, the total and free capacity
check is suppressed for 60 seconds after a file was deleted.
spacemanager
If a transient deadlock resolution error occurs, unconditionally retry the operation and do not log it. Such errors are part of RDBMS design when resolving concurrent updates.
srm
Fix the srm service’s admin interface ls
command so that listed jobs
can optionally include only those that have failed, have completed or
were cancelled.
webadmin
Webadmin periodically creates billing graphs by querying the billing
service for the information it needs. Previously, if this query
failed (e.g., the billing service was restarted or failed to start
first) then no further billing graphs are generated and a domain
restart is needed. As a result of this work, the properties
poolqplots.refresh-interval
, poolqplots.refresh-interval-unit
,
httpd.plots.pool-queue.refresh
and
httpd.plots.pool-queue.refresh.unit
are no longer supported. The
httpd.plots.pool-queue.min-time-step
and
httpd.plots.pool-queue.min-time-step.unit
properties now also cover
this configuration.
Changelog from 2.8.15 to 2.8.16
- 3d8c195
- [maven-release-plugin] prepare release 2.8.16
- 034fae2
- gplazma-xacml: Add handling of GID returned by GUMS in gPlazma2 XACML plugin
- 4296a50
- chimera: fix unit tests
- 87d63e1
- pool: Fix pool size health check in case of asynchronous release of space
- 99d67fd
- spacemanager: Suppress transient deadlock resolution errors
- e71060a
- pool: Fix race leading to false positices in pool size health checks
- 9f2575e
- pool: Fix ISE in CacheEntryImpl#toString
- d99e691
- pool: Fix ISE in ‘rep ls’
- a6d1a8c
- Made PoolQueuePlotData enum compatible with java 8.
- 5f575c7
- (2.8) webadmin: fix exit login in billing refresh loop
- eb1d50a
- Marked refresh properties obsolete.
- 477cb5a
- cell: Log exceptions within the correct cell context
- a2815df
- pool: Fix pool selection bugs in migration module
- a197381
- billing: Add file size to request records
- eecfb6c
- (2.8) webadmin: minor improvements to rrd4j-based pool-queue plots
- 4bf9cc7
- Backport PortRange extensions
- 2326ac3
- pool: Respect LAN port range for internal srmcp transfers
- 92c2f28
- srm: Fix listing of failed, done and cancelled jobs
- a4d1212
- cell: Prevent interpreter stack overflow from killing the domain
- 20efd5e
- cell: Declassify eval failure as a bug
- 96574ce
- [maven-release-plugin] prepare for next development iteration
Release 2.8.15
Fixes affecting multiple services
The nfs and srm both cache replies from gPlazma to increase the speed of authenticating and identifying the user. Previously transient errors when communicating with gPlazma were also cached, delaying the recovery time from such errors. Now, such errors are not cached.
Update the comments within the configuration property files to reflect the new configuration property names.
Fix OpenMQ communications to use new configuration property names.
dcap
Fix opening a file when space-manager enabled.
nfs
No longer trigger an NullPointerException when opening the
.(parent)()
dot-command file in Chimera’s root directory.
The dcache ports
command now shows the NFS port based on the new
configuration properties.
pool
Fix xrootd support for vector read. The problem was discovered with
ROOT v6, which reports errors like Single readv transfer is too
large
.
Fix the dcap mover to use the new pool.mover.dcap.port
configuration
property.
srm
Fix veracity of information stored about jobs.
xrootd
Fix problems when calculating a response to the kXR_set request. If encountered, the problem results in the following being logged, where ‘nnn’ in ‘xrootd-disk-nnn’ is some integer number:
Uncaught exception in thread xrootd-disk-nnn java.lang.IllegalStateException: null
Changelog from 2.8.14 to 2.8.15
- b867278
- [maven-release-plugin] prepare release 2.8.15
- 0f6bb89
- dcap: fix interaction with Spacemanager
- 25c1c0c
- xrootd: Upgrade to xrootd4j 1.3.5
- 6e224f4
- The gPlazma cache used by NFS and SRM caches both positive and negative replies. Unfortunately it also caches failures to communicate with gPlazma. This means that a transient timeout would be cached too, thus increasing the effect of the transient error.
- b4d77a9
- pool: Fix xrootd vector read limits
- 404be1b
- chimera: fix NPE on ‘.(parent)()’ for root inode
- f232324
- srm: Fix asynchroneous job storage leak
- a72fefe
- configuration: adjust references to deprecated properties
- 6808dc8
- unittests: increase timeouts and fix race in DiskSpaceAllocatorTest
- 6d84856
- [maven-release-plugin] prepare for next development iteration
Release 2.8.14
Fixes affecting multiple services
Two problems are fixed that affected those services that make use of the grid trust store (/etc/grid-security/certificates): gplazma, srm, gsiftp, webdav and xrootd:
When a CA is found not to have a signing-policy file, subsequent attempts to discover a signing-policy file will automatically fail for one hour. Previously, if any CA was removed since the service started then certain CAs (those using UTF–8 encoded subject RDNs) would be placed in this not-found cache by mistake. This resulted users with certificates from such CAs would succeed the first time they used dCache but all subsequent attempts would fail until the cache expires or the trust-store is refreshed.
A minor memory leak is fixed. The amount of memory leaked was proportial to the number of different CAs in use.
Two problems are fixed that affected services providing GSI or plain SSL authentication using the jGlobus library:
dCache now supports TLS v1.2 clients when using GSI or plain SSL using the jGlobus library.
Signal end-of-stream when remote sends a CLOSE notification. The remote party normally sends a CLOSE notification before terminating the TCP connection, typically send from server to client. Previously, receiving such a notification was treated as an error.
Fixed thread safetly of timestamp formatting, principally used in logging and generating the output of admin commands.
billing
Fixes a bug where the bytes read graph can show inflated values.
nfs
Fix permission check when client requests a list of some directory’s contents.
Add support for mounting when the server-side mount-point is a sym-link.
Changelog from 2.8.13 to 2.8.14
- b3effdd
- [maven-release-plugin] prepare release 2.8.14
- 9a079a6
- common: Fix race condition in AtomicCounter unit test
- 406e03d
- billing plots: use ‘transferred’ rather than ‘size’ for bytes
- 26389c8
- libs: update jglobus to 2.0.6-rc8.d
- 6a094e0
- Avoid thread-unsafe use of SimpleDateFormatter
- 78aa6fb
- libs: update to jglobus–2.0.6-rc7.d
- 5848f58
- libs: update to nfs4j–0.7.6
- 299d896
- [maven-release-plugin] prepare for next development iteration
- 6ba648a
- build: Update to findbugs 3
Release 2.8.13
pnfsmanager
Previously, the automatic schema management for Chimera failed to
create an index on the iparent
column of t_dirs
table. The lack
of this index results in deletions becoming progressively slower as
dCache stores more files. If your dCache instance was created with
dCache v2.3.0 or newer then it is likely affected by this problem.
Instances created with an earlier version are not affected. The
pnfsmanager service will check for the index when it starts and add
the index if it is missing. Alternatively, the check may be performed
manually using the dcache database update
command.
pool
This release fixes several issues with the sweeper:
Previously, the sweeper consumed considerable amount of memory while freeing up space; in the worse case, this could result in the domain running out of memory and restarting; this has been fixed.
The
sweeper ls
command would make the pool unresponsive while the output is generated; now, running this command no longer prevents the pool from taking on more work.As the
sweeper purge
,sweeper free
andrep rmclass
commands can take a long time to finish, the admin interface does not wait for them to finish; instead, a quick response is returned and the command continues in the background. Previously there was no indication when such commands had finished; now, the pool will log when the command has completed.The pool logs regular sweeper operations at lower priority; this makes the pool logs less noisy when operating under normal conditions.
poolmanager
In previous versions, poolmanager would log a stack-trace if a user attempts to open a file for reading and no read pool could be found because a unit failed to match. Now the failure is logged as a normal message.
xrootd
The xrootd door now informs billing when a user uses the xrootd protocol to delete a file.
gplazma
The ldap plugin allows a door to request converting a uid or gid back to a username; currently, only the nfs door makes use of this functionality, when generating a directory list. In previous dCache releases, the plugin behaved incorrectly if the uid or gid is unknown; this is now fixed.
Changelog from 2.8.12 to 2.8.13
- 1a80f0b
- [maven-release-plugin] prepare release 2.8.13
- 9b78495
- chimera: mark as-run if i_dirs_ipnfsid exists
- 8faa2ae
- solaris: fix solaris package script and add work-around for pkgmk bug
- 874994d
- chimera: create missing index i_dirs_iparent
- 08600a0
- pool: Resolve high memory usage and other issues in sweeper
- 4abcbb3
- info: Fix HashMap ordering assumption in unit test
- 71b74e1
- Make JDK byte code verification bug workaround Java 8 compatible
- 493c063
- gplazma: Fix JVM implementation dependency in unit test
- 9ebb958
- poolmanager: Suppress stack trace in case of unmatch units
- c28fed3
- xrootd: Add billing entry on delete
- 6342a51
- bugfix: fix reverseMap not throwing NoSuchPrincipalExceptions
- 04a058b
- [maven-release-plugin] prepare for next development iteration
Cell startup
Release 2.8.12
Cell startup
Fix potential dead-lock when a dCache domain is starting. The problem is triggered when a cell receives a message while initialising. If dCache is started “from cold” then this cannot happen. However, if a domain that contains well-known cell restarts while the rest of dCache is operational then the problem could be triggered. For example, if a door domain ran out of memory then there is a small risk that the domain would not restart correctly. The problem was present since dCache v2.8.0 and is fixed with this release.
Changelog from 2.8.11 to 2.8.12
- d6214bc
- [maven-release-plugin] prepare release 2.8.12
- 6abe91a
- Fix compilation error
- 60019a9
- cells: Fix deadlock during startup
- e4b1314
- [maven-release-plugin] prepare for next development iteration
Release 2.8.11
Packaging
Add python-psycopg2 as recommended dependency to debian package; it’s needed by the dcache-star command.
Database Schema
Add work-around for bug in liquibase. Previous 2.8 releases failed the database upgrade for the alarms and billing database schema due to incorrect SQL being generated when modifying a CHARACTER VARYING column.
alarms
The alert should be generated if a pool’s background checksum scanning (“scrubbing”) discovers a broken file. With this release, such alerts are now generated.
poolmanager
Stage and pool-to-pool transfers, triggered by poolmanager, are monitored by poolmanager querying the source pool to check if the request is still active. In previous versions of dCache, for n transfers from a pool, this monitoring generated O(n*n) of network traffic. In particular, poolmanager’s monitoring of bulk staging requests can result in sufficient network traffic between the pool and poolmanager that other dCache activity is impacted. With this release, the monitoring traffic is reduced in general, most prominently for large concurrent activity, such as bulk stage requests.
The rc destroy
command has been removed. The implementation was
incomplete and the operation was dangerous.
If the door resubmits a request to poolmanager that triggers staging of a file, poolmanager uses additional memory while waiting for the stage to complete. For bulk staging, this additional memory usage can be significant, potentially resulting in poolmanager exhausting the available memory. This release updates poolmanager so a door resubmitting a stage request does not increase the memory footprint of poolmanager.
The poolmanager has an incomplete feature called ‘clumping’. This is where poolmanager can handle multiple select-pool-for-read requests for the same file as a single request. There is a hard-coded clumping limit that prevents too many files from being handled together; this allows poolmanager to choose an alternative pool when staging or replicating to make the file available. Once this limit is reached, subsequent open requests for the same file will fail in poolmanager. Doors handle this failure differently; the xrootd and webdav doors propagates this failure back to the client, while the dcap and ftp doors will resubmit the request to poolmanager. This release increases the clumping limit from 1 to 20; it also changes the behaviour of the doors so all will retry the pool-selection if the clumping limit is reached. This fixes the ‘request clumping limit reached’ failures.
This release fixes a race-condition between two clients opening the same file. Previously, if poolmanager starts processing the second open request as it is finishing processing the first then there is a tiny chance that the second request is lost.
Changelog from 2.8.10 to 2.8.11
- f134d52
- [maven-release-plugin] prepare release 2.8.11
- 09f5d0a
- build: add work-around for JDK bug and PowerMock
- 42b3aca
- poolmanager: Fix ‘request clumping limit reached’ failures
- 12e7aea
- poolmanager: Avoid request leak
- 55bdb0a
- alarms, billing: fix liquibase character varying and cleanup
- dc234ef
- alarms: Fix checksum alarm filter.
- f6854df
- deb: Add python-psycopg2 as a recommended dependency
- c675c42
- [maven-release-plugin] prepare for next development iteration
Release 2.8.10
webadmin
Fixes a regression that prevented the admin from deleting alerts in the alarm system.
Improve esthetics of the pool queue plot grid.
pool
Fixes a problem where, under specific circumstances, a pool with a file’s data will erroneously claim it does not have that file’s data. This problem occurs only if an HTTP or xrootd client attempts to read a file immediately after uploading it; it does not affect other protocols. If a client triggers the problem then PnfsManager will remove the pool as the location of the file’s data with two consequences: first, the file cannot be read; second, the orphaned entry will not be removed if the file is deleted. With this release, the problem is fixed; we recommend running the ‘pnfs register’ command on all pools as a precaution against orphaned entries.
info-provider
Suppress publishing NFS door endpoints. Publishing these endpoints can result in sites failing functional tests since dCache running an NFS endpoint does not mean that files are accessible from the test machine.
Changelog from 2.8.9 to 2.8.10
- b521308
- [maven-release-plugin] prepare release 2.8.10
- 80b6149
- Suppress nfs’ file protocol from being published
- 85662bc
- pool: Fix race condition that leads to orphaned files
- fd0d755
- dcache-webadmin: fix pool queue plot grid placeholder image
- 2aea823
- (2.8) webadmin: fix regression in alarm deletion filter
- 8f1774a
- cells: remove System time dependency in unit-test
- ac34f59
- [maven-release-plugin] prepare for next development iteration
Release 2.8.9
pool
The background checksum scanner now treats files that cannot be accessed as an error rather than skipping them.
Fix the response headers when HTTP clients (such as Davix) make a request for multiple fragments of a file.
pnfsmanager
For systems using enstore, fix restoring of files with filenames that contain a ‘+’ in the filename.
srm
Increase scalability of SRM by allowing work to spread over more CPU cores during file upload and download.
xrootd
Honour the WriteToken directory tag and implicit reservation when writing data.
nfs
Honour the WriteToken directory tag and implicit reservation when writing data.
Changelog from 2.8.8 to 2.8.9
- 2d266de
- [maven-release-plugin] prepare release 2.8.9
- 034527b
- pool: log with error if checksum scanner gets an IO error
- fccdfee
- Fix ArrayIndexOutOfBoundsException when processing multiple surls invoking srmget.
- 46aab4d
- Fix issue with incorrect determination of whether or not a string is encoded by replacing URLDecoder with import org.spri
- 56d9c68
- http: do not use new API
- 191001d
- http: fix multipart response size
- 07cd525
- xrootd,nfs: Add support for space management
- 84c56a0
- srm: Fix lock congestion
- dca739b
- http: add minimal HEAD support in the mover
- dc759fb
- [maven-release-plugin] prepare for next development iteration
Release 2.8.8
xrootd
Fix redirection to IPv6 pools.
Report read requests that suffer a permission denied failure as “Read permission denied” rather than “Write permission denied”.
To allow xrootd plugins to intercept and translate errors.
Update dCache responses to avoid intermittent failures with xrdfs.
webadmin
Fix login bug that results in Access Denied page.
dcap
Provide more robust cleanup if there is a problem after the client finishes reading or writing data. The symptom is an increasing number of “active transfers” reported in the web monitoring pages. Eventually, the httpd and webadmin services consume all available memory and the domain(s) hosting them will die with an OutOfMemoryError.
Scripts
Update dCache scripts to allow running with Java 8 runtime.
Changelog from 2.8.7 to 2.8.8
- 02d1c62
- [maven-release-plugin] prepare release 2.8.8
- 5b562d9
- xrootd: Quote IPv6 addresses in kXR_redirect replies
- 1d127d0
- xrootd: Fix error message for read patch check
- fc93339
- dcache-webadmin: fix login redirect bug which misleadingly results in Access Denied Page
- 5b90dd5
- xrootd: Upgrade to xrootd4j 1.3.3
- 896a850
- scripts: allow java8 runtime
- 4613a8d
- dcap: ensure that we remove session on DoorTransferFinishedMessage
- cc6952c
- [maven-release-plugin] prepare for next development iteration
Release 2.8.7
spacemanager
Fix the column formatting for various admin commands should one of the numerical values be negative.
srm
Update the SRM to use the SRM-specific configuration property (‘srm.enable.space-reservation’) rather than the generic property (‘dcache.enable.space-reservation’). As the default value for srm.enable.space-reservation is the value of dcache.enable.space-reservation, this change should not affect sites.
ftp
Don’t export child doors. When a client connects, the ftp door creates a child cell that handles the client requests. Changes in 2.7 meant that these child cells mistakenly became well-known cells. This is now fixed.
dcap
Don’t export child doors. When a client connects, the dcap door creates a child cell that handles the client requests. Changes in 2.7 meant that these child cells mistakenly became well-known cells. This is now fixed.
info-provider
Update the use of xmllint to include the ‘–noent’ option; mitigation against CVE–2014–0191 resulted in xmllint behaving differently when ‘–noent’ is omitted.
pool
Add support for additional xrootd client commands: querying the server configuration and a file’s checksum, and locating a file. The pool now redirects the client back to the xrootd door if the opaque part of URL is missing.
xrootd
Add support for additional xrootd client commands: querying the server configuration and a file’s checksum, and locating a file.
libraries
Update jGlobus version. This results in better error reporting for FTP transfers and X.509 certificates with a comma in the DN are handled correctly.
Changelog from 2.8.6 to 2.8.7
- 96de256
- [maven-release-plugin] prepare release 2.8.7
- 9d7c002
- info-provider: fix works-by-accent bug when importing dCache config
- ffe41ed
- xrootd: Backport xrootd door and mover from dCache 2.9
- dcde73b
- pom: update jglobus library
- aa75ad4
- srm: Use srm.enable.space-reservation rather than dcache.enable.space-reservation
- 0d282de
- Fix rendering of negative numbers in columm layout
- f9cd5b5
- ftp,dcap: Don’t export child doors
- 9c030cf
- [maven-release-plugin] prepare for next development iteration
Release 2.8.6
httpd
Prevent reading of configuration files.
srm
Fix how the status of requests that can contain multiple files (Get, Put, Ls, BringOnline, Copy) are calculated and avoid “illegal state transition” errors that are sometimes logged.
Ensure that request history information is listed chronologically.
webdav
split protocol name from client IP address when logging transfers
Work-around bug in StringTemplate library that can result in NullPointerException being logged when generating an error response for the client.
xrootd
split protocol name from client IP address when logging transfers
pnfsmanager
Don’t log “duplicate key” errors if the error is understood.
messaging
Report correct statistics about messages even after a cell’s message queue overflows.
pool
Make pools more robust against the unexpected. Files that appear unexpectedly (e.g., an HSM script delivers a file after dCache has cancelled the request) do not trigger the pool from disabling itself but are deleted; requests to create a file that already exists trigger re-registration of that file in pnfsmanager.
Log a stack-trace for pool-to-pool transfers that encounter an extreme problem with the virtual machine.
gplazma
ldap plugin allows ldap server’s URL to be specified.
Changelog from 2.8.5 to 2.8.6
- 35eec61
- [maven-release-plugin] prepare release 2.8.6
- 633ec78
- httpd: Fix a couple of bugs
- 4347384
- srm: Avoid duplicate status code update on status query
- 90c1a21
- core: split protocol name form the client IP in HttpProtocolInfo
- 7f4b6ba
- xrootd: split protocol name form the client IP in XrootdProtocolInfo
- 5c37c7a
- chimera: Fix duplicate key supression
- bc965d0
- cells: Fix message counting in case of queue overflow
- 94069bb
- pool: Improve how we deal with unexpected files in pools
- a17158d
- pool: Log P2P fatal errors with stack trace
- f487ac7
- srm: Fix transition ordering for restored requests
- 719e6c1
- webdav: work-around race-condition in StringTemplate library
- b106907
- systemtest: regenerate host credentials, add user credentials
- 71eca5f
- remove deprecated annotation for back-port
- 1d18115
- gplazma2-ldap: use url rather than host+port
- 7c871af
- fhs: Use gzip compression for deb package
- 43ea0c0
- [maven-release-plugin] prepare for next development iteration
Release 2.8.5
alarms
Add missing configuration elements and documentation to support sending an email when an alert is received.
statistics
Fix NullPointerException in statistics service
pool
Report correct client IP to billing for passive FTP transfers; previously the proxy address of the FTP door was reported, even when there is a direct connection between client and pool.
poolmanager
Fix infinite loop when selecting a pool from the lru partition type.
nfs
Ensure error messages are logged with the diagnostic context (the information in the square brackets).
Changelog from 2.8.4 to 2.8.5
- f7d0ef7
- [maven-release-plugin] prepare release 2.8.5
- 97daab6
- dcache alarms: add missing configuration elements and documentation for SMTP appender
- 8e417ea
- statistics: Fix NPE
- 71445eb
- pool: Report correct client IP to billing for passive FTP transfers
- dbff8b6
- poolmanager: Fix infinite loop in lru partition type
- c4fef0c
- nfs: do not use CDC as try-with-resource
- b717020
- [maven-release-plugin] prepare for next development iteration
Release 2.8.4
ftp
A dCache cell is created each time an FTP client connects to the control channel. This release fixes the problem that these cells are not killed after the client disconnects.
nfs
Fix reading and writing to the non-zero levels (i.e., file metadata) through NFS.
Fix directory listings so a user attempting to list a directory that they are not allowed to see will receive a “permission denied” error rather than an IO error.
info-provider
Fix how the SRM is published within the GLUE v1.3 tree.
poolmanager
Fix a problem with WASS pool selection where the selection of a pool with a large number of writers (typical of a tape read pool) would be artificially inhibited. If enough eligible pools suffer this then pool manager would report that no pool is available for staging.
Changelog from 2.8.3 to 2.8.4
- 356f121
- [maven-release-plugin] prepare release 2.8.4
- 057b538
- poolmanager,pool: Fix precision underflow in WASS
- 242b848
- scripts: fix host-credential generation
- bd66d48
- info-provider: fix capitalisation of SRM in ControlProtocol
- 10591be
- libs: update to nfs4j–0.7.5
- 9515e97
- ftp: fix unit tests so they run on IPv4-only machine
- 87f3768
- Kill worker when calling SequentialExecutor#shutdownNow
- 2c51030
- [maven-release-plugin] prepare for next development iteration
Release 2.8.3
ftp
Fix the CKSM command for paths containing a space.
Solaris
Reintroduce the option to build Solaris packaging; it is still the “old” package format, but this is supported by Oracle Solaris 11.
srm
Fix a problem where the order in which SRM loaded information back from the database on startup was not as expected, resulting in increased start-up time.
Fix how often the SRM checks for expired jobs: before it was every 60 milliseconds, now it is once a minute.
Prevent a deadlock if the SRM is stopped too quickly after being started.
billing
Make the pattern matcher in the billing file parser case insensitive. This solves a bug in which old billing records were not indexed, so sites using the indexer are recommended to reindex using the ‘/usr/sbin/dcache-billing-indexer -all’ command.
pool
Avoid that fast xrootd or HTTP clients can trigger out-of-memory exception if they write too quickly. This can happen if the pool is slow or runs out of disk space.
Fix the responsiveness of ‘mover ls’ when a pool is full.
loginbroker
Avoid sending a flood of “Failed to send update to..” messages during shutdown.
Fix the ‘lb set update’ command
Changelog from 2.8.2 to 2.8.3
- 7f1a529
- [maven-release-plugin] prepare release 2.8.3
- 3bb9bfb
- ftp: fix CKSM command for files with white-space
- 7978931
- pkg: fix solaris packaging
- d1b2bc9
- srm: Avoid loading the same job multiple times
- 527ec9c
- srm: Fix scheduling period for expiration task
- 4b0031f
- billing: Make indexer case insensitive
- 269e625
- pool: Avoid memory exhaustion problems on write with xrootd and http
- 0abcccb
- pool: Fix lock problems in xrootd and http movers
- 2d0f67f
- loginbroker: Fix login broker registration retry
- b9b757f
- srm: fix race condition if stop is called too soon after start
- f3bbf3c
- [maven-release-plugin] prepare for next development iteration
Release 2.8.2
Pool
Fix problem with ‘pf’ admin command that leads to a SerializationException.
Fixed WebDAV and HTTP support for libneon clients. This includes ROOT as it now uses the davix library, which is built on libneon.
SpaceManager
Fix liquibase schema migration that prevents startup if dCache has only one link-group
FTP, dcap, HTTP and xrootd
Fix regression in transfers that prevents (dCache internal) retries on the transient error when a pool is temporarily offline. Also remove the mistaken retry for certain permanent problems.
NFS
Fail an attempt to open file if the pool reports that this file is on a broken tape.
Changelog from 2.8.1 to 2.8.2
- 9d62b12
- [maven-release-plugin] prepare release 2.8.2
- c0edd89
- nfs: return NFSERR_IO is we detect broken file on tape
- 464ed8c
- http: adjust unit test to multirage changes
- d7d8bc0
- http: fix multipart reply
- 62a8224
- pool: Fix pf command regression
- aac2e98
- spacemanager: Fix database sequence initialization
- 0a2cd55
- Allow retry on transient transfer failures
- cd8da58
- [maven-release-plugin] prepare for next development iteration
Release 2.8.1
Admin
Fix typo that prevented the use of a history file for SSH v1 service.
Fix logged error when typing ‘save’ in the admin interface for a service has no configuration file.
FTP
Fix occational hanging FTP sessions.
PnfsManager
Fix compatibility with 2.6 pools.
xrootd
Improve compatibility with the xrdfs, the newer xrootd client.
Fixes dCache’s response to the LOCATE, LOGIN and OPEN requests.
Pool
Fixed when a replica’s access-time is updated. Previously it was updated on pool-to-pool transfers and not updated for regular downloads, the opposite of what is supposed to happen. This bug affected pool garbage collection order, space cost calculation and updating the file’s access time in the namespace.
Fixed logging messages from migration tasks, pool-to-pool tasks, and sticky bit expiration.
gPlazma
Fix XACML authentication.
SRM
Fix a number of problems when undertaking a third-party copy with SRM v1.1: the client ignored failures to set the file status to ‘Done’, it also changed the file status to ‘Done’ even when then transfer failed, and the server did not accept ‘Failed’ as a file status.
NFS
Add support for open-less read requests. Under certain recovery conditions the Linux kernel client will use a special NFS operation to read a file without opening it first. This is now supported.
Avoid leaving dead records if the NFS door was unable to start a mover.
Fix log messages to include context information when client uses proxied IO.
Fix lookup on the root of the tree.
Fix handling of illegal operations.
Translate problems with underlying namespace into more exact NFS errors.
Fix obscure error triggered by attempting to move a file as a parent of another file.
Changelog from 2.8.0 to 2.8.1
- bbb8177
- [maven-release-plugin] prepare release 2.8.1
- a3411eb
- pnfsmanager: Fix compatibility with 2.6 pools
- 670fff1
- ftp: Fix race condition in command dispatching
- d87c627
- ssh1: Fix typo in service batch file
- 191ef0c
- xrootd: Upgrade to xrootd4j 1.2.5
- cb71fde
- pool: Fix logging context for thread pool
- 2deb42f
- srm,srm-client: Report failure for failed SRM v1 transfers
- da66a27
- srm-client: fix adler32
- cf1338e
- chimera: fix rename into a file
- 9f565cf
- libs: update nfs to 0.7.4
- 2b1bb8f
- nfs-proxy: fix logging CDC
- 89778b2
- nfs4: clean failed request from pending queue
- 0c0f17c
- nfs-proxy: add support for open-less read requests
- 4f7d02d
- Fix NPE in save command
- d4b4a71
- gplazma2-xacml: revert version of opensaml
- e4cda2e
- pool: Fix access time update
- 07349b3
- xrootd: Upgrade to xrootd4j v1.2.4
- ac5c844
- core, billing: remove unit test
- 92fb0d3
- [maven-release-plugin] prepare for next development iteration
Release 2.8.0
Changes affecting several services
Chimera
Chimera has been updated to track the creation time of files. This is different from the change time (ctime). On upgrade the Chimera database schema will be updated, which may take some time for large databases (half an hour at NDGF for 50 million files).
The creation time for existing files is obviously unknown. When updating the schema, existing files will receive a creation time being the oldest of the mtime, ctime, and atime fields.
The SQL scripts that used to be used to initialize a Chimera database are no longer shipped with dCache. The Chimera schema is automatically initialized and maintained by dCache.
The Chimera commandline tool chimera-cli
has been replaced with
chimera
. The new tool offers an interactive shell when invoked without
arguments and can execute scripts. It can also be invoked
with a command on the commandline like the old chimera-cli
tool. Note
that some commands have a different argument order compared to
the old tool (they now use the same order as used by similar tools defined
in the Posix standard).
To lean about the supported commands, start the Chimera shell by running
chimera
and then type help
.
Libraries
The JDBC driver for Postgresql 9.3 is now included.
Upgraded to version 3 of the Liquibase database schema management library.
Logging
Added the admin commandline command log set pattern
and log get
pattern
to every cell. These allow the log format to be altered at
runtime. To make persistent changes to the log format, updating the
properties dcache.log.format.file
and dcache.log.format.pinboard
in dcache.conf
is preferred.
Statistics counters
The request execution time tracking code, used in services like pnfsmanager, srm, and nfs, has been improved. It is now possible to reset these counters through JMX. An external JMX client is needed to make use of this functionality.
FTP, DCAP, messaging
Several changes have been made to logic common to both the FTP and DCAP doors, and the low level connection handling code of the message passing code used in dCache. These fixes address several rare race conditions and failures in error recovery, as well as reduce resource consumption.
Changes to services
webdav
Limited support for WebDAV properties has been implemented. WebDAV provides an extensible mechanism for reporting additional meta data about files and directories. These are known as properties and can be queried through the PROPFIND HTTP method - the same mechanism used to list WebDAV collection resources (directories in dCache). Currently only support for checksums, access latency and retention policy is provided.
An example follows.
$ curl -X PROPFIND -H Depth:0 http://localhost:2880/public/test-1390395373-1 \
--data '<?xml version="1.0" encoding="utf-8"?>
<D:propfind xmlns:D="DAV:">
<D:prop xmlns:R="http://www.dcache.org/2013/webdav"
xmlns:S="http://srm.lbl.gov/StorageResourceManager">
<R:Checksums/>
<S:AccessLatency/>
<S:RetentionPolicy/>
</D:prop>
</D:propfind>'
<?xml version="1.0" encoding="utf-8" ?>
<d:multistatus xmlns:cs="http://calendarserver.org/ns/" xmlns:d="DAV:" xmlns:cal="urn:ietf:params:xml:ns:caldav" xmlns:ns1="http://srm.lbl.gov/StorageResourceManager" xmlns:ns2="http://www.dcache.org/2013/webdav" xmlns:card="urn:ietf:params:xml:ns:carddav">
<d:response>
<d:href>/public/test-1390395373-1</d:href>
<d:propstat>
<d:prop>
<ns1:AccessLatency>ONLINE</ns1:AccessLatency>
<ns2:Checksums>adler32=6096c965</ns2:Checksums>
<ns1:RetentionPolicy>REPLICA</ns1:RetentionPolicy>
</d:prop>
<d:status>HTTP/1.1 200 OK</d:status>
</d:propstat>
</d:response>
</d:multistatus>
Support for WLCG federated HTTP transfers has been added. This allows the webdav door to redirect a client to another replica if a local copy was not found. Support for this relies on special URLs generated by a central catalogue service. For all other URLs the behaviour is unchanged.
billing
The billing text file indexing tool, which was added in 2.7, has been improved in several ways:
Indexing and compression speed has been improved by using multiple CPU cores.
Billing files are now traversed in lexicographic order, which means that search results are reported in chronological order.
The search tool now outputs the date of the billing file in front of every match.
Support for compressing billing error files has been added.
Improved commandline interface to allow multiple arguments where this makes sense.
dcap
DCAP was updated to report last attribute change time in the ctime field of a stat request. This was the intended semantics from the beginning and is what ctime means in the Posix standard, but in dCache ctime has in some places been confused with creation time.
ftp
Added IPv6 support by implementing RFC 2428. Note that IPv6 support
will negate any advantages GridFTP 2 might have provided, which means
that in many cases IPv6 data transfers will be proxied through the
FTP door. The JVM has to be IPv6 enabled by adding
-Djava.net.preferIPv4Stack=false
to the dcache.java.options.extra
property in dcache.conf
. RFC 2428 is only supported on IPv6. When
clients connect over IPv4 we pretend not to support the IPv6 extensions.
The FTP door has been extensively refactored to use thread pools shared between several sessions and to reduce the number of temporary threads being created at the beginning of each session. This should reduce resource consumption and reduce latency.
Improved error messages when no write pools could be found for an upload. This includes correctly classifying these events as transient or permanent errors.
gplazma
The LDAP plugin has been improved. Previous versions hard coded values
for the home and root directory. The root directory was set to / and
the home directory was set to the home directory as stored in the LDAP
server. In dCache 2.8, the behaviour was made configurable by
introducing two new properties, gplazma.ldap.home-dir
and
gplazma.ldap.root-dir
. For those two properties it is now possible to
use keywords that will be substituted by the corresponding attribute
value in LDAP. For example %homeDirectory%
will be replaced by the
value of attribute homeDirectory in the people tree.
info
Only permanent space reservations, i.e. reservations without an expiration time, are published. This prevents implicit space reservations from bloating the xml output with information that is usually short lived and uninteresting.
nfs
Added the -c
option to the nfs door’s stat
command to reset
statistics counters.
A new NFS dot-command has been added to retrieve all the existing
checksums for a given file. Reading the files
.(get)(filename)(checksum)
or .(get)(filename)(checksums)
returns
a comma-delimited list of type:value
pairs for all checksums stored
in the Chimera database.
NFS doors now verify whether the Chimera database schema is up to date.
If not, the quit. NFS doors do not support updating the schema
automatically. Use PnfsManager or the manual dcache database update
command to update the schema.
pnfsmanager
Minor performance improvements in file creation and file removal.
Limited support for symlinks has been added.
The output of the metadataof
command has been updated to provide
ISO8601 formatted date and time values. The old format did not include
the year.
pool
Minor latency reduction on mover creation under light load.
The rep ls
command now lists all its arguments even when some of
the replicas do not exist on the pool.
poolmanager
Improved error messages when no write pools are found for a transfer.
LinkGroup attributes have never been used in dCache. Therefore we have
removed the admin commandline commands psu remove linkGroup attribute
and
psu set linkGroup attribute
. Since the poolmanager.conf
file may contain
the latter command, the command is still accepted, although it doesn’t do anything
besides printing psu set linkGroup attribute is obsolete. If you see this message
in the log file, please resave your pool manager setup.
spacemanager
Space manager has been heavily refactored and modified in this release. The changes almost amount to a rewrite, though the overall architecture of how space manager is used in dCache is preserved. We did this to improve the performance, robustness, logging and ease of use.
Database changes
The space manager database is now managed with the Liquibase schema management system. This is
the same library also used for Chimera, pin manager and billing. Upon upgrade, the database
schema will automatically be updated. Several changes have been made to the schema, and for
large installations the first restart after upgrade will thus perform a lengthy schema update.
It is possible to perform the schema update without starting dCache by using the dcache
database update SrmSpaceManager@DOMAIN
command.
Due to the schema changes, once updated, it is not possible to downgrade dCache without rolling
back the schema changes. dCache can perform the rollback using the dcache database
rollbackToDate TIMESTAMP SrmSpaceManager@DOMAIN
and dcache database rollbackToTag TAG
SrmSpaceManager@DOMAIN
commands. For the latter, the database must have been tagged using
the dcache database tag TAG SrmSpaceManager@DOMAIN
command prior to upgrading the schema.
Third party alterations to the schema should be carefully inspected before upgrading, and possibly
be rolled back if they conflict with the schema changes. In particular workarounds for a problem
related to outdated statistics for the srmspacefile
table are no longer necessary.
Many fields now have non-null constraints, and some have unique constraints. Several indexes have been dropped.
The database schema contains several fields which are aggregates of other fields. In earlier versions, these aggregated fields were maintained by dCache, adding considerable overhead in the form of database round trips and locks. This logic has now been embedded in the database in the form of database triggers. Be aware that these triggers are essential and must be restored if the database is restored from backup.
The file system path for non-SRM transfers is no longer registered in the space manager database. Such files are only registered by their PNFS ID. For SRM transfers, the path is only retained until the file has been uploaded. Once uploaded, the path is cleared as it is no longer used and only bloats the database.
Space manager now performs more garbage collection to remove expired or released reservations from its database. This should reduce the amount of database bloat.
Space manager acts as a proxy service to pool manager. That is, it intercepts all messages from doors to pool manager. In particular it adds additional processing to the pool selection and mover creation messages. That these messages are intercepted has not changed; however, the processing that occurs when these messages are received has changed. In general, database updates are postponed until the latest possible moment in the process of selecting a pool and starting a mover. This improves robustness in case of errors, as less state has to be rolled back. In some cases these changes also allow us to skip processing the message in space manager, allowing such messages to be forwarded to pool manager right away. This reduces latency.
Admin shell changes
The space manager admin commandline interface has been completely rewritten. All commands have
been modified. Please consult the build in help
output for details. The commands fix missing size
and removeFilesFromSpace
have been removed, while the commands ls
, ls file space tokens
,
listInvalidSpaces
, removeFilesFromSpace
, remove file
, reserve
, release
, and
update space reservation
have been either renamed or modified. The new commands are
ls link groups
- list link groups
ls spaces
- list space reservations
ls files
- list files in space reservations
reserve space
- create new space reservation
update space
- alter space reservation
release space
- remove space reservation
purge file
- remove file from space reservation
purge spaces
- Garbage collect removed and expired space reservations
These commands accept a great many options that alter their behaviour, so make sure to read the help output offered by each of them. The new commands no longer expose the auto-generated link group id and file id database keys. Instead link groups are identified by their name, and files by their PNFS ID or path.
Configuration changes
Database connection pool settings are now configurable using the
spacemanager.db.connections.min
and spacemanager.db.connections.max
properties.
Space manager no longer uses the ThreadManager cell for task management. Instead it has its
own thread pool. This thread pool can be configured using the spacemanager.limits.threads
property. This change decouples the space manager from the SRM service.
Several issues related to non-SRM transfers have been fixed. In particular the interpretation
of spacemanager.enable.reserve-space-for-non-srm-transfers
has changed. When enabled, space
manager will create a space reservation in a link group for the file being uploaded. Previously,
if creating the space reservation failed because no suitable link group was found for the file,
the upload would fail. Starting with 2.8, the upload will fall back to a link not in a linkgroup.
Other changes
Several cases of wrong behaviour on failed uploads have been fixed. These affect both non-SRM transfers and SRM transfer. The bugs could cause the retried upload to fail too.
Space manager in some cases used to query pool manager for additional information during link group selection. This has now been replaced by a periodic import of the entire pool selection state from pool manager. The benefit is that space manager now can select link groups without querying pool manager, thus reducing load on pool manager and reducing latency in space manager.
srm
A new log file was added to the SRM. This log file contains an entry
for every SRM protocol level access being made and is thus analogous
to the common access logs generated by most web servers. The log
contains a timestamp, the client address, the SRM request type, the
SRM client, and enough information to identify the SRM request in the
SRM database. The log is created in /var/log/dcache/
and is named
after the domain followed by the string .access
. The file is created
for every domain, but it will be empty unless the domain contains an
SRM service. Future updates may add support for other protocols. The
log is rotated daily and kept for thirty days (this is configurable
through logback).
Several minor improvements to logging have been implemented.
webadmin
The space reservation view now only lists permanent spaces, i.e. spaces without an expiration time. This suppresses implicit space reservations in the list, which makes the output more compact.
Changelog from 2.7 to 2.8.0
- 4cf2ca0
- ftp: Reenable support for RFC 2428
- bb867f7
- chimera: Optimized creation time column changeset
- 6ed05d6
- dcache-webadmin: fix ArrayIndexOutOfBounds exception in ListView (Tape Transfers page)
- 800a33e
- ftp: Disable ipv6 support
- 9a09439
- ftp: Disable ipv6 support
- 6ad46ba
- spacemanager: Fix liquibase changeset for postgresql
- 10acbdc
- spacemanager: Fix link group overallocation trigger
- a03b060
- spacemanager: Fix unlock of allocated files on delete
- f5c4e29
- cells,ftp: Take care to initialize the CDC
- c1e7329
- spacemanager: Fix NPE when creating infinite reservations
- 2661b84
- spacemanager: Improve CLI errors
- 51f3855
- nfs: Prevent NFS door from starting if schema is not up to date
- 5679ce0
- spacemanager: Remove file count from space reservation list
- 8d2006f
- Restore compatibility with 2.6 pools
- 5b4d3a6
- spacemanager: Fix extraction of null values
- 5a70f1f
- spacemanager: Fix queries searching for glob match
- 947d1c0
- spacemanager: Fix expiration check
- 1156be3
- spacemanager: Fix option value in ls files command
- e51e287
- chimera: Optimize schema migration
- ead6c2b
- gplazma2-ldap: Ignore junit tests
- f3b9125
- spacemanager,pinmanager,xrootd: Don’t block during startup if pool manager is down
- d84e71e
- pom: Fix duplicate include of release plugin
- 7f0ee6b
- spacemanager: Avoid aggressive error output on cell communication
- c93d11e
- spacemanager: Fix case statements in db triggers
- bb50822
- spacemanager: Fix update of file entity
- 3bffb67
- spacemanager: Fix slow SQL query
- 85fba26
- deb: Append timestamp to snapshot builds
- 12709ae
- spacemanager: Make help strings less ambiguous
- bc4b71d
- spacemanager: Rename release file to purge file
- ecf5ed4
- spacemanager: Limit ls files command to transient states by default
- 3121bdb
- spacemanager: Replace lifetime column with expirationtime column
- 6660dc3
- spacemanager: Make changesets drop indexes conditional
- 940254b
- spacemanager: Reorder liquibase changesets to make updates faster
- c6ea3fb
- spacemanager: Use HikariCP
- f9d063d
- spacemanager,webadmin,info: Only publish permanent space reservations
- 09bb5e7
- spacemanager: Delete dead code
- a4127e1
- spacemanager: Turn state singletons into enums
- d06daa7
- spacemanager: Clear path when file is stored and make path unique
- bd27597
- spacemanager: Simplify updateFile method
- 1cdb0a4
- spacemanager: Use FsPath to represent file system paths
- 4a03ed3
- spacemanager: Add automatic and manual purge of perished spaces
- f3eaba9
- spacemanager: Add not null and unique constraints to link group name
- 6550cec
- spacemanager: More fluent API and less business logic in data access layer
- 5a5ccd2
- pom: enforce maven-release-plugin 2.4.2
- dfcee57
- spacemanager: Fix precondition check for plpgsql language check
- dfeaa7c
- libs: update nfs library to 0.7.1
- 9662041
- srm: revert “refactor SchedulerFactory”
- b2c4f15
- spacemanager: Fix trigger name in HSQLDB triggers
- 979e8e4
- glue: do not assume PoolManager runs in dCacheDomain
- 0231563
- chimera: add an rm command to shell
- de7d6e3
- chimera: make lstag argument optional
- cf963c4
- chimera: refactor PGET, part 2: eliminate caching of file locality node
- 5e38de9
- chimera: refactor PGET into abstract node
- f547ecd
- backoff-controller: update unit-tests, refactor code
- 1767266
- pool: Follow up cd0c482af5338249c064f0cbe889bdc2c1790c0f - Make rep ls output more efficient
- 3bd9089
- spacemanager: Minor UI improvements
- e51ad32
- spacemanager: Fix help output of reserve space
- 1165969
- spacemanager: Don’t accept output retention policy
- 3c09ed7
- spacemanager: Add missing update of deleted flag
- 739b60c
- Drop chimera-cli script
- b9d945f
- nfs4: fix orphan proxy movers
- cd0c482
- pool: Fixing rep ls output, RT 8203
- 02a022d
- chimera: tigger action with FsInode_PSET#setStat()
- f6423b2
- spacemanager: Delete flushed file reservations when name space entry is deteled
- 0fb5840
- spacemanager: Fix expiration output on ‘ls files’ command
- 2330db5
- spacemanager: Refresh pool monitor on ‘update link groups’
- 98a721a
- spacemanager: Rewrite command line interface
- c9332c7
- chimera: Fix help output of chimera CLI
- 804d13a
- chimera: Add more documentation and error checking to chimera shell
- 39fa0fe
- spacemanager: Propagate SpaceException error to SRM
- aa01662
- spacemanager: Fix syntax error in SQL expression
- 76ead5a
- spacemanager: Fix capitalization bug in liquibase changeset
- 9e4e85b
- webdav: support redirecting to next replica for NOT FOUND or FORBIDDEN responses
- 9ba476a
- pool: Do not save terminated jobs to setup file
- 3475087
- spacemanager: Fix capitalization bug in liquibase changeset
- 1750f0b
- Fix text width calculation for ANSI formatted help output
- 548b541
- spacemanager: Retry on transient errors
- da4d83c
- dcache-chimera: Add interactive chimera shell
- 62e5dec
- cns: make unit tests less sensitive to speed of computer
- b30cb25
- build: fix RPM builds
- 7279741
- Reduce class path length on liquibase invocation
- 02e47c4
- poolmanager: Remove link group attributes
- c3c4ab7
- transfermanagers: Send subject and updated file attributes to pool
- 68909a2
- spacemanager: Split space manager into service layer and data access layer
- 972f92c
- spacemanager: Convert tabs to spaces.
- c53dbc1
- spacemanager: Use JdbcTemplate and annotation based transaction demarcation
- 064b6cd
- Fix gitignore
- be1b718
- nfs: fix compatibility with 2.6
- c7b6aa3
- Per ApplicationContext @Transactional configuration
- 46c37f2
- spacemanager: Add changeset to install plpgsql
- 827b2f8
- Use ajc to compile aspects
- 50084af
- cells: Catch UnresolvedAddressException
- c6949ce
- admin: fix batch file of acm cell
- b006e05
- chimera: add “.(get)(filename)(checksum)” command
- 9657929
- chimera: fix get locality to work with id-type FsInode
- 623a93b
- nfs4: fix IO on special files
- aea2010
- spacemanager: Add missing rollback in liquibase
- 1f0c1a5
- spacemanager: Use PoolMonitor to extract link groups
- b6ec60c
- spacemanager: Do not use ThreadManager
- 5c786c2
- spacemanager: Make database connection pool configurable
- 44bab04
- spacemanager: More code cleanup
- 7fb7684
- spacemanager: Remove dead code and other minor cleanup
- 222cae0
- spacemanager: Maintain aggregate columns with database triggers
- 79cad7f
- spacemanager: Drop ‘fix missing size’ command
- 877a497
- spacemanager: Mover DB schema management to Liquibase
- 2cbcb17
- spacemanager: Do not delete SRM managed reservation entries on file deletion
- e199cbf
- spacemanager: Postpone DB update to intercepted pool accept message
- 48255d9
- Upgrade dependencies
- b3b5a29
- spacemanager: Refactor message dispatching code
- 98012be
- Add preallocation field to PoolAcceptFileMessage
- 4c41bd1
- spacemanager: Fix use of global property in spacemanager configuration
- 93ec46a
- nfs4: implement proxy-io on read
- 3f0703b
- libs: update nfs4j to 0.7.0
- 77a7423
- Fix PoolRemoveFilesMessage#toString
- f151dab
- pnfsmanager: Use ISO8601 compatible date for metadataof output
- 91a2ed3
- Upgrade to DataNucleus 3.3
- ff628f7
- Upgrade to liquibase 3
- 5b538ed
- Upgrade to Spring Framework 4
- 21588b7
- poolmanager: Add named error codes for no-pool-configured and no-pool-online
- 5967210
- nfsv41: remove unused field in NFS4ProtocolInfo
- 94030f5
- dcache-core (billing): modify changesets to do concurrent index creation
- d07d1bb
- nfsv41: simplify internal Transfer class
- ce9d61d
- pom: scala-reflect depenencies
- cad663d
- gplazma: ldap: make user home and root configurable
- c1eed0c
- poolmanager: Replace StorageInfo by FileAttributes in PSU
- 3ee3a23
- spacemanager: Allow unreserved transfers even when space reservation for non-srm transfers is enabled
- 8c44bdf
- spacemanager: Reduce latency for some pool selection messages
- e105197
- spacemanager: Postpone DB update on pool selection
- d54d1eb
- spacemanager: Use imported PoolMonitor to select link group
- 5273cfd
- ftp: Use shared thread pool for various processing threads
- 8642945
- cells: Further refine LoginManager startup and shutdown
- 41d2970
- defaults: fix typo in common header
- 0a18178
- spacemanager: Fix typo in property name
- 5c32ce9
- spacemanager: Split selectPool method
- 4755b31
- defaults: add common explanation of annotations
- 09769a3
- nfs: introduce PoolDeviceMap for pool to deviceid mapping
- d6b2d87
- nfs: remove obsolete comment
- 0a9e1c9
- nfs: do not create an instance of StripingPattern per pool
- 3933ee7
- logback shell: add set pattern command
- 322adcb
- transfermanager: formatting patch
- 85994d4
- transfermanager: white-space only fix
- 0bd6afa
- dcache-webadmin: put limit on entries in alarms table
- e30a4ae
- dcache-webadmin: wget xml statepath (Info page) fails with HTML 500 error
- 0200256
- dcache-core (statistics): fix yet another potential NPE in tree creation
- f6855ee
- dcache-core: fix statistics totals for top, year and month
- 64fb8a6
- common: simplify gauge logic
- c547ddd
- srm: fix Copy scheduling
- 90e584f
- ftp: Refactor command queue into sequential executor
- 1193536
- srm: refactor SchedulerFactory
- d5512f6
- commons: use long to store updates count of a gauge
- 9cf2b89
- ftp: Fix race conditions caused by message reordering
- d885e74
- ftp: Fix race that lead to erroneous error message in log file
- 25e91f9
- ftp: Fix deadlock introduced in recent refactoring
- 97c8ac6
- ftp: Add LoginCellProvider for FTP
- 641a644
- pool: Fix race condition in migration module
- a6ec39a
- nfsv41: use sort timeout between door and pool manager
- 7114b90
- scripts: fix dcache script for Solaris machines
- 2ff8818
- webdav: log why request is rejected with permission denied
- 143b96c
- srm: refactor part of Scheduler to use guava Service
- fd77a0e
- chimera: avoid extra db lookups on create and remove
- 8b70f9e
- pnfsmanager: add support for symlink creation
- bd4aa6c
- namespace: add support for link creation
- d80c824
- srm: add missing information from “ls queues” command
- 5c788be
- dcache-webadmin: fix comparison semantics
- 110a50c
- Clean service shutdown order in LoginManager
- 70974a3
- ftp: Reorganize ftp classes
- 465a782
- Implement EPSV and EPRT commands
- 3834456
- pool: bypass IO queue if there is a slot available
- 3caea80
- nfsv41: garbage-collect expired moved
- 4395eca
- ftp: Refactor FTP door to separate FTP interpreter from I/O logic
- 1e7f211
- ftp: Minor cleanup of FTP doors
- e541396
- cells: Add factory for login cell creation
- 77787ee
- cells: Use common LoginBrokerHandler in LoginManager
- f0decb0
- ftp: Rename ac_ accessors to ftp_
- 74fb60c
- system-test: add nfsv41 into default configuration
- 87dab31
- cells: Move dCache’s cell interfaces into cells
- 5b4d856
- cells: Associate threads and initialization messages with their cell
- 19c2b52
- Fix configuration cache invalidation
- b1c04d4
- chimera: use path to get files parent on remove
- e99720f
- cells: Refactor LoginManager
- 35c7970
- loginmanager: Automatic reformatting of code
- 1ac339c
- pnfsmanager: Drop PnfsGetStorageInfoMessage
- e7742ac
- pnfsmanager: Drop legacy FileMetaData class
- edd8ad8
- pnfsmanager: Drop PnfsSetFileMetaDataMessage
- fbae6b4
- pnfsmanager: Drop legacy PnfsGetFileMetaDataMessage
- 8747a50
- srm: Avoid use of legacy PnfsGetFileMetaDataMessage
- 6ace876
- Add support for simple read-only WebDAV properties
- 021b410
- Remove legacy logging in AbstractCell
- a6500bb
- pool: Fix command string output for migration commands
- c5ab9ad
- Add help text for rebalancer.
- c8587e6
- namespace: use FileType to specify type of create object
- 661a15e
- gplazma: add public key size information to gPlazma results printer
- efd4dee
- Fix log message containing invalid access latency and retention policy values
- ccd9cb1
- libs: update nfs library
- d88993d
- transfermanagers: Avoid use of legacy pnfsmanager message
- 4609b07
- transfermanagers, replica, admin: Fix pool to pool transfers
- 110be4f
- gPlazma-ldap: fix non-serializable Set problem
- f6afcf7
- libs: update jglobus libraries
- 61e9859
- billing: Parallelize billing search
- c115138
- billing: Sorted file tree traversal
- dfaee9e
- log: Rename access and events logs
- fd74e03
- srm: Supress stack trace on EofException in Axis 1
- 6217cee
- srm: Supress stack trace on EofException in Axis 1
- 9708aad
- billing: Add date prefix to output of search command
- 6350056
- ldap: fix filter property
- 752e058
- dcap: use CHANGE_TIME to provide ctime on stat
- 7501da4
- namespace: use correct DB field for CREATION_TIME
- 9bc76df
- chimera: update DB schema to support CREATION_TIME
- ee05697
- chimera: remove historic SQL code
- 9a30984
- namespace: use liquibase for chimera based tests
- 63ff338
- dcap: separate protocol name and client ip in DCapProtocolInfo#toString()
- 6aa5a40
- chimera: compact hadles passed to NFS server
- 71c667a
- nfs: add -c option to statics command to reset counters
- d73114f
- billing: Add shebang header to indexer cronjob
- 2d8a981
- srm: Fix compilation error introduced by bad merge
- 442cde2
- srm: Some more refactoring of Scheduler
- 59a6828
- srm: More Scheduler refactoring
- 28ff5c5
- srm: Get rid of dead exception code in Scheduler
- f0bd233
- srm: Refactor Scheduler
- 7c34310
- pool: Fix -sticky option in migration module
- 893e167
- srm-client: fix building of tagged RPMs
- fb55fb8
- info-provider: Fix regression in publishing GlueServiceEndpoint
- 8608b98
- ssh2: fix int overflow with timeout
- a818b5d
- srm: Improve logging on pin failure
- ca9b2c2
- srm: Fix a few IllegalStateTransition errors in srmLs
- fb28839
- commons: add a way to reset gauges and counters
- 12b8206
- correcting IoMode check for SEEK_AND_WRITE
- b8907ec
- billing: Fix compression of error files
- 000c505
- Fixed typo in logback configuration
- 7717ac1
- commons: make use try-with-resource in couters
- 9904943
- xrootd: Upgrade to xrootd4j 1.2.2
- 6a0fc40
- spacemanager: Fix S2 usecase.CheckGarbageSpaceCollector regression
- 59440b0
- Fix build failure in EventLogger class.
- cc106ce
- srm: Add an access log
- 1142ec3
- libs: update to nfs4j–0.6.2
- 9099693
- srm: Improve error message on file_busy and duplication_errors
- 74a070b
- info-provider: Fix publishing of SRM
- b995602
- chimera: fix handling of bytea data in path2inode and path2inodes stored procedures
- 7782b92
- srm: Fix space expiration check in space query
- 264ebd2
- srm: Fix regression in srmGetSpaceMetaData
- a16d3eb
- info-provider: Fix regression caused by info-provider using a deprecated property
- cf33d78
- deb: Include cron job for billing compression and indexing
- eb26c21
- doors: Allow loginbroker property to be empty
- ca144ff
- srm: Fix NPE and timer thread kill when restoring jobs
- 7e448d0
- spacemanager: Fix setter for cleanupExpiredSpaceFiles property
- 5190748
- srmspacemanager: catch and ignore SQL exception on error handling path when processing PoolMgrSelectWritePool on reply from PoolManager