Whamcloud - gitweb
use special macro for print time_t, cleanup in includes.
[fs/lustre-release.git] / lustre / ChangeLog
1 tbd  Sun Microsystems, Inc.
2        * version 1.8.0
3        * Support for kernels:
4         2.6.16.54-0.2.5 (SLES 10),
5         2.6.18-53.1.14.el5 (RHEL 5),
6         2.6.22.14 vanilla (kernel.org).
7        * Client support for unpatched kernels:
8         (see http://wiki.lustre.org/index.php?title=Patchless_Client)
9         2.6.16 - 2.6.21 vanilla (kernel.org)
10        * Recommended e2fsprogs version: 1.40.7-sun1
11        * Note that reiserfs quotas are disabled on SLES 10 in this kernel.
12        * RHEL 4 and RHEL 5/SLES 10 clients behaves differently on 'cd' to a
13         removed cwd "./" (refer to Bugzilla 14399).
14
15 Severity   : enhancement
16 Bugzilla   : 14929
17 Description: using special macro for print time and cleanup in includes.
18
19 Severity   : normal
20 Bugzilla   : 12888
21 Description: mds_mfd_close() ASSERTION(rc == 0) 
22 Details    : In mds_mfd_close(), we need protect inode's writecount change 
23              within its orphan write semaphore to prevent possible races.
24
25 Severity   : minor
26 Bugzilla   : 14929
27 Description: Obsolete CURRENT_SECONDS and use cfs_time_current_sec() instead.
28
29 Severity   : minor
30 Bugzilla   : 14645
31 Frequency  : rare, on shutdown ost
32 Description: don't hit live lock with umount ost.
33 Details    : shrink_dcache_parent can be in long loop with destroy dentries,
34              use shrink_dcache_sb instead.
35
36 Severity   : minor
37 Bugzilla   : 14949
38 Description: don't panic with use echo client
39 Details    : echo client pass NULL as client nid pointer and this produce null
40              pointer dereference.
41
42 Severity   : normal
43 Bugzilla   : 15278
44 Description: fix build on ppc32
45 Details    : compile code with -m64 flag produce wrong object file for ppc32.
46
47 Severity   : normal
48 Bugzilla   : 12191
49 Description: add message levels for liblustreapi
50
51 Severity   : normal
52 Bugzilla   : 13380
53 Description: fix for occasional failure case of -ENOSPC in recovery-small tests 
54 Details    : Move the 'good_osts' check before the 'total_bavail' check.  This 
55              will result in an -EAGAIN and in the exit call path we call 
56              alloc_rr() which will with increasing aggressiveness attempt to 
57              aquire precreated objects on the minimum number of required OSCs.
58
59 Severity   : major
60 Bugzilla   : 14326
61 Description: Use old size assignment to avoid deadlock
62 Details    : This reverts the changes in bugs 2369 and bug 14138 that introduced
63              the scheduling while holding a spinlock.  We do not need locking 
64              for size in ll_update_inode() because size is only updated from 
65              the MDS for directories or files without objects, so there is no 
66              other place to do the update, and concurrent access to such inodes 
67              are protected by the inode lock.
68
69 Severity   : normal
70 Bugzilla   : 14746
71 Description: resolve "_IOWR redefined" build error on SLES10
72
73 Severity   : normal
74 Bugzilla   : 14763
75 Description: dump the memory debugging after all modules are unloaded to
76              suppress false negative in conf_sanity test 39
77
78 Severity   : enhancement
79 Bugzilla   : 15316
80 Description: build kernel-ib packages for OFED 1.3 in our release cycle
81
82 Severity   : minor
83 Bugzilla   : 13969
84 Frequency  : always
85 Description: fix SLES kernel versioning
86 Details    : the kernel version for our SLES 10 kernel did not include a "-"
87              before the "smp" at the end.  while this was not a problem in
88              general, it did mean that software trying to use the kernel
89              version to try to detect a vendor specific kernel would fail.
90              this was most evident by the OFED build scripts.
91
92 Severity   : normal
93 Bugzilla   : 14803
94 Description: Don't update lov_desc members until making sure they are valid
95 Details    : When updating lov_desc members via proc fs, need fix their
96              validities before doing the real update.
97
98 Severity   : normal
99 Bugzilla   : 15069
100 Description: don't put request into delay list while invalidate in flight.
101 Details    : ptlrpc_delay_request sometimes put in delay list while invalidate
102              import in flight. this produce timeout for invalidate and sometimes
103              can cause stale data.
104
105 Severity   : minor
106 Bugzilla   : 14856
107 Frequency  : on ppc only
108 Description: not convert ost objects for directory because it's not exist.
109 Details    : ll_dir_getstripe assume dirrectory has ost objects but this wrong.
110
111 Severity   : normal
112 Bugzilla   : 12652
113 Description: Add FMODE_EXEC file flag for SLES10 SP1 kernel.
114
115 Severity   : enhancement
116 Bugzilla   : 13397
117 Description: Update to support 2.6.22.14 vanilla kernel.
118
119 Severity   : normal
120 Bugzilla   : 14533
121 Frequency  : rare, on recovery
122 Description: read procfs can produce deadlock in some situation
123 Details    : Holding lprocfs lock which send rpc can produce block for destroy
124              obd objects and this also block reconnect with -EALREADY. This isn't
125              fix all lprocfs bugs - but make it rare.
126
127 Severity   : enhancement
128 Bugzilla   : 15152
129 Description: Update kernel to RHEL5 2.6.18-53.1.14.el5.
130
131 Severity   : major
132 Frequency  : frequent on X2 node
133 Bugzilla   : 15010
134 Description: mdc_set_open_replay_data LBUG
135 Details    : Set replay data for requests that are eligible for replay.
136
137 Severity   : normal
138 Bugzilla   : 14321
139 Description: lustre_mgs: operation 101 on unconnected MGS
140 Details    : When MGC is disconnected from MGS long enough, MGS will evict the
141              MGC, and late on MGC cannot successfully connect to MGS and a lot
142              of the error messages complaining that MGS is not connected.
143
144 Severity   : major
145 Frequency  : on start mds
146 Bugzilla   : 14884
147 Description: Implement get_info(last_id) in obdfilter.
148
149 Severity   : normal
150 Frequency  : occasional
151 Bugzilla   : 13537
152 Description: Correctly check stale fid, not start epoch if ost not support SOM
153 Details    : open with flag O_CREATE need set old fid in op_fid3 because op_fid2
154              overwrited with new generated fid, but mds can anwer with one of these
155              two fids and both is not stale. setattr incorectly start epoch and
156              assume will be called done_writeting, but without SOM done_writing
157              never called.
158
159 Severity   : major
160 Frequency  : rare, depends on device drivers and load
161 Bugzilla   : 14529
162 Description: MDS or OSS nodes crash due to stack overflow
163 Details    : Code changes in 1.8.0 increased the stack usage of some functions.
164              In some cases, in conjunction with device drivers that use a lot
165              of stack the MDS (or possibly OSS) service threads could overflow
166              the stack.  One change which was identified to consume additional
167              stack has been reworked to avoid the extra stack usage.
168
169 Severity   : normal
170 Frequency  : occasional
171 Bugzilla   : 13730
172 Description: Do not fail import if osc_interpret_create gets -EAGAIN
173 Details    : If osc_interpret_create got -EAGAIN it immediately exits and
174              wakeup oscc_waitq.  After wakeup oscc_wait_for_objects call
175              oscc_has_objects and see OSC has no objests and call
176              oscc_internal_create to resend create request.
177
178 Severity   : enhancement
179 Bugzilla   : 14858
180 Description: Update to SLES10 SP1 latest kernel-2.6.16.54-0.2.5.
181
182 Severity   : enhancement
183 Bugzilla   : 14876
184 Description: Update to RHEL5 latest kernel-2.6.18-53.1.13.el5.
185
186 Severity   : normal
187 Frequency  : very rare
188 Bugzilla   : 3462
189 Description: Fix replay if there is an un-replied request and open
190 Details    : In some cases, older replay request will revert the
191              mcd->mcd_last_xid on MDS which is used to record the client's
192              latest sent request.
193
194 Severity   : enhancement
195 Bugzilla   : 14720
196 Description: Update to RHEL5 latest kernel-2.6.18-53.1.6.el5.
197
198 Severity   : enhancement
199 Bugzilla   : 14482
200 Description: Add rhel5 support to HEAD.
201
202 Serverity  : enhancement
203 Bugzilla   : 14793
204 Description: Update RHEL4 kernel to 2.6.9-67.0.4.
205
206 Severity   : minor
207 Frequency  : rare
208 Bugzilla   : 13196
209 Description: Don't allow skipping OSTs if index has been specified.
210 Details    : Don't allow skipping OSTs if index has been specified, make locking
211              in internal create lots better.
212
213 Severity   : normal
214 Bugzilla   : 12228
215 Description: LBUG in ptlrpc_check_set() bad phase ebc0de00
216 Details    : access to bitfield in structure is always rounded to long
217              and this produce problem with not atomic change any bit.
218
219 Severity   : normal
220 Bugzilla   : 13647
221 Description: Lustre make rpms failed.
222 Details    : Remove ldiskfs spec file to avoids rpmbuild be confused when
223              builds Lustre rpms from tarball.
224
225 Severity   : normal
226 Frequency  : rare on shutdown ost
227 Bugzilla   : 14608
228 Description: If llog cancel was not send before clean_exports phase, this can
229              produce deadlock in llog code.
230 Details    : If llog thread has last reference to obd and call class_import_put
231              this produce deadlock because llog_cleanup_commit_master wait when
232              last llog_commit_thread exited, but this never success because was
233              called from llog_commit_thread.
234
235 Severity   : normal
236 Bugzilla   : 9977
237 Description: allow userland application know is lost one of stripes.
238 Details    : fill lvb_blocks with error code on ost and return it to
239              application if error flag found.
240
241 Severity   : normal
242 Bugzilla   : 14607
243 Description: NULL lov_tgts causing MDS oops
244 Details    : more safe checks for NULL lov_tgts for avoid oops.
245
246 Severity   : enhancement
247 Bugzilla   : 14531
248 Description: Update to RHEL4 latest kernel-2.6.9-67.0.1.EL.
249
250 Severity   : normal
251 Bugzilla   : 13375
252 Descriptoin: make lov_create() will not stuck in obd_statfs_rqset()
253 Details    : If an OST is down the MDS will hang indefinitely in
254              obd_statfs_rqset() waiting for the statfs data. While for
255              MDS QOS usage of statfs, it should not stuck in waiting.
256
257 Severity   : enhancement
258 Bugzilla   : 11842
259 Description: remote_acl support
260 Details    : Support ACL-based permission check for remote user.
261              Support setfacl/getfacl for remote user with the utils
262              "lfs {l,r}{s,g}etfacl" which follow the same parameter format as
263              the system "{s,g}etfacl" utils.
264
265 Severity   : enhancement
266 Bugzilla   : 14288
267 Description: Update to RHEL4 U6 kernel-2.6.9-67.EL.
268
269 Severity   : enhancement
270 Bugzilla   : 14368
271 Description: Update to RHEL5 latest kernel-2.6.18-53.1.4.el5.
272
273 Severity   : normal
274 Bugzilla   : 14136
275 Description: make mgs_setparam() handle fsname containing dash
276 Details    : fsname containing a dash does not work with lctl conf_param
277
278 Severity   : enhancement
279 Bugzilla   : 14388
280 Description: Update to SLES10 SP1 latest kernel-2.6.16.54-0.2.3.
281
282 Severity   : enhancement
283 Bugzilla   : 14289
284 Description: Update to RHEL5 Update-1 kernel 2.6.18-53.el5.
285
286 Severity   : major
287 Bugzilla   : 14260
288 Frequency  : rare, at shutdown
289 Description: access already free / zero obd_namespace.
290 Details    : if client_disconnect_export was called without force flag set,
291              and exist connect request in flight, this can produce access to
292              NULL pointer (or already free pointer) when connect_interpret
293              store ocd flags in obd_namespace.
294
295 Severity   : minor
296 Bugzilla   : 14418
297 Frequency  : only at startup
298 Description: not alloc memory with spinlock held.
299 Details    : allocation memory with GFP_KERNEL can produce sleep deadlock,
300              if any spinlock held.
301
302 Severity   : enhancement
303 Bugzilla   : 12211
304 Description: make lustre randomly fail allocating memory
305 Details    : Make lustre randomly failed allocating memory for testing purpose.
306
307 Severity   : enhancement
308 Bugzilla   : 12702
309 Description: lost problems with lov objid file
310 Details    : Fixes some scability and access to not inited memory problems
311              in work with lov objdid file.
312
313 Severity   : major
314 Frequency  : always
315 Bugzilla   : 14270
316 Description: lfs find does not continue on file error
317 Details    : Continue other files processing when a file/dir is absent.
318
319 Severity   : normal
320 Bugzilla   : 11791
321 Description: Inconsistent usage of lustre_pack_reply()
322 Details    : Standardize the usage of lustre_pack_reply() such that it
323              always generate a CERROR on failure.
324
325 Severity   : major
326 Frequency  : occasional
327 Bugzilla   : 13917
328 Description: MDS hang or stay in waiting lock
329 Details    : If client receive lock with CBPENDING flag ldlm need send lock
330              cancel as separate rpc, to avoid situation when cancel request
331              can't processed due all i/o threads stay in wait lock.
332
333 Severity   : normal
334 Bugzilla   : 13969
335 Description: Update to RHEL5 kernel 2.6.18-8.1.15.el5.
336
337 Severity   : normal
338 Bugzilla   : 13874
339 Description: Update to SLES10 SP1 kernel 2.6.16.53-0.16
340
341 Severity   : normal
342 Bugzilla   : 13889
343 Description: Update to SLES9 kernel-2.6.5-7.287.3.
344
345 Severity   : normal
346 Bugzilla   : 14041
347 Description: Update to RHEL4 latest kernel.
348
349 Severity   : enhancement
350 Bugzilla   : 13690
351 Description: Build SLES10 patchless client fails
352 Details    : The configure was broken by run ./configure with
353              --with-linux-obj=.... argument for patchless client. When the
354              configure use --with-linux-obj, the LINUXINCLUDE= -Iinclude
355              can't search header adequately. Use absolute path such as
356              -I($LINUX)/include instead.
357
358 Severity   : normal
359 Bugzilla   : 13888
360 Description: interrupt oig_wait produce painc on resend.
361 Details    : brw_redo_request can be used for resend requests from ptlrpcd and
362              private set, and this produce situation when rq_ptlrpcd_data not
363              copyed to new allocated request and triggered LBUG on assert
364              req->rq_ptlrpcd_data != NULL. But this member used only for wakeup
365              ptlrpcd set if request is changed and can be safety changed to use
366              rq_set directly.
367
368 Severity   : normal
369 Bugzilla   : 13497
370 Description: LASSERT_{REQ,REP}SWAB macros are buggy
371 Details    : If SWAB_PARANOIA is disabled, the LASSERT_REQSWAB and
372              LASSERT_REPSWAB macros become no-ops, which is incorrect. Drop
373              these macros and replace them with their difinitions instead.
374
375 Severity   : normal
376 Bugzilla   : 13521
377 Description: Update kernel patches for SLES10 2.6.16.53-0.8.
378 Details    : Update which_patch & target file for SLES10 latest kernel.
379
380 Bugzilla   : 12411
381 Description: Remove client patches from SLES 10 kernel.
382 Details    : This causes SLES 10 clients to behave as patchless clients
383              even on a Lustre-patched (server) kernel.
384
385 Severity   : enhancement
386 Bugzilla   : 2262
387 Description: self-adjustable client's lru lists
388 Details    : use adaptive algorithm for managing client cached locks lru
389              lists according to current server load, other client's work
390              pattern, memory activities, etc. Both, server and client
391              side namespaces provide number of proc tunables for controlling
392              things
393
394 Severity   : enhancement
395 Bugzilla   : 13641
396 Description: light-weight GSS support
397 Details    : Support krb5n and krb5a mode, which keep Kerberos 5 authentication
398              and reduce performance overhead.
399
400 Severity   : enhancement
401 Bugzilla   : 11832
402 Description: Linux keyring support
403 Details    : Support using service of Linux keyring for Lustre GSS internal
404              context refresh/cache mechanism.
405
406 Severity   : normal
407 Bugzilla   : 12186
408 Description: Fix errors in lfs documentation
409 Details    : Fixes man pages
410
411 Severity   : normal
412 Bugzilla   : 12606
413 Description: don't use GFP_* in generic Lustre code.
414 Details    : Use cfs_alloc_* functions and CFS_* flags for code portability.
415
416 Severity   : normal
417 Bugzilla   : 12333
418 Description: obdclass is limited by single OBD_ALLOC(idarray)
419 Details    : replace OBD_ALLOC/OBD_FREE with OBD_VMALLOC/OBD_VFREE
420
421 Severity   : normal
422 Bugzilla   : 13006
423 Description: warnings with build patchless client with vanila 2.6.19 and up
424 Details    : change old ctl_table style and replace ctl_table/ctl_table_header
425              with cfs_sysctl_table_t/cfs_sysctl_table_header_t
426
427 Severity   : normal
428 Bugzilla   : 13177
429 Frequency  : Only for SLES
430 Description: sanity_quota fail test_1
431 Details    : There are multiple occurences of $TSTUSR in SLES's /etc/group
432              file, which makes TSTID[2] inunique.
433
434 Severity   : normal
435 Bugzilla   : 13249
436 Frequency  : Only for SLES9
437 Description: Kernel patches for SLES9 2.6.5-7.286 kernel
438 Details    : Update target/ChangeLog/which_patch .
439
440 Severity   : normal
441 Bugzilla   : 13170
442 Frequency  : Only for test_10 in sanity-quota.sh
443 Description: a bug in quota test code
444 Details    : checking a test flag in a wrong place
445
446 Severity   : normal
447 Bugzilla   : 13171
448 Frequency  : Only for test_13 in sanity-quota.sh
449 Description: a bug in quota test script
450 Details    : shouldn't check overfull allocated quota
451
452 Severity   : normal
453 Bugzilla   : 12955
454 Description: jbd statistics
455 Details    : Port older jbd statistics patch for sles10
456
457 Severity   : enhancement
458 Bugzilla   : 11721
459 Description: Add printing inode info into message about error in writepage.
460
461 Severity   : normal
462 Bugzilla   : 11974
463 Frequency  : Rare
464 Description: reply_lock_interpret crash due to race with it and lock cancel.
465 Details    : Do not replay locks that are being cancelled. Do not reference
466              locks by their address during replay, just by their handle.
467
468 Severity   : normal
469 Bugzilla   : 13103
470 Frequency  : When flocks are used.
471 Description: assertion failure in ldlm_cli_enquque_fini for non NULL lock.
472 Details    : Flock locks might destroy just granted lock if it could be merged
473              with another existing flock, this is done in completion handler,
474              so teach ldlm_cli_enquque_fini that this is a valid case for
475              flock locks.
476
477 Severity   : minor
478 Bugzilla   : 13276
479 Frequency  : rare
480 Description: Oops in read and write path when failing to allocate lock.
481 Details    : Check if lock allocation failed and return error back.
482
483 Severity   : normal 
484 Bugzilla   : 11679
485 Description: lstripe command fails for valid OST index
486 Details    : The stripe offset is compared to lov->desc.ld_tgt_count
487              instead of lov->desc.ld_active_tgt_count.
488
489 Severity   : normal
490 Bugzilla   : 12584
491 Description: sanity.sh failed test 103
492 Details    : RHEL mis-interpret setfacl "-X" param, so we won't test setfacl
493              with param "-X".
494
495 Severity   : normal
496 Bugzilla   : 12743
497 Description: df doesn't work properly if diskfs blocksize != 4K
498 Details    : Choose biggest blocksize of OST's as the LOV's blocksize.
499
500 Severity   : normal
501 Bugzilla   : 12836
502 Description: lfs find on -1 stripe looping in lsm_lmm_verify_common()
503 Details    : Avoid lov_verify_lmm_common() on directory with -1 stripe count.
504
505 Severity   : major
506 Bugzilla   : 12932
507 Description: obd_health_check_timeout too short
508 Details    : set obd_health_check_timeout as 1.5x of obd_timeout
509
510 Severity   : normal
511 Bugzilla   : 12192
512 Description: llapi_file_create() does not allow some changes
513 Details    : add llapi_file_open() that allows specifying the mode and
514              open flags, and also returns an open file handle.
515
516 Severity   : normal
517 Bugzilla   : 11248
518 Description: merge and cleanup kernel patches.
519 Details    : Remove mnt_lustre_list in vfs_intent-2.6-rhel4.patch.
520
521 Severity   : normal
522 Bugzilla   : 10657
523 Description: Add journal checksum support.(Kernel part)
524 Details    : The journal checksum feature adds two new flags i.e
525              JBD2_FEATURE_INCOMPAT_ASYNC_COMMIT and
526              JBD2_FEATURE_COMPAT_CHECKSUM. JBD2_FEATURE_CHECKSUM flag
527              indicates that the commit block contains the checksum for
528              the blocks described by the descriptor blocks. Now commit
529              record can be sent to disk without waiting for descriptor
530              blocks to be written to disk. This behavior is controlled
531              using JBD2_FEATURE_ASYNC_COMMIT flag.
532
533 Severity   : minor
534 Bugzilla   : 12446
535 Description: OSS needs mutliple precreate threads
536 Details    : Add ability to start more than one create thread per OSS.
537
538 Severity   : normal
539 Bugzilla   : 13362
540 Description: Sanity.sh test_65k failed: setstripe should have succeeded
541 Details    : execute lfs setstripe on client
542
543 Severity   : major
544 Bugzilla   : 12223
545 Description: mds_obd_create error creating tmp object
546 Details    : When the user sets quota on root, llog will be affected and can't
547              create files and write files.
548
549 Severity   : normal
550 Frequency  : Always on ia64 patchless client, and possibly others.
551 Bugzilla   : 12826
552 Description: Add EXPORT_SYMBOL check for node_to_cpumask symbol.
553 Details    : This allows the patchless client to be loaded on architectures
554              without this export.
555
556 Severity   : normal
557 Bugzilla   : 13039
558 Description: RedHat Update kernel for RHEL5
559 Details    : Add the kernel config file for RHEL5.
560
561 Severity   : normal
562 Bugzilla   : 13039
563 Description: RedHat Update kernel for RHEL5
564 Details    : Modify the kernel config file more closer RHEL5.
565
566 Severity   : normal
567 Bugzilla   : 13360
568 Description: Build failure against Centos5 (RHEL5)
569 Details    : Define PAGE_SIZE when it isn't present.
570
571 Severity   : minor
572 Bugzilla   : 13363
573 Description: test_7 on sanity-quota.sh can't be used on separate machines
574 Details    : add facet to handle it
575
576 Severity   : normal
577 Bugzilla   : 13030
578 Description: "ll_intent_file_open()) lock enqueue: err: -13" with nfs
579 Details    : with NFS, the anon dentry's parent was set to itself in
580              d_alloc_anon(), so in MDS, we use rec->ur_fid1 to find the
581              corresponding dentry other than use rec->ur_name.
582
583 Severity   : enhancement
584 Bugzilla   : 12786
585 Description: lfs setstripe enhancement
586 Details    : Make lfs setstripe understand 'k', 'm' and 'g' for stripe size.
587
588 Severity   : normal
589 Bugzilla   : 12398
590 Description: enable data checksumming by default
591 Details    : enable checksum by default, allow --disable-checksum
592              configure option and "-o nochecksum" mount option.  Checksums
593              can also be disabled at runtime via $LPROC/osc/*/checksum_pages.
594
595 Severity   : normal
596 Bugzilla   : 11802
597 Description: lustre support for RHEL5
598 Details    : Add support for RHEL5.
599
600 Severity   : normal
601 Bugzilla   : 12459
602 Description: Client eviction due to failover config
603 Details    : after a connection loss, the lustre client should attempt to
604              reconnect to the last active server first before trying the
605              other potential connections.
606
607 Severity   : minor
608 Bugzilla   : 12588
609 Description: when mds and osts use different quota unit(32bit and 64bit),
610              quota will be released repeatly.
611 Details    : void sending multiple quota reqs to mds, which will keep the
612              status between the reqs.
613
614 Severity   : normal
615 Bugzilla   : 13125
616 Description: osts not allocated evenly to files
617 Details    : change the condition to increase offset_idx
618
619 Severity   : critical
620 Frequency  : Always for filesystems larger than 2TB on 32-bit systems.
621 Bugzilla   : 13547
622 Description: Data corruption for OSTs that are formatted larger than 2TB
623              on 32-bit servers.
624 Details    : When generating the bio request for lustre file writes the
625              sector number would overflow a temporary variable before being
626              used for the IO.  The data reads correctly from Lustre (which
627              will overflow in a similar manner) but other file data or
628              filesystem metadata may be corrupted in some cases.
629
630 Severity   : normal
631 Bugzilla   : 11230
632 Description: Tune the kernel for good SCSI performance.
633 Details    : Set the value of /sys/block/{dev}/queue/max_sectors_kb
634              to the value of /sys/block/{dev}/queue/max_hw_sectors_kb
635              in mount_lustre.
636
637 Severity   : cleanup
638 Bugzilla   : 13532
639 Description: rewrite ext2-derived code in obdclass/uuid.c
640 Details    : rewrite inherited code (uuid parsing code from ext2 utils)
641              from scratch preserving functionality.
642
643 Severity   : normal
644 Bugzilla   : 13600
645 Description: "lfs find -obd UUID" prints directories
646 Details    : "lfs find -obd UUID" will return all directory names instead
647              of just file names. It is incorrect because the directories
648              do not reside on the OSTs.
649
650 Severity   : minor
651 Bugzilla   : 2369
652 Description: use i_size_read and i_size_write in 2.6 port
653 Details    : replace inode->i_size access with i_size_read/write()
654
655 Severity   : normal
656 Frequency  : when removing large files
657 Bugzilla   : 13181
658 Description: scheduling issue during removal of large Lustre files
659 Details    : Don't take the BKL in fsfilt_ext3_setattr() for 2.6 kernels.
660              It causes scheduling issues when removing large files (17TB in the
661              present case).
662
663 Severity   : normal
664 Frequency  : only with liblustre clients on XT3
665 Bugzilla   : 12418
666 Description: evictions taking too long
667 Details    : allow llrd to evict clients directly on OSTs
668
669 Severity   : normal
670 Frequency  : only on ppc
671 Bugzilla   : 12234
672 Description: /proc/fs/lustre/devices broken on ppc
673 Details    : The patch as applied to 1.6.2 doesn't look correct for all arches.
674              We should make sure the type of 'index' is loff_t and then cast
675              explicitly as needed below.  Do not assign an explicitly cast
676              loff_t to an int.
677
678 Severity   : normal
679 Frequency  : only for rhel5
680 Bugzilla   : 13616
681 Description: Kernel patches update for RHEL5 2.6.18-8.1.10.el5.
682 Details    : Modify the target file & which_kernel.
683
684 Severity   : enhancement
685 Bugzilla   : 10786
686 Description: omit set fsid for export NFS
687 Details    : fix set/restore device id for avoid EMFILE error and mark lustre fs
688              as FS_REQUIRES_DEV for avoid problems with generate fsid.
689
690 Severity   : normal
691 Bugzilla   : 13304
692 Frequency  : Always, for kernels after 2.6.16
693 Description: Fix warning idr_remove called for id=.. which is not allocated.
694 Details    : Last kernels save old s_dev before kill super and not allow
695              to restore from callback - restore it before call kill_anon_super.
696
697 Severity   : minor
698 Bugzilla   : 12948
699 Description: buffer overruns could theoretically occur
700 Details    : llapi_semantic_traverse() modifies the "path" argument by
701              appending values to the end of the origin string, and a
702              overrun may occur. Adding buffer overrun check in liblustreapi.
703
704 Severity   : normal
705 Bugzilla   : 13334
706 Description: Fix error on 'ls .' at the top of the Lustre mount.
707 Details    : Don't revalidate dentry if it is a root dentry.
708
709 Severity   : normal
710 Bugzilla   : 13518
711 Description: Kernel patches update for RHEL4 2.6.9-55.0.6.
712 Details    : Modify vm-tunables-rhel4.patch.
713
714 Severity   : normal
715 Bugzilla   : 13452
716 Description: Kernel config for 2.6.18-vanilla.
717 Details    : Modify targets/2.6-vanilla.target.in.
718              Add config file kernel-2.6.18-2.6-vanilla-i686.config.
719              Add config file kernel-2.6.18-2.6-vanilla-i686-smp.config.
720              Add config file kernel-2.6.18-2.6-vanilla-x86_64.config.
721              Add config file kernel-2.6.18-2.6-vanilla-x86_64-smp.config.
722
723 Severity   : major
724 Bugzilla   : 11710
725 Description: improve handling recoverable errors
726 Details    : if request processig with error which can be recoverable on server
727              request should be resend, otherwise page released from cache and
728              marked as error.
729
730 Severity   : critical
731 Bugzilla   : 13751
732 Description: Kernel patches update for RHEL5 2.6.18-8.1.14.el5.
733 Details    : Modify target file & which_patch.
734              A flaw was found in the IA32 system call emulation provided
735              on AMD64 and Intel 64 platforms. An improperly validated 64-bit
736              value could be stored in the %RAX register, which could trigger an
737              out-of-bounds system call table access. An untrusted local user
738              could exploit this flaw to run code in the kernel
739              (ie a root privilege escalation). (CVE-2007-4573).
740
741 Severity   : major
742 Bugzilla   : 13093
743 Description: O_DIRECT bypasses client statistics.
744 Details    : When running with O_DIRECT I/O, neither the client rpc_stats nor
745              read_ahead_stats were updated. copied the stats section from
746              osc_send_oap_rpc() into async_internal().
747
748 Severity   : normal
749 Bugzilla   : 13454
750 Description: Add jbd statistics patch for RHEL5 and 2.6.18-vanilla
751
752 Severity   : minor
753 Bugzilla   : 13732
754 Description: change order of libsysio includes
755 Details    : '#include sysio.h' should always come before '#include xtio.h'
756
757 Severity   : normal
758 Bugzilla   : 11673
759 Description: handle "serious error: objid * already exists" more gracefully
760 Details    : If LAST_ID value on disk is smaller than the objects existing in
761              the O/0/d* directories, it indicates disk corruption and causes an
762              LBUG(). If the object is 0-length, then we should use the existing
763              object. This will help to avoid a full fsck in most cases.
764
765 Severity   : enhancement
766 Bugzilla   : 13207
767 Description: adapt the lustre_config script to support the upgrade case
768 Details    : Add "-u" option for lustre_config script to support upgrading 1.4
769              server targets to 1.6 in parallel.
770
771 Severity   : normal
772 Bugzilla   : 13570
773 Description: To avoid grant space > avaible space when the disk is almost
774              full. Without this patch you might see the error "grant XXXX >
775              available" or some LBUG about grant, when the disk is almost 
776              full.
777 Details    : In filter_check_grant, for non_grant cache write, we should
778              check the left space by  if (*left > ungranted + bytes), instead
779              of (*left > ungranted), because only we are sure the left space 
780              is enough for another "bytes", then the ungrant space should be
781              increase. In client, we should update cl_avail_grant only there
782              is OBD_MD_FLGRANT in the reply.
783
784 Severity   : critical
785 Bugzilla   : 13748
786 Description: Update RHEL 4 kernel to fix local root privilege escalation.
787 Details    : Update to the latest RHEL 4 kernel to fix the vulnerability
788              described in CVE-2007-4573.  This problem could allow untrusted
789              local users to gain root access.
790
791 Severity   : normal
792 Frequency  : when using O_DIRECT and quotas
793 Bugzilla   : 13930
794 Description: Incorrect file ownership on O_DIRECT output files
795 Details    : block usage reported by 'lfs quota' does not take into account
796              files that have been written with O_DIRECT.
797
798 Severity   : normal
799 Frequency  : always
800 Bugzilla   : 13976
801 Description: touch file failed when fs is not full
802 Details    : OST in recovery should not be discarded by MDS in alloc_qos(),
803              otherwise we can get ENOSP while fs is not full.
804
805 Severity   : normal
806 Bugzilla   : 11301
807 Description: parallel lock callbacks
808 Details    : Instead of sending blocking and completion callbacks as separated
809              requests, adding them to a set and sending in parallel.
810
811 Severity   : normal
812 Frequency  : only for Cray XT3
813 Bugzilla   : 12829/13455
814 Description: Changing primary group doesn't change the group lustre assigns to
815              a file
816 Details    : When CRAY_XT3 is defined, the fsgid supplied by the client is
817              overridden with the primary group provided by the group upcall,
818              whereas the supplied fsgid can be trusted if it is in the list of
819              supplementary groups returned by the group upcall.
820
821 Severity   : enhancement
822 Bugzilla   : 14398
823 Description: Allow masking D_WARNING, D_ERROR messages from console
824 Details    : Console messages can now be disabled via lnet.printk.
825
826 Severity   : normal
827 Bugzilla   : 14614
828 Description: User code with malformed file open parameter crashes client node 
829 Details    : Before packing join_file req, all the related reference should be
830              checked carefully in case some malformed flags cause fake
831              join_file req on client.
832
833 Severity   : normal
834 Bugzilla   : 14225
835 Description: LDLM_ENQUEUE races with LDLM_CP_CALLBACK
836 Details    : ldlm_completion_ast() assumes that a lock is granted when the req
837              mode is equal to the granted mode. However, it should also check
838              that LDLM_FL_CP_REQD is not set.
839
840 Severity   : normal
841 Bugzilla   : 14360
842 Description: Heavy nfs access might result in deadlocks
843 Details    : After ELC code landed, it is now improper to enqueue any mds
844              locks under och_sem, because enqueue might want to decide to
845              cancel open locks for same inode we are holding och_sem for.
846
847 Severity   : normal
848 Bugzilla   : 13843
849 Description: Client eviction while running blogbench
850 Details    : A lot of unlink operations with concurrent I/O can lead to a
851              deadlock causing evictions. To address the problem, the number of
852              oustanding OST_DESTROY requests is now throttled to
853              max_rpcs_in_flight per OSC and LDLM_FL_DISCARD_DATA blocking
854              callbacks are processed in priority.
855
856 Severity   : normal
857 Bugzilla   : 13829
858 Description: enable ACLs on MDS by default
859 Details    : ACLs must be enabled on MDS by default.
860
861 Severity   : normal
862 Frequency  : PPC/PPC64 only
863 Bugzilla   : 14845
864 Description: conflicts between asm-ppc64/types.h and lustre_types.h
865 Details    : fix duplicated definitions between asm-ppc64/types.h and
866              lustre_types.h on PPC.
867
868 Severity   : normal
869 Frequency  : PPC/PPC64 only
870 Bugzilla   : 14844
871 Description: asm-ppc/segment.h does not exist
872 Details    : fix compile issue on PPC.
873
874 Severity   : normal
875 Bugzilla   : 14864
876 Description: better handle error messages in extents code
877
878 Severity   : normal
879 Frequency  : RHEL4 only
880 Bugzilla   : 14618
881 Description: mkfs is very slow on IA64/RHEL4
882 Details    : A performance regression has been discovered in the MPT Fusion
883              driver between versions 3.02.73rh and 3.02.99.00rh. As a
884              consequence, we have downgraded the MPT Fusion driver in the RHEL4
885              kernel from 3.02.99.00 to 3.02.73 until this problem is fixed.
886
887 Severity   : enhancement
888 Bugzilla   : 14729
889 Description: SNMP support enhancement
890 Details    : Adding total number of sampled request for an MDS node in snmp
891              support.
892
893 Severity   : enhancement
894 Bugzilla   : 14748
895 Description: Optimize ldlm waiting list processing for PR extent locks
896 Details    : When processing waiting list for read extent lock and meeting read
897              lock that is same or wider to it that is not contended, skip
898              processing rest of the list and immediatelly return current
899              status of conflictness, since we are guaranteed there are no
900              conflicting locks in the rest of the list.
901
902 Severity   : normal
903 Bugzilla   : 14774
904 Description: Time out and refuse to reconnect
905 Details    : When the failover node is the primary node, it is possible
906              to have two identical connections in imp_conn_list. We must
907              compare not conn's pointers but NIDs, otherwise we can defeat
908              connection throttling.
909
910 Severity   : normal
911 Bugzilla   : 13821
912 Description: port llog fixes from b1_6 into HEAD
913 Details    : Port llog reference couting and some llog cleanups from b1_6
914              (bug 10800) into HEAD, for protect from panic and access to already
915              free llog structures.
916
917 Severity   : normal
918 Bugzilla   : 14483
919 Description: Detect stride IO mode in read-ahead
920 Details    : When a client does stride read, read-ahead should detect that and
921              read-ahead pages according to the detected stride pattern.
922
923 Severity   : normal
924 Bugzilla   : 13805
925 Description: data checksumming impacts single node performance
926 Details    : add support for several checksum algorithm. Currently, only CRC32
927              and Adler-32 are supported. The checksum type can be changed on
928              the fly via /proc/fs/lustre/osc/*/checksum_type.
929
930 Severity   : normal
931 Bugzilla   : 14648
932 Description: use adler32 for page checksums
933 Details    : when available, use the Adler-32 algorithm instead of CRC32 for
934              page checksums.
935
936 Severity   : normal
937 Bugzilla   : 15033
938 Description: build for x2 fails
939 Details    : fix compile issue on Cray systems.
940
941 Severity   : normal
942 Bugzilla   : 14379
943 Description: Properly match for duplicate locks
944 Details    : Due to different lock order from skiplists code, we need to
945              traverse entire list for now
946
947 Severity   : normal
948 Frequency  : only on PPC/SLES10
949 Bugzilla   : 14855
950 Description: "BITS_PER_LONG is not 32 or 64" in linux/idr.h
951 Details    : On SLES10/PPC, fs.h includes idr.h which requires BITS_PER_LONG to
952              be defined. Add a hack in mkfs_lustre.c to work around this compile
953              issue.
954
955 Severity   : normal
956 Bugzilla   : 14257
957 Description: LASSERT on MDS when client holding flock lock dies
958 Details    : ldlm pool logic depends on number of granted locks equal to
959              number of released locks which is not true for flock locks, so 
960              just exclude such locks from consideration.
961
962 Severity   : normal
963 Bugzilla   : 15188
964 Description: MDS deadlock with many ll_sync_lov threads and I/O stalled
965 Details    : Use fsfilt_sync() for both the whole filesystem sync and
966              individual file sync to eliminate dangerous inode locking
967              with I_LOCK that can lead to a deadlock.
968
969 Severity   : normal
970 Bugzilla   : 14410
971 Description: performance in 1.6.3
972 Details    : Force q->max_phys_segments to MAX_PHYS_SEGMENTS on SLES10 to be
973              sure that 1MB requests are not fragmented by the block layer.
974
975 Severity   : enhancement
976 Bugzilla   : 11089
977 Description: organize the server-side client stats on per-nid basis
978 Details    : Change the structure of stats under obdfilter and mds to
979              New structure:
980                 +- exports
981                         +- nid#1
982                         |   + stats
983                         |   + uuids
984                         +- nid#2...
985                         +- clear
986              The "uuid"s file would list the uuids of _active_ exports.
987              And the clear entry is to clear all stats and stale nids.
988
989 Severity   : enhancement
990 Bugzilla   : 11270
991 Description: eliminate client locks in face of contention
992 Details    : file contention detection and lockless i/o implementation
993              for contended files.
994
995 Severity   : normal
996 Bugzilla   : 15212
997 Description: Reinitialize optind to 0 so that interactive lfs works in all cases
998
999 --------------------------------------------------------------------------------
1000
1001 2007-08-10         Cluster File Systems, Inc. <info@clusterfs.com>
1002        * version 1.6.1
1003        * Support for kernels:
1004         2.6.5-7.283 (SLES 9),
1005         2.6.9-55.EL (RHEL 4),
1006         2.6.16.46-0.14 (SLES 10),
1007         2.6.18.8 vanilla (kernel.org)
1008        * Client support for unpatched kernels:
1009         (see http://wiki.lustre.org/index.php?title=Patchless_Client)
1010         2.6.16 - 2.6.22 vanilla (kernel.org)
1011        * Due to recently discovered recovery problems, we do not recommend
1012         using patchless RHEL 4 clients with this or any earlier release.
1013        * Recommended e2fsprogs version: 1.39.cfs8
1014        * Note that reiserfs quotas are disabled on SLES 10 in this kernel.
1015        * Starting with this release, the ldiskfs backing filesystem required
1016         by Lustre is now in its own package, lustre-ldiskfs.  This package
1017         should be installed.  It is versioned separately from Lustre and
1018         may be released separately in future.
1019
1020 Severity   : minor
1021 Bugzilla   : 13147
1022 Description: block reactivating mgc import until all deactivates complete
1023 Details    : Fix race when failing back MDT/MGS to itself (testing)
1024
1025 Severity   : minor
1026 Frequency  : at statup only
1027 Bugzilla   : 12860
1028 Description: mds_lov_synchronize race leads to various problems
1029 Details    : simultaneous MDT->OST connections at startup can cause the 
1030              sync to abort, leaving the OSC in a bad state.
1031
1032 Severity   : enhancement
1033 Bugzilla   : 12194
1034 Description: add optional extra BUILD_VERSION info
1035 Details    : add a new environment variable (namely LUSTRE_VERS) which allows
1036              to override the lustre version.
1037
1038 Severity   : normal
1039 Frequency  : 2.6.18 servers only
1040 Bugzilla   : 12546
1041 Description: ll_kern_mount() doesn't release the module reference
1042 Details    : The ldiskfs module reference count never drops down to 0
1043              because ll_kern_mount() doesn't release the module reference.
1044
1045 Severity   : normal
1046 Frequency  : rare
1047 Bugzilla   : 12470
1048 Description: server LBUG when using old ost_num_threads parameter
1049 Details    : Accept the old ost_num_threads parameter but warn that it
1050              is deprecated, and fix an off-by-one error that caused an LBUG.
1051
1052 Severity   : normal
1053 Frequency  : rare
1054 Bugzilla   : 11722
1055 Description: Transient SCSI error results in persistent IO issue
1056 Details    : iobuf->dr_error is not reinitialized to 0 between two
1057              uses.
1058
1059 Severity   : normal
1060 Frequency  : sometimes when underlying device returns I/O errors
1061 Bugzilla   : 11743
1062 Description: OSTs not going read-only during write failures
1063 Details    : OSTs are not remounted read-only when the journal commit threads
1064              get I/O errors because fsfilt_ext3 calls journal_start/stop()
1065              instead of the ext3 wrappers.
1066
1067 Severity   : minor
1068 Bugzilla   : 12364
1069 Description: poor connect scaling with increasing client count
1070 Details    : Don't run filter_grant_sanity_check for more than 100 exports
1071              to improve scaling for large numbers of clients.
1072
1073 Severity   : normal
1074 Frequency  : SLES10 only
1075 Bugzilla   : 12538
1076 Description: sanity-quota.sh quotacheck failed: rc = -22
1077 Details    : Quotas cannot be enabled on SLES10.
1078
1079 Severity   : normal
1080 Frequency  : liblustre clients only
1081 Bugzilla   : 12229
1082 Description: getdirentries does not give error when run on compute nodes
1083 Details    : getdirentries does not fail when the size specified as an argument
1084              is too small to contain at least one entry
1085
1086 Severity   : enhancement
1087 Bugzilla   : 11548
1088 Description: Add LNET router traceability for debug purposes
1089 Details    : If a checksum failure occurs with a router as part of the
1090              IO path, the NID of the last router that forwarded the bulk data
1091              is printed so it can be identified.
1092
1093 Severity   : normal
1094 Frequency  : rare
1095 Bugzilla   : 11315
1096 Description: OST "spontaneously" evicts client; client has imp_pingable == 0
1097 Details    : Due to a race condition, liblustre clients were occasionally
1098              evicted incorrectly.
1099
1100 Severity   : enhancement
1101 Bugzilla   : 10997
1102 Description: lfs setstripe use optional parameters instead of postional
1103              parameters.
1104
1105 Severity   : enhancement
1106 Bugzilla   : 10651
1107 Description: Nanosecond timestamp support for ldiskfs
1108 Details    : The on-disk ldiskfs filesystem has added support for nanosecond
1109              resolution timestamps.  There is not yet support for this at
1110              the Lustre filesystem level.
1111
1112 Severity   : normal
1113 Frequency  : during server recovery
1114 Bugzilla   : 11203
1115 Description: MDS failing to send precreate requests due to OSCC_FLAG_RECOVERING
1116 Details    : request with rq_no_resend flag not awake l_wait_event if they get a
1117              timeout.
1118
1119 Severity   : minor
1120 Frequency  : nfs export on patchless client
1121 Bugzilla   : 11970
1122 Description: connectathon hang when test nfs export over patchless client
1123 Details    : Disconnected dentry cannot be found with lookup, so we do not need
1124              to unhash it or make it invalid
1125
1126 Bugzilla   : 11757
1127 Description: fix llapi_lov_get_uuids() to allow many OSTs to be returned
1128 Details:   : Change llapi_lov_get_uuids() to read the UUIDs from /proc instead
1129              of using an ioctl. This allows lfsck for > 160 OSTs to succeed.
1130
1131 Severity   : minor
1132 Frequency  : rare
1133 Bugzilla   : 11546
1134 Description: open req refcounting wrong on reconnect
1135 Details    : If reconnect happened between getting open reply from server and
1136              call to mdc_set_replay_data in ll_file_open, we will schedule
1137              replay for unreferenced request that we are about to free.
1138              Subsequent close will crash in variety of ways.
1139              Check that request is still eligible for replay in
1140              mdc_set_replay_data().
1141
1142 Severity   : minor
1143 Frequency  : rare
1144 Bugzilla   : 11512
1145 Description: disable writes to filesystem when reading health_check file
1146 Details    : the default for reading the health_check proc file has changed
1147              to NOT do a journal transaction and write to disk, because this
1148              can cause reads of the /proc file to hang and block HA state
1149              checking on a healthy but otherwise heavily loaded system.  It
1150              is possible to return to the previous behaviour during configure
1151              with --enable-health-write.
1152
1153 Severity   : enhancement
1154 Bugzilla   : 10768
1155 Description: 64-bit inode version
1156 Details:   : Add a on-disk 64-bit inode version for ext3 to track changes made
1157              to the inode. This will be required for version-based recovery.
1158
1159 Severity   : normal
1160 Frequency  : rare
1161 Bugzilla   : 11818
1162 Description: MDS fails to start if a duplicate client export is detected
1163 Details    : in some rare cases it was possible for a client to connect to
1164              an MDS multiple times.  Upon recovery the MDS would detect this
1165              and fail during startup.  Handle this more gracefully.
1166
1167 Severity   : enhancement
1168 Bugzilla   : 11563
1169 Description: Add -o localflock option to simulate  old noflock
1170 behaviour.
1171 Details    : This will achieve local-only flock/fcntl locks
1172              coherentness.
1173
1174 Severity   : minor
1175 Frequency  : rare
1176 Bugzilla   : 11658
1177 Description: log_commit_thread vs filter_destroy race leads to crash
1178 Details    : Take import reference before releasing llog record semaphore
1179
1180 Severity   : normal
1181 Frequency  : rare
1182 Bugzilla   : 12477
1183 Description: Wrong request locking in request set processing
1184 Details    : ptlrpc_check_set wrongly uses req->rq_lock for proctect add to
1185              imp_delayed_list, in this place should be used imp_lock.
1186
1187 Severity   : normal
1188 Frequency  : when reconnection
1189 Bugzilla   : 11662
1190 Description: Grant Leak when osc reconnect to OST
1191 Details    : When osc reconnect ost, OST(filter) should check whether it
1192              should grant more space to client by comparing fed_grant and
1193              cl_avail_grant, and return the granted space to client instead
1194              of "new granted" space, because client will call osc_init_grant
1195              to update the client grant space info.
1196
1197 Severity   : normal
1198 Frequency  : when client reconnect to OST 
1199 Bugzilla   : 11662
1200 Description: Grant Leak when osc do resend and replay bulk write
1201 Details    : When osc reconnect to OST, OST(filter)should clear grant info of
1202              bulk write request, because the grant info while be sync between
1203              OSC and OST when reconnect, and we should ignore the grant info
1204              these of resend/replay write req.
1205
1206 Severity   : normal
1207 Frequency  : rare 
1208 Bugzilla   : 11662
1209 Description: Grant space more than avaiable left space sometimes.
1210 Details    : When then OST is about to be full, if two bulk writing from
1211              different clients came to OST. Accord the avaliable space of the
1212              OST, the first req should be permitted, and the second one
1213              should be denied by ENOSPC. But if the seconde arrived before 
1214              the first one is commited. The OST might wrongly permit second
1215              writing, which will cause grant space > avaiable space.
1216
1217 Severity   : normal
1218 Frequency  : when client is evicted 
1219 Bugzilla   : 12371
1220 Description: Grant might be wrongly erased when osc is evicted by OST
1221 Details    : when the import is evicted by server, it will fork another 
1222              thread ptlrpc_invalidate_import_thread to invalidate the 
1223              import, where the grant will be set to 0.  While the original 
1224              thread will update the grant it got when connecting. So if 
1225              the former happened latter, the grant will be wrongly errased 
1226              because of this race.
1227
1228 Severity   : normal
1229 Frequency  : rare 
1230 Bugzilla   : 12401
1231 Description: Checking Stale with correct fid 
1232 Details    : ll_revalidate_it should uses de_inode instead of op_data.fid2 
1233              to check whether it is stale, because sometimes, we want the 
1234              enqueue happened anyway, and op_data.fid2 will not be initialized.
1235
1236 Severity   : enhancement
1237 Bugzilla   : 11647
1238 Description: update patchless client
1239 Details    : Add support for patchless client with 2.6.20, 2.6.21 and RHEL 5
1240
1241 Severity   : normal
1242 Frequency  : only with 2.4 kernel
1243 Bugzilla   : 12134
1244 Description: random memory corruption
1245 Details    : size of struct ll_inode_info is to big for union inode.u and this
1246              can be cause of random memory corruption.
1247
1248 Severity   : normal
1249 Frequency  : rare 
1250 Bugzilla   : 10818
1251 Description: Memory leak in recovery
1252 Details    : Lov_mds_md was not free in an error handler in mds_create_object.
1253              It should also check obd_fail before fsfilt_start, otherwise if 
1254              fsfilt_start return -EROFS,(failover mds during mds recovery).
1255              then the req will return with repmsg->transno = 0 and rc = EROFS. 
1256              and we met hit the assert LASSERT(req->rq_reqmsg->transno ==
1257              req->rq_repmsg->transno) in ptlrpc_replay_interpret.  Fcc should 
1258              be freed no matter whether fsfilt_commit success or not.
1259
1260 Severity   : minor
1261 Frequency  : only with huge count clients
1262 Bugzilla   : 11817
1263 Description: Prevents from taking the superblock lock in llap_from_page for 
1264              a soon died page.
1265 Details    : using LL_ORIGIN_REMOVEPAGE origin flag instead of LL_ORIGIN_UNKNOW 
1266              for llap_from_page call in ll_removepage prevents from taking the 
1267              superblock lock for a soon died page.
1268
1269 Severity   : normal
1270 Frequency  : rare
1271 Bugzilla   : 11935 
1272 Description: Not check open intent error before release open handle
1273 Details    : in some rare cases, the open intent error is not checked before
1274              release open handle, which may cause
1275              ASSERTION(open_req->rq_transno != 0), because it tries to release
1276              the failed open handle.
1277
1278 Severity   : normal
1279 Frequency  : rare
1280 Bugzilla   : 12556 
1281 Description: Set cat log bitmap only after create log success. 
1282 Details    : in some rare cases, the cat log bitmap is set too early. and it 
1283              should be set only after create log success.
1284
1285 Severity   : major
1286 Bugzilla   : 11971
1287 Description: Accessing a block bevice can re-enable I/O when Lustre is
1288              tearing down a device.
1289 Details    : dev_clear_rdonly(bdev) must be called in kill_bdev() instead of
1290              blkdev_put().
1291
1292 Severity   : minor
1293 Bugzilla   : 11706
1294 Description: service threads may hog cpus when there are a lot of requests
1295 Details    : Insert cond_resched to give other threads a chance to use some CPU
1296
1297 Severity   : normal
1298 Frequency  : rare
1299 Bugzilla   : 12086 
1300 Description: the cat log was not initialized in recovery 
1301 Details    : When mds(mgs) do recovery, the tgt_count might be zero, so the
1302              unlink log on mds will not be initialized until mds post
1303              recovery. And also in mds post recovery, the unlink log will 
1304              initialization will be done asynchronausly, so there will be race
1305              between add unlink log and unlink log initialization.
1306
1307 Severity   : normal
1308 Bugzilla   : 12597
1309 Description: brw_stats were being printed incorrectly
1310 Details    : brw_stats were being printed as log2 but all of them were not
1311              recorded as log2. Also remove some code duplication arising from
1312              filter_tally_{read,write}.
1313
1314 Severity   : normal
1315 Bugzilla   : 11674
1316 Frequency  : rare, only in recovery.
1317 Description: ASSERTION(req->rq_type != LI_POISON) failed
1318 Details    : imp_lock should be held while iterating over imp_sending_list for
1319              prevent destroy request after get timeout in ptlrpc_queue_wait.
1320
1321 Severity   : normal
1322 Bugzilla   : 12689
1323 Description: replay-single.sh test 52 fails
1324 Details    : A lock's skiplist need to be cleanup when it being unlinked 
1325              from its resource list.
1326
1327 Severity   : normal
1328 Bugzilla   : 11737
1329 Description: Short directio read returns full requested size rather than
1330              actual amount read.
1331 Details    : Direct I/O operations should return actual amount of bytes
1332              transferred rather than requested size.
1333
1334 Severity   : enhancement
1335 Bugzilla   : 10589
1336 Description: metadata RPC reduction (e.g. for rm performance)
1337 Details    : decrease the amount of synchronous RPC between clients and servers
1338              by canceling conflicing lock before the operation on the client
1339              and packing thier handles into the main operation RPC to server.
1340
1341 Severity   : enhancement
1342 Bugzilla   : 4900
1343 Description: Async OSC create to avoid the blocking unnecessarily.
1344 Details    : If a OST has no remain object, system will block on the creating
1345             when need to create a new object on this OST. Now, ways use
1346             pre-created objects when available, instead of blocking on an
1347             empty osc while others are not empty.  If we must block, we block
1348             for the shortest possible period of time.
1349
1350 Severity   : enhancement
1351 Bugzilla   : 12702
1352 Description: refine locking for avoid write wrong info into lov_objid file
1353 Details    : fix possible races with add new target and write/update data in 
1354              lov_objid file.
1355
1356 --------------------------------------------------------------------------------
1357
1358 2007-05-03  Cluster File Systems, Inc. <info@clusterfs.com>
1359        * version 1.6.0.1
1360        * bug fixes
1361
1362 Severity   : normal
1363 Frequency  : on some architectures
1364 Bugzilla   : 12404
1365 Description: 1.6 client sometimes fails to mount from a 1.4 MDT
1366 Details    : Uninitialized flags sometimes cause configuration commands to
1367              be skipped.
1368
1369 Severity   : normal
1370 Frequency  : patchless clients only
1371 Bugzilla   : 12391
1372 Description: missing __iget() symbol export
1373 Details    : The __iget() symbol export is missing.  To avoid the need for
1374              this on patchless clients the deathrow inode reaper is turned
1375              off, and we depend on the VM to clean up old inodes.  This
1376              dependency was during via the fix for bug 12181.
1377         
1378 --------------------------------------------------------------------------------
1379
1380 2007-04-19  Cluster File Systems, Inc. <info@clusterfs.com>
1381        * version 1.6.0
1382        * CONFIGURATION CHANGE.  This version of Lustre WILL NOT
1383          INTEROPERATE with older versions automatically.  In many cases a
1384          special upgrade step is needed. Please read the
1385          user documentation before upgrading any part of a live system.
1386        * WIRE PROTOCOL CHANGE from previous 1.6 beta versions.  This
1387          version will not interoperate with 1.6 betas before beta5 (1.5.95).  
1388        * WARNING: Lustre configuration and startup changes are required with
1389          this release.  See https://mail.clusterfs.com/wikis/lustre/MountConf
1390          for details.
1391        * bug fixes
1392
1393
1394
1395 Severity   : enhancement
1396 Bugzilla   : 8007
1397 Description: MountConf
1398 Details    : Lustre configuration is now managed via mkfs and mount
1399              commands instead of lmc and lconf.  New obd types (MGS, MGC)
1400              are added for dynamic configuration management.  See
1401              https://mail.clusterfs.com/wikis/lustre/MountConf for
1402              details.
1403
1404 Severity   : enhancement
1405 Bugzilla   : 4482
1406 Description: dynamic OST addition
1407 Details    : OSTs can now be added to a live filesystem
1408
1409 Severity   : enhancement
1410 Bugzilla   : 9851
1411 Description: startup order invariance
1412 Details    : MDTs and OSTs can be started in any order.  Clients only
1413              require the MDT to complete startup.
1414         
1415 Severity   : enhancement
1416 Bugzilla   : 4899
1417 Description: parallel, asynchronous orphan cleanup
1418 Details    : orphan cleanup is now performed in separate threads for each
1419              OST, allowing parallel non-blocking operation.
1420
1421 Severity   : enhancement
1422 Bugzilla   : 9862
1423 Description: optimized stripe assignment
1424 Details    : stripe assignments are now made based on ost space available,
1425              ost previous usage, and OSS previous usage, in order to try
1426              to optimize storage space and networking resources. 
1427         
1428 Severity   : enhancement
1429 Bugzilla   : 4226
1430 Description: Permanently set tunables
1431 Details    : All writable /proc/fs/lustre tunables can now be permanently
1432              set on a per-server basis, at mkfs time or on a live system.
1433         
1434 Severity   : enhancement
1435 Bugzilla   : 10547
1436 Description: Lustre message v2
1437 Details    : Add lustre message format v2.
1438
1439 Severity   : enhancement
1440 Bugzilla   : 9866
1441 Description: client OST exclusion list
1442 Details    : Clients can be started with a list of OSTs that should be
1443              declared "inactive" for known non-responsive OSTs.
1444
1445 Severity   : minor
1446 Bugzilla   : 6062
1447 Description: SPEC SFS validation failure on NFS v2 over lustre.
1448 Details    : Changes the blocksize for regular files to be 2x RPC size,
1449              and not depend on stripe size.
1450         
1451 Severity   : enhancement
1452 Bugzilla   : 9293
1453 Description: Multiple MD RPCs in flight.
1454 Details    : Further unserialise some read-only MDS RPCs - learn about intents.
1455              To avoid overly-overloading MDS, introduce a limit on number of
1456              MDS RPCs in flight for a single client and add /proc controls
1457              to adjust this limit.
1458
1459 Severity   : enhancement
1460 Bugzilla   : 22484
1461 Description: client read/write statistics
1462 Details    : Add client read/write call usage stats for performance
1463              analysis of user processes. 
1464              /proc/fs/lustre/llite/*/offset_stats shows non-sequential
1465              file access. extents_stats shows chunk size distribution.
1466              extents_stats_per_process show chunk size distribution per
1467              user process. 
1468
1469 Severity   : enhancement
1470 Bugzilla   : 22486
1471 Description: mds statistics
1472 Details    : Add detailed mds operations statistics in  
1473              /proc/fs/lustre/mds/*/stats.
1474
1475 Severity   : minor
1476 Bugzilla   : 10667
1477 Description: Failure of copying files with lustre special EAs.
1478 Details    : Client side always return success for setxattr call for lustre
1479              special xattr (currently only "trusted.lov").
1480
1481 Severity   : minor
1482 Frequency  : always
1483 Bugzilla   : 10345
1484 Description: Refcount LNET uuids
1485 Details    : The global LNET uuid list grew linearly with every startup;
1486              refcount repeated list entries instead of always adding to
1487              the list.
1488
1489 Severity   : enhancement
1490 Bugzilla   : 2258
1491 Description: Dynamic service threads
1492 Details    : Within a small range, start extra service threads
1493              automatically when the request queue builds up.
1494
1495 Severity   : major
1496 Frequency  : mixed-endian client/server environments
1497 Bugzilla   : 11214
1498 Description: mixed-endian crashes
1499 Details    : The new msg_v2 system had some failures in mixed-endian
1500              environments.
1501
1502 Severity   : enhancement
1503 Bugzilla   : 11229
1504 Description: Easy OST removal
1505 Details    : OSTs can be permanently deactivated with e.g. 'lctl
1506              conf_param lustre-OST0001.osc.active=0'
1507
1508 Severity   : enhancement
1509 Bugzilla   : 11335
1510 Description: MGS proc entries
1511 Details    : Added basic proc entries for the MGS showing what filesystems
1512              are served.
1513
1514 Severity   : enhancement
1515 Bugzilla   : 10998
1516 Description: provide MGS failover
1517 Details    : Added config lock reacquisition after MGS server failover.
1518
1519 Severity   : enhancement
1520 Bugzilla   : 11461
1521 Description: add Linux 2.4 support
1522 Details    : Added support for RHEL 2.4.21 kernel for 1.6 servers and clients
1523
1524 Severity   : normal
1525 Bugzilla   : 11330
1526 Description: a large application tries to do I/O to the same resource and dies
1527              in the middle of it.
1528 Details    : Check the req->rq_arrival time after the call to
1529              ost_brw_lock_get(), but before we do anything about
1530              processing it & sending the BULK transfer request. This
1531              should help move old stale pending locks off the queue as
1532              quickly as obd_timeout.
1533
1534 Severity   : major
1535 Frequency  : when an incorrect nid is specified during startup
1536 Bugzilla   : 10734
1537 Description: ptlrpc connect to non-existant node causes kernel crash
1538 Details    : LNET can't be re-entered from an event callback, which
1539              happened when we expire a message after the export has been
1540              cleaned up.  Instead, hand the zombie cleanup off to another
1541              thread.
1542
1543 Severity   : enhancement
1544 Bugzilla   : 10902
1545 Description: plain/inodebits lock performance improvement
1546 Details    : Grouping plain/inodebits in granted list by their request modes
1547              and bits policy, thus improving the performance of search through
1548              the granted list.
1549
1550 Severity   : major
1551 Frequency  : only if OST filesystem is corrupted
1552 Bugzilla   : 9829
1553 Description: client incorrectly hits assertion in ptlrpc_replay_req()
1554 Details    : for a short time RPCs with bulk IO are in the replay list,
1555              but replay of bulk IOs is unimplemented.  If the OST filesystem
1556              is corrupted due to disk cache incoherency and then replay is
1557              started it is possible to trip an assertion.  Avoid putting
1558              committed RPCs into the replay list at all to avoid this issue.
1559
1560 Severity   : major
1561 Frequency  : liblustre (e.g. catamount) on a large cluster with >= 8 OSTs/OSS
1562 Bugzilla   : 11684
1563 Description: System hang on startup
1564 Details    : This bug allowed the liblustre (e.g. catamount) client to
1565              return to the app before handling all startup RPCs.  This
1566              could leave the node unresponsive to lustre network traffic
1567              and manifested as a server ptllnd timeout.
1568
1569 Severity   : enhancement
1570 Bugzilla   : 11667
1571 Description: Add "/proc/sys/lustre/debug_peer_on_timeout"
1572 Details    : liblustre envirable: LIBLUSTRE_DEBUG_PEER_ON_TIMEOUT
1573              boolean to control whether to print peer debug info when a
1574              client's RPC times out.
1575
1576 Severity   : minor
1577 Frequency  : only for kernels with patches from Lustre below 1.4.3
1578 Bugzilla   : 11248
1579 Description: Remove old rdonly API
1580 Details    : Remove old rdonly API which unused from at least lustre 1.4.3
1581
1582 Severity   : major
1583 Frequency  : only for devices with external journals
1584 Bugzilla   : 10719
1585 Description: Set external device read-only also
1586 Details    : During a commanded failover stop, we set the disk device
1587              read-only while the server shuts down. We now also set any
1588              external journal device read-only at the same time.
1589
1590 Severity   : minor
1591 Frequency  : when upgrading from 1.4 while trying to change parameters
1592 Bugzilla   : 11692
1593 Description: The wrong (new) MDC name was used when setting parameters for
1594              upgraded MDT's.  Also allows changing of OSC (and MDC)
1595              parameters if --writeconf is specified at tunefs upgrade time.
1596
1597 Severity   : major
1598 Frequency  : when setting specific ost indicies
1599 Bugzilla   : 11149
1600 Description: QOS code breaks on skipped indicies
1601 Details    : Add checks for missing OST indicies in the QOS code, so OSTs
1602              created with --index need not be sequential.
1603
1604 Severity   : enhancement
1605 Bugzilla   : 11264
1606 Description: Add uninit_groups feature to ldiskfs2 to speed up e2fsck
1607 Details    : The uninit_groups feature works in conjunction with the kernel
1608              filesystem code (ldiskfs2 only) and e2fsprogs-1.39-cfs6 to speed
1609              up the pass1 processing of e2fsck.  This is a read-only feature
1610              in ldiskfs2 only, so older kernels and current ldiskfs cannot
1611              mount filesystems that have had this feature enabled.
1612
1613 Severity   : enhancement
1614 Bugzilla   : 10816
1615 Description: Improve multi-block allocation algorithm to avoid fragmentation
1616 Details    : The mballoc3 code (ldiskfs2 only) adds new mechanisms to improve
1617              allocation locality and avoid filesystem fragmentation.
1618
1619 ------------------------------------------------------------------------------
1620
1621 2007-04-01  Cluster File Systems, Inc. <info@clusterfs.com>
1622        * version 1.4.10
1623        * Support for kernels:
1624         2.4.21-47.0.1.EL (RHEL 3)
1625         2.6.5-7.283 (SLES 9)
1626         2.6.9-42.0.10.EL (RHEL 4)
1627         2.6.12.6 vanilla (kernel.org)
1628         2.6.16.27-0.9 (SLES 10)
1629        * Recommended e2fsprogs version: 1.39.cfs5
1630
1631        * Note that reiserfs quotas are disabled on SLES 10 in this kernel
1632        * bug fixes
1633
1634 Severity   : critical
1635 Frequency  : occasional, depends on client load and configuration
1636 Bugzilla   : 12181, 12203
1637 Description: data loss for recently-modified files
1638 Introduced : 1.4.6
1639 Details    : In some cases it is possible that recently written or created
1640              files may not be written to disk in a timely manner (this should
1641              normally be within 30s unless client IO load is very high).
1642              The problem appears as zero-length files or files that are a
1643              multiple of 1MB in size after a client crash or client eviction
1644              that are missing data at the end of the file.
1645
1646              This problem is more likely to be hit on clients where files are
1647              repeatedly created and unlinked in the same directory, clients
1648              have a large amount of RAM, have many CPUs, the filesystem has
1649              many OSTs, the clients are rebooted frequently, and/or the files
1650              are not accessed by other nodes after being written.
1651
1652              The presence of the problem can be detected by looking at
1653              /proc/sys/fs/inode-state.  If the first number (nr_inodes) is
1654              smaller than the second (nr_unused) then dirty files will not
1655              be flushed automatically to disk.  "sync; sleep 10" should be
1656              run several times on the node before unmounting it to update
1657              Lustre (this is also safe to run on nodes without this problem).
1658
1659              There is also a related kernel bug in the RHEL4 4 2.6.9 kernel
1660              that can cause this same problem, so customers using that kernel
1661              also need to update the kernel in addition to Lustre.  In order
1662              to properly fix this bug, the RHEL3 2.4.21 kernel is also updated.
1663
1664              It is normal that files written just before a client crash (less
1665              than 30s) may not yet have been flushed to disk, even for local
1666              filesystems.
1667
1668 Severity   : normal
1669 Frequency  : frequent on thin XT3 nodes
1670 Bugzilla   : 10802
1671 Description: UUID collision on thin XT3 Linux nodes
1672 Details    : UUIDs on Compute Node Linux XT3 nodes were not generated
1673              randomly, since we relied on an insufficiently-seeded PRNG.
1674
1675 Severity   : normal
1676 Frequency  : rare
1677 Bugzilla   : 11693
1678 Description: OSS hangs after "All ost request buffers busy"
1679 Details    : A deadlock between quota and journal operations caused OSS
1680              hangs after printing "All ost request buffers busy."
1681
1682 Severity   : minor
1683 Frequency  : always on liblustre builds
1684 Bugzilla   : 11175
1685 Description: Cleanup compiler warnings on liblustre
1686
1687 Severity   : minor
1688 Frequency  : always on liblustre builds on XT3
1689 Bugzilla   : 12146
1690 Description: LC_CONFIG_CDEBUG don't run while build liblustre on XT3.
1691
1692 Frequency  : always
1693 Bugzilla   : 3244
1694 Description: Addition of EXT3_FEATURE_RO_COMPAT_DIR_NLINKS flag for
1695              > 32000 subdirectories
1696 Details    : Add EXT3_FEATURE_RO_COMPAT_DIR_NLINK flag to
1697              EXT3_FEATURE_RO_COMPAT_SUPP. This flag will be set whenever
1698              subdirectory count crosses 32000. This will aid e2fsck to
1699              correctly handle more than 32000 subdirectories.
1700
1701 Severity   : major
1702 Frequency  : liblustre (e.g. catamount) on a large cluster with >= 8 OSTs/OSS
1703 Bugzilla   : 11684
1704 Description: System hang on startup
1705 Details    : This bug allowed the liblustre (e.g. catamount) client to
1706              return to the app before handling all startup RPCs.  This
1707              could leave the node unresponsive to lustre network traffic
1708              and manifested as a server ptllnd timeout.
1709
1710 Severity   : enhancement
1711 Bugzilla   : 11667
1712 Description: Add "/proc/sys/lustre/debug_peer_on_timeout"
1713              (liblustre envirable: LIBLUSTRE_DEBUG_PEER_ON_TIMEOUT)
1714              boolean to control whether to print peer debug info when a
1715              client's RPC times out.
1716
1717 Severity   : normal
1718 Frequency  : always
1719 Bugzilla   : 10214
1720 Description: make O_SYNC working on 2.6 kernels
1721 Details    : 2.6 kernels use different method for mark pages for write,
1722              so need add a code to lustre for O_SYNC work.
1723
1724 Severity   : minor
1725 Frequency  : always
1726 Bugzilla   : 11110
1727 Description: Failure to close file and release space on NFS
1728 Details    : Put inode details into lock acquired in ll_intent_file_open.
1729              Use mdc_intent_lock in ll_intent_open to properly
1730              detect all kind of errors unhandled by mdc_enqueue.
1731
1732 Severity   : major
1733 Frequency  : rare
1734 Bugzilla   : 10866
1735 Description: proc file read during shutdown sometimes raced obd removal,
1736              causing node crash
1737 Details    : Add lock to prevent obd access after proc file removal.
1738
1739 Severity   : normal
1740 Frequency  : Only for files larger than 4GB on 32-bit clients.
1741 Bugzilla   : 11237
1742 Description: improperly doing page alignment of locks
1743 Details    : Modify lustre core code to use CFS_PAGE_* defines instead of
1744              PAGE_*.  Make CFS_PAGE_MASK a 64-bit mask.
1745
1746 Severity   : normal
1747 Frequency  : rarely
1748 Bugzilla   : 11203
1749 Description: RPCs being resent when they shouldn't be
1750 Details    : Some RPCs that should not be resent are being resent.  This
1751              can cause inconsistencies in the RPC state machine.  Do not
1752              resend such requests.
1753
1754 Severity   : normal
1755 Frequency  : rare, only with NFS export
1756 Bugzilla   : 11669
1757 Description: Crash on NFS re-export node
1758 Details    : under very unusual load conditions an assertion is hit in
1759              ll_intent_file_open()
1760
1761 Severity   : major
1762 Frequency  : only if OST filesystem is corrupted
1763 Bugzilla   : 9829
1764 Description: client incorrectly hits assertion in ptlrpc_replay_req()
1765 Details    : for a short time RPCs with bulk IO are in the replay list,
1766              but replay of bulk IOs is unimplemented.  If the OST filesystem
1767              is corrupted due to disk cache incoherency and then replay is
1768              started it is possible to trip an assertion.  Avoid putting
1769              committed RPCs into the replay list at all to avoid this issue.
1770
1771 Severity   : normal
1772 Frequency  : always
1773 Bugzilla   : 10901
1774 Description: large O_DIRECT requests fail under memory pressure/fragmentation
1775 Details    : Large single O_DIRECT read and write calls can fail to allocate
1776              a sufficiently large buffer to process the request.  In case of
1777              allocation failure the allocation is retried with a smaller
1778              buffer and broken into smaller requests.
1779
1780 Severity   : enhancement
1781 Bugzilla   : 11563
1782 Description: Add -o localflock option to simulate  old noflock behaviour.
1783 Details    : This will achieve local-only flock/fcntl locks coherentness.
1784
1785 Severity   : normal
1786 Frequency  : always
1787 Bugzilla   : 11090
1788 Description: versioning check is incomplete
1789 Details    : Checking the version difference of client vs. server, report
1790              error if the gap is too big.
1791
1792 Severity   : major
1793 Bugzilla   : 11710
1794 Frequency  : always
1795 Description: add support PG_writeback bit
1796 Details    : add support for PG_writeback bit for Lustre, for more carefull
1797              work with page cache in 2.6 kernel. This also fix some deadlocks
1798              and remove hack for work O_SYNC with 2.6 kernel.
1799
1800 Severity   : enhancement
1801 Bugzilla   : 11264
1802 Description: Add uninit_groups feature to ldiskfs2 to speed up e2fsck
1803 Details    : The uninit_groups feature works in conjunction with the kernel
1804              filesystem code (ldiskfs2 only) and e2fsprogs-1.39-cfs6 to speed
1805              up the pass1 processing of e2fsck.  This is a read-only feature
1806              in ldiskfs2 only, so older kernels and current ldiskfs cannot
1807              mount filesystems that have had this feature enabled.
1808
1809 Severity   : enhancement
1810 Bugzilla   : 10816
1811 Description: Improve multi-block allocation algorithm to avoid fragmentation
1812 Details    : The mballoc3 code (ldiskfs2 only) adds new mechanisms to improve
1813              allocation locality and avoid filesystem fragmentation.
1814
1815 ------------------------------------------------------------------------------
1816
1817 2007-02-09  Cluster File Systems, Inc. <info@clusterfs.com>
1818        * version 1.4.9
1819        * Support for kernels:
1820         2.6.9-42.0.3.EL (RHEL 4)
1821         2.6.5-7.276 (SLES 9)
1822         2.4.21-47.0.1.EL (RHEL 3)
1823         2.6.12.6 vanilla (kernel.org)
1824         2.6.16.21-0.8 (SLES10)
1825        * Recommended e2fsprogs version: 1.39.cfs2-0
1826
1827        * The backwards-compatible /proc/sys/portals symlink has been removed
1828          in this release.  Before upgrading, please ensure that you change
1829          any configuration scripts or /etc/sysctl.conf files that access
1830          /proc/sys/portals/* or sysctl portals.* to use the corresponding
1831          entry in /proc/sys/lnet or sysctl lnet.*.  This change can be made
1832          in advance of the upgrade on any system running Lustre 1.4.6 or
1833          newer, since /proc/sys/lnet was added in that version.
1834        * Note that reiserfs quotas are disabled on SLES 10 in this kernel
1835        * bug fixes
1836
1837 Severity   : minor
1838 Frequency  : only when quota is used
1839 Bugzilla   : 11286
1840 Description: avoid scanning export list for quota master
1841 Details    : Change the algorithms to avoid scanning export list in order
1842              to improve the efficiency.
1843
1844 Severity   : critical
1845 Frequency  : MDS failover only, very rarely
1846 Bugzilla   : 11125
1847 Description: "went back in time" messages on mds failover
1848 Details    : The greatest transno may be lost when the current operation
1849              finishes with an error (transno==0) and the client's last_rcvd
1850              record is over-written. Save the greatest transno in the
1851              mds_last_transno for this case.
1852
1853 Severity   : minor
1854 Frequency  : always for specific kernels and striping counts
1855 Bugzilla   : 11042
1856 Description: client may get "Matching packet too big" without ACL support
1857 Details    : Clients compiled without CONFIG_FS_POSIX_ACL get an error message
1858              when trying to access files in certain configurations.  The
1859              clients should in fact be denied when mounting because they do
1860              not understand ACLs.
1861
1862 Severity   : major
1863 Frequency  : Cray XT3 with more than 4000 clients and multiple jobs
1864 Bugzilla   : 10906
1865 Description: many clients connecting with IO in progress causes connect timeouts
1866 Details    : Avoid synchronous journal commits to avoid delays caused by many
1867              clients connecting/disconnecting when bulk IO is in progress.
1868              Queue liblustre connect requests on OST_REQUEST_PORTAL instead of
1869              OST_IO_PORTAL to avoid delays behind potentially many pending
1870              slow IO requests.
1871
1872 Severity   : normal
1873 Frequency  : occasionally with multiple writers to a single file
1874 Bugzilla   : 11081
1875 Description: shared writes to file may result in wrong size reported by stat()
1876 Details    : Allow growing of kms when extent lock is cancelled
1877
1878 Severity   : minor
1879 Frequency  : always with random mmap IO to multi-striped file
1880 Bugzilla   : 10919
1881 Description: mmap write might be lost if we are writing to a 'hole' in stripe
1882 Details    : Only if the hole is at the end of OST object so that kms is too
1883              small. Fix is to increase kms accordingly in ll_nopage.
1884
1885 Severity   : normal
1886 Frequency  : rare, only if OST filesystem is inconsistent with MDS filesystem
1887 Bugzilla   : 11211
1888 Description: writes to a missing object would leak memory on the OST
1889 Details    : If there is an inconsistency between the MDS and OST filesystems,
1890              such that the MDS references an object that doesn't exist, writes
1891              to that object will leak memory due to incorrect cleanup in the
1892              error handling path, eventually running out of memory on the OST.
1893
1894 Severity   : minor
1895 Frequency  : rare
1896 Bugzilla   : 11040
1897 Description: Creating too long symlink causes lustre errors
1898 Details    : Check symlink and name lengths before sending requests to MDS.
1899
1900 Severity   : normal
1901 Frequency  : only if flock is enabled (not on by default)
1902 Bugzilla   : 11415
1903 Description: posix locks not released on fd closure on 2.6.9+
1904 Details    : We failed to add posix locks to list of inode locks on 2.6.9+
1905              kernels, this caused such locks not to be released on fd close and
1906              then assertions on fs unmount about still used locks.
1907
1908 Severity   : minor
1909 Frequency  : MDS failover only, very rarely
1910 Bugzilla   : 11277
1911 Description: clients may get ASSERTION(granted_lock != NULL)
1912 Details    : When request was taking a long time, and a client was resending
1913              a getattr by name lock request. The were multiple lock requests
1914              with the same client lock handle and
1915              mds_getattr_name->fixup_handle_for_resent_request found one of the
1916              lock handles but later failed with ASSERTION(granted_lock != NULL).
1917
1918 Severity   : major
1919 Frequency  : rare
1920 Bugzilla   : 10891
1921 Description: handle->h_buffer_credits > 0, assertion failure
1922 Details    : h_buffer_credits is zero after truncate, causing assertion
1923              failure.  This patch extends the transaction or creates a new
1924              one after truncate.
1925
1926 Severity   : normal
1927 Frequency  : NFS re-export or patchless client
1928 Bugzilla   : 11179, 10796
1929 Description: Crash on NFS re-export node (__d_move)
1930 Details    : We do not want to hash the dentry if we don't have a lock.
1931              But if this dentry is later used in d_move, we'd hit uninitialised
1932              list head d_hash, so we just do this to init d_hash field but
1933              leave dentry unhashed.
1934
1935 Severity   : normal
1936 Frequency  : NFS re-export or patchless client
1937 Bugzilla   : 11135
1938 Description: NFS exports has problem with symbolic link
1939 Details    : lustre client didn't properly install dentry when re-exported
1940              to NFS or running patchless client.
1941
1942 Severity   : normal
1943 Frequency  : NFS re-export or patchless client
1944 Bugzilla   : 10796
1945 Description: Various nfs/patchless fixes.
1946 Details    : fixes reuse disconected alias for lookup process - this fixes
1947              warning "find_exported_dentry: npd != pd",
1948              fix permission error with open files at nfs.
1949              fix apply umask when do revalidate.
1950
1951 Severity   : normal
1952 Frequency  : occasional
1953 Bugzilla   : 11191
1954 Description: Crash on NFS re-export node
1955 Details    : calling clear_page() on the wrong pointer triggered oops in
1956              generic_mapping_read().
1957
1958 Severity   : normal
1959 Frequency  : rarely, using O_DIRECT IO
1960 Bugzilla   : 10903
1961 Description: unaligned directio crashes client with LASSERT
1962 Details    : check for unaligned buffers before trying any requests.
1963
1964 Severity   : major
1965 Frequency  : rarely, using CFS RAID5 patches in non-standard kernel series
1966 Bugzilla   : 11313
1967 Description: stale data returned from RAID cache
1968 Details    : If only a small amount of IO is done to the RAID device before
1969              reading it again it is possible to get stale data from the RAID
1970              cache instead of reading it from disk.
1971
1972 Severity   : normal
1973 Frequency  : always for sles10 kernel
1974 Bugzilla   : 10947
1975 Description: sles10 support
1976 Details    : ll_follow_link: compile fixes and using of nd_set_link
1977              under newer kernels.
1978
1979 Severity   : major
1980 Frequency  : depends on arch, kernel and compiler version, always on sles10
1981              kernel and x86_64
1982 Bugzilla   : 11562
1983 Description: recursive or deep enough symlinks cause stack overflow
1984 Details    : getting rid of large stack-allocated variable in
1985              __vfs_follow_link
1986
1987 Severity   : minor
1988 Frequency  : depends on hardware
1989 Bugzilla   : 11540
1990 Description: lustre write performance loss in the SLES10 kernel
1991 Details    : the performance loss is caused by using of write barriers in the
1992              ext3 code. The SLES10 kernel turns barrier support on by
1993              default. The fix is to undo that change for ldiskfs.
1994
1995 ------------------------------------------------------------------------------
1996
1997 2006-12-09  Cluster File Systems, Inc. <info@clusterfs.com>
1998        * version 1.4.8
1999        * Support for kernels:
2000         2.6.9-42.0.3EL (RHEL 4)
2001         2.6.5-7.276 (SLES 9)
2002         2.4.21-47.0.1.EL (RHEL 3)
2003         2.6.12.6 vanilla (kernel.org)
2004        * bug fixes
2005
2006 Severity   : major
2007 Frequency  : quota enabled and large files being deleted
2008 Bugzilla   : 10707
2009 Description: releasing more than 4GB of quota at once hangs OST
2010 Details    : If a user deletes more than 4GB of files on a single OST it
2011              will cause the OST to spin in an infinite loop.  Release
2012              quota in < 4GB chunks, or use a 64-bit value for 1.4.7.1+.
2013
2014 Severity   : minor
2015 Frequency  : rare
2016 Bugzilla   : 10845
2017 Description: statfs data retrieved from /proc may be stale or zero
2018 Details    : When reading per-device statfs data from /proc, in the
2019              {kbytes,files}_{total,free,avail} files, it may appear
2020              as zero or be out of date.
2021
2022 Severity   : minor
2023 Frequency  : systems with MD RAID1 external journal devices
2024 Bugzilla   : 10832
2025 Description: lconf's call to blkid is confused by RAID1 journal devices
2026 Details    : Use the "blkid -l" flag to locate the MD RAID device instead
2027              of returning all block devices that match the journal UUID.
2028
2029 Severity   : normal
2030 Frequency  : always, for aggregate stripe size over 4GB
2031 Bugzilla   : 10725
2032 Description: "lfs setstripe" fails assertion when setting 4GB+ stripe width
2033 Details    : Using "lfs setstripe" to set stripe size * stripe count over 4GB
2034              will fail the kernel with "ASSERTION(lsm->lsm_xfersize != 0)"
2035
2036 Severity   : minor
2037 Frequency  : always if "lfs find" used on a local file/directory
2038 Bugzilla   : 10864
2039 Description: "lfs find" segfaults if used on a local file/directory
2040 Details    : The case where a directory component was not specified wasn't
2041              handled correctly.  Handle this properly.
2042
2043 Severity   : normal
2044 Frequency  : always on ppc64
2045 Bugzilla   : 10634
2046 Description: the write to an ext3 filesystem mounted with mballoc got stuck
2047 Details    : ext3_mb_generate_buddy() uses find_next_bit() which does not
2048              perform endianness conversion.
2049
2050 Severity   : major
2051 Frequency  : rarely (truncate to non-zero file size after write under load)
2052 Bugzilla   : 10730, 10687
2053 Description: Files padded with zeros to next 4K multiple
2054 Details    : With filesystems mounted using the "extents" option (2.6 kernels)
2055              it is possible that files that are truncated to a non-zero size
2056              immediately after being written are filled with zero bytes beyond
2057              the truncated size.  No file data is lost.
2058
2059 Severity   : enhancement
2060 Bugzilla   : 10452
2061 Description: Allow recovery/failover for liblustre clients.
2062 Details    : liblustre clients were unaware of failover configurations until
2063              now.
2064
2065 Severity   : enhancement
2066 Bugzilla   : 10743
2067 Description: user file locks should fail when not mounting with flock option
2068 Details    : Set up an error-returning stub in ll_file_operations.lock field
2069              to prevent incorrect behaviour when client is mounted without
2070              flock option. Also, set up properly f_op->flock field for
2071              RHEL4 kernels.
2072
2073 Severity   : minor
2074 Frequency  : always on ia64
2075 Bugzilla   : 10905
2076 Description: "lfs df" loops on printing out MDS statfs information
2077 Details    : The obd_ioctl_data was not initialized and in some systems
2078              this caused a failure during the ioctl that did not return
2079              an error.  Initialize the struct and return an error on failure.
2080
2081 Severity   : minor
2082 Frequency  : SLES 9 only
2083 Bugzilla   : 10667
2084 Description: Error of copying files with lustre special EAs as root
2085 Details    : Client side always return success for setxattr call for lustre
2086              special xattr (currently only "trusted.lov").
2087
2088 Severity   : normal
2089 Frequency  : rarely on clusters with both ia64+i386 clients
2090 Bugzilla   : 10672
2091 Description: ia64+i686 clients doing shared IO on the same file may LBUG
2092 Details    : In rare cases when both ia64+i686 (or other mixed-PAGE_SIZE)
2093              clients are doing concurrent writes to the same file it is
2094              possible that the ia64 clients may LASSERT because the OST
2095              extent locks are not PAGE_SIZE aligned.  Ensure that grown
2096              locks are always aligned on the request boundary.
2097
2098 Severity   : normal
2099 Frequency  : specific use, occasional
2100 Bugzilla   : 7040
2101 Description: Overwriting in use executable truncates on-disk binary image
2102 Details    : If one node attempts to overwrite an executable in use by
2103              another node, we now correctly return ETXTBSY instead of
2104              truncating the file.
2105
2106 Severity   : enhancement
2107 Bugzilla   : 4900
2108 Description: Async OSC create to avoid the blocking unnecessarily.
2109 Details    : If a OST has no remain object, system will block on the creating
2110              when need to create a new object on this OST. Now, ways use
2111              pre-created objects when available, instead of blocking on an
2112              empty osc while others are not empty.  If we must block, we block
2113              for the shortest possible period of time.
2114
2115 Severity   : normal
2116 Frequency  : rare
2117 Bugzilla   : 2707
2118 Description: chmod on Lustre root is propagated to other clients
2119 Details    : Re-validate root's dentry in ll_lookup_it to avoid having it
2120              invalid by the follow_mount time.
2121
2122 Severity   : minor
2123 Frequency  : liblustre clients only
2124 Bugzilla   : 10883
2125 Description: Race in 'instant cancel' lock handling could lead to such locks
2126              never to be granted in case of SMP MDS
2127 Details    : Do not destroy not yet granted but cbpending locks in
2128              handle_enqueue
2129
2130 Severity   : minor
2131 Frequency  : replay/resend of open
2132 Bugzilla   : 10991
2133 Description: non null lock assetion failure in mds_intent_policy
2134 Details    : Trying to replay/resend lockless open requests resulted in
2135              mds_open() returning 0 with no lock.  Now it sets a flag if
2136              a lock is going to be returned.
2137
2138 Severity   : enhancement
2139 Bugzilla   : 10889
2140 Description: Checksum enhancements
2141 Details    : New checksum enhancements allow for resending RPCs that failed
2142              checksum checks.
2143
2144 Severity   : enhancement
2145 Bugzilla   : 7376
2146 Description: Tunables on number of dirty pages in cacche
2147 Details    : Allow to set limit on number of dirty pages cached.
2148
2149 Severity   : normal
2150 Frequency  : rare
2151 Bugzilla   : 10643
2152 Description: client crash on unmount - lock still has references
2153 Details    : In some error handling cases it was possible to leak a lock
2154              reference on a client while accessing a file.  This was not
2155              harmful to the client during operation, but would cause the
2156              client to crash when the filesystem is unmounted.
2157
2158 Severity   : normal
2159 Frequency  : specific case, rare
2160 Bugzilla   : 10921
2161 Description: ETXTBSY on mds though file not in use by client
2162 Details    : ETXTBSY is no longer incorrectly returned when attempting to
2163              chmod or chown a directory that the user previously tried to
2164              execute or a currently-executing binary.
2165
2166 Severity   : major
2167 Frequency  : extremely rare except on liblustre-based clients
2168 Bugzilla   : 10480
2169 Description: Lustre space not freed when files are deleted
2170 Details    : Clean up open-unlinked files after client eviction.  Previously
2171              the unlink was skipped and the files remained as orphans.
2172
2173 Severity   : normal
2174 Frequency  : rare
2175 Bugzilla   : 10999
2176 Description: OST failure "would be an LBUG" in waiting_locks_callback()
2177 Details    : In some cases it was possible to send a blocking callback to
2178              a client doing a glimpse, even though that client didn't get
2179              a lock granted.  When the glimpse lock is cancelled on the OST
2180              the freed lock is left on the waiting list and corrupted the list.
2181
2182 Severity   : major
2183 Frequency  : all core dumps
2184 Bugzilla   : 11103
2185 Description: Broke core dumps to lustre
2186 Details    : Negative dentry may be unhashed if parent does not have UPDATE
2187              lock, but some callers, e.g. do_coredump, expect dentry to be
2188              hashed after successful create, hash it in ll_create_it.
2189
2190 ------------------------------------------------------------------------------
2191
2192 2006-09-13  Cluster File Systems, Inc. <info@clusterfs.com>
2193        * version 1.4.7.1
2194        * Support for kernels:
2195         2.6.9-42.0.2.EL (RHEL 4)
2196         2.6.5-7.276 (SLES 9)
2197         2.4.21-40.EL (RHEL 3)
2198         2.6.12.6 vanilla (kernel.org)
2199       * bug fix
2200
2201 Severity   : major
2202 Frequency  : always on RHEL 3
2203 Bugzilla   : 10867
2204 Description: Number of open files grows over time
2205 Details    : The number of open files grows over time, whether or not
2206              Lustre is started.  This was due to a filp leak introduced
2207              by one of our kernel patches.
2208
2209 ------------------------------------------------------------------------------
2210
2211 08-20-2006  Cluster File Systems, Inc. <info@clusterfs.com>
2212        * version 1.4.7
2213        * Support for kernels:
2214         2.6.9-42.EL (RHEL 4)
2215         2.6.5-7.276 (SLES 9)
2216         2.4.21-40.EL (RHEL 3)
2217         2.6.12.6 vanilla (kernel.org)
2218        * bug fixes
2219
2220 Severity   : major
2221 Frequency  : rare
2222 Bugzilla   : 5719, 9635, 9792, 9684
2223 Description: OST (or MDS) trips assertions in (re)connection under heavy load
2224 Details    : If a server is under heavy load and cannot reply to new
2225              connection requests before the client resends the (re)connect,
2226              the connection handling code can behave badly if two service
2227              threads are concurrently handing separate (re)connections from
2228              the same client.  Add better locking to the connection handling
2229              code, and ensure that only a single connection will be processed
2230              for a given client UUID, even if the lock is dropped.
2231
2232 Severity   : enhancement
2233 Bugzilla   : 3627
2234 Description: add TCP zero-copy support to kernel
2235 Details    : Add support to the kernel TCP stack to allow zero-copy bulk
2236              sends if the hardware supports scatter-gather and checksumming.
2237              This allows socklnd to do client-write and server-read more
2238              efficiently and reduce CPU utilization from skbuf copying.
2239
2240 Severity   : minor
2241 Frequency  : only if NFS exporting from client
2242 Bugzilla   : 10258
2243 Description: NULL pointer deref in ll_iocontrol() if chattr mknod file
2244 Details    : If setting attributes on a file created under NFS that had
2245              never been opened it would be possible to oops the client
2246              if the file had no objects.
2247
2248 Severity   : minor
2249 Frequency  : always for liblustre
2250 Bugzilla   : 10290
2251 Description: liblustre client does MDS+OSTs setattr RPC for each write
2252 Details    : When doing a write from a liblustre client, the client
2253              incorrectly issued an RPC to the MDS and each OST the file was
2254              striped over in order to update the timestamps.  When writing
2255              with small chunks and many clients this could overwhelm the MDS
2256              with RPCs.  In all cases it would slow down the write because
2257              these RPCs are unnecessary.
2258
2259 Severity   : enhancement
2260 Bugzilla   : 9340
2261 Description: allow number of MDS service threads to be changed at module load
2262 Details    : It is now possible to change the number of MDS service threads
2263              running.  Adding "options mds mds_num_threads={N}" to the MDS's
2264              /etc/modprobe.conf will set the number of threads for the next
2265              time Lustre is restarted (assuming the "mds" module is also
2266              reloaded at that time).  The default number of threads will
2267              stay the same, 32 for most systems.
2268
2269 Severity   : major
2270 Frequency  : rare
2271 Bugzilla   : 10300
2272 Description: OST crash if filesystem is unformatted or corrupt
2273 Details    : If an OST is started on a device that has never been formatted
2274              or if the filesystem is corrupt and cannot even mount then the
2275              error handling cleanup routines would dereference a NULL pointer.
2276
2277 Severity   : medium
2278 Frequency  : rare
2279 Bugzilla   : 10047
2280 Description: NULL pointer deref in llap_from_page.
2281 Details    : get_cache_page_nowait can return a page with NULL (or otherwise
2282              incorrect) mapping if the page was truncated/reclaimed while it was
2283              searched for. Check for this condition and skip such pages when
2284              doing readahead. Introduce extra check to llap_from_page() to
2285              verify page->mapping->host is non-NULL (so page is not anonymous).
2286
2287 Severity   : minor
2288 Frequency  : Sometimes when using sys_sendfile
2289 Bugzilla   : 7020
2290 Description: "page not covered by a lock" warnings from ll_readpage
2291 Details    : sendfile called ll_readpage without right page locks present.
2292              Now we introduced ll_file_sendfile that does necessary locking
2293              around call to generic_file_sendfile() much like we do in
2294              ll_file_read().
2295
2296 Severity   : medium
2297 Frequency  : with certain MDS communication failures at client mount time
2298 Bugzilla   : 10268
2299 Description: NULL pointer deref after failed client mount
2300 Details    : a client connection request may delayed by the network layer
2301              and not be sent until after the PTLRPC layer has timed out the
2302              request.  If the client fails the mount immediately it will try
2303              to clean up before the network times out the request.  Add a
2304              reference from the request import to the obd device and delay
2305              the cleanup until the network drops the request.
2306
2307 Severity   : medium
2308 Frequency  : occasionally during client (re)connect
2309 Bugzilla   : 9387
2310 Description: assertion failure during client (re)connect
2311 Details    : processing a client connection request may be delayed by the
2312              client or server longer than the client connect timeout.  This
2313              causes the client to resend the connection request.  If the
2314              original connection request is replied in this interval, the
2315              client may trip an assertion failure in ptlrpc_connect_interpret()
2316              which thought it would be the only running connect process.
2317
2318 Severity   : medium
2319 Frequency  : only with obd_echo servers and clients that are rebooted
2320 Bugzilla   : 10140
2321 Description: kernel BUG accessing uninitialized data structure
2322 Details    : When running an obd_echo server it did not start the ping_evictor
2323              thread, and when a client was evicted an uninitialized data
2324              structure was accessed.  Start the ping_evictor in the RPC
2325              service startup instead of the OBD startup.
2326
2327 Severity   : enhancement
2328 Bugzilla   : 10193 (patchless)
2329 Description: Remove dependency on various unexported kernel interfaces.
2330 Details    : No longer need reparent_to_init, exit_mm, exit_files,
2331              sock_getsockopt, filemap_populate, FMODE_EXEC, put_filp.
2332
2333 Severity   : minor
2334 Frequency  : rare (only users of deprecated and unsupported LDAP config)
2335 Bugzilla   : 9337
2336 Description: write_conf for zeroconf mount queried LDAP incorrectly for client
2337 Details    : LDAP apparently contains 'lustreName' attributes instead of
2338              'name'.  A simple remapping of the name is sufficient.
2339
2340 Severity   : major
2341 Frequency  : rare (only with non-default dump_on_timeout debug enabled)
2342 Bugzilla   : 10397
2343 Description: waiting_locks_callback trips kernel BUG if client is evicted
2344 Details    : Running with the dump_on_timeout debug flag turned on makes
2345              it possible that the waiting_locks_callback() can try to dump
2346              the Lustre kernel debug logs from an interrupt handler.  Defer
2347              this log dumping to the expired_lock_main() thread.
2348
2349 Severity   : enhancement
2350 Bugzilla   : 10420
2351 Description: Support NFS exporting on 2.6 kernels.
2352 Details    : Implement non-rawops metadata methods for NFS server to use without
2353              changing NFS server code.
2354
2355 Severity   : medium
2356 Frequency  : very rare (synthetic metadata workload only)
2357 Bugzilla   : 9974
2358 Description: two racing renames might cause an MDS thread to deadlock
2359 Details    : Running the "racer" program may cause one MDS thread to rename
2360              a file from being the source of a rename to being the target of
2361              a rename at exactly the same time that another thread is doing
2362              so, and the second thread has already enqueued these locks after
2363              doing a lookup of the target and is trying to relock them in
2364              order.  Ensure that we don't try to re-lock the same resource.
2365
2366 Severity   : major
2367 Frequency  : only very large systems with liblustre clients
2368 Bugzilla   : 7304
2369 Description: slow eviction of liblustre clients with the "evict_by_nid" RPC
2370 Details    : Use asynchronous set_info RPCs to send the "evict_by_nid" to
2371              all OSTs in parallel.  This allows the eviction of stale liblustre
2372              clients to proceed much faster than if they were done in series,
2373              and also offers similar improvements for other set_info RPCs.
2374
2375 Severity   : minor
2376 Frequency  : common
2377 Bugzilla   : 10265
2378 Description: excessive CPU usage during initial read phase on client
2379 Details    : During the initial read phase on a client, it would agressively
2380              retry readahead on the file, consuming too much CPU and impacting
2381              performance (since 1.4.5.8).  Improve the readahead algorithm
2382              to avoid this, and also improve some other common cases (read
2383              of small files in particular, where "small" is files smaller than
2384              /proc/fs/lustre/llite/*/max_read_ahead_whole_mb, 2MB by default).
2385
2386 Severity   : minor
2387 Frequency  : rare
2388 Bugzilla   : 10450
2389 Description: MDS crash when receiving packet with unknown intent.
2390 Details    : Do not LBUG in unknown intent case, just return -EFAULT
2391
2392 Severity   : enhancement
2393 Bugzilla   : 9293, 9385
2394 Description: MDS RPCs are serialised on client. This is unnecessary for some.
2395 Details    : Do not serialize getattr (non-intent version) and statfs.
2396
2397 Severity   : minor
2398 Frequency  : occasional, when OST network is overloaded/intermittent
2399 Bugzilla   : 10416
2400 Description: client evicted by OST after bulk IO timeout
2401 Details    : If a client sends a bulk IO request (read or write) the OST
2402              may evict the client if it is unresposive to its data GET/PUT
2403              request.  This is incorrect if the network is overloaded (takes
2404              too long to transfer the RPC data) or dropped the OST GET/PUT
2405              request.  There is no need to evict the client at all, since
2406              the pinger and/or lock callbacks will handle this, and the
2407              client can restart the bulk request.
2408
2409 Severity   : minor
2410 Frequency  : Always when mmapping file with no objects
2411 Bugzilla   : 10438
2412 Description: client crashes when mmapping file with no objects
2413 Details    : Check that we actually have objects in a file before doing any
2414              operations on objects in ll_vm_open, ll_vm_close and
2415              ll_glimpse_size.
2416
2417 Severity   : minor
2418 Frequency  : Rare
2419 Bugzilla   : 10484
2420 Description: Request leak when working with deleted CWD
2421 Details    : Introduce advanced request refcount tracking for requests
2422              referenced from lustre intent.
2423
2424 Severity   : Enhancement
2425 Bugzilla   : 10482
2426 Description: Cache open file handles on client.
2427 Details    : MDS now will return special lock along with openhandle, if
2428              requested and client is allowed to hold openhandle, even if unused,
2429              until such a lock is revoked. Helps NFS a lot, since NFS is opening
2430              closing files for every read/write openration.
2431
2432 Severity   : Enhancement
2433 Bugzilla   : 9291
2434 Description: Cache open negative dentries on client when possible.
2435 Details    : Guard negative dentries with UPDATE lock on parent dir, drop
2436              negative dentries on lock revocation.
2437
2438 Severity   : minor
2439 Frequency  : Always
2440 Bugzilla   : 10510
2441 Description: Remounting a client read-only wasn't possible with a zconf mount
2442 Details    : It wasn't possible to remount a client read-only with llmount.
2443
2444 Severity   : enhancement
2445 Description: Include MPICH 1.2.6 Lustre ADIO interface patch
2446 Details    : In lustre/contrib/ or /usr/share/lustre in RPM a patch for
2447              MPICH is included to add Lustre-specific ADIO interfaces.
2448              This is based closely on the UFS ADIO layer and only differs
2449              in file creation, in order to allow the OST striping to be set.
2450              This is user-contributed code and not supported by CFS.
2451
2452 Severity   : minor
2453 Frequency  : Always
2454 Bugzilla   : 9486
2455 Description: extended inode attributes (immutable, append-only) work improperly
2456              when 2.4 and 2.6 kernels are used on client/server or vice versa
2457 Details    : Introduce kernel-independent values for these flags.
2458
2459 Severity   : enhancement
2460 Frequency  : Always
2461 Bugzilla   : 10248
2462 Description: Allow fractional MB tunings for lustre in /proc/ filesystem.
2463 Details    : Many of the /proc/ tunables can only be tuned at a megabyte
2464              granularity. Now, Fractional MB granularity is be supported,
2465              this is very useful for low memory system.
2466
2467 Severity   : enhancement
2468 Bugzilla   : 9292
2469 Description: Getattr by fid
2470 Details    : Getting a file attributes by its fid, obtaining UPDATE|LOOKUP
2471              locks, avoids extra getattr rpc requests to MDS, allows '/' to
2472              have locks and avoids getattr rpc requests for it on every stat.
2473
2474 Severity   : major
2475 Frequency  : Always, for filesystems larger than 2TB
2476 Bugzilla   : 6191
2477 Description: ldiskfs crash at mount for filesystem larger than 2TB with mballoc
2478 Details    : Kenrel kmalloc limits allocations to 128kB and this prevents
2479              filesystems larger than 2TB to be mounted with mballoc enabled.
2480
2481 Severity   : critical
2482 Frequency  : Always, for 32-bit kernel without CONFIG_LBD and filesystem > 2TB
2483 Bugzilla   : 6191
2484 Description: ldiskfs crash at mount for filesystem larger than 2TB with mballoc
2485 Details    : If a 32-bit kernel is compiled without CONFIG_LBD enabled and a
2486              filesystems larger than 2TB is mounted then the kernel will
2487              silently corrupt the start of the filesystem.  CONFIG_LBD is
2488              enabled for all CFS-supported kernels, but the possibility of
2489              this happening with a modified kernel config exists.
2490
2491 Severity   : enhancement
2492 Bugzilla   : 10462
2493 Description: add client O_DIRECT support for 2.6 kernels
2494 Details    : It is now possible to do O_DIRECT reads and writes to files
2495              in the Lustre client mountpoint on 2.6 kernel clients.
2496
2497 Severity   : enhancement
2498 Bugzilla   : 10446
2499 Description: parallel glimpse, setattr, statfs, punch, destroy requests
2500 Details    : Sends glimpse, setattr, statfs, punch, destroy requests to OSTs in
2501              parallel, not waiting for response from every OST before sending
2502              a rpc to the next OST.
2503
2504 Severity   : minor
2505 Frequency  : rare
2506 Bugzilla   : 10150
2507 Description: setattr vs write race when updating file timestamps
2508 Details    : Client processes that update a file timestamp into the past
2509              right after writing to the file (e.g. tar) it is possible that
2510              the updated file modification time can be reset to the current
2511              time due to a race between processing the setattr and write RPC.
2512
2513 Severity   : enhancement
2514 Bugzilla   : 10318
2515 Description: Bring 'lfs find' closer in line with regular Linux find.
2516 Details    : lfs find util supports -atime, -mtime, -ctime, -maxdepth, -print,
2517              -print0 options and obtains all the needed info through the lustre
2518              ioctls.
2519
2520 Severity   : enhancement
2521 Bugzilla   : 6221
2522 Description: support up to 1024 configured devices on one node
2523 Details    : change obd_dev array from statically allocated to dynamically
2524              allocated structs as they are first used to reduce memory usage
2525
2526 Severity   : minor
2527 Frequency  : rare
2528 Bugzilla   : 10437
2529 Description: Flush dirty partially truncated pages during truncate
2530 Details    : Immediatelly flush partially truncated pages in filter_setattr,
2531              this way we completely avoid having any pages in page cache on OST
2532              and can retire ugly workarounds during writes to flush such pages.
2533
2534 Severity   : minor
2535 Frequency  : rare
2536 Bugzilla   : 10409
2537 Description: i_sem vs transaction deadlock in mds_obd_destroy during unlink.
2538 Details    : protect inode from truncation within vfs_unlink() context
2539              just take a reference before calling vfs_unlink() and release it
2540              when parent's i_sem is free.
2541
2542 Severity   : major
2543 Frequency  : rare
2544 Bugzilla   : 4778
2545 Description: last_id value checked outside lock on OST caused LASSERT failure
2546 Details    : If there were multiple MDS->OST object precreate requests in
2547              flight, it was possible that the OST's last object id was checked
2548              outside a lock and incorrectly tripped an assertion.  Move checks
2549              inside locks, and discard old precreate requests.
2550
2551 Severity   : minor
2552 Frequency  : always, if extents are used on OSTs
2553 Bugzilla   : 10703
2554 Description: index ei_leaf_hi (48-bit extension) is not zeroed in extent index
2555 Details    : OSTs using the extents format would not zero the high 16 bits of
2556              the index physical block number.  This is not a problem for any
2557              OST filesystems smaller than 16TB, and no kernels support ext3
2558              filesystems larger than 16TB yet.  This is fixed in 1.4.7 (all
2559              new/modified files) and can be fixed for existing filesystems
2560              with e2fsprogs-1.39-cfs1.
2561
2562 Severity   : minor
2563 Frequency  : rare
2564 Bugzilla   : 9387
2565 Description: import connection selection may be incorrect if timer wraps
2566 Details    : Using a 32-bit jiffies timer with HZ=1000 may cause backup
2567              import connections to be ignored if the 32-bit jiffies counter
2568              wraps.  Use a 64-bit jiffies counter.
2569
2570 Severity   : minor
2571 Frequency  : very large clusters immediately after boot
2572 Bugzilla   : 10083
2573 Description: LNET request buffers exhausted under heavy short-term load
2574 Details    : If a large number of client requests are generated on a service
2575              that has previously never seen so many requests it is possible
2576              that the request buffer growth cannot keep up with the spike in
2577              demand.  Instead of dropping incoming requests, they are held in
2578              the LND until the RPC service can accept more requests.
2579
2580 Severity   : minor
2581 Frequency  : Sometimes during replay
2582 Bugzilla   : 9314
2583 Description: Assertion failure in ll_local_open after replay.
2584 Details    : If replay happened on an open request reply before we were able
2585              to set replay handler, reply will become not swabbed tripping the
2586              assertion in ll_local_open. Now we set the handler right after
2587              recognising of open request
2588
2589 Severity   : trivial
2590 Frequency  : very rare
2591 Bugzilla   : 10584
2592 Description: kernel reports "badness in vsnprintf"
2593 Details    : Reading from the "recovery_status" /proc file in small chunks
2594              may cause a negative length in lprocfs_obd_rd_recovery_status()
2595              call to vsnprintf() (which is otherwise harmless).  Exit early
2596              if there is no more space in the output buffer.
2597
2598 Severity   : enhancement
2599 Bugzilla   : 2259
2600 Description: clear OBD RPC statistics by writing to them
2601 Details    : It is now possible to clear the OBD RPC statistics by writing
2602              to the "stats" file.
2603
2604 Severity   : minor
2605 Frequency  : rare
2606 Bugzilla   : 10641
2607 Description: Client mtime is not the same on different clients after utimes
2608 Details    : In some cases, the client was using the utimes() syscall on
2609              a file cached on another node.  The clients now validate the
2610              ctime from the MDS + OSTs to determine which one is right.
2611
2612 Severity   : minor
2613 Frequency  : always
2614 Bugzilla   : 10611
2615 Description: Inability to activate failout mode
2616 Details    : lconf script incorrectly assumed that in pythong string's numeric
2617              value is used in comparisons.
2618
2619 Severity   : minor
2620 Frequency  : always with multiple stripes per file
2621 Bugzilla   : 10671
2622 Description: Inefficient object allocation for mutli-stripe files
2623 Details    : When selecting which OSTs to stripe files over, for files with
2624              a stripe count that divides evenly into the number of OSTs,
2625              the MDS is always picking the same starting OST for each file.
2626              Return the OST selection heuristic to the original design.
2627
2628 Severity   : trivial
2629 Frequency  : rare
2630 Bugzilla   : 10673
2631 Description: mount failures may take full timeout to return an error
2632 Details    : Under some heavy load conditions it is possible that a
2633              failed mount can wait for the full obd_timeout interval,
2634              possibly several minutes, before reporting an error.
2635              Instead return an error as soon as the status is known.
2636 Severity   : major
2637 Frequency  : quota enabled and large files being deleted
2638 Bugzilla   : 10707
2639 Description: releasing more than 4GB of quota at once hangs OST
2640 Details    : If a user deletes more than 4GB of files on a single OST it
2641              will cause the OST to spin in an infinite loop.  Release
2642              quota in < 4GB chunks, or use a 64-bit value for 1.4.7.1+.
2643
2644 Severity   : trivial
2645 Frequency  : rare
2646 Bugzilla   : 10845
2647 Description: statfs data retrieved from /proc may be stale or zero
2648 Details    : When reading per-device statfs data from /proc, in the
2649              {kbytes,files}_{total,free,avail} files, it may appear
2650              as zero or be out of date.
2651
2652 Severity   : trivial
2653 Frequency  : systems with MD RAID1 external journal devices
2654 Bugzilla   : 10832
2655 Description: lconf's call to blkid is confused by RAID1 journal devices
2656 Details    : Use the "blkid -l" flag to locate the MD RAID device instead
2657              of returning all block devices that match the journal UUID.
2658
2659 Severity   : normal
2660 Frequency  : always, for aggregate stripe size over 4GB
2661 Bugzilla   : 10725
2662 Description: assertion fails when trying to use 4GB stripe size
2663 Details    : Use "setstripe" to set stripe size over 4GB will fail the kernel,
2664              complaining "ASSERTION(lsm->lsm_xfersize != 0)"
2665
2666 Severity   : normal
2667 Frequency  : always on ppc64
2668 Bugzilla   : 10634
2669 Description: the first write on an ext3 filesystem with mballoc got stuck
2670 Details    : ext3_mb_generate_buddy() uses find_next_bit() which does not
2671              perform endianness conversion.
2672
2673 ------------------------------------------------------------------------------
2674
2675 02-14-2006  Cluster File Systems, Inc. <info@clusterfs.com>
2676        * version 1.4.6
2677        * WIRE PROTOCOL CHANGE.  This version of Lustre networking WILL NOT
2678          INTEROPERATE with older versions automatically.  Please read the
2679          user documentation before upgrading any part of a live system.
2680        * WARNING: Lustre networking configuration changes are required with
2681          this release.  See https://bugzilla.clusterfs.com/show_bug.cgi?id=10052
2682          for details.
2683        * bug fixes
2684        * Support for kernels:
2685         2.6.9-22.0.2.EL (RHEL 4)
2686         2.6.5-7.244 (SLES 9)
2687         2.6.12.6 vanilla (kernel.org)
2688
2689
2690 Severity   : enhancement
2691 Bugzilla   : 7981/8208
2692 Description: Introduced Lustre Networking (LNET)
2693 Details    : LNET is new networking infrastructure for Lustre, it includes
2694              a reorganized network configuration mode (see the user
2695              documentation for full details) as well as support for routing
2696              between different network fabrics.  Lustre Networking Devices
2697              (LNDs) for the supported network fabrics have also been
2698              created for this new infrastructure.
2699
2700 Severity   : enhancement
2701 Description: Introduced Access control lists
2702 Details    : clients can set ACLs on files and directories in order to have
2703              more fine-grained permissions than the standard Unix UGO+RWX.
2704              The MDS must be started with the "-o acl" mount option.
2705
2706 Severity   : enhancement
2707 Description: Introduced filesystem quotas
2708 Details    : Administrators may now establish per-user quotas on the
2709              filesystem.
2710
2711 Severity   : enhancement
2712 Bugzilla   : 7982
2713 Description: Configuration change for the XT3
2714              The PTLLND is now used to run Lustre over Portals on the XT3
2715              The configure option(s) --with-cray-portals are no longer used.
2716              Rather --with-portals=<path-to-portals-includes> is used to
2717              enable building on the XT3.  In addition to enable XT3 specific
2718              features the option --enable-cray-xt3 must be used.
2719         
2720 Severity   : major
2721 Frequency  : rare
2722 Bugzilla   : 7407
2723 Description: Running on many-way SMP OSTs can trigger oops in llcd_send()
2724 Details    : A race between allocating a new llcd and re-getting the llcd_lock
2725              allowed another thread to grab newly-allocated llcd.
2726
2727 Severity   : enhancement
2728 Bugzilla   : 7116
2729 Description: 2.6 OST async journal commit and locking fix to improve performance
2730 Details    : The filter_direct_io()+filter_commitrw_write() journal commits for
2731              2.6 kernels are now async as they already were in 2.4 kernels so
2732              that they can commit concurrently with the network bulk transfer.
2733              For block-allocated files the filter allocation semaphore is held
2734              to avoid filesystem fragmentation during allocation.  BKL lock
2735              removed for 2.6 xattr operations where it is no longer needed.
2736
2737 Severity   : minor
2738 Frequency  : rare
2739 Bugzilla   : 8320
2740 Description: lconf incorrectly determined whether two IP networks could talk
2741 Details    : In some more complicated routing and multiple-network
2742              configurations, lconf will avoid trying to make a network
2743              connection to a disjoint part of the IP space.  It was doing the
2744              math incorrectly for one set of cases.
2745
2746 Severity   : major
2747 Frequency  : rare
2748 Bugzilla   : 7359
2749 Description: Fix for potential infinite loop processing records in an llog.
2750 Details    : If an llog record is corrupted/zeroed, it is possible to loop
2751              forever in llog_process().  Validate the llog record length
2752              and skip the remainder of the block on error.
2753
2754 Severity   : minor
2755 Frequency  : occasional (liblustre only)
2756 Bugzilla   : 6363
2757 Description: liblustre could not open files whose last component is a symlink
2758 Details    : sysio_path_walk() would incorrectly pass the open intent to
2759              intermediate path components.
2760
2761 Severity   : minor
2762 Frequency  : rare (liblustre only with non-standard tuning)
2763 Bugzilla   : 7201 (7350)
2764 Description: Tuning the MDC DLM LRU size to zero triggers client LASSERT
2765 Details    : llu_lookup_finish_locks() tries to set lock data on a lock
2766              after it has been released, only do this for referenced locks
2767
2768 Severity   : enhancement
2769 Bugzilla   : 7328
2770 Description: specifying an (invalid) directory default stripe_size of -1
2771              would reset the directory default striping
2772 Details    : stripe_size -1 was used internally to signal directory stripe
2773              removal, now use "all default" to signal dir stripe removal
2774              as a directory striping of "all default" is not useful
2775
2776 Severity   : minor
2777 Frequency  : common for large clusters running liblustre clients
2778 Bugzilla   : 7198
2779 Description: doing an ls when liblustre clients are running is slow
2780 Details    : sending a glimpse AST to a liblustre client waits for every AST
2781              to time out, as liblustre clients will not respond.  Since they
2782              cannot cache data we refresh the OST lock LVB from disk instead.
2783
2784 Severity   : enhancement
2785 Bugzilla   : 7198
2786 Description: doing an ls at the same time as file IO can be slow
2787 Details    : enqueue and other "small" requests can be blocked behind many
2788              large IO requests.  Create a new OST IO portal for non-IO
2789              requests so they can be processed faster.
2790
2791 Severity   : minor
2792 Frequency  : rare (only HPUX clients mounting unsupported re-exported NFS vol)
2793 Bugzilla   : 5781
2794 Description: an HPUX NFS client would get -EACCESS when ftruncate()ing a newly
2795              created file with mode 000
2796 Details    : the Linux NFS server relies on an MDS_OPEN_OWNEROVERRIDE hack to
2797              allow an ftruncate() as a non-root user to a file with mode 000.
2798              Lustre now respects this flag to disable mode checks when
2799              truncating a file owned by the user
2800
2801 Severity   : minor
2802 Frequency  : liblustre-only, when liblustre client dies unexpectedly or becomes
2803              busy
2804 Bugzilla   : 7313
2805 Description: Revoking locks from clients that went dead or catatonic might take
2806              a lot of time.
2807 Details    : New lock flags FL_CANCEL_ON_BLOCK used by liblustre makes
2808              cancellation of such locks instant on servers without waiting for
2809              any reply from clients. Clients drops these locks when cancel
2810              notification from server is received without replying.
2811
2812 Severity   : minor
2813 Frequency  : liblustre-only, when liblustre client dies or becomes busy
2814 Bugzilla   : 7311
2815 Description: Doing ls on Linux clients can take a long time with active
2816              liblustre clients
2817 Details    : Liblustre client cannot handle ASTs in timely manner, so avoid
2818              granting such locks to it in the first place if possible.  Locks
2819              are taken by proxy on the OST during the read or write and
2820              dropped immediately afterward.  Add connect flags handling, do
2821              not grant locks to liblustre clients for glimpse ASTs.
2822
2823 Severity   : enhancement
2824 Bugzilla   : 6252
2825 Description: Improve read-ahead algorithm to avoid excessive IO for random reads
2826 Details    : Existing read-ahead algorithm is tuned for the case of streamlined
2827              sequential reads and behaves badly with applications doing random
2828              reads.  Improve it by reading ahead at least read region, and
2829              avoiding excessive large RPC for small reads.
2830
2831 Severity   : enhancement
2832 Bugzilla   : 8330
2833 Description: Creating more than 1000 files for a single job may cause a load
2834              imbalance on the OSTs if there are also a large number of OSTs.
2835 Details    : qos_prep_create() uses an OST index reseed value that is an
2836              even multiple of the number of available OSTs so that if the
2837              reseed happens in the middle of the object allocation it will
2838              still utilize the OSTs as uniformly as possible.
2839
2840 Severity   : major
2841 Frequency  : rare
2842 Bugzilla   : 8322
2843 Description: OST or MDS may oops in ping_evictor_main()
2844 Details    : ping_evictor_main() drops obd_dev_lock if deleting a stale export
2845              but doesn't restart at beginning of obd_exports_timed list
2846              afterward.
2847
2848 Severity   : enhancement
2849 Bugzilla   : 7304
2850 Description: improve by-nid export eviction on the MDS and OST
2851 Details    : allow multiple exports with the same NID to be evicted at one
2852              time without re-searching the exports list.
2853
2854 Severity   : major
2855 Frequency  : rare, only with supplementary groups enabled on SMP 2.6 kernels
2856 Bugzilla   : 7273
2857 Description: MDS may oops in groups_free()
2858 Details    : in rare race conditions a newly allocated group_info struct is
2859              freed again, and this can be NULL.  The 2.4 compatibility code
2860              for groups_free() checked for a NULL pointer, but 2.6 did not.
2861
2862 Severity   : minor
2863 Frequency  : common for liblustre clients doing little filesystem IO
2864 Bugzilla   : 9352, 7313
2865 Description: server may evict liblustre clients accessing contended locks
2866 Details    : if a client is granted a lock or receives a completion AST
2867              with a blocking AST already set it would not reply to the AST
2868              for LDLM_FL_CANCEL_ON_BLOCK locks.  It now replies to such ASTs.
2869
2870 Severity   : minor
2871 Frequency  : lfs setstripe, only systems with more than 160 OSTs
2872 Bugzilla   : 9440
2873 Description: unable to set striping with a starting offset beyond OST 160
2874 Details    : llapi_create_file() incorrectly limited the starting stripe
2875              index to the maximum single-file stripe count.
2876
2877 Severity   : minor
2878 Frequency  : LDAP users only
2879 Bugzilla   : 6163
2880 Description: lconf did not handle in-kernel recovery with LDAP properly
2881 Details    : lconf/LustreDB get_refs() is searching the wrong namespace
2882
2883 Severity   : enhancement
2884 Bugzilla   : 7342
2885 Description: bind OST threads to NUMA nodes to improve performance
2886 Details    : all OST threads are uniformly bound to CPUs on a single NUMA
2887              node and do their allocations there to localize memory access
2888
2889 Severity   : enhancement
2890 Bugzilla   : 7979
2891 Description: llmount can determine client NID directly from Myrinet (GM)
2892 Details    : the client NID code from gmnalnid was moved directly into
2893              llmount, removing the need to use this or specifying the
2894              client NID explicitly when mounting GM clients with zeroconf
2895
2896 Severity   : minor
2897 Frequency  : if client is started with down MDS
2898 Bugzilla   : 7184
2899 Description: if client is started with down MDS mount hangs in ptlrpc_queue_wait
2900 Details    : Having an LWI_INTR() wait event (interruptible, but no timeout)
2901              will wait indefinitely in ptlrpc_queue_wait->l_wait_event() after
2902              ptlrpc_import_delayed_req() because we didn't check if the
2903              request was interrupted, and we also didn't break out of the
2904              event loop if there was no timeout
2905
2906 Severity   : major
2907 Frequency  : rare
2908 Bugzilla   : 5047
2909 Description: data loss during non-page-aligned writes to a single file from
2910              both multiple nodes and multiple threads on one node at same time
2911 Details    : updates to KMS and lsm weren't protected by common lock. Resulting
2912              inconsistency led to false short-reads, that were cached and later
2913              used by ->prepare_write() to fill in partially written page,
2914              leading to data loss.
2915
2916 Severity   : minor
2917 Frequency  : always, if lconf --abort_recovery used
2918 Bugzilla   : 7047
2919 Description: lconf --abort_recovery fails with 'Operation not supported'
2920 Details    : lconf was attempting to abort recovery on the MDT device and not
2921              the MDS device
2922
2923 Severity   : enhancement
2924 Bugzilla   : 9445
2925 Description: remove cleanup logs
2926 Details    : replace lconf-generated cleanup logs with lustre internal
2927              cleanup routines.  Eliminates the need for client-cleanup and
2928              mds-cleanup logs.
2929
2930 Severity   : enhancement
2931 Bugzilla   : 8592
2932 Description: add support for EAs (user and system) on lustre filesystems
2933 Details    : it is now possible to store extended attributes in the Lustre
2934              client filesystem, and with the user_xattr mount option it
2935              is possible to allow users to store EAs on their files also
2936
2937 Severity   : enhancement
2938 Bugzilla   : 7293
2939 Description: Add possibility (config option) to show minimal available OST free
2940              space.
2941 Details    : When compiled with --enable-mindf configure option, statfs(2)
2942              (and so, df) will return least minimal free space available from
2943              all OSTs as amount of free space on FS, instead of summary of
2944              free spaces of all OSTs.
2945
2946 Severity   : enhancement
2947 Bugzilla   : 7311
2948 Description: do not expand extent locks acquired on OST-side
2949 Details    : Modify ldlm_extent_policy() to not expand local locks, acquired
2950              by server: they are not cached anyway.
2951
2952 Severity   : major
2953 Frequency  : when mmap is used/binaries executed from Lustre
2954 Bugzilla   : 9482
2955 Description: Unmmap pages before throwing them away from read cache.
2956 Details    : llap_shrink cache now attempts to unmap pages before discarding
2957              them (if unmapping failed - do not discard).  SLES9 kernel has
2958              extra checks that trigger if this unmapping is not done first.
2959
2960 Severity   : minor
2961 Frequency  : rare
2962 Bugzilla   : 6034
2963 Description: lconf didn't resolve symlinks before checking to see whether a
2964              given mountpoint was already in use
2965
2966 Severity   : minor
2967 Frequency  : when migrating failover services
2968 Bugzilla   : 6395, 9514
2969 Description: When migrating a subset of services from a node (e.g. failback
2970              from a failover service node) the remaining services would
2971              time out and evict clients.
2972 Details    : lconf --force (implied by --failover) sets the global obd_timeout
2973              to 5 seconds in order to quickly disconnect, but this caused
2974              other RPCs to time out too quickly.  Do not change the global
2975              obd_timeout for force cleanup, only set it for DISCONNECT RPCs.
2976
2977 Severity   : enhancement
2978 Frequency  : if MDS is started with down OST
2979 Bugzilla   : 9439,5706
2980 Description: Allow startup/shutdown of an MDS without depending on the
2981              availability of the OSTs.
2982 Details    : Asynchronously call mds_lov_synchronize during MDS startup.
2983              Add appropriate locking and lov-osc refcounts for safe
2984              cleaning.  Add osc abort_inflight calls in case the
2985              synchronize never started.
2986
2987 Severity   : minor
2988 Frequency  : occasional (Cray XT3 only)
2989 Bugzilla   : 7305
2990 Description: root not authorized to access files in CRAY_PORTALS environment
2991 Details    : The client process capabilities were not honoured on the MDS in
2992              a CRAY_PORTALS/CRAY_XT3 environment.  If the file had previously
2993              been accessed by an authorized user then root was able to access
2994              the file on the local client also.  The root user capabilities
2995              are now allowed on the MDS, as this environment has secure UID.
2996
2997 Severity   : minor
2998 Frequency  : occasional
2999 Bugzilla   : 6449
3000 Description: ldiskfs "too long searching" message happens too often
3001 Details    : A debugging message (otherwise harmless) prints too often on
3002              the OST console.  This has been reduced to only happen when
3003              there are fragmentation problems on the filesystem.
3004
3005 Severity   : minor
3006 Frequency  : rare
3007 Bugzilla   : 9598
3008 Description: Division by zero in statfs when all OSCs are inactive
3009 Details    : lov_get_stripecnt() returns zero due to incorrect order of checks,
3010              lov_statfs divides by value returned by lov_get_stripecnt().
3011
3012 Severity   : minor
3013 Frequency  : common
3014 Bugzilla   : 9489, 3273
3015 Description: First write from each client to each OST was only 4kB in size,
3016              to initialize client writeback cache, which caused sub-optimal
3017              RPCs and poor layout on disk for the first writen file.
3018 Details    : Clients now request an initial cache grant at (re)connect time
3019              and so that they can start streaming writes to the cache right
3020              away and always do full-sized RPCs if there is enough data.
3021              If the OST is rebooted the client also re-establishes its grant
3022              so that client cached writes will be honoured under the grant.
3023
3024 Severity   : minor
3025 Frequency  : common
3026 Bugzilla   : 7198
3027 Description: Slow ls (and stat(2) syscall) on files residing on IO-loaded OSTs
3028 Details    : Now I/O RPCs go to different portal number and (presumably) fast
3029              lock requests (and glimses) and other RPCs get their own service
3030              threads pool that should be able to service those RPCs
3031              immediatelly.
3032
3033 Severity   : enhancement
3034 Bugzilla   : 7417
3035 Description: Ability to exchange lustre version between client and servers and
3036              issue warnings at client side if client is too old. Also for
3037              liblustre clients there is ability to refuse connection of too old
3038              clients.
3039 Details    : New 'version' field is added to connect data structure that is
3040              filled with version info. That info is later checked by server and
3041              by client.
3042
3043 Severity   : minor
3044 Frequency  : rare, liblustre only.
3045 Bugzilla   : 9296, 9581
3046 Description: Two simultaneous writes from liblustre at offset within same page
3047              might proceed at the same time overwriting eachother with stale
3048              data.
3049 Details    : I/O lock withing llu_file_prwv was released too early, before data
3050              actually was hitting the wire. Extended lock-holding time until
3051              server acknowledges receiving data.
3052
3053 Severity   : minor
3054 Frequency  : extremely rare. Never observed in practice.
3055 Bugzilla   : 9652
3056 Description: avoid generating lustre_handle cookie of 0.
3057 Details    : class_handle_hash() generates handle cookies by incrementing
3058              global counter, and can hit 0 occasionaly (this is unlikely, but
3059              not impossible, because initial value of cookie counter is
3060              selected randonly). Value of 0 is used as a sentinel meaning
3061              "unassigned handle" --- avoid it. Also coalesce two critical
3062              sections in this function into one.
3063
3064 Severity   : enhancement
3065 Bugzilla   : 9528
3066 Description: allow liblustre clients to delegate truncate locking to OST
3067 Details    : To avoid overhead of locking, liblustre client instructs OST to
3068              take extent lock in ost_punch() on client's behalf. New connection
3069              flag is added to handle backward compatibility.
3070
3071 Severity   : enhancement
3072 Bugzilla   : 4928, 7341, 9758
3073 Description: allow number of OST service threads to be specified
3074 Details    : a module parameter allows the number of OST service threads
3075              to be specified via "options ost ost_num_threads={N}" in the
3076              OSS's /etc/modules.conf or /etc/modprobe.conf.
3077
3078 Severity   : major
3079 Frequency  : rare
3080 Bugzilla   : 6146, 9635, 9895
3081 Description: servers crash with bad pointer in target_handle_connect()
3082 Details    : In rare cases when a client is reconnecting it was possible that
3083              the connection request was the last reference for that export.
3084              We would temporarily drop the export reference and get a new
3085              one, but this may have been the last reference and the export
3086              was just destroyed.  Get new reference before dropping old one.
3087
3088 Severity   : enhancement
3089 Frequency  : if client is started with failover MDS
3090 Bugzilla   : 9818
3091 Description: Allow multiple MDS hostnames in the mount command
3092 Details    : Try to read the configuration from all specified MDS
3093              hostnames during a client mount in case the "primary"
3094              MDS is down.
3095
3096 Severity   : enhancement
3097 Bugzilla   : 9297
3098 Description: Stop sending data to evicted clients as soon as possible.
3099 Details    : Check if the client we are about to send or are sending data to
3100              was evicted already. (Check is done every second of waiting,
3101              for which l_wait_event interface was extended to allow checking
3102              of exit condition at specified intervals).
3103
3104 Severity   : minor
3105 Frequency  : rare, normally only when NFS exporting is done from client
3106 Bugzilla   : 9301
3107 Description: 'bad disk LOV MAGIC: 0x00000000' error when chown'ing files
3108              without objects
3109 Details    : Make mds_get_md() recognise empty md case and set lmm size to 0.
3110
3111 Severity   : minor
3112 Frequency  : always, if srand() is called before liblustre initialization
3113 Bugzilla   : 9794
3114 Description: Liblustre uses system PRNG disturbing its usage by user application
3115 Details    : Introduce internal to lustre fast and high-quality PRNG for
3116              lustre usage and make liblustre and some other places in generic
3117              lustre code to use it.
3118
3119 Severity   : enhancement
3120 Bugzilla   : 9477, 9557, 9870
3121 Description: Verify that the MDS configuration logs are updated when xml is
3122 Details    : Check if the .xml configuration logs are newer than the config
3123              logs stored on the MDS and report an error if this is the case.
3124              Request --write-conf, or allow starting with --old_conf.
3125
3126 Severity   : enhancement
3127 Bugzilla   : 6034
3128 Description: Handle symlinks in the path when checking if Lustre is mounted.
3129 Details    : Resolve intermediate symlinks when checking if a client has
3130              mounted a filesystem to avoid duplicate client mounts.
3131
3132 Severity   : minor
3133 Frequency  : rare
3134 Bugzilla   : 9309
3135 Description: lconf can hit an error exception but still return success.
3136 Details    : The lconf command catches the Command error exception at the top
3137              level script context and will exit with the associated exit
3138              status, but doesn't ensure that this exit status is non-zero.
3139
3140 Severity   : minor
3141 Frequency  : rare
3142 Bugzilla   : 9493
3143 Description: failure of ptlrpc thread startup can cause oops
3144 Details    : Starting a ptlrpc service thread can fail if there are a large
3145              number of threads or the server memory is very fragmented.
3146              Handle this without oopsing.
3147
3148 Severity   : minor
3149 Frequency  : always, only if liblustre and non-default acceptor port was used
3150 Bugzilla   : 9933
3151 Description: liblustre cannot connect to servers with non-default acceptor port
3152 Details    : tcpnal_set_default_params() was not called and was therefore
3153              ignoring the environment varaible TCPNAL_PORT, as well as other
3154              TCPNAL_ environment variables
3155
3156 Severity   : minor
3157 Frequency  : rare
3158 Bugzilla   : 9923
3159 Description: two objects could be created on the same OST for a single file
3160 Details    : If an OST is down, in some cases it was possible to create two
3161              objects on a single OST for a single file.  No problems other
3162              than potential performance impact and spurious error messages.
3163
3164 Severity   : minor
3165 Frequency  : rare
3166 Bugzilla   : 5681, 9562
3167 Description: Client may oops in ll_unhash_aliases
3168 Details    : Client dcache may become inconsistent in race condition.
3169              In some cases "getcwd" can fail if the current directory is
3170              modified.
3171
3172 Severity   : minor
3173 Frequency  : always
3174 Bugzilla   : 9942
3175 Description: Inode refcounting problems in NFS export code
3176 Details    : link_raw functions used to call d_instantiate without obtaining
3177              extra inode reference first.
3178
3179 Severity   : minor
3180 Frequency  : rare
3181 Bugzilla   : 9942, 9903
3182 Description: Referencing freed requests leading to crash, memleaks with NFS.
3183 Details    : We used to require that call to ll_revalidate_it was always
3184              followed by ll_lookup_it. Also with revalidate_special() it is
3185              possible to call ll_revalidate_it() twice for the same dentry
3186              even if first occurence returned success. This fix changes semantic
3187              between DISP_ENQ_COMPLETE disposition flag to mean there is extra
3188              reference on a request referred from the intent.
3189              ll_intent_release() then releases such a request.
3190
3191 Severity   : minor
3192 Frequency  : rare, normally benchmark loads only
3193 Bugzilla   : 1443
3194 Description: unlinked inodes were kept in memory on the client
3195 Details    : If a client is repeatedly creating and unlinking files it
3196              can accumulate a lot of stale inodes in the inode slab cache.
3197              If there is no other client load running this can cause the
3198              client node to run out of memory.  Instead flush old inodes
3199              from client cache that have the same inode number as a new inode.
3200
3201 Severity   : minor
3202 Frequency  : SLES9 2.6.5 kernel and long filenames only
3203 Bugzilla   : 9969, 10379
3204 Description: utime reports stale NFS file handle
3205 Details    : SLES9 uses out-of-dentry names in some cases, which confused
3206              the lustre dentry revalidation.  Change it to always use the
3207              in-dentry qstr.
3208
3209 Severity   : major
3210 Frequency  : rare, unless heavy write-truncate concurrency is continuous
3211 Bugzilla   : 4180, 6984, 7171, 9963, 9331
3212 Description: OST becomes very slow and/or deadlocked during object unlink
3213 Details    : filter_destroy() was holding onto the parent directory lock
3214              while truncating+unlinking objects.  For very large objects this
3215              may block other threads for a long time and slow overall OST
3216              responsiveness.  It may also be possible to get a lock ordering
3217              deadlock in this case, or run out of journal credits because of
3218              the combined truncate+unlink.  Solution is to do object truncate
3219              first in one transaction without parent lock, and then do the
3220              final unlink in a new transaction with the parent lock.  This
3221              reduces the lock hold time dramatically.
3222
3223 Severity   : major
3224 Frequency  : rare, 2.4 kernels only
3225 Bugzilla   : 9967
3226 Description: MDS or OST cleanup may trip kernel BUG when dropping kernel lock
3227 Details    : mds_cleanup() and filter_cleanup() need to drop the kernel lock
3228              before unmounting their filesystem in order to avoid deadlock.
3229              The kernel_locked() function in 2.4 kernels only checks whether
3230              the kernel lock is held, not whether it is this process that is
3231              holding it as 2.6 kernels do.
3232
3233 Severity   : major
3234 Frequency  : rare
3235 Bugzilla   : 9635
3236 Description: MDS or OST may oops/LBUG if a client is connecting multiple times
3237 Details    : The client ptlrpc code may be trying to reconnect to a down
3238              server before a previous connection attempt has timed out.
3239              Increase the reconnect interval to be longer than the connection
3240              timeout interval to avoid sending duplicate connections to
3241              servers.
3242
3243 Severity   : minor
3244 Frequency  : echo_client brw_test command
3245 Bugzilla   : 9919
3246 Description: fix echo_client to work with OST preallocated code
3247 Details    : OST preallocation code (5137) didn't take echo_client IO path
3248              into account: echo_client calls filter methods outside of any
3249              OST thread and, hence, there is no per-thread preallocated
3250              pages and buffers to use. Solution: hijack pga pages for IO. As
3251              a byproduct, this avoids unnecessary data copying.
3252
3253 Severity   : minor
3254 Frequency  : rare
3255 Bugzilla   : 3555, 5962, 6025, 6155, 6296, 9574
3256 Description: Client can oops in mdc_commit_close() after open replay
3257 Details    : It was possible for the MDS to return an open request with no
3258              transaction number in mds_finish_transno() if the client was
3259              evicted, but without actually returning an error.  Clients
3260              would later try to replay that open and may trip an assertion
3261              Simplify the client close codepath, and always return an error
3262              from the MDS in case the open is not successful.
3263
3264 Severity   : major
3265 Frequency  : rare, 2.6 OSTs only
3266 Bugzilla   : 10076
3267 Description: OST may deadlock under high load on fragmented files
3268 Details    : If there was a heavy load and highly-fragmented OST filesystems
3269              it was possible to have all the OST threads deadlock waiting on
3270              allocation of biovecs, because the biovecs were not released
3271              until the entire RPC IO was completed.  Instead, release biovecs
3272              as soon as they are complete to ensure forward IO progress.
3273
3274 Severity   : enhancement
3275 Bugzilla   : 9578
3276 Description: Support for specifying external journal device at mount
3277 Details    : If an OST or MDS device is formatted with an external journal
3278              device, this device major/minor is stored in the ext3 superblock
3279              and may not be valid for failover.  Allow detecting and
3280              specifying the external journal at mount time.
3281
3282 Severity   : major
3283 Frequency  : rare
3284 Bugzilla   : 10235
3285 Description: Mounting an MDS with pending unlinked files may cause oops
3286 Details    : target_finish_recovery() calls mds_postrecov() which returned
3287              the number of orphans unlinked. mds_lov_connect->mds_postsetup()
3288              considers this an error and immediately begins cleaning up the
3289              lov, just after starting the mds_lov process
3290
3291 Severity   : enhancement
3292 Bugzilla   : 9461
3293 Description: Implement 'lfs df' to report actual free space on per-OST basis
3294 Details    : Add sub-command 'df' on 'lfs' to report the disk space usage of
3295              MDS/OSDs. Usage: lfs df [-i][-h]. Command Options: '-i' to report
3296              usage of objects; '-h' to report in human readable format.
3297
3298 ------------------------------------------------------------------------------
3299
3300 08-26-2005  Cluster File Systems, Inc. <info@clusterfs.com>
3301        * version 1.4.5
3302        * bug fixes
3303
3304 Severity   : major
3305 Frequency  : rare
3306 Bugzilla   : 7264
3307 Description: Mounting an ldiskfs file system with mballoc may crash OST node.
3308 Details    : ldiskfs mballoc code may reference an uninitialized buddy struct
3309              at startup during orphan unlinking.  Instead, skip buddy update
3310              before setup, as it will be regenerated after recovery is complete.
3311
3312 Severity   : minor
3313 Frequency  : rare
3314 Bugzilla   : 7039
3315 Description: If an OST is inactive, its locks might reference stale inodes.
3316 Details    : lov_change_cbdata() must iterate over all namespaces, even if
3317              they are inactive to clear inode references from the lock.
3318
3319 Severity   : enhancement
3320 Frequency  : occasional, if non-standard max_dirty_mb used
3321 Bugzilla   : 7138
3322 Description: Client will block write RPCs if not enough grant
3323 Details    : If a client has max_dirty_mb smaller than max_rpcs_in_flight,
3324              then the client will block writes while waiting for another RPC
3325              to complete instead of consuming its dirty limit.  With change
3326              we get improved performance when max_dirty_mb is small.
3327
3328 Severity   : enhancement
3329 Bugzilla   : 3389, 6253
3330 Description: Add support for supplementary groups on the MDS.
3331 Details    : The MDS has an upcall /proc/fs/lustre/mds/{mds}/group_upcall
3332              (set to /usr/sbin/l_getgroups if enabled) which will do MDS-side
3333              lookups for user supplementary groups into a cache.
3334
3335 Severity   : minor
3336 Bugzilla   : 7278
3337 Description: O_CREAT|O_EXCL open flags in liblustre always return -EEXIST
3338 Details    : Make libsysio to not enforce O_EXCL by clearing the flag,
3339              for liblustre O_EXCL is enforced by MDS.
3340
3341 Severity   : minor
3342 Bugzilla   : 6455
3343 Description: readdir never returns NULL in liblustre.
3344 Details    : Corrected llu_iop_getdirentries logic, to return offset of next
3345              dentry in struct dirent.
3346
3347 Severity   : minor
3348 Bugzilla   : 7137
3349 Frequency  : liblustre only, depends on application IO pattern
3350 Description: liblustre clients evicted if not contacting servers
3351 Details    : Don't put liblustre clients into the ping_evictor list, so
3352              they will not be evicted by the pinger ever.
3353
3354 Severity   : enhancement
3355 Bugzilla   : 6902
3356 Description: Add ability to evict clients by NID from MDS.
3357 Details    : By echoing "nid:$NID" string into
3358              /proc/fs/lustre/mds/.../evict_client client with nid that equals to
3359              $NID would be instantly evicted from this MDS and from all active
3360              OSTs connected to it.
3361
3362 Severity   : minor
3363 Bugzilla   : 7198
3364 Description: Do not query file size twice, somewhat slowing stat(2) calls.
3365 Details    : lookup_it_finish() used to query file size from OSTs that was not
3366              needed.
3367
3368 Severity   : minor
3369 Bugzilla   : 6237
3370 Description: service threads change working directory to that of init
3371 Details    : Starting lustre service threads may pin the working directory
3372              of the parent thread, making that filesystem busy.  Threads
3373              now change to the working directory of init to avoid this.
3374
3375 Severity   : minor
3376 Bugzilla   : 6827
3377 Frequency  : during shutdown only
3378 Description: shutdown with a failed MDS or OST can cause unmount to hang
3379 Details    : Don't resend DISCONNECT messages in ptlrpc_disconnect_import()
3380              if server is down.
3381
3382 Severity   : minor
3383 Bugzilla   : 7331
3384 Frequency  : 2.6 only
3385 Description: chmod/chown may include an extra supplementary group
3386 Details    : ll{,u}_mdc_pack_op_data() does not properly initialize the
3387              supplementary group and if none is specified this is used.
3388
3389 Severity   : minor
3390 Bugzilla   : 5479 (6816)
3391 Frequency  : rare
3392 Description: Racing open + rm can assert client in mdc_set_open_replay_data()
3393 Details    : If lookup is in progress on a file that is unlinked we might try
3394              to revalidate the inode and fail in revalidate after lookup is
3395              complete and ll_file_open() enqueues the open again but
3396              it_open_error() was not checking DISP_OPEN_OPEN errors correctly.
3397
3398 Severity   : minor
3399 Frequency  : always, if lconf --abort_recovery used
3400 Bugzilla   : 7047
3401 Description: lconf --abort_recovery fails with 'Operation not supported'
3402 Details    : lconf was attempting to abort recovery on the MDT device and not
3403              the MDS device
3404
3405 ------------------------------------------------------------------------------
3406
3407 2005-08-08  Cluster File Systems, Inc. <info@clusterfs.com>
3408        * version 1.4.4
3409        * bug fixes
3410
3411 Severity   : major
3412 Frequency  : rare (only unsupported configurations with a node running as an
3413              OST and a client)
3414 Bugzilla   : 6514, 5137
3415 Description: Mounting a Lustre file system on a node running as an OST could
3416              lead to deadlocks
3417 Details    : OSTs now preallocates memory needed to write out data at
3418              startup, instead of when needed, to avoid having to
3419              allocate memory in possibly low memory situations.
3420              Specifically, if the file system is mounted on on OST,
3421              memory pressure could force it to try to write out data,
3422              which it needed to allocate memory to do.  Due to the low
3423              memory, it would be unable to do so and the node would
3424              become unresponsive.
3425
3426 Severity   : enhancement
3427 Bugzilla   : 7015
3428 Description: Addition of lconf --service command line option
3429 Details    : lconf now accepts a '--service <arg>' option, which is
3430              shorthand for 'lconf --group <arg> --select <arg>=<hostname>'
3431
3432 Severity   : enhancement
3433 Bugzilla   : 6101
3434 Description: Failover mode is now the default for OSTs.
3435 Details    : By default, OSTs will now run in failover mode.  To return to
3436              the old behaviour, add '--failout' to the lmc line for OSTs.
3437
3438 Severity   : enhancement
3439 Bugzilla   : 1693
3440 Description: Health checks are now provided for MDS and OSTs
3441 Details    : Additional detailed health check information on MSD and OSTs
3442              is now provided through the procfs health_check value.
3443
3444 Severity   : minor
3445 Frequency  : occasional, depends on IO load
3446 Bugzilla   : 4466
3447 Description: Disk fragmentation on the OSTs could eventually cause slowdowns
3448              after numerous create/delete cycles
3449 Details    : The ext3 i