-
Notifications
You must be signed in to change notification settings - Fork 149
/
PreReleaseNotes.txt
230 lines (224 loc) · 13.2 KB
/
PreReleaseNotes.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
======
XRootD
======
Prerelease Notes
================
+ **New Features**
* Add mv command to frm_admin.
* Allow remote debugging via the xrootd.diglib directive.
* Add --noszchk to copy options to allow dynamic file copying.
* Add timezone offset method to XrdSysTimer.
* Add XrdSysUtils::FmtUname() to get platform readable uname.
* Print uname on start-up and at midnight.
* Allow query of current role and dynamic cms state via kXR_query.
* Provide a non-deprecated way of specifying source checksums
via xrdcp et. al.
* Enable locate to return host names not just ip addreses.
* Implement query config chksum to return supported chksum name.
* Provide a mechanism to manually control log file rotation via -k.
* Add -z option to enable high recision log file timestamps.
This update requires plug-in writer to recompile.
* Serialize client initialization to prevent race conditions
resulting in aborts when using sss authentication protocol.
* Provide a mechanism to allow the client to indicate additional
capabilities regarding redirection.
* Enhance the errorinfo object to be able to return longer response
data as well as to communicate client capabilities. This change
requires users of this object to recompile (i.e. most plugins).
* Add version as a variable that can be returned by kXR_Qconfig.
* Add implementation defined fctl() at file level (kXR_Query+kXR_Qopaqug).
This changes the SfsInterface vtable and requires recompliation.
* Add sitename as an argument to kXR_Query+kXR_Qconfig.
* Enhance XrdSfsInterface to allow for exchange buffer I/O to minimize
data copying for those plug-ins that can do so. This changes the
vtable which requires recompliation of sfs-based pug-ins.
* Add location information to XrdNetAddr for future use. This changes
the XrdLink's vtable and requires recompilation for its use.
* Add SFS interface to allow use of sendfile() without revealing the
underlying file descriptor. This is an ABI change to SfsInterface
and required recompliation of sfs-based plugins.
* IPV6 support. This requires changes to the security authentication
plugins (done for all native plugins) and recompilation of all
other plugins. Please read docs/README_IPV4_To_IPV6 for details.
* Add new command, xrdmapc, to display the topology of a cluster.
* Add setSF() method to the bridge to allow brdiged protocols to disable
using sendfile() for an open file (nenecassry for https wgets).
* Write on a '.env' file to record execution environment. This is to
allow automatic collection of debugging information.
* Add AtomicZAP() to avoid gcc warnings about "no effect" statements on
platforms that do not have builtin atomic operations.
* Merge xrdhttp with origin to facilitate http protocol implementation.
* Implement the kXR_dstat option for kXR_dirlist which is necessary
for WEBDAV requests via the bridge.
* Add the StatPF method to the oss plugin. This is used by the frm for
Performance reasons if it as actually implemented.
* Add new class to quickly generate stream ID's.
* Define a new plug-in to allow replacement of the stat() function when
used to determine exported file characteristics. This plug-in is meant
to be used by tape-backed file systems that identify offline files in
odd ways (e.g. GPFS). Patch assumes XRDROLE patch below.
* Export the basic role via envar XRDROLE.
* Recognize /dev/null and /dev/zero as special files. This sets the
protocol type to isDevNull or isDevZero, respectively.
* Add ability to automatically return stat information when reading
a directory. This makes the sfs and oss interfaces ABI incompatible
requiring only a recompilation. This patch is logically part of the
readv passthrough patch. Plugin writes may wish to add their own
implementation of this feature. It is implemented in the standard
ofs and oss plugins.
* Implement full readv-passthru for enhanced performance (B. Bockleman,
UNL). This breaks SFS and OSS plugin ABI compatibility. It also
introduces a new method to the POSIX interface.
* Allow NSWalk error messages to be routed to stderr for use by command
line tools.
* Add a disconnect record to the f-stream.
* Add --infiles option to xrdcp (and follow-ons) to accept a list of input
files via an external file. For the current xrdcp only 1 input file is
allowed (xrdcopy has no such restriction).
* Allow autloading of checksum plugins (this is for clients).
* Make it obvious that version info is mandatory (use references).
* Add new object to format and route error messages to multiple
destinations.
* Allow clients to easily load checksum objects via XrdCksLoader object.
* In xrootdfs, allow users to use multiple physical connections.
+ **Major bug fixes**
* Avoid SEGV after an error occurs during a stat() call. This should be
bakported for any new 3.3.x release.
* Make sure monitoring is initialized if it was enabled in any way
to avoid SEGV when an odd combination of choices was selected.
* Avoid SEGV and double free introduced by patch 30ad01b9 (set host).
* Make sure protocol sss sets hostname. Fully reconstruct hostname
to prevent sss auth failure when nodnr is in effect.
* Correct default implementation of writev to use write.
* Correct XrdNetAddr::Map64() to set correct protocol in converted address.
Without this fix it is almost impossible for an IPV4 client to use only
IPV6-to-IPV4 mapped methods.
* Make sure that the old client runs only in IPV4 mode as mixing modes does
not work for a variety of reasons. This fixes the sss problem.
* Accept old-style as well as new-style IPV6 addresses in the sss
protocol. This allows the new client to use this protocol after
it implemented IPV6 support.
* Prevent SEGV in NetAddrInfo copy constructor (via Serge Monkewitz).
* Prevent invalid mutex operations in auto-termination routine.
Fix provided by Serge Monkewitz.
* Correct timeout code in old client intrudced by patch 0f86c164.
* Correct assignment operator and copy constructor in XrdNetAddr.
* Use the original version of the cmsd port discovery algorithm to
keep compatability with previous versions.
* Prevent SEGV when comparing for '+' host extensions.
* Prevent SEGV when deleting the Secsss keytab due to Linux issues.
* Merge in commit 4085a4 from apeters to prevent SEGV's when reusing a
recycled protocol object under certain conditions.
* Resolve naming conflicts within the frm that resulted from the
statlib plugin implementation.
* Fix race condition when adding a new channel to a poll set. This only
affected MacOS. Revert the timeout mutex to be a simple non-recursive
mutex. Produce an event trace when the envar XrdSysIOE_TRACE is set.
* Avoid lock inversion when handling the timeout queue in the presence of a
timeout callback. This may cause a deadlock.
* Prevent SEGV when freeing the DS/DI arguments list.
* Fix various parse issues in CpConfig. Allow -T {first|only}.
* Do not rely in file locking to serialize inter-thread access. This
fixes the prolem of usage file drift.
* Correct calculation of polltab entries when using poll() type poll.
This fixes MacOS bug 99882.
* Fix various parse context issues in copy config with --recursive.
* Only use the callback dispatcher ending state to determine whether the
channel should be excluded from the poll set to avoid referencing
deleted memory should the callback delete its own channel.
* Recognize object deletion in the error handling path.
* Add missing return statement to avoid SEGV during write error recovery
under certain circumstances. Fixes bug 99002.
* Add mutex serialization so as not to use only fcntl() locking
as a synchronization primitive across threads. It doesn't work
in Linux.
+ **Minor bug fixes**
* Avoid initilialization failure on strictly ipv4 kernels.
* Do not remove the last trailing slash from file paths. This prevents
Copying into a auto-created directory.
* Restore original meaning of -adler and -md5 to xrdcp. These are legacy
options that always locally computed the checksum and printed it.
* Fix file descriptor leaks.
* Correct option parsing to prevent possible SEGV.
* Strip off opaque information from dest filename when copying to local
filesystem. This only affects xrdcp.
* Use AtomicZAP when the data source is not needed to avoid compilation
Issues on platforms that don't have atomic primitives.
* Fix tiny memory leak during sss client initialization.
* Use corresponding struct name in memset size to clear the whole area.
* Gaurd against SEGV when frm_purged started with no purgeable paths.
* Ruggedize the poll() wait to avoid early timeouts under heavy loads.
* Pass back any close errors from the oss layer to the client.
* Correct feature interaction that caused a file to be closed twice.
* Add missing 1 letter xrdcp options: -N for --nopbar and -X for --xrate.
* Fix memory leak and prevent nodnr from failing a TPC rendezvous.
* Make redir CGI available for use in second tpc open and make xrdcp use
it.
* Avoid putting two question marks in xrdcp cgi information.
* Correct tpc protocol sequence for xrdcp.
* Do not use static structs when refering to stack allocated variable.
* Do not create the PrepQ Netsg object in the constructor as this may
cause a SEGV should that fail as the PrepQ object is a static global.
* Avoid garbled message by using stable storage for message insert.
* Fix a post 3.1.1 regression that dropped "refresh" from kXR_locate.
* Allow extended host specification as input to TPC.
* Add missing instance of XrdPosixXrootd to allow local calculation
of checksum for a remote file and increase read size to 1MB. This
completes fix for problem 99711.
* Do not reflect an error if we actually ended a successful checksum.
This only applies to checksums that are externally computed and
partially solves problem 99711.
* Make sure to include unistd.h, this is a problem when this header
is independently used. Patch by Brian Bockelman, UNL.
* Fix garbled plugin message.
* Avoid lost memory and correct computation of env length. This also fixes
bug 99375.
* Correct midnight calculation to properly account for time shifts.
* Make sure error messages generated in a fork during stream execution
appear in the log.
* Return error message text to the client when a checksum fails.
* Reject checksums on anything that isn't a regular file.
* Allow for null fields in the cgi string.
* Remove non-atomic AtomicDTZ and AtomicISM macros.
* Do not use AtomicDTZ and AtomicISM so as to keep LinkCount and
LinkCountMax updates truly atomic. The mentioned atomic macros
should be removed at the next release boundary as this will
change a public user interface.
* Properly recognize a loaded checksum as a native checksum.
+ **Miscellaneous**
* Prevent constant server disc/recon events when a manager is busy
doing non-response activity on behalf of the server.
* Add a generic control method to the file/dir and system classes. OSS
plugin writers need only to recompile as a default is provided.
* Allow SendData() to send less than the amount of bytes requested.
* Set reasonable linux thread limit and warn it we cannot do so.
* Scale XrdSysCondVar::Wait(int sec) to a millisecond wait to avoid
Clock tick error.
* Provide a poller pause/resume method to ease forking without spurious
errors.
* Make sure only one fork occurrs at a time to prevent FD leaks.
* Use atomic FD_CLOEXEC where available to prevent FD leaks.
* Allow up to 63 characters for a site name.
* [Accept] Decouple accept() loop from any DNS-related activities.
* Make it possible to return more than 2K via XrdOucErrInfo object.
* Squelch casting complaints from C11 in md5 calculation.
* Add additional methods for IPv6 address handling and change some methods
to better conform to standard calling conventions.
* Make sure to return all nodes in a star locate request.
* Remove conflicting undocumented cmsd options.
* Always load protocols in the specified order.
* Correct issues reported by gcc 4.7.2 (narrowing & pointer comparison).
* Remove errant 'using namespace std'.
* Create a working stat() plugin for gpfs+tape (libXrdOssSIgpfsT.so)
that also serves as a template for writing other such plugins.
* Use the underlying storage system to determine file transfer
status. This resolves inconsistencies when using the new
stat() plug-in for tape backed file systems.
* Use int instead of size_t for things that are truly int. This
Bypasses various compiler warning (affects readv patch).
* Allow stdin as a source in the xrdcp front-end parser. Do not
compute doff for non-local sources.
* Final change to f-stream monitoring. Replace standard deviation
(sdv) calc with reporting sum of squares (ssq) counts.
* Remove beta warning from xrdcp after xrdcpy became xrdcp.
* Pretty up an error message. Required XrdOucERoute patch.