dCache/dcache — pull request #1110 by gbehrmann (2014-11-21 08:23:51+00:00)
Title: xrootd: Propagate mover errors to dCache

The patch ensures that failures to close a file or unexpected exceptions
are propagated to the pool and logged in billing. Before this patch, xrootd
transfers were always registered as succesful in billing.

The precise error depends on whether the file was opened with the POSC flag
(Persist On Successful Close) or not. If it was, the file is known to be corrupt
from the point of the view of the client and FileCorruptedCacheException is
reported. If not, a generic error is reported.

The current implementation does not actually delete the file on POSC failures.
This is left for a future patch.

The XrootdProtocolInfo is extended with a flag to inject POSC semantics
independent of whether the client specified this flag. This may be used
in doors to enable a POSC-on-default feature mimicking a similar feature
in the SLAC xrootd implementation. This feature is however not supported
by the door yet.

The patch adds logic to disconnect the client when a server side failure
is triggered. Previously this failure was only logged and the error was
ignored.

Backport to 2.10 is requested because the current behaviour fails to log
errors in billing.

Target: trunk
Request: 2.11
Request: 2.10
Require-notes: yes
Require-book: yes
Acked-by: Karsten Schwank
Patch: https://rb.dcache.org/r/7499/
(cherry picked from commit a6ef4b7080281546ff3f6281bd2101733bb2ebae)

Conflicts:
modules/dcache-xrootd/src/main/java/org/dcache/xrootd/pool/XrootdPoolRequestHandler.java

(cherry picked from commit 46816f0d747f048fdc83a82ca45b7b71c5641b15)