1.9.10 Release Notes
In addition to the usual improvements and bug fixes, dCache 1.9.10
focuses on:
- Improving ease of administration with a new logging framework, a
new web based admin interface and pool rebalancing tools; and
- improving SRM, NFS and xrootd scalability.
Upgrade Instructions
Incompatibilities
Please consider the following changes when upgrading from a version
before 1.9.10-1:
- File ownership of new name space entries is now defined by the
subject creating the entry rather than inherited from the parent
directory. See Name Space.
- Logging configuration files and admin commands have changed. See
Logging.
- The old HTTP door was removed. See HTTP/WebDAV.
Compatibility
It is safe to mix pools of releases 1.9.5, 1.9.6, 1.9.7, 1.9.8,
1.9.9, and 1.9.10. Head nodes and doors must be upgraded to 1.9.10
together and cannot be mixed with head nodes or doors of releases
before 1.9.10. Components of different 1.9.10 releases can be mixed
freely.
Compatibility Matrix
We distinguish between pool components and head nodes. Any
component which is not a pool is considered a head node, including
doors. The following table shows compatibility between different
releases.
| | 1.9.10-5 Head | 1.9.10-5 Pool |
Head |
1.9.5 | no | no |
1.9.7 | no | no |
1.9.8 | no | no |
1.9.9 | no | no |
1.9.10 | yes | yes |
Pool |
1.9.5 | yes | yes |
1.9.7 | yes | yes |
1.9.8 | yes | yes |
1.9.9 | yes | yes |
1.9.10 | yes | yes |
Changes in 1.9.10-5
FTP
Improved RFC 3659 compliance.
Pool
Implemented waitForFiles configuration parameter (the
parameter was documented before, but it didn't actually work).
Fixed a bug in the cancellation logic for pool to pool
transfers. The symptoms of this problem was that a transfer would stay
in the Failed state until the pool was restarted.
Fixed an issue in which a pool would attempt to update the file
size and checksum when staging a file from tape or copying it from
another pool.
Fixed a bug in the migration module that could cause migration jobs
to never terminate. When the transfer queue became empty it would stay
in the RUNNING state indefinitely.
Avoid unnecessary DNS reverse lookups in xrootd. Fixed a null
pointer exception in the xrootd mover.
Fixed a deadlock in space allocation.
PoolManager
Restore compatibility with pools older than 1.9.10. Earlier versions
of 1.9.10 only worked with 1.9.10 pools.
Deployment
Fixed configuration file parsing in various shell scripts. The
symptom was that the scripts simply failed to work in earlier
releases. This includes the script to migrate the configuration from
1.9.5.
Fixed Solaris compatibility.
Removed the transactionlog appender in the default log
configuration. This appender caused a file called
transaction.log to be created in the dCache installation
directory.
Chimera
Fixed a bug that could cause name space entries to change type.
SRM
Fixed an issue that caused the SRM not to provide the client IP to
PoolManager when pinning files. Thus the file could potentially be
pinned on the wrong pool.
Fixed an issue with implicit space reservation. The symptom of the
problem was that the error message Record(s) Already Exist
was generated.
Fixed an IllegalArgumentException in case of clock shift.
gPlazma
Added the get mapping command to the gPlazma cell. This
command was present in earlier releases, but was dropped when the
gPlazma cell was reimplemented in 1.9.9.
Changed how gPlazma processes requests with multiple FQANs. Before
gPlazma would invoke each plugin for the first FQAN, then each plugin
for the second FQAN, and so on. This could in some cases lead to a
request being authorized by a plugin late in the chain even though an
earlier pluging could have performed the authorization.
gPlazma now processes all FQANs with the first plugin, then again
with the second plugin, and so on. Thus the next plugin is only
activated if the previous plugin is not able to process the complete
request.
Xrootd door
Avoid unnecessary DNS reverse lookups. Fixed implementation of the
kXR_mkpath option (the option creates parent directories on upload).
Downgraded the reported protocol version to 2.89. Recent versions
of the protocol specification document the kXR_locate
messages. This message doesn't fit well into the logical separation of
doors and pools in dCache. Thus there is no way we can support this
message without fundamental changes in dCache. Advertising an older
protocol version causes client to use the kXR_open message
followed by a redirect. This restores the behaviour of the xrootd door
in dCache 1.9.5.
Added an implementation of the kXR_prepare message. The
current implementation confirms the request, but ignores it
otherwise. This is allowed according to the spec. A complete
implementation will be added in future versions of dCache. The present
implementation restores compatibility with the latest CMS software
release.
Added logging support for the Netty IO framework on which the
xrootd door is implemented.
Cells
Fixed a messaging loop. The issue was observed between space
manager and pool manager and would cause a request to bounce back and
forth between the two components.
Detailed changelog 1.9.10-4 to 1.9.10-5
- [r14835] ftp: Fix RFC 3659 compliance of MLST implementation
- [r14852] pool: pass waitForFile option to the pool
- [r14855] scripts: Fix configuration file parsing
- [r14881] build: exclude billing plots module from dCache package
- [r14883] pool: Fix P2P cancellation
- [r14887] install: Fix migration script
- [r14888] iscripts: fix problem with dcache script dying on Solaris machines
- [r14892] chimera: presert file type on change mode
- [r14904] srm: Fix remote address handling in JettyGSIConnector
- [r14928] pool: update namespace only in case of new files
- [r14932] junit: fixed broken merge with r14916
- [r14937] logging: Disable transactionlog appender
- [r14973] login: Add 'get mapping' command (regression)
- [r14982] xrootd,pool: Avoid unnecesary reverse lookup of client address
- [r15062] exceptions: Drop DirNotExistsCacheException
- [r15064] srm - fix issue that leads to error "Record(s) Already Exist"
- [r15068] glpazma: changing order of plugings while mapping
- [r15102] pool: Fix termination in case of failed transfers
- [r15106] cells: Avoid reply loop
- [r15109] xrootd: Downgrade protocol version to avoid kXR_locate
- [r15112] pool: Fix NPE in xrootd mover
- [r15167] pool: Make FairQueueAllocation interrupt safe
- [r15170] PoolManager: Fix compatibility with pools older than 1.9.10
- [r15172] xrootd: Add kXR_prepare command
- [r15175] xrootd: Add logging hooks in xrootd door
- [r15196] ssh: don't trigger IOException when user disconnects
- [r15198] info provider: Downgrade xrootd protocol version
- [r15200] commons: gauge: don't throw an exception if there's a time-shift
Changes in 1.9.10-4
DCAP Door
Fixed a bug in prestage command that causes requests to get stuck.
Xrootd
Fixed interoperability with ROOT and encoding of opaque
information. The fix requires upgrade of both the xrootd door and the
pools.
WebDAV Door
Fixed HTTP compliance of the HEAD command.
Authorization
Fixed handling of secondary groups in gPlazma and FTP doors.
Detailed changelog 1.9.10-3 to 1.9.10-4
- [r14804] core: file metadata can't be a file and a directory at the same time
- [r14810] Xrootd: fix opaque information parsing
- [r14817] webdav: fix HEAD command
- [r14825] auth: Fix for Subject creation with multiple GIDs
Changes in 1.9.10-3
Pool
Fixed two regressions that affected pool to pool transfers and
performance cost computation.
Fixed partial retrieval of files when using FTP extended block
mode.
FTP
Fixed NullPointerException in info command.
Detailed changelog 1.9.10-2 to 1.9.10-3
- [r14772] pool: restore old behavior of 'pp ls'
- [r14776] pool: restore pre-1.9.9 behavior of PoolCostInfo
- [r14780] pool: restore pre-1.9.9 behavior of PoolCostInfo
- [r14784] pool: Fix partial retrieve for FTP MODE E
- [r14795] auth: fix NPE in Subjects class
Changes in 1.9.10-2
Xrootd Door
Fixed retry logic on write. The bug would cause empty files to be
left behind on write while the correct file with the same ID would
uploaded to another pool.
Logging
Fixed a bug that would cause some log messages to be lost. This
particularly affected log messages generated during startup. The bug
affects all components in dCache.
Pools
Implemented the rep ls -l=c command. This command was
mentioned in the documentation, but was never implemented.
Fixed the migration set concurrency command. In 1.9.10-1
the command caused an error to be reported even though the command did
correctly change the concurrency of the migration job.
SRM
Upgraded to JGlobus 1.8.0. This resolves a compatibility issue with
VOMS RFC proxy certificates.
Fixed a minor security bug.
Fixed performance regression in directory listing.
Temporary TopLink related files are now written to /tmp
rather than /opt/d-cache/.
Messaging
Upgraded to ActiveMQ 4.5.1. Only affects deployments with JMS.
PinManager
Fixed a bug that caused timeout handling to fail. The observable
effect was that stage requests that didn't complete within 1 hour
would hang.
Detailed changelog 1.9.10-1 to 1.9.10-2
- [r14725] xrootd: Fix retry logic on write
- [r14726] logging: Fix NullPointerException that caused some messages to be lost
- [r14730] pool: implement "rep ls -l=c"
- [r14731] pool: Fix format string in migration module
- [r14737] activeMQ: switch to release 4.5.1
- [r14749] libs: Upgrade to JGlobus 1.8.0
- [r14750] PnfsManager: Fix several NullPointerExceptions
- [r14753] srm: Fix root path concatenation
- [r14754] cells: Prevent incomplete updateWaitQueue due to exception in callback
- [r14755] cells: Prevent Timer from failing due to uncaught exception
- [r14762] srm: Fix srmLs performance regression
- [r14764] Toplink: Write DDL files to /tmp instead of ${dcache.home}
Changes in 1.9.10-1
Name Space
dCache has traditionally placed a lot of logic in protocol specific
doors. Over time this has caused the semantics over various operations
to diverge slightly, depending on which protocol is used. To counter
this, we have moved some of the name space logic from the doors into
PnfsManager. This is in keeping with previous consolidation where, in
earlier releases, we moved file access authorization to
PnfsManager.
In dCache 1.9.10 we moved the logic that decides the ownership of a
new name space entry into PnfsManager. In doing this, we altered the
behaviour of some doors. The new behaviour is closer to POSIX: the
default ownership of a new name space entry is the UID and primary GID
of the user creating the entry. There are two exceptions: if the
entry was created by an anonymous user then the ownership is inherited
from the parent directory; if
pnfsInheritFileOwnership is set to true in
etc/dcache.conf then entries created by authenticated users
will also have ownership inherited from the parent directory.
Logging
Many of our users have been dissatisfied with the relative
complexity of adjusting log levels at runtime. For some time, dCache
has relied on log4j as its logging framework. Log4j is no longer
maintained and there was no way for us to simplify the logging user
interface within the constraints of log4j. Therefore, with 1.9.10,
dCache has switched from log4j to logback.
The first consequence is that the log configuration file has
changed. Now logging is configured in etc/logback.xml. We
refer to the instructions embedded in the packaged version of that
file and
to chapter 3
of the logback manual.
Notice that log level configuration in dCache is different from
what is described in the logback manual. Pure logback allows log
levels to be configured on loggers and appenders, similar to
log4j. This has proven to be too inflexible for dCache. We ship dCache
with a custom log filter that implements a log level for each triple
of logger, appender and cell. This provides very fine grained control
over which types of messages from which cell are logged
where. Detailed instructions can be found in the instructions embedded
in the default etc/logback.xml file.
The second consequence of switching to logback is that the cell
admin interface to changing log levels on-the-fly has changed. The
legacy set printout commands no longer have any effect. The
commands that were prefixed with log4j are no longer
supported. Instead a new set of commands prefixed with log
have been introduced. Each cell exposes these commands to adjust the
log level of logger hierarchies for specific appenders within that
cell. In the simplest case one can adjust the log level of all loggers
for a particular appender with:
log set stdout DEBUG
or
log set pinboard DEBUG
Notice that these commands only affect the cell and its subcells in
which they are executed. In previous versions of dCache, adjusting the
log levels affected all cells.
The system cell has additional commands that allow appenders to be
attached and detached as needed, although it is unlikely that these
will need to be adjusted at runtime.
We recommend consulting the logback manual for details about
available appenders. Logback can be configured to perform log
rotation, log to syslog, log to SMTP, log to a remote logger,
etc. Feel free to contact us for details about specific setups.
SRM
In dCache 1.9.7 we switched from using Tomcat to Jetty as our
preferred servlet container for the SRM. In dCache 1.9.9 we stopped
shipping Tomcat with dCache. In dCache 1.9.10 we have unified the
Jetty hosting cell and the SRM cell in a single cell. The main
difference is that logging and log configuration is now perform in one
cell rather than two. The SRM startup time also improved
significantly.
The SRM protocol allows most requests to be treated either
synchronously or asynchronously. In the former case the client will
not receive a reply until the request was processed by the server. In
the latter case the server will reply that the request is accepted and
then the client periodically asks (polls) the server about the status
of the request. Traditionally dCache would treat list requests
synchronously, and put, get and bring online requests
asynchronously. Starting with dCache 1.9.3 the behaviour of lists was
configurable. In dCache 1.9.10 one can configure the behaviour for
both list, get, put and bring online. Even more, one does not have to
choose between either synchronous or asynchronous operation. dCache
can be configured to use synchronous replies for fast requests, and
switch to asynchronous processing for slow requests. The switch over
period is configurable. When configured to 0 all replies are
asynchronous. When configured to infinity all replies are
synchronous. The upside of synchronous replies is lower CPU overhead
since this avoids repeated authentication, and lower latency from the
point of view of the user (an asynchronous request will always take at
least the time between the initial request and the first status poll -
typically four seconds). The downside of synchronous replies is that
the request occupies a thread in the SRM door. A conservative switch
over time of a few seconds is unlikely to cause problems on the
server. The period before the SRM switches to asynchronous mode can be
configured with the srm*SwitchToASynchronousModeDelay
parameters in etc/dcache.conf.
The SRM uses a database to persist all SRM requests. This has the
advantage that the SRM door can be restarted and requests can be
restored from the database. It also means that one can extract
information about already completed SRM requests, which is great for
monitoring and debugging. The aggressive updates of the database may
however be a bottleneck for SRM scalability. In dCache 1.9.10,
continous persistence can be disabled using the parameters
srmJdbcEnabled (defaults to true) and
srmJdbcSaveCompletedRequestsOnly (defaults to false).
Jetty has the option of using synchronous and asynchronous IO (this
is unrelated to synchronous and asynchronous request processing in the
SRM protocol). In previous versions dCache always used synchronous IO
for the SRM. The consequence was that each TCP connection required its
own thread. This limited the maximum number of TCP connections the
SRM could efficiently maintain. In dCache 1.9.10 the SRM can
optionally use asynchronous IO. This will only make a difference if
clients use HTTP keep alive to keep the TCP connection open for a long
time while the connection is idle. Whether to use synchronous or
asynchronous IO can be configured using the
srmJettyConnectorType parameter.
Traditionally the SRM door has failed to reload the host
certificate and CA certificates and has required a restart whenever
these were updated. Starting with dCache 1.9.10 both host certificates
and CA certificates can be reloaded periodically. The refresh period
can be configured using the hostCertificateRefreshPeriod and
trustAnchorRefreshPeriod parameters. The default is to reload
every 12 hours.
Space manager
Database access was optimized to make better use of indexes.
WebAdmin
WebAdmin is a replacement service for the httpd
admin/monitoring interface of dCache. The service is still
work-in-progress, but we invite sites to have a look and provide
feedback. The service is enabled like any other service in dCache:
Simply add the
webadmin service to your layout file. The default port of
WebAdmin is 8080.
In contrast to the old httpd service, the
webadmin:
- Runs in the Jetty container rather than a proprietary HTTP
service.
- Provides optional authentication.
- Provides configurable authorization.
- Allows basic administration of dCache services rather than just
passive monitoring. For instance pools can be enabled and disabled
through the WebAdmin interface.
Most information exposed through the WebAdmin interface is pulled
from the info service. Hence the info service must be running for
WebAdmin to function.
Notice that there are known issues in running WebAdmin in a system
with a JMS message broker.
Pool Rebalancing
A common problem when adding new pools to dCache is that the new
pools have significantly more free space than full pools. They
naturally attract more data and thus are subject to overload during
transfer peaks. Since data is often read back in the same batches in
which they were written, this problem persists even after the new pool
has been filled with data.
To address this issue many sites have moved files from old pools to
new pools to even out the load. Before the introduction of the
migration module, this task required manually moving files behind the
back of dCache (e.g. using scp or rsync). With the introduction of the
migration module in dCache 1.9.1 this task became simpler and safer,
but still required that migration jobs were defined by hand on the old
pools - and cancelled once enough data had been moved.
In dCache 1.9.10 we added a couple of new commands to PoolManager
to rebalance pool groups. These commands automate generating migration
jobs. The migration jobs generated this way rely heavily on the new
features added to the migration module in 1.9.10 and will only work
with 1.9.10 pools.
PoolManager maintains no state about the migration jobs started by
the rebalance commands. All such jobs however share a command job id,
rebalance, that makes them easy to identify. PoolManager will
cancel existing rebalance jobs on a pool before starting a new
job. PoolManager also provides a command to cancel all such jobs
within a pool group. Please read the help of the rebalance
pgroup command for details or consult the dCache book.
We plan to add additional features in 1.9.11, such as the ability
to query the progress of the rebalance jobs and to rebalance a custom
set of pools rather than a complete pool group.
DISCLAIMER: This feature is experimental. We urge all sites
to carefully test this feature before using it on a production system,
as well as monitoring the system while rebalancing is in progress. The
task of moving files between pools is handled by the migration module,
which has been used successfully by many sites since its introduction
in dCache 1.9.1. The rebalancer will however stress the migration
module much more than a typical migration job.
Pool
The migration module was significantly enhanced. A new expression
language allows for more flexibility in pool selection, job
termination, and job suspension. Use cases include suspending a job
during high load, excluding target pools with high load, and
terminating a job after a certain amount of data has been
moved. Please consult the help output of the migration copy
command, or the dCache book.
In dCache 1.9.1 the meta data store of pools was rewritten. The
rewrite solved some longstanding issues with space accounting in
pools. At the time we decided on a single global lock on any meta data
operation, as that made it significantly easier to design the
component. Since the meta data store is backed by an on-disk
representation, the single lock has proven to be a bottleneck during
high load. In dCache 1.9.10 the single lock is replaced by more fine
grained locking. This improves throughput to the meta data store. Such
a change however comes with a risk of introducing deadlocks and race
conditions and we urge sites to stress test the pools before
upgrading.
The checksum module was extended with an onflush
switch. This forces the pool to compute checksums on files before
flushing them to tape. The computed checksum is compared to a known
checksum and the flush fails in case of mismatch. If a checksum is not
known already, then the computed checksum is stored in the name
space.
xrootd
In dCache 1.9.4 the xrootd door in dCache was replaced by a
reimplementation based on the Netty network application
framework. This door has proven more stable and scalable than the old
door. In dCache 1.9.5 the xrootd mover was replaced with a new mover
based on Netty. In dCache 1.9.9 the new xrootd door was extended to
support new xrootd primitives. In dCache 1.9.10 we have removed the
old xrootd door and xrootd mover completely. Sites that have used
custom batch files to start the old door or mover are requested to use
the new implementations instead.
The xrootd mover has been restructured such that it only needs to
listen to a single TCP port. Previous versions opened a new port for
each transfer. In dCache 1.9.10 all xrootd mover instances within a
single pool domain share a TCP port. For this to work the client must
present a transfer specific UUID to the pool. The UUID is generated by
the door when redirecting the client. This all happens within the
bounds of the existing xrootd protocol and should work with all
clients.
The xrootd mover will now redirect clients back to the door for
requests it cannot handle itself.
Scripts
The init scripts have been subject to plenty of changes in dCache
1.9.7, 1.9.8 and 1.9.9. dCache 1.9.10 is no exception to this
trend. The script is now much faster and we have reduced the number of
invocations of the Java interpreter.
FTP
The FTP door has been refactored and now shares more code with the
xrootd, NFS4, and WebDAV doors.
One consequence of the refactored code is that a number of
deadlocks have been fixed. These deadlocks are not easy to resolve in
stable releases without significant code changes, so will not be
backported. The deadlocks are triggered by restarting a pool at the
wrong moment during a GridFTP 2 transfer.
HTTP/WebDAV
dCache 1.9.6 introduced the WebDAV door. WebDAV is a superset of
HTTP and consequently there is no need for a seperate HTTP door in
dCache. In dCache 1.9.10 we have removed the HTTP door. Please use the
WebDAV door instead.
NFS 4.1
Compatibility with latest Linux kernels has been fixed. NFS
transfers are now visible in the "Active Transfers" page. NFS
transfers now generate billing transfers. Greatly improved
performance.
Access to dot-files now works through NFS 4.1. This means NFS 4.1
can be used as a replacement for the NFS 3 name space export.
External libraries
A large number of external libraries have been updated in this
release: Spring Framework 3.0.4, Active MQ 5.4.0, slf4j 1.6.1, Jetty
7.1.6, Netty 3.2.2, and Berkeley DB Java Edition 4.0.103.
Detailed changelog 1.9.9-1 to 1.9.10-1
- [r14102] Moving css files into the pagedirectories
- [r14103] Webadmin: Unifying communication for command sending and data gathering
- [r14104] gplazma: don't use UTF-8 characters in source code
- [r14105] pool: don't use Sun-private class for Base64
- [r14111] Webadmin: Create a reusable Header Panel for all pages
- [r14116] Stripped trailing white space ahead of patch submission
- [r14117] Remove the comparable from sessionID
- [r14118] doors: Rely on PnfsManager to determine uid, gid and mode of new entries
- [r14128] Webadmin: Create a reusable Navigation Panel for all pages
- [r14129] Webadmin: Make use of YAML Framework, markup inheritance and reusable panels
- [r14132] Username/Password Plugin for new gPlazma
- [r14133] Cleaned up indentation of JDC class
- [r14134] Webadmin: Adding the Pool Request Queues page
- [r14137] Stripped trailing white space
- [r14138] login: Remove dead code left over from gPlazma cell removal
- [r14139] gplazma: add simple CLI to list available plugins
- [r14140] http://rb.dcache.org/r/1992/
- [r14141] Webadmin: Backend part to supply the Pool Request Queues with data
- [r14143] gPlazma 2.0: Implement main GPlazma class that implements
- [r14144] purely formatting changes
- [r14145] cells and srm: Establish sending CDC on cell callback
- [r14146] srm: Updated UnpinCompanion to use CellStub, log4j, etc
- [r14147] srm: Merge the hosting cell and srm cell into one
- [r14148] srm: Allow SRM to use synchronous replies for fast requests
- [r14149] commons: update unit-tests for FQAN class
- [r14152] commons: add hasRole and hasCapability methods to FQAN
- [r14153] xrootd: Let Netty use slf4j
- [r14154] Ant-build: Add new server.deb buildfile
- [r14156] various: update usage of FQAN class
- [r14158] use cellstub to send PoolManagerSelectLinkGroupForWriteMessage
- [r14166] FQAN: add support for /Role=NULL
- [r14167] White space and indentation fix
- [r14168] tests: Split AuthzTokenTests
- [r14169] tests: Update some test cases to not use log4j directly
- [r14171] Replace various log4j Loggers with slf4j Loggers
- [r14172] slf4j: Upgrade to version 1.6.0
- [r14173] FQAN: add isValid method to test if a string is a valid FQAN
- [r14174] Whitespace-only fix
- [r14175] Whitespace-only fix
- [r14176] SRM: Avoid call to getRequest in FileRequest constructor to avoid a possible infinite recursion
- [r14178] VOInfo: add support for FQAN-like String constructor
- [r14179] space-manager: use VOInfo objects, rather than FQAN, when reading LGAF
- [r14181] FQAN: add some more invalid FQANs to unit-tests
- [r14184] unit-tests: factor out serialisation support code
- [r14185] billing plots: improve build
- [r14186] srm: Remove a couple of dead files
- [r14187] slf4j: Redirect Java commons logging to slf4j
- [r14188] srm: Fix srm timeout unit
- [r14189] Stripped trailing white space
- [r14190] Stripped trailing white space
- [r14192] Striped trailing white space
- [r14193] Webadmin: Refactor out the CSS driven Layout-bar
- [r14194] Stripped trailing white space
- [r14195] cells: Use slf4j rather than old cells logging
- [r14196] logging: Replace say and esay calls with slf4j
- [r14198] Webadmin: Refactor out the PoolSpace-Usage as a Panel for reuse
- [r14199] Webadmin: Refactor out PoolQueuesPanel for reuse
- [r14200] Webadmin: Just a renaming of "PoolBean" to PoolSpaceBean
- [r14201] Webadmin: Adding a new page - PoolGroupView
- [r14202] logging: Remove Xsay methods from CellNucleus
- [r14203] Webadmin: Introduce a download possibillity for the InfoXml
- [r14204] logging: Replace log4j NDC by MDC based NDC
- [r14205] cells: Remove more log4j dependencies
- [r14206] cells: Move Pinboard refrence to CellNucleus
- [r14207] cells: Avoid PinboardAppender dependency in CellNucleus
- [r14208] gplazma: don't hard-code behaviour in strategies, and add ValidationStrategy
- [r14209] gPlazma: Implement gPlazma 2 LoginStrategy
- [r14210] commons: change FQANPrincipal to use FQAN class
- [r14211] Gplazma2 fix the pluginloading
- [r14212] gPlazma: fix unit tests
- [r14213] gplazma: fix XmlResourcePluginRepositoryFactory unit-tests
- [r14214] gplazma: [janitor] trivial fixes to class
- [r14215] cells: fix compilation of classes
- [r14216] topo: [janitor] remove unused imports, add missing annotation
- [r14217] gplazma: [janitor] remove unused imports, add missing annotation, etc
- [r14218] Fix build
- [r14221] Xrootd-door: Move reserved characters to constants in the opaque parser
- [r14223] Add unit tests for the opaque string parsing utility class of xrootd
- [r14225] gPlazma2: Fix username/password plugin
- [r14229] common: [janator] fix FQAN comment
- [r14230] Convert tabs to spaces and remove any trailing white-space
- [r14231] Remove trailing white-space
- [r14233] Xrootd-door: Replace deprecated netty method invocations
- [r14234] pool: Fix UnitInteger bug
- [r14235] srm: Fix AuthorizationRecord id generation
- [r14237] authorisation: [janator] general tidy-up
- [r14238] auth: tidy up AuthorizationRecord's use of FQAN
- [r14239] cells: [janitor] tidy up CellNucleus
- [r14240] space-manager: more fixes in how FQAN is used
- [r14241] Fixing typo
- [r14242] admin: don't die if user misconfiguration history file
- [r14243] Bugfix: Call of equals with different types leading to always false in ReplicaManager
- [r14244] Webadmin: Support backwards-compatible URL downloads of info-xml files
- [r14245] pnfsid: add isValid static method
- [r14246] pool: Fix xrootd thread pool allocation
- [r14247] pool: Fix xrootd HangupHandler
- [r14248] pool: Close server socket channel in xrootd mover after first connect
- [r14249] PnfsManager: Only fold successful messages
- [r14250] Webadmin: Adding a Page to retrieve InfoXml manually and optionally download it from there
- [r14251] Webadmin: Adding the Cell Services page
- [r14252] xrootd: Allow the TCP backlog to be configured
- [r14253] pool: Generalize target selection of migration module
- [r14254] pool: Rename ModuleConfiguration to MigrationContext
- [r14255] Added JEXL library
- [r14256] pool: Let migration module query pool cost for fixed pool list
- [r14258] pool: Replace PoolCostPair with PoolManagerPoolInformation
- [r14259] pool: Refactor PoolListFromPoolManager
- [r14260] pool: Fixed NullPointerException in PoolListFilter
- [r14261] AuthorizationRecord: Fix conversion from Subject
- [r14262] gPlazma: remove dead-wood
- [r14263] PnfsManager/PNFS: minor tidy up code
- [r14264] dcap door: use PnfsId.isValid method to determine if client-supplied identifier is a PnfsId
- [r14275] save values of _useRegex and _allPoolsActive in config file on save command
- [r14278] gPlazma: remove more deadwood
- [r14279] Stripped trailing white space
- [r14290] srm: Remove log4j initialization
- [r14291] xrootd: Remove old door and mover
- [r14292] FileMetaDataSource: Remove dead code
- [r14293] PnfsManager: Remove getFileMetaData from NameSpaceProvider
- [r14294] PnfsManager: Remove setFileMetaData from NameSpaceProvider
- [r14295] PnfsManager: Remove getStorageInfo method from NameSpaceProvider interface
- [r14296] pool: Fix failure handling in migration module
- [r14302] pool: Add source pool constants to exlude and include expression
- [r14308] pool: Add lifetime predicates to migration module
- [r14309] LinkGroupAuthFile: fix authorisation of linkgroups
- [r14313] fix to s http://rt.dcache.org/Ticket/Display.html?id=5641
- [r14332] logging: Switch to logback
- [r14333] Remove dead code in Replicamanager
- [r14334] junit: Configure logback for unit testing
- [r14335] PnfsManager: Resolve regression for ownership of new files
- [r14337] PnfsManager: Fix NullPointerException in BasicNameSpaceProvider
- [r14338] Webadmin: Include cellservices panel into poolgroupview page
- [r14344] CheckSum: Eliminate diskCacheV111.util.Checksum
- [r14345] Checksum: Avoid PnfsGetChecksumMessage and PnfsGetChecksumAllMessage
- [r14346] srm: Fix error handling in PutCompanion
- [r14347] Xrootd-mover: Use shared server instance for all movers
- [r14348] Xrootd-pool: Remove HangupHandler
- [r14349] Add empty cellInfo.css page
- [r14355] SRM Startup: add support for a new location of terracotta's dso-env.sh script
- [r14363] Xrootd-pool: Remove filename check in stat
- [r14365] Xrootd-door: Check whether transfer null before setting field
- [r14367] logback: Fix typo in default configuration
- [r14368] srm: Remove 5 second sleep during startup
- [r14370] pool: Fix meta data reconstruction script
- [r14371] jms: Avoid NullPointerException in JMSTunnel
- [r14375] PnfsManager: Remove several checksum related methods from NameSpaceProvider
- [r14376] PnfsManager: Clean up ChecksumCollection
- [r14377] PnfsManager: Remove get/setFileAttribute and getFileAttributeList
- [r14378] pool: Remove FtpProtocol_1 mover and matching ProtocolInfo
- [r14379] pool: Refactor ChecksumModuleV1
- [r14380] libs: Upgrade to Apache Active MQ 5.3.2
- [r14381] scripts: Remove dead code from old config system
- [r14382] xrootd-mover: Remove Exception when closing file after mover timeout
- [r14383] Webadmin: Adding the Pool-Admin Page to the new Webadmininterface
- [r14384] Webadmin: Fixing localization issues on Panels
- [r14385] Webadmin: In Pool Admin now for multiple pools the response String is cutoff for nicer display
- [r14386] Webadmin: Let Admin-Only Links look more like normal links for non admins and add a tooltip
- [r14387] BootLoader: Output errors to stderr rather than stdout
- [r14388] Plotter Application: Committing Code by Tao Long from 3 rb requests, Render code for plot, DAO(Data Access Object) classes for plot, and revised interface for plot
- [r14389] srm: store srm file requests in shared memory
- [r14391] scripts: Fix ca cert import for certs without info file
- [r14398] scripts: Fix ca cert import for certs without info file
- [r14403] Fixing the printSetup: when saving the pool setup (in the admin interface) the section
- [r14405] webdav: Add space manager support
- [r14407] script: Fix regression in import commands
- [r14408] First update to plot code
- [r14411] scripts: Move legacy code from services.sh to migration script
- [r14412] scripts: Move legacy code from services.sh to migration script
- [r14413] scripts: Renamed services2.sh to services.sh
- [r14414] scripts: Remove old unused scripts
- [r14415] Pool: Fix local host name lookup regression
- [r14416] Transfer: Add missing features needed for FTP
- [r14417] ftp: Fix socket leak in ActiveAdapter
- [r14428] build: make use of maven task to handle dependencies
- [r14429] srm: Retry on pin timeout during bring online request
- [r14430] bootloader: Refactor interaction between BootLoader and shell
- [r14431] second update of plot code
- [r14432] plots, : fix typo in SVGDocument.java
- [r14433] plots: slight modification in line plot rendering
- [r14434] Billing plots httpd engine
- [r14436] plots: rendering fix
- [r14437] plots: added hitinfo and customized plots to billing httpd engine
- [r14438] ftp: Refactor interaction between FTP door and ProxyAdapter
- [r14439] ftp: Refactor transaction log reference
- [r14440] Fixing a protected static value into a protected final static one
- [r14441] ftp: Refactor file transfer related code to use Transfer class
- [r14442] scripts: Move declaration of common paths to properties file
- [r14443] ftp: Add additional status messages
- [r14444] doors: Let Transfer class display host name rather than address
- [r14445] doors: Update Transfer class to log hostname in billing
- [r14446] ftp: Make door interruptible during directory listing
- [r14447] ftp: Simplify performance marker configuration
- [r14448] ftp: Use SLF4J directly
- [r14450] ftp: Spring cleaning
- [r14459] add a couple of extra unit-tests for documented example HSM URIs
- [r14460] Remove dead code
- [r14461] scripts: further reduce DCACHE_HOME usage
- [r14462] build: fix creation of defaults/classpath.properties file
- [r14463] Webadmin: Refactoring move functionallity from poolsdao to domainsdao
- [r14464] deploy: add a ant task to generate eclipse project files
- [r14465] Webadmin: Add a celladmin page which is able to send a user-typed command to any dcache cell and get the response displayed
- [r14466] Webadmin: Wrote a LegacyUrlHandler to redirect legacy Urls to the new webadmin
- [r14467] srm with terracotta: resolve memory management issues, set scheduler id to null only in the "owner" jvms
- [r14468] fix declaration of ourHomeDir property
- [r14469] dcap build process configure error with no value set for LD_LIBRARY_PATH preventing globus plugin being detected as possible to compile
- [r14470] reverting patch applied in error
- [r14471] migration: fix dCacheSetup --> dcache.conf for multiple assignments
- [r14476] Webdav: Fixed a missing typecast and added super to calls of inherited methods since they are available in the outer class, too
- [r14477] Another Findbugs bug: changing a new Exception() to THROW new Exception
- [r14478] build: quieten jpox enhancer
- [r14479] Fixing a possible NullPointerException / bug in PoolV4
- [r14480] Fixing another protected static one to be final in Plots code
- [r14481] scripts: fix loadConfig error message
- [r14482] scripts: add kill marker when shutting down
- [r14485] Remove of dead code and uneccessary calls of toString on a String in the Protocollcode
- [r14486] Implements equals() and hashcode for beans that already implement compareTo(), following the guideline :
- [r14487] Activate Findbugs for webadmin
- [r14488] Removing a lot of findbugs errors (unneccessary calls of toString on Strings) in many classes
- [r14489] Introduced logging on previously ignored Exceptions - another blow on findbugs!
- [r14490] Webadmin: Get legacy behaviopur for firefox browser on info.xml direct access
- [r14491] Ticket #5690:
- [r14492] acl: make acl cell a Spring bean
- [r14493] libs: Upgrade to Spring Framework 3.0.4
- [r14494] Removed empty directory
- [r14495] pool: Improve error message in case of p2p file size mismatch
- [r14496] Xrootd-mover: Disconnect idle clients with open files after timeout
- [r14497] pool: Improve concurrency of CacheRepositoryV5
- [r14498] pool: Improve concurrency of repository
- [r14499] fix forgotten throw before a new Exception
- [r14500] Fixing failing Unittests
- [r14501] dcap packaging fixes, some files where removed preventing rpm build succeeding
- [r14502] Deleting GBillingSQL and GBillingSQLV2, since they are causing a lot of duplicated code warnings and a GBillingSQLV3 exists
- [r14503] plots: add link to Billing Plots
- [r14504] Webadmin: Make all pages accessable without authentification which were accesible in legacy like this
- [r14505] JMS: Upgrade to Active MQ 5.4
- [r14506] srm with terracotta: make AtomicCounter _stateChangeCounter transient
- [r14507] pool: Refactor MetaDataRecord cache logic
- [r14508] sl4j: Upgrade to version 1.6.1 and use Maven
- [r14510] jetty: Upgrade to version 20100715 and use Maven
- [r14511] libs: Upgrade to Berkeley DB JE 4.0.103 and use Maven
- [r14512] JMS: Resolve race condition in ARP lookup
- [r14513] JMS: Ensure that Timer is created within the correct context
- [r14514] JMS: Ensure that CDC is initialized
- [r14516] PinManager: Use toplink.application-location property
- [r14517] Install.sh: Use dcache.paths.config instead of ${DCACHE_HOME}/config
- [r14520] plots: add a desription document
- [r14521] Webadmin: Adding a login and a logout link to webadmin-homepage
- [r14522] source: remove obsolete http door
- [r14523] Xrootd-mover: Redirect client back to door for stat[x] and protocol requests
- [r14524] nfsv41: door: remove code provided by OncRpcSrv
- [r14525] nfsv41: switch to nfs engine version 0.0.2
- [r14526] core: encapsulate pool manger and pool interaction into Transfer class
- [r14527] nfsv41: make use of Transfer class
- [r14528] pool: Replaced JEXL by custom expression language
- [r14529] Fixing a dodgy use of a protected static constant
- [r14530] nfsv41: publish nfs door in LoginBroker
- [r14531] scripts: remove assumption about location of dcache.jar file
- [r14536] Removal of dead code ( ReplicaDbV0 )
- [r14539] srm: add options for storing srm request in db only once upon completion and not using database for request storage at all
- [r14540] pool: Implement onflush checksum computation
- [r14541] Add asynchronous GSI connector for Jetty
- [r14542] Add unit tests for SimpleGSIEngine
- [r14543] pool: Enable pool readonly while loading entries
- [r14544] eplace "state not in (1,2)" where clause with "state=0" to speedup
- [r14545] jms: Fix cell fragment for legacy embedded-jms broker
- [r14549] build: do not use tgz version of axis
- [r14555] Update netty to latest version and change to maven
- [r14558] Webadmin: Adding a configurationparanmeter to run fully without authentication
- [r14559] pool: use PoolIORequest as job for IoQueueManager
- [r14560] Webadmin: Making login/logut links clickable only when authmode is activated and not render admin only button on poolusagepage
- [r14561] Webadmin: Setting the PoolSpacePanel as selected by default on PoolGroups Page
- [r14563] JettyGSIConnector: Automatically refresh host certificates/trust anchors
- [r14564] SRM door: Make type of GSI connector configurable
- [r14565] Ant-build: Upgrade netty dependency to 3.2.2.Final
- [r14566] Xrootd-door: Replace deprecated netty method invocations
- [r14567] fix typos "becase" -> "because" http://rb.dcache.org/r/2406/
- [r14570] SRM-door: Fix mixup in instantiation of jetty connectors
- [r14571] dcap: use RemoteLoginStrategy only in case of strong authorization
- [r14572] nfsv41: make use of Transfer.selectPoolAndStartMover()
- [r14573] Webadmin: Fixing display of the PoolSpaces
- [r14574] migration: Fix white space handling for identifiers in expressions
- [r14575] info-provider: Fix typo in shell script
- [r14576] PoolManager: Implement rebalance command
- [r14577] srm: Move initialization code to Spring
- [r14580] Async Jetty GSI connector: Adapt output buffer size to avoid overflow
- [r14584] Xrootd pool request handler: Redirect client back to door for more requests
- [r14585] cells: Change error handling for String commands
- [r14593] dcap: name_invalid error throwing
- [r14607] pool: Fix race in MetaDataCache
- [r14609] external: remove unused axis tar file
- [r14618] srm: fix file locality if file sitting on write pool
- [r14623] srm: Move file locality logic to PoolManager
- [r14624] webadmin: updated property-files to have "better" English in them
- [r14625] webadmin: hide select box for non admins on space usage page
- [r14642] srm: Fix ls compatibility with old dcache srm clients
- [r14645] scripts: fix chimera-cli.sh
- [r14647] webadmin: renaming from fuzzy XMLProcessor to XmlToObjectMapper
- [r14648] webadmin: adding missing tests
- [r14657] srm: Skip RQUEUED and READY states for ls
- [r14658] cells: Fix help message regression
- [r14659] scripts: fix chimera-cli.sh logging
- [r14661] webadmin: clenups
- [r14663] bump patch number