forked from openafs/openafs
-
Notifications
You must be signed in to change notification settings - Fork 0
/
NEWS
6532 lines (3985 loc) · 207 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.1
All platforms
* Fix initial Rx Connection ID (CID) generation.
Remove stale initialization and overflow detection logic that resulted
in connection failures due to all CIDs being set to 0x80000002.
(14491, 14492, 14496)
* Fix RPC hangs if a server is restarted while a client is sending
data (13875 13758 13876).
* Fix xstat_cm_test/xstat_fs_test -period option bug introduced
by pthreaded xstats. (14366)
* Fix remote_is_server field in Rx RPC statistics. Before this fix, the
rxstat_get_process and rxstat_get_peer programs reported all RPC stats
as "accessed as a client" (14374).
* Fix an incorrect server type reported by rxstat_get_process and
rxstat_get_peer programs (14375).
* Fix the clock square calculation for stats reported by xstat_fs_test,
xstat_cm_test, rxstat_get_process, and rxstat_get_peer (14376)
* Avoid packet resend delays when ICMP socket errors are
encountered (14424).
* Report RxRPC packet statistics for version packets, that had previously
been ignored (14519).
* Fix various issues detected by static-analyzer tools (13155, 13156,
13163, 13206, 13333, 14501).
All server platforms
* Add support for multiple audit log interfaces and options (13774).
* Fix a directory handle leak in the convertROtoRWvolume procedure
when a new transaction cannot be created (14342).
* Fix out of range memory access when orphaned vnodes are encountered
during salvages (14385).
* Add KeyFileExt and rxkey.keytab access rights checks to the
bosserver and log all access check failures instead of stopping
on the first failure (14239, 14330).
* Fix creation of the bosserver audit log file when the bosserver
is started with the -auditlog option (14381)
* Fix 'bos salvage -forceDAFS' when the DAFS fileserver is stopped (14382).
* Add VL_DBBAD ("Database is inconsistent") error code to indicate vlserver
database inconsistencies, and report VL_DBBAD when unable to remove
deleted vlentries from the database hash chains (13382, 13383)
* Fix possible memory leaks when under memory pressure (13156 13313).
* Fix possible double release of volume locks in vos release
and vos convertROtoRW (14426).
* Fix -partition option requires a -server option checks in vos (14005).
* Take the target read/write volume offline during the conversion
to a read-only volume by vos convertRWtoRO (14340).
* Check for volume lock inconsistencies in vldb_check (14307).
* Document vos restore -readonly option (14348).
* Consolidate implementation of, and more reliably use, logged warnings
for single-DES or missing keys (10831).
All client platforms
* Avoid panic when failing to allocate a new vnode or
failing to write a dcache (13701, 13804).
* Fix double release of afs_xvcb lock (14411).
* Log process name and PID on disk cache read errors (14416).
* Add cache-too-full and wait-for-drain cache manager stats (13168).
* Add afsio readdir and afsio fidreaddir commands to dump
AFS3 directories (12381).
* Fix diagnostic messages from "vos partinfo" to correctly refer to
itself (14489).
Linux
* Fix file leak in background thread regression introduced by
13284 (LINUX: Turn on AFS_NEW_BKG). (13984)
* Avoid getcwd() and bind-mount call errors by returning
errors from the d_revalidate callback (14417).
* Fix 64/32bit compatibility mode checks for Linux 5.11
support (14499, 14500).
* Support Linux 5.12-RC2 (14548, 14549).
Solaris
* Add the OpenAFS provider for the Solaris kstat framework (13170).
FreeBSD
* Import the start of a series of locking and stability fixes developed by
Tim Creech and Andrew Deason that will culminate in a client that
supports FreeBSD 12.2 (13854, 13856, 13858..13860, 13998..14000, 14162,
14373, 14550,
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).
Fix latent bug preventing RX_CONN_NAT_PING from working (13041).
Fix potential rx_connection leak in pthreaded programs (13042).
Avoid NatPing storm with many connections to the same server (14312).
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).
Improve documentation of minimum required dependency versions (14305).
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, 14207, 14273, 14277, 14274, 14275, 14279, 14292, 14125).
Added unit tests for functions mapping vice 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, 13995, 14218, 14219, 14236, 14246, 14322, 14338).
Build system clean up and fixes
(12956, 12961, 12962, 12963, 12992, 12993, 12994, 13237, 13275, 13338,
13357, 13360, 13387, 13419, 13594, 13652, 14115, 14148..14150, 14132,
14133, 14135, 14153).
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).
Fix use of triple-DES cell-wide keys for rxkad.krb5 (14203).
Remove redundant lseek system calls and use positional I/O in the database
servers to improve performance (12271, 12272).
Fix option parsing to enable parallel salvageserver operation (14201).
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).
Return errors for short reads during volume dumps instead of silently
padding with NUL bytes (14255).
Work around potential deadlocks when the salvageserver spawns a child
at the same time another thread is writing to the log (14239).
Do not overwrite the errno variable when logging certain database sendfile
errors (13263).
Avoid confusing log message ("Unable to create the volume") when
restoring over an existing volume (14208).
Fix vldb listing of created-but-not-released RO replicas (14154).
Avoid confusing "half-locked" state for interrupted volume renames (14157).
Prevent attempts to grow the VLDB past the maximum 2GB size (14180).
Fix a bug that prevented logging of discarded callbacks (14256).
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).
Log a warning when the cache is "stressed" (almost full) to suggest
possible re-tuning (13255).
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).
Assorted cleanup and microoptimizations (12655, 13254, 12656, 13253, 14241,
13256, 14254).
Tidy up the shutdown sequence, closing some memory leaks and not
generatin Rx traffic while Rx datastructures are being deconstructed
(13718, 13719).
Fix reading entries of historic vldb formats (13465).
Suppress warning about running unauthenticated for `bos -noauth` (14306).
Linux
Support upstream kernels through Linux 5.9.
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).
Improve RPM packaging (14114, 14116, 14266)
MacOS
Simplify background-move return-code processing (13280).
Support macOS Catalina (13935, 13936, 13668..13671, 13928, 14062, 14222).
Add OpenAFS.pkg to the list of files to be codesigned (14221).
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), 11.3 (13792),
and 12.1 (13982).
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.6
All platforms
* Address warnings and errors encountered when building OpenAFS with
modern compilers like gcc9 or recent clang (13727..45 13749..50 13756
13846 13879)
* Avoid some rare cases of Rx calls getting stuck in the incoming queue
(13892)
* Display the usage of simple commands (commands without subcommands) when
run only with the -help option (13894)
* Fix a memory leak in the cache manager and the fileserver while
processing "fs uuid" or "fs setcbaddr" (13899)
* Fix a memory leak when reopening krb local realms configuration (13900)
* Avoid possible crashes when freeing kerberos contexts (13902)
All server platforms
* Do not leave empty directories behind in the file server vice partition
when running the "vos zap -force" command (13897)
* Fix "vos zap -force" failures when the volume being zapped does not have
an entry in the fileserver's volume group cache (e.g., during fileserver
startup) (13896)
* Relax the length limits on some membership lists used in ptserver RPCs,
introduced in release 1.8.0 to prevent denial of service attacks, to
accommodate use cases of some larger existing sites (13844)
* Improved diagnostics and error messages (13898 13906..8 13938)
* Ensure that fileservers running in readonly mode actually reject all
write requests, but introduce a -admin-write switch allowing writes
by members of the system:administrators group (14018 14019)
All client platforms
* Require the -insecure_des switch to be passed to aklog and klog.krb5
to make them work with single-DES encryption types (13791)
* Avoid a panic due to a retryable error - retry in a background request
instead (13847)
* Avoid blocking other functions on the completion of some potentially
long-running RPCs issued by the server (13893)
* Fix a potential memory leak in "fs getserverprefs" when the pioctl fails
with E2BIG (13895)
* Avoid the local cache incorrectly reflecting the state of a file on the
fileserver after flushing large chunks of data to the server. This
issue was present on FreeBSD clients, but probably not Linux/Solaris
ones (13951) (RT #135041)
* After a VLDB lookup of a read-write volume already failed, don't bother
looking up corresponding read-only or backup volumes since those lookups
are bound to fail, in order to make the client more responsive and
avoid unnecessary load on the vlserver (13968)
* Allow a "vos rename" to succeed if the new volume name is the same as
that in the current VLDB, to make it possible to complete a previously
interrupted volume rename (14055)
* Allow processes which are sleeping due to PAG throttling to be killable
(13974).
* Fix set PAG failures due to signals (13975).
Linux clients
* Support mainline kernels up to and including 5.7 (14069 14094 14095
14209 14210)
* Make builds succeed with --enable-checking for mainline kernels
5.3-rc2 and later (13910)
* Avoid possible deadlocks (13748 13765)
* Fix build of libuafs on ppc64le (14104)
* Fix build on certain recent 32-bit distributions (14234) (RT #135084)
macOS
* Support building, packaging and notarization on macOS 10.15 "Catalina"
(14031..7 14068)
Microsoft Windows
* Build fixes (13848..52)
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