forked from openafs/openafs
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathNEWS
6274 lines (3823 loc) · 198 KB
/
NEWS
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
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
User-Visible OpenAFS Changes
OpenAFS 1.9.0
All platforms
Introduce the rxgk Rx security class, initially limited to server-to-server
traffic and local keys (gerrit topic: rxgk-phase1).
Add options to the vos and pts commands for server-to-server rxgk support.
Add support to add and delete rxgk keys with asetkey. Add support to
generate random keys with asetkey, which can be useful to create certain
types of rxgk keys.
Raise implementation-defined anti-DoS length limits for prdb-related XDR
array types, which were being reached at some sites (13838).
Bring "-setpag" functionality in klog to parity with aklog (14146).
Fix potential Rx hang when an incoming call must wait (14158).
Do not leave empty directories behind in the file server vice partition
when running the "vos zap -force" command (12879, 12839).
Make non-verbose "vos remsite" output output more readable (14127).
Display the usage of simple commands (commands without subcommands) when run
only with the -help option (10983).
Replace SOURCE-MAP with a README.md (14003).
Remove unused definition of LINUX_PKGREL from configure.ac (14117).
Improve logging and diagnostic messages:
* Add a warning message to vos when performing an incremental volume
restore over an existing volume which is newer than the dump
volume (13251)
* Log the binding address and port during startup in the cache manager and
all of the server processes (13272)
* Improve volume server logging to provide better information during
volume restore failures (13252)
* Improved cache manager syslog tracing (11858)
* Improved database server logging to log important messages at the
default logging level, log information during database synchronizations,
and log diagnostic messages during recovery aborts (12617, 13079, 12618)
* Set a thread name for rx listener threads (13600)
* Avoid truncating authentication information in vlserver log
messages (13466)
* Log when ubik recovery aborts a running remote transaction (13862).
Fix warnings issued by static code analyzers:
* Fix possible undefined variable in disconnected mode (13207)
* Remove redundant conditionals (13158, 13157)
* Exit if out of memory while attempting to format command help
messages (13335)
* Fix possible undefined variable when reading old vldb formats (13755)
Assorted memory-handling fixes (13461, 12293, 13355, 13395, 13396, 13161,
13659, 13714, 13715, 13760, 13716, 13761).
Fix many (but not all) of the new warnings issued by recent versions of
gcc and clang (12987..12989, 13010, 13287, 13462..13464, 13467..13468,
13470..13476, 13494, 13660..13664, 13684, 13726, 13754, 14049, 14092,
14106).
Added unit tests for functions mapping vide partition to id (13176).
Fix issues resulting in parallel "make install" to fail (13786, 14137).
Updated libauth test program (13394).
General code cleanup; remove unused code or obsolete code, old comments,
or refactor for clarity
(12988, 13204, 13209, 13210, 13213, 13226, 13227, 13260, 13271, 13277,
13309, 13310, 13324, 13325, 13339, 13345, 13346, 13351, 13361, 13362, 13363,
13390, 13397, 13408, 13414, 13458, 13490, 13500, 13509, 13514, 13557, 13640,
13655, 13282, 13683).
Build system clean up and fixes
(12956, 12961, 12962, 12963, 12992, 12993, 12994, 13237, 13275, 13338,
13357, 13360, 13387, 13419, 13594, 13652).
All server platforms
Improve database server logging by logging messages when and why a server
is marked as down (12616).
Log a warning message when starting server processes with no encryption
keys available (13911).
Remove redundant lseek system calls and use positional I/O in the database
servers to improve performance (12271, 12272).
Fix an edge case where writes were errneously allowed on readonly
fileservers (13934).
Add an option to allow members of system:administrators to perform
write operations on otherwise readonly fileservers (13707).
Allow "vos rename" to be re-run to finish a previously interrupted
volume rename operation (13720).
Take volumes offline during convertROtoRW operations, since volume access
during the conversion can leave it in an inconsistent state (14066).
Do not overwrite the errno variable when logging certain database sendfile
errors (13263).
Code migration to POSIX Threads (pthreads) from LWP.
* Convert upserver and upclient to pthreads (12754)
* Convert xstat libraries and related utilities to pthreads (12745, 12746,
12747, 12753, 13454, 13455)
All client platforms
Attempt to detect and report some common types of cache corruption
(13436, 13747, 13969, 14002).
Require opt-in to use the historical/deprecated single-DES krb5
encryption types, which are being removed from krb5 distributions (13689).
Fix incorrect informational messages when the AFSCELL environment
variable is set (13371).
Fix reading entries of historic vldb formats (13465).
Linux
Be more careful about overriding the current credentials for operations
on cache files, preventing spurious permission errors when systems like
AppArmor and SELinux are in use (13751, 14098).
Avoid panics from procfs when the kernel module is loaded but afsd is
not running (14093).
Improve ppc64le support (13980, 14046).
MacOS
Simplify background-move return-code processing (13280).
Support macOS Catalina (13935, 13936, 13668..13671, 13928, 14062).
Solaris
Remove references to (unspported) SunOS 4 (13506).
Build system fixes for parallel make on Solaris.
Support function attributes when building with recent versions of Solaris
compilers.
Fix many (but not all) of the compiler warnings when building on the Solaris
platform.
Add autoconf support for Studio 12.6 tools (13867).
FreeBSD
General improvements to VFS compliance.
Create destination kernel module directory when installing on
FreeBSD (13653, 13690)).
Add param.h files and sysnames for FreeBSD 11.2 (13534) and 11.3 (13792).
Fix fcntl-style locks by adapting to quirky historical behavior (12579).
Support kernels that use VIMAGE support at runtime, not just at
build-time (12580).
Change LWP stack strategy to avoid SIGBUS errors (13691).
Skip SIGBUS test (for reasons unrelated to the previous) (14145).
OpenAFS 1.8.5
All platforms
* Fix OPENAFS-SA-2019-001: information leakage in failed RPC output
Generated RPC handler routines ran output variables through XDR encoding
even when the call had failed and would shortly be aborted (and for
which uninitialized output variables is common); any complete packets
assembled in the process would be sent to the peer, leaking the contents
of the uninitialized memory in question.
* Fix OPENAFS-SA-2019-002: information leakage from uninitialized scalars
Generated RPC handler routines did not initialize output variables of
scalar (fixed-length) type, since they did not require dedicated logic to
free. Such variables allocated on the stack could remain uninitialized
in some cases (including those affected by OPENAFS-SA-2019-001), and the
contents of uninitialized memory would be returned to the peer.
All server platforms
* Fix OPENAFS-SA-2019-003: fix crash in database servers
The ubik debugging RPCs prioritize being fast and non-disruptive to
database operations over strict correctness, and do not adhere to the
usual locking protocol for data access. A data race could cause a NULL
dereference if the second memory load was not optimized out by the
compiler.
OpenAFS 1.8.4
All platforms
Build system updates to remove obsolete autoconf macros and remove missing
script warning during builds (13480, 13481, 13482, 13483, 13484, 13486,
13789, 13790).
Build system update to fix a conditional check in the pthread.m4 autoconf
file (13595)
Build system update to create the man3 subdirectory, fixing a
reported build failure (13535).
Remove the last reference to src/mcas in the documentation (13558).
All server platforms
Fix fileserver's parsing of the options -vlruthresh, -vlruinterval,
-vlrumax and -novbc (13680).
Fixes to make ptserver's behaviour when run in restricted mode consistent
with the documentation: Non-members of the system:administrators group
are no longer allowed to issue the adduser, setfields and delete pts
commands, and all members of system:administrators are now allowed to
issue pts commands in this mode, not just the admin principal (13686..88).
All client platforms
Fix missing Rx call clean-up after failing to read dcaches from a file
server (13511).
Fix an Rx call leak for calls aborted by a connection abort after the call
was initialized but before use (13517).
Remove the obsolete afs_xosi lock to remove unnecessary serialization of
VOP_GETATTR calls. This can lead to improved performance under heavy
workloads (13529).
Increase the size of the Directory Name Lookup Cache (DNLC) to improve
cache performance (13559).
Fix getting tokens for cells with a three character name (13679).
Avoid a misleading message about the cell being used when aklog is run
with the -cell parameter but the AFSCELL environment variable is set to
a different cell (13676).
Build system update to honor the CFLAGS environment variable when building
libuafs (13544).
Linux
Support for mainline kernels up to 5.3 (13787, 13789).
More fixes for improper use of ENOENT fixes to avoid incorrect use of linux
negative dentry cache, which can lead to false ENOENT errors (13542, 13543,
13590, 13692) (RT #134904).
Return errors instead of returning incomplete directory listings when the
directory objects are incomplete in the cache (13591).
Add ppc64le_linux26 sysname for the ppc64le architecture (13636, 13637,
13589).
Fix configure check for a kernel time function in order to build on
Linux 5.0 (13523).
RPM packaging update for RHEL8 adding a build requirement to ensure the
kernel module can be built from the SRPM (13563) (RT #134900).
On systemd based RHEL/Fedora systems, start the client after dkms startup
is finished if the latter is installed and enabled, to avoid attempting
starts without the kernel module being available yet (13674) (RT #134974).
MacOS
Build system updates for MacOS (13584).
Solaris
Add CTF debugging records to userspace objects to improve debugging
of servers (13487).
Convert the cache manager vnodes to be non-embebbed on Solaris 11 in order
to make the cache manager more resilient across Solaris 11 changes (13524,
13525, 13526, 13527, 13528).
OpenAFS 1.8.3
All platforms
* Improved diagnostics and error messages (13186 13411 13417)
* Avoid sending RX packets with random garbage in the userStatus field
(13332)
* Fixed detection of the RX initialization status (13416)
* Assorted fixes to avoid segmentation faults and other potential problems
by detecting internal errors rather than letting them go unnoticed
(13329 13372)
All server platforms
* Fixed a build problem accidentally introduced in release 1.8.2 (13328)
* Assorted efficiency improvements in the ubik implementation (13153 13218
13188 13353)
* Fixed locking around transaction list processing in volserver to avoid
segmentation faults and other potential problems (13336 13337)
* When the volserver attempts to remove a temporary volume after a
transaction, but the volume was already removed, e.g., by the salvager,
this is no longer treated as an error (13235)
All client platforms
* Update the CellServDB to the latest version from grand.central.org from
May 14th 2018 (13409)
* Avoid a panic during cache initialization when allocating the required
memory fails (13307)
* Add back the packet counters and timestamps to "vos status" output
which had been missing since release 1.8.0 (13421)
* Correctly handle errors encountered while reading data from the server
and writing it to the cache, e.g., due to a full cache partition (13443)
* Avoid a panic due to a recoverable error while flushing cache items
(13503)
Linux clients
* Support mainline kernels 4.20 and 5.0 and distribution kernels with
backports from those (13405 13406 13440 13441 13442)
* DKMS-related fixes in Red Hat packaging (13438 13479)
macOS
* Support building and packaging on macOS 10.14 "Mojave" (13412 13413)
OpenAFS 1.8.2
All platforms
* Fix OPENAFS-SA-2018-002: information leakage in RPC output variables
Various RPC routines did not always initialize all output fields,
exposing memory contents to network attackers. The relevant RPCs include
an AFSCB_ RPC, so cache managers are affected as well as servers.
All server platforms
* Fix OPENAFS-SA-2018-003: denial of service due to excess resource consumption
Various RPCs were defined as allowing unbounded arrays as input, allowing
an unauthenticated attacker to cause excess memory allocation and tie up
network bandwidth by sending (or claiming to send) large input arrays.
* Fix OPENAFS-SA-2018-001: unauthenticated volume operations via butc
On systems using the in-tree backup system, the butc process was running
with administrative credentials, but accepted incoming RPCs over
unauthenticated connections; these incoming RPCs in turn triggered
outgoing RPCs using the administrative credentials. Unauthenticated
attackers could construct volue dumps containing arbitrary contents
and cause these dumps to be restored and overwrite arbitrary volume
contents; afterward, the backup database could be restored to its
initial state, hiding evidence of the unauthorized changes.
Running butc with -localauth now requires authenticated incoming
connections, and the backup utility makes authenticated connections to
the butc. Audit capabilities have been added to the butc RPC handlers.
Command-line arguments are provided to retain the (insecure) historical
behavior until all systems have been upgraded.
OpenAFS 1.8.1.1
Linux Clients
* Support for mainline kernel 4.18 and distribution kernels with backports
from it (13268)
OpenAFS 1.8.1
All Platforms
* Improve the usability and consistency of the public API: install missing
headers, and add additional symbols to the export list for shared libraries.
* Improved Rx abort generation: use the proper serial number for an existing
connection if possible, and 0 otherwise (to improve debugging).
* Assorted minor fixes in response to static analysis of the codebase.
* Fix memory-safety error in XDR decoding of enumerated types.
All Server Platforms
* Fix reference counting error that could cause an assertion failure
in some workloads.
* vldb_check -fix will no longer corrupt the vldb when multiple MH blocks are present.
* Assorted cleanups and efficiency improvements in the ubik implementation.
* Return a valid InlineBulkStatus response in error cases.
* The fileserver now rejects invalid partition names when attaching partitions.
All Client Platforms
* Fix volume callbacks (e.g., when running 'vos release').
* Treat failure to obtain a DSlot as a hard error for that cache partition,
avoiding a flood of "disk cache read error in CacheItems" log messages,
and reducing the chance of subsequent panic.
* Improve error messages for invalid values with -volume-ttl.
* Remove useless error message:
"find_preferred_connection: no connection and !create".
* Avoid passing NULL to a kernel memory deallocator, which is not guaranteed
to be safe on all systems.
Linux
* Add support for 64-bit ARM clients ("arm64").
* Fix panic when cache bypass is enabled.
* Improve cache manager behavior when unable to open cache files.
* Improvements to the RPM packaging.
* Detect out-of-memory when using kernel pages for writing.
Solaris
* Fix various issues in the build process for recent Solaris versions.
MacOS
* Fix clients on OS X 10.13.
FreeBSD / NetBSD / OpenBSD
* Fix panic triggered during periodic cleanup operations and shutdown.
OpenAFS 1.8.0
All Platforms
* Substantial code quality improvements, largely spotted by Coverity and
clang's static analysis.
- Add new library for platform independent functions (opr).
- Remove arbitrary path name length limits.
- Convert to Heimdal's roken library for reliability.
- Avoid garbage in allocated buffers (calloc).
- Modernize signal handling in pthreaded server processes (softsig).
- Improve code comments and additional Doxygen style comments.
- Reduce compiler warnings, dead code, unused variables, and
undefined behavior.
- Fix bugs found by static code analyzer (clang-analyzer).
- Improved unit test coverage.
- Make VLDB flag definitions consistent.
- Improve use of run-time assertions and add static assertions.
- Add compiler attributes to assist static analyzers.
- Clean up include headers in the entire tree.
- Improve command-line handling library (libcmd).
- Replace hash functions with Jenkin's hash function for faster
and more evenly distributed lookups.
- Provide a red-black tree data structure to enable algorithmic speedups.
- Convert backup and salvage servers to the common logging API (libutil).
- Improve volume id data type consistency (VolumeId).
- Import APIs for kerberos-style profile configuration support.
- Add new APIs to support UserList identities.
- Add new APIs to support tabular output from command-line utilities.
- Convert vnode macros to inline-functions.
* Improved support for non-DES encryption types:
- Convert to Heimdal's hcrypto library to support RFC 3961.
- Add extended key file format replacing rxkad.keytab, and
new key management APIs.
- Add support for extended key types to asetkey.
- Add akeyconvert to assist in upgrading to OpenAFS 1.8.x by converting an
existing rxkad.keytab file to an extended key file.
- Do not install the kaserver and related utilities by default to
discourage the use of these DES-dependent components.
- Remove obsolete klogin and klogin.krb programs.
- Add new token APIs to support new rx security classes.
* Migrate from LWP to POSIX threads (pthreads):
- Convert the ptserver and vlserver from LWP to pthreads.
- Remove LWP version of the file server binary.
- Convert afsd, aklog, asetkey, klog.krb5, pts, udebug, and vos, from LWP
to pthreads.
* Improvements to Rx:
- Restructure the Rx API to privatize the implementation.
- Convert rx events to a red-black tree data structure to improve
performance.
- Convert from mutexes to atomic operations for counters to reduce lock
contention.
- Provide per-opcode Rx statistics.
- Add an rx_opaque data type to support non-DES encryption types
and general code cleanup.
- Wake up the application thread after 'twind' is updated to avoid 100ms
transmit delays when the receive window transitions from closed to
open.
- Fix for OPENAFS-SA-2017-001: sanity-check peer transport parmeters
received in ack trailers
* Libraries (both internal and installed) are built using libtool, including
libuafs. The resulting shared libraries for libafsrpc and libafsauthent
should be more usable than previously.
* Improvements to the build system:
- Convert to libtool to build shared libraries.
- Clean up and improve the build system.
- Support out of tree builds.
- Add a makefile target to generate Doxygen source code documentation.
- Link the Java API for OpenAFS with libuafs.a and remove the
libjuafs.a library.
- Always build the rxperf tool.
- Fix man-page generation by make after ./regen.sh -q
- Support the SOURCE_DATE_EPOCH environment variable to improve build
reproducibility.
- Modernize language specific SWIG typemaps for libuafs Perl bindings.
- Refactor acinclude.m4 into a set of smaller m4 files (12876, 12877, 12878)
* Improvements to documentation:
- Document the new KeyFileExt file.
- Reorganized the README files.
- Improvements and fixes to documentation generation.
- Add experimental epub and mobi support
- Remove obsolete LWP information from the file server documentation.
- Update and reorganize the Quick Start Guide.
- Update the Admin Guide.
- Remove AIX, HP-UX, and IRIX information from the Quick Start Guide.
- Document the vldb and prdb (ubik) file formats.
- Add PtLog man page.
- Corrections and clarifications to man pages.
- Add ubik threading analysis doc.
- Normalize the location of text documents in the source tree.
* Improvements for troublshooting, debugging, and testing:
- Log more details on volume-server-to-fileserver communication errors
when possible.
- Set thread names in pthreaded servers on platforms which support
thread names.
- Add dynroot lock tracking to cmdebug
- Fix tracking of an fstrace call site in the cache manager background
process.
- Add the afsload tool to simulate multiple cache managers for file server
load testing.
- Add run-time checks for refcount imbalances in the cache manager.
- Fix missing newlines in afsd -debug output.
* Developer tool improvements:
- Improvements and fixes for rxgen (used to generate Rx RPC bindings).
- Add tool for man page verification of command options.
- Add tool to find Unix cache manager lock identification numbers.
- Add an option for pretty build output.
* RPM packaging updates:
- Update the spec file to keep up with accumulated changes.
- Move the klog.krb5 man page to the openafs-krb5 sub-package.
- Remove stray man pages. (12870, 12871)
- Prevent double-starting client on RHEL7
- Convert rpm spec file from deprecated 'make dest' to 'make install'.
- Fix rpmbuild command line option default handling.
- Support older versions of rpmbuild which do not support the
rpmbuild %exclude directive. (12873)
- Move the legacy kaserver and related programs to separate sub-packages,
which are only built when rpmbuild is given the '--with kauth' option
(12600, 12872)
- Package the libuafs perl bindings (12921)
* Add a new protection error code (PRNAMETOOLONG) instead of silently
truncating names which exceed the maximum name length (PR_MAXNAMELEN).
* Add an implementation limit (50000) on the number of names/ids which can
be transmitted by unauthenticated clients to the ptserver, avoiding
excessive resource consumption from unauthenticated requests.
* Add the -config option to vos, pts, and aklog to specify the path to the
cell configuration files.
* Add more details in vos release -verbose output.
* Add the cacheout -encrypt option to encrypt communication between the
cacheout client and the fileserver.
* Add the command line options to the afsio program to enable encryption of
traffic between afsio and the fileserver (-clear, -crypt).
* Add the vos release -force-reclone option to force recloning the volume to
be released without forcing a full volume dump being transmitted to all
remote sites.
* Fix vos to avoid writing loopback addresses into the VLDB in
certain cases.
* Print bos and pts error messages to standard error instead of
standard out.
* Improve formatting of the -help output of all commands.
* Change -n to -dryrun in all backup subcommands.
* Change the backup deletedump -port command line option to -portoffset.
* Add user and build host in the version string returned by
rxdebug -version.
* Support recent versions of gcc (7.2.1) (12897)
All Server Platforms
* Ubik servers using pthreads are now available and are used by default
* As part of improving Ubik reliability in certain edge cases, an extra
election cycle (about 60 seconds) may be needed before writes are
permitted. This is a conservative change that may be removed in
the future.
* Avoid continually retransmitting the ubik database to remote sites when
a write transaction occurs as remote sites are attempting to rejoin the
ubik cluster. (12896)
* Ensure the ubik database version number is updated on remote sites at the
point the database is transferred to remote sites instead of waiting for
the next ubik beacon. This avoids write transaction failures during the
window between the database transfer and the next ubik beacon (12885).
* Remove periodic background fsync by the fileserver (ihandle fsync thread).
* Fix potential file handle leak in the file server ihandle caching layer.
* Disable the so-called "hot threads" feature in the file server. The hot
threads feature was intended as an optimization for dispatching incoming
calls to the current listener thread, but has been reported to incur a
performance penalty on modern multi-core systems.
* Do not permit creation of users with id of ANONYMOUSID.
* Do not save/restore host states in the fsstate.dat file for hosts which
are in the process of retrieving CPS information from the ptserver when
the fileserver is being shutdown. This fixes a bug in which the fileserver
will incorrectly block all threads following a restart.
* Add the ptserver -restrict_anonymous option to inhibit exposure of user
names from the ptserver.
* Do not truncate server log files by default when server processes
are started. The -transarc-logs option provides backward compatibility
with IBM AFS log handling on server startup. Log messages may be lost
in back-to- back restarts when a server is running in this mode.
* Reopen server logs on SIGUSR1. This may be used by third-party log
rotation tools, such as logrotate, to reopen the log file handles after
log files have been renamed.
* Fix various bugs when logging with -mrafslogs enabled.
* Dynamically reload the kerberos realm to AFS cell mapping (krb.conf) and
exclusions for mapping kerberos principals to AFS identities (krb.excl)
configuration when the CellServDB cell configuration file is touched.
Previously, a restart of the file server was required after updating the
kerberos mapping configuration files.
* Add a command line option (-restricted_query) to the vlserver and
volserver to restrict information queries about volumes to a specific
group of users.
* Add a command line option to the server programs to specify an alternate
fully qualified log file name (-logfile).
* Add a command line option (-config) to the server programs to specify
an alternate path to the server configuration.
* Add a command line option to the ptserver and vlserver to specify an
alternate path to the database data files.
* Add a command line option to the volume server to enable encryption of
volume-server-to-volume-server-traffic (-s2scrypt).
* Increase the maximum number of LWP threads allowed for the ptserver and
vlserver from 16 to 64 (-lwp).
* Remove an unused file server command line option (-k).
* Fix an incorrect assertion in Demand Attach File Server which could cause
the file server process to abort in certain rare conditions.
* Deprecate the -bitmap-later configure option for non-Demand-Attach File
Servers (DAFS).
* Add -vhashsize support to non-Demand-Attach File Servers (DAFS).
* Add support for subnet ranges in the NetInfo and NetRestrict
configuration files.
* Add the GetXStats RPC to the audit log.
* Fix directory creation by bosserver when built for non-Transarc paths.
* Fix incomplete list of server addresses retreived by vos listaddr when the
vldb contains unreferenced multi-homed server entries.
* Remove obsolete bos blockscanner and unblockscanner commands that
were only needed for the removed MR-AFS functionality.
* Remove obsolete bos salvage options that were only used by the
removed MR-AFS functionality..
* Remove calls to the deprecated sbrk() function.
* Add an experimental feature to database servers to support ubik reads
while write transactions are in progress, enabled at build time with the
--enable-ubik-read-while-write configure option. This feature is not
considered ready for production usage at this time.
* Avoid filling the FileLog with "Volume x offline: not in service" when
a volume is administratively taken offline with vos offline.
* Print an error message when bosserver is started with an unknown
command line option.
* Modify the volume updateDate when the volume is changed by a salvage.
* Volume usage statistics are now preserved during reclone and restore
operations by default, the behavior previously enabled by
the -preserve-vol-stats flag to the volserver. The historical behavior
can be retained via the -clear-vol-stats argument.
All Client Platforms
* Use rxkad_crypt by default for connections to fileservers. This matches
the existing behavior of the Windows client and has been applied by
the distribution packaging on many platforms already.
* Add support for relative ACL changes with fs setacl. If a single plus (+)
or minus (-) character is appended to the rights' letters argument, the
new rights are computed relatively to the existing ones.
* Remove afsd -settime and afsd -nosettime support.
* Add the afsd -inumcalc option to specify the method used to calculate
inode numbers presented by AFS.
* Add the afsd -volume-ttl option to specify set the maximum amount of time
information retrieved from the vlserver will be cached, regardless of
callback expiry times.
* Return EIO on internal errors instead of the misleading ENOENT.
* Log ICMP errors received, if any, for unreachable servers.
* Improve performance of clients with multiple PAGs for different cells.
* Fix race condition between changing and using user tokens among cache
manager threads.
* Fix fs sysname for users with UID 2748 and 2750 when not running
in -rmtsys mode.
* Add Perl bindings for the user-space cache manager library (libuafs).
* Fixes to the bypasscache feature.
* Fix fs getcacheparms miscounts.
* Remove the obsolete Netscape plugin.
* Fix building gtx when ncurses is linked against libtinfo.
* Update to the GCO CellServDB update from 14 March 2017.
Linux
* Remove Linux 2.2 and 2.4 support.
* Changes to avoid EIO errors with multiple processes doing intensive mmap
writing. (Drop PageReclaim AOP_WRITEPAGE_ACTIVATE.)
* Prevent fakestat data inconsistencies in certain cases (131855).
* Fix dentry leak which can cause a crash on shutdown.
* Fix improper use of ENOENT and avoid incorrect use of linux negative
dentry cache.
* Use a more correct (less aggressive) scheme to react to downward
pressure on cache usage, avoiding d_invalidate(), which can cause
getcwd() failures on RHEL 7.4.
* Apply a workaround to be compatible with RHEL 7.5's KABI preservation
strategy for reading directories.
* Improve error reporting when encountering corrupt directories.
* Improve rx error handling in the Linux cache manager.
* Rename kpasswd to kapasswd when packaging RPMs to avoid colliding with
Kerberos kpasswd.
* Do not use the obsolete --enable-largefile-fileservers configure option
when packaging RPMs.
* In Red Hat packaging, use a separate rpm for kmod debuginfo,
removing a needless tight version dependency on the userspace package.
(12822, 12875)
* Use the RemainAfterExit systemd feature to avoid premature exit
when -afsdb is not given, for RPM packages.
* Remove Debian packaging files from the OpenAFS source tree. Debian
packaging files are currently maintained in the downstream Debian
infrastructure.
* Add the sparc_linux26 sysname.
* Desupport 32-bit Linux kernels on s390/s390x.
* Fix Debian/Ubuntu build regression on kernel 3.16.39.
* Fix --enable-kernel-debug for linux 4.8+.
* Fix a hang encountered when accessing a previously removed
directory entry (12811).
* Support linux 4.10, 4.11, 4.12, 4.13, 4.14, 4.15
Solaris
* Remove support for all Solaris and SunOS platforms prior to Solaris 8.
* Build 64-bit binaries for Solaris x86 by default.
* Use one-group PAGs on Solaris 11, which is required for PAG support
on Solaris 11 since supplemental groups must be sorted starting with
Solaris 11.1.
* Update search paths for solaris cc for recent versions Solaris Studio.
* Modernize declaration of module dependences by converting from the
deprecated _depends_on symbol to ELF dependencies.
* Avoid BAD TRAP panic due to invalid opcodes on x86 with Studio 12.5.
* Add ctf debug records to Solaris kernel modules when debug builds
are enabled and the ctf tools are present (ctfconvert/ctfmerge).
* Save kernel module function arguments on x86 for debugging purposes.
MacOS
* Stop processing upcalls once rx shutdown starts.
* Enable atomics for the darwin kernel.
* Add a syscall to enable/disable bulkstat at run-time, which is
disabled by default.
* Fix path to binaries in the prefpane.
* Fix builds on MacOS 10.12 by building only the active architecture
by default.
* Support versions up through 10.13 (High Sierra) and APFS
FreeBSD
* Use the native kernel module build system instead of an ad hoc
replacement build system.
* Remove FreeBSD packaging files from the OpenAFS source tree. FreeBSD
packaging files are currently maintained in the downstream FreeBSD Ports
Collection.
* Stay up to date with new FreeBSD releases (through 10.3).
* Do not claim AFS_VM_RDWR_ENV
* Add sysnames and files for i386 and amd64 10.4, 11.1, and 12.0
(12-CURRENT, at present). (12887, 12888)
* Remove trailing semicolons to fix the build on FreeBSD (12899)
NetBSD
* Stay up to date with new NetBSD releases (through 7.x)
* Update to use cprng(9) as the randomness source on NetBSD 6.99/7.x.
* Build system updates for NetBDS 6.99.x
* Do not claim AFS_VM_RDWR_ENV
OpenBSD
* Stay up to date with new OpenBSD releases (through 4.7)
* Do not claim AFS_VM_RDWR_ENV
AIX
* Updates for AIX support.
* Fix build system for AIX exports.
* Add the uidpag and localuid runtime options to the aklog LAM plugin.
(These runtime options override the use of UID-based PAGs, which were
introduced to appease the CDE screensaver.)
OpenAFS 1.6.21
All platforms
* Avoid a possible 100ms transmit delay in the RX protocol when a peer's
receive window transitions from closed to open (12627)
* Documentation improvements (12476 12477 12559[RT #133339])
All server platforms
* When bosserver is started with an unknown option, print an error message
and exit with a non-zero value rather than failing silently (12631)
All DB server platforms
* Hold the DB lock while checking for an aborted write transaction (12516)
All file server platforms
* On demand attach fileservers, don't save or restore a client's host
state if CPS ("Current Protection Subdomain") recalculation for it is
in progress, to avoid fileserver thread exhaustion (12568)
* On demand attach fileservers, avoid flooding the log with error messages,
which could happen when the fileserver was restarted while a volume was
offline (12569)
* Update a volume's "Last Update" time when its content is modified by
the salvager, to make the change visible in the output of "vos examine"
and to backup services (12633)
All client platforms
* Corrected the DCentries bucket counts for very large and zero length
files in the output of "fs getcacheparms -excessive" (12604 12605)
* Fixed a bug that prevented users with GID 2748 and 2750 from executing
the "fs sysname" command on clients running afsd with -rmtsys (12607)
* Provide a new -inumcalc switch for afsd to allow enabling the alternative
MD5 method of inode number calculation, which was previously only
possible on Linux and through the sysctl interface (12608 12632)
Linux clients
* Support for mainline kernel 4.12 and distribution kernels with backports
from it (12624 12626)
* Re-added the improved algorithm for freeing unused vcaches to reduce
memory consumption first introduced with the 1.6.18 release, together
with a fix for the issue leading to its removal in 1.6.18.2 (12448..12451)
macOS clients
* Fixed a crash while stopping the client on macOS 10.12 "Sierra" (12602)
OpenAFS 1.6.20.2
All platforms
* Build fixes required by recent compilers or platforms (12514 12521 12534
12536 12538)
* Allow the bos server to start successfully in the presence of those, by
accepting a now checked return value indicating that the client ThisCell
and CellServDB already exist (12522)
Linux clients
* Support for mainline kernels 4.10 and - most likely - 4.11 and
distribution kernels with backports from them (12530 12588..12590 12598)