PROOF System
NB: Starting with version 5.32/00, Xrootd
is not distributed any longer with ROOT but has become an external package.
If not avaibable the PROOF modules 'proofx' and 'proofd' will not be built.
The PROOF core modules, however, are built. Namely, PROOF-Lite will be
available even when Xrootd is not.
New functionality
- Creating PAR packages from ROOT data files: it is now possible to
use TFile::MakeProject to create a PAR file to read the file. Details in
here.
- Add support for backend-dependent record formatting of PROOF monitoring.
This is achieved by introducing a new layer, described by the abstract
interface TProofMonSender, with the record format defined in the backend
implemenation (currently TProofMonSenderML, for MonaLisa, and
TProofMonSenderSQL, for SQL backends). Currently three types of records
are sent: 'summary' (derived from what was currently posted), 'dataset',
with entries per dataset processed in the query, and 'files', with
entries per file processed in the query. In SQL terms, each of this
records corresponds to a different table. Sending of any of the three
records can be toggled independently. See also the
web
pages dedicated to monitoring.
- In TProofMgr, add 'ping' functionality to test in non-blocking way if
a PROOF service is listening at a given port of a given host.
Improvements
- In PROOF-Bench, file generation, add the possibility to change
only the generating function, passed as TMacro. Add also check on the
free space on the device and skip file generation if less than 10% or
less than 1 GB.
- Record in TStatus also the max memory usage on the master and printed
via TStatus::Print; this allow a quick visualisation of the overall
memory usage at the end of the query.
- Import version 0.9.6 of afdsmgrd
- Make sure that the name(s) of the processed dataset(s) are registered
in the TFileInfo objects being processed, so that it can be used for
monitoring.
- In XrdProofd, add possibility to skip the checks for the data
directories during session startup, as they may significantly slowdown
the startup process is the medium is busy. In such a case, admins
are responsible to create the directories in advance; the session
releated part fo the path is created by the session once up.
- In XrdProofd, move the check for the username after authentication.
This is because authentication may run some credentials-to-user mapping
which can modify the requested username. This way we really check the
final username and not the one requested by the client, which may even
not exist on the machines. Side modification: when the mapping function
returns more usernames, the username specified by the client is used to
help choosing the effective username among the available choices; if not
match is found the handshake does any longer fail, the first mapped
username is chosen instead.
- In XrdProofd, allow 'xpd.allowedgroups' to control also PROOF
groups, not only UNIX ones.
- In XrdProofd, simplify error
messages in case of login failure because of non-authorization.
- Remove hardcoded additions of dirname(COMPILER) and of
'/bin:/usr/bin:/usr/local/bin' in front of PATH. These uncontrolled
additions could hide specific settings in PATH and be the source of
weird problems appearing in PROOF only.
- Add more flexibility to the definition of the library path seen by
proofserv. So far to avoid ambiguites in some cases, $ROOTSYS/lib was
removed and the one of the ROOT version chosen was added later on in
front, which proved to be to aggressive in some cases.
- All changes (and fixes) needed to build against the version of Xrootd,
now always installed as external.
Fixes
- Fix GetSessionLogs in PROOF-Lite
- Restore correct parsing of "workers=N" in PROOF-Lite
- In Proof-Bench, make sure that it can be run from any directory
and no matter how ROOT was installed
- Fix issue in TProofPlayer::HandleHistogram preventing proper
histogram cleaning right after merging when using TH1::Add; histogram
were still destroyed at the end of the query, but there was no
memory advantage in TH1::Add wrt TH1::Merge.
- Make sure that the performance tree is removed from the output
list when saved to the output file. Solves a segv at quit.
- Decouple from registered TChains in already TProof::Close(); allows
to avoid possible crash at exit ('.q') occuring after the recent
revision of the socket cleanup policy.
- In XrdProofd, fix a few issues with option 'xpd.multiuser'.
- In TXSocket::ProcessUnsolicitedMsg, fix an issue preventig server
messages to be displayed during setup, i.e. when the XrdClientConn
instance is not yet defined.
- In XrdProofd, fix the behavior of the 'xpd.allowedusers' and
'xpd.allowedgroups' directives
(see the dedicated web entry).