WARNING: This is the _old_ Lustre wiki, and it is in the process of being retired. The information found here is all likely to be out of date. Please search the new wiki for more up to date information.

Change Log 1.6: Difference between revisions

From Obsolete Lustre Wiki
Jump to navigationJump to search
No edit summary
No edit summary
 
(92 intermediate revisions by 6 users not shown)
Line 1: Line 1:
   
<small>''(Updated: Jun 2009)''</small>
=Changes from v1.6.4.1 to v1.6.4.2=


==Support for kernels: 2.6.5-7.286 (SLES 9), 2.6.9-55.0.9.EL (RHEL 4), 2.6.16.53-0.8 (SLES 10), 2.6.18-8.1.14.el5 (RHEL 5), 2.6.18.8 vanilla (kernel.org) ==
=Changes from v1.6.7.1 to v1.6.7.2=
Support for networks:
* socklnd - any kernel supported by Lustre™
* qswlnd - Qsnet kernel modules 5.20 and later
* openiblnd - IbGold 1.8.2
* o2iblnd - OFED 1.1, 1.2.0, 1.2.5, and 1.3.1
* viblnd - Voltaire ibhost 3.4.5 and later
* ciblnd - Topspin 3.2.0
* iiblnd - Infiniserv 3.3 + PathBits patch
* gmlnd - GM 2.1.22 and later
* mxlnd - MX 1.2.1 or later
* ptllnd - Portals 3.3 / UNICOS/lc 1.5.x, 2.0.x


==Client support for unpatched kernels: (se http://wiki.lustre.org/index.php?title=Patchless_Client) 2.6.16 - 2.6.22 vanilla (kernel.org)==
Support for kernels:
* 2.6.5-7.314 (SLES 9)
* 2.6.9-78.0.22.EL (RHEL 4)
* 2.6.16.60-0.37 (SLES 10)
* 2.6.18-92.1.26.el5 (RHEL 5)
* 2.6.22.14 vanilla (kernel.org)


==Due to problems with nested symlinks and FMODE_EXEC (bug 12652), we do not recommend using patchless RHEL4 clients with kernels prior to 2.6.9-55EL (RHEL4U5).==
Client support for unpatched kernels: (see [[Patchless Client]])
* 2.6.16 - 2.6.22 vanilla (kernel.org)


==Recommended e2fsprogs version: 1.40.4-cfs1==
Client support for unpatched kernels:
* We do not recommend using patchless RHEL4 clients with kernels prior to 2.6.9-55EL (RHEL4U5).


==Note that reiserfs quotas are disabled on SLES 10 in this kernel.==
Recommended e2fsprogs version: 1.40.11-sun1


==RHEL 4 (patched) and RHEL 5/SLES 10 (patchless) clients behave differently on 'cd' to a removed cwd "./" (refer to Bugzilla 14399).==
RHEL 4 and RHEL 5/SLES 10 clients behaves differently on ''cd ./'' to a removed current working directory (refer to bugzilla [https://bugzilla.lustre.org/show_bug.cgi?id=14399 14399].


Severity: critical
A new quota file format was introduced in 1.6.6 (for 2.6.16+ kernels). The format conversion from prior releases is handled transparently, but releases older than 1.6.6/1.8.0 don't understand this new format. The automatic format conversion can be avoided by running the following commands on the MDS and OSS servers (for pre 1.4.12-1.6.5 quota files):
tunefs.lustre --param="mdt.quota_type=ug1" $MDTDEV
tunefs.lustre --param="ost.quota_type=ug1" $MDTDEV
or (for 1.4.12/1.6.5 quota files)
tunefs.lustre --param="mdt.quota_type=ug2" $MDTDEV
tunefs.lustre --param="ost.quota_type=ug2" $MDTDEV
For more information, please refer to bugzilla [https://bugzilla.lustre.org/show_bug.cgi?id=13904 13904].


Frequency: only for relatively new filesystems, when OSTs are in recovery


Bugzilla: 14631
Output of ''lfs'' quota has been made less detailed by default, old (verbose) output can be obtained by using ''-v'' option.


Description: OST objects below id 20000 are deleted, causing data loss
File join has been disabled in this release. Refer to bugzilla [https://bugzilla.lustre.org/show_bug.cgi?id=16929 16929].


Details: For relatively newly formatted OST filesystem(s), where there have not been at least 20000 objects created on an OST a bug in MDS->OST orphan recovery could cause those objects to be deleted if the OST was in recovery, but the MDS was not. Safety checks in the orphan recovery prevent this if more than 20000 objects were ever created on an OST. If the MDS was also in recovery the problem was not hit. Only in 1.6.4.1.  
A new Lustre ADIO driver is available for MPICH2-1.0.7.


NFS export disabled when stack size < 8192. Since the NFSv4 export of Lustre file system with 4K stack may cause a stack overflow. For more information, please refer to bugzilla [https://bugzilla.lustre.org/show_bug.cgi?id=17630 17630]


*'''Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=19601 19601]'''
Severity: enhancement<br>
Description: Update kernel to RHEL5.2 2.6.18-92.1.26.


Severity: major
*'''Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=19453 19453]'''
Severity: critical, only with RHEL4/SLES9 MDS<br>
Description: user xattr corruption<br>
Details: setting extended attributes can corrupt other attributes stored in the inode body. Both user & lustre internal (LOV EA) attributes are concerned. In the latter case, the lustre filesystem can be damaged.


Frequency: rare, depends on device drivers and load
*'''Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=16504 16504]'''
Severity: enhancement<br>
Description: Update kernel to RHEL4.7 2.6.9-78.0.22.


Bugzilla: 14529
*'''Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=18289 18289]'''
Severity: enhancement<br>
Description: allow the use of the kernel provided OFED stack<br>
Details: This patch allows for lbuild to use the OFED stack provided by the kernel vendor. For the RHEL4 and RHEL5 kernels, we enable the kernel supplied OFED stack.


Description: MDS or OSS nodes crash due to stack overflow
*'''Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=18775 18775]'''
Severity: enhancement<br>
Description: improve lctl set/get_param<br>
Details: handle the bad options, support more than one arguments, add '-F' option to append the indicator to the parameters.


Details: Code changes in 1.6.4 increased the stack usage of some functions. In some cases, in conjunction with device drivers that use a lot of stack the MDS (or possibly OSS) service threads could overflow the stack. One change which was identified to consume additional stack has been reworked to avoid the extra stack usage.  
*'''Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=19212 19212]'''
Severity: enhancement<br>
Description: Update kernel to SLES10 SP2 2.6.16.60-0.37.


*'''Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=19495 19495]'''
Severity: major<br>
Frequency: rare<br>
Description: fix lqs' reference which won't be put in some situations.<br>
Details: This patch fixes:
* In quota_check_common(), this function will check quota for user and group, but only send one return via "pending". In most cases, the pendings should be same. But that is not always the case.
* If quotaoff runs between lquota_chkquota() and lquota_pending_commit(), the same thing will happen too. That is why it comes:
if (!ll_sb_any_quota_active(qctxt->lqc_sb))
        RETURN(0);


=Changes from v1.6.4 to v1.6.4.1=
=Changes from v1.6.7 to v1.6.7.1=
Support for networks:
* socklnd - any kernel supported by Lustre
* qswlnd - Qsnet kernel modules 5.20 and later
* openiblnd - IbGold 1.8.2
* o2iblnd - OFED 1.1, 1.2.0, 1.2.5, and 1.3.1
* viblnd - Voltaire ibhost 3.4.5 and later
* ciblnd - Topspin 3.2.0
* iiblnd - Infiniserv 3.3 + PathBits patch
* gmlnd - GM 2.1.22 and later
* mxlnd - MX 1.2.1 or later
* ptllnd - Portals 3.3 / UNICOS/lc 1.5.x, 2.0.x


Support for networks: socklnd - any kernel supported by Lustre, qswlnd - Qsnet kernel modules 5.20 and later, openiblnd - IbGold 1.8.2, o2iblnd - OFED 1.1 and 1.2, viblnd - Voltaire ibhost 3.4.5 and later, ciblnd - Topspin 3.2.0, iiblnd - Infiniserv 3.3 + PathBits patch, gmlnd - GM 2.1.22 and later, mxlnd - MX 1.2.1 or later, ptllnd - Portals 3.3 / UNICOS/lc 1.5.x, 2.0.x
Support for kernels:
* 2.6.5-7.314 (SLES 9)
* 2.6.9-67.0.22.EL (RHEL 4)
* 2.6.16.60-0.31 (SLES 10)
* 2.6.18-92.1.17.el5 (RHEL 5)
* 2.6.22.14 vanilla (kernel.org)


Support for kernels: 2.6.5-7.286 (SLES 9), 2.6.9-55.0.9.EL (RHEL 4), 2.6.16.53-0.8 (SLES 10), 2.6.18-8.1.14.el5 (RHEL 5), 2.6.18.8 vanilla (kernel.org)  
Client support for unpatched kernels: (see [[Patchless Client]])
* 2.6.16 - 2.6.22 vanilla (kernel.org)


Client support for unpatched kernels: (see http://wiki.lustre.org/index.php?title=Patchless_Client) 2.6.16 - 2.6.22 vanilla (kernel.org)
Client support for unpatched kernels:
*We do not recommend using patchless RHEL4 clients with kernels prior to 2.6.9-55EL (RHEL4U5).


Due to recently discovered recovery problems, we do not recommend using patchless RHEL 4 clients with this or any earlier release.  
Recommended e2fsprogs version: 1.40.11-sun1


Recommended e2fsprogs version: 1.40.2-cfs1
Note that reiserfs quotas are disabled on SLES 10 in this kernel.


Note that reiserfs quotas are disabled on SLES 10 in this kernel.  
RHEL 4 and RHEL 5/SLES 10 clients behaves differently on ''cd ./'' to a removed current working directory (refer to bugzilla [https://bugzilla.lustre.org/show_bug.cgi?id=14399 14399].


Severity: major
A new quota file format has been introduced in 1.6.5. The format conversion from prior releases is handled transparently, but releases older than 1.4.12/1.6.5 will not understand this new format.  The automatic format conversion can be avoided by running the following command on the MDS before upgrading:
tunefs.lustre --param="mdt.quota_type=ug1" $MDTDEV
For more information, please refer to bugzilla [https://bugzilla.lustre.org/show_bug.cgi?id=13904 13904].


Bugzilla: 14433
A new quota file format was introduced in 1.6.6 (for 2.6.16+ kernels). The format conversion from prior releases is handled transparently, but releases older than 1.6.6/1.8.0 don't understand this new format. The automatic format conversion can be avoided by running the following commands on the MDS and OSS servers (for pre 1.4.12-1.6.5 quota files):
tunefs.lustre --param="mdt.quota_type=ug1" $MDTDEV
tunefs.lustre --param="ost.quota_type=ug1" $MDTDEV
or (for 1.4.12/1.6.5 quota files)
tunefs.lustre --param="mdt.quota_type=ug2" $MDTDEV
tunefs.lustre --param="ost.quota_type=ug2" $MDTDEV
For more information, please refer to bugzilla [https://bugzilla.lustre.org/show_bug.cgi?id=13904 13904].


Description: Oops on connection from 1.6.3 client
Output of ''lfs'' quota has been made less detailed by default, old (verbose) output can be obtained by using ''-v'' option.


Frequency: always, on connection from 1.6.3 client
File join has been disabled in this release, refer to bugzilla [https://bugzilla.lustre.org/show_bug.cgi?id=16929 16929].


Details: Enable and accept the OBD_CONNECT_LRU_RESIZE flag only if LRU resizing is enabled at configure time. This fixes an oops caused by incorrectly accepting the LRU_RESIZE feature even if --enable-lru-resize is not specified.  
A new Lustre ADIO driver is available for MPICH2-1.0.7.


NFS export disabled when stack size < 8192. Since the NFSv4 export of Lustre filesystem with 4K stack may cause a stack overflow. For more information, please refer to bugzilla [https://bugzilla.lustre.org/show_bug.cgi?id=17630 17630].


=Changes from v1.6.3 to v1.6.4=
*'''Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=18810 18810]'''
Severity: major<br>
Frequency  : rare<br>
Description: fix racy locking of mballoc block bitmaps causing BUG<br>
Details: The locking of the mballoc buddy bitmap and the in-memory block bitmap was using two different spin locks in some cases. This made it possible to incorrectly access the mballoc bitmap while another process was modifying it, causing a sanity assertion to fail. While no on-disk corruption was reported, there was some risk of this happening.


Support for networks: socklnd - any kernel supported by Lustre, qswlnd - Qsnet kernel modules 5.20 and later, openiblnd - IbGold 1.8.2, o2iblnd - OFED 1.1 and 1.2, viblnd - Voltaire ibhost 3.4.5 and later, ciblnd - Topspin 3.2.0, iiblnd - Infiniserv 3.3 + PathBits patch, gmlnd - GM 2.1.22 and later, mxlnd - MX 1.2.1 or later, ptllnd - Portals 3.3 / UNICOS/lc 1.5.x, 2.0.x
*'''Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=18480 18480]'''
Frequency: common<br>
Description: correct count of recoverable clients<br>
Details: if recovery failed for client for some reasons (goal inode or something else) server can wait failed clients for finish recovery.


Support for kernels: 2.6.5-7.286 (SLES 9), 2.6.9-55.0.9.EL (RHEL 4), 2.6.16.53-0.8 (SLES 10), 2.6.18-8.1.14.el5 (RHEL 5), 2.6.18.8 vanilla (kernel.org)
*'''Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=18695 18695]'''
Severity: critical<br>
Frequency: when directories had atime set in past (e.g. untar)<br>
Descriptoin: Lustre detected file system corruption with inode out of bounds<br>
Details: don't update i_size on MDS_CLOSE for directories. This causes directory corruptions on the MDT.


Client support for unpatched kernels: (see http://wiki.lustre.org/index.php?title=Patchless_Client) 2.6.16 - 2.6.22 vanilla (kernel.org)
*'''Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=18895 18895]'''
Severity: normal<br>
Frequency: on failed service startup<br>
Description: replay-single test_61d: LustreError: 17392:0:(lprocfs_status.c:859:lprocfs_obd_cleanup()) ASSERTION(obd->obd_proc_exports_entry->subdir == NULL) failed<br>
Details: cleanup lprocfs entries on error.


Due to recently discovered recovery problems, we do not recommend using patchless RHEL 4 clients with this or any earlier release.  
*'''Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=18903 18903]'''
Severity: normal<br>
Frequency: rare<br>
Description: llmount.sh: BUG: spinlock wrong owner on CPU#0, mount.lustre/8180<br>
Details: fix typo in import_set_conn() causing spinlock corruption.


Recommended e2fsprogs version: 1.40.2-cfs1
*'''Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=18859 18859]'''
Severity: normal<br>
Frequency: rare, only when using group lock on client<br>
Description: Group Lock in Lustre: write call is blocking<br>
Details: fix wrong return code of ll_is_file_contended() causing processes to be blocked indefinitely.


Note that reiserfs quotas are disabled on SLES 10 in this kernel.  
*'''Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=17757 17757]'''
Severity: normal<br>
Frequency: rare<br>
Description: ASSERTION(new_lock != NULL) failed:op 0x1 lockh 0x0<br>
Details: DISP_OPEN_LOCK is not cleared properly in reconstruct_open() since intent_disposition() is used instead of intent_set_disposition().


Severity: enhancement
*'''Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=15428 15428]'''
Severity: major<br>
Frequency: occasional when using software RAID5<br>
Description: raid5 panics<br>
Details: fix panic in raid5_end_read_request().


Bugzilla: 11686
=Changes from v1.6.6 to v1.6.7=
Support for networks:
* socklnd - any kernel supported by Lustre
* qswlnd - Qsnet kernel modules 5.20 and later
* openiblnd - IbGold 1.8.2
* o2iblnd - OFED 1.1, 1.2.0, 1.2.5, and 1.3.1
* viblnd - Voltaire ibhost 3.4.5 and later
* ciblnd - Topspin 3.2.0
* iiblnd - Infiniserv 3.3 + PathBits patch
* gmlnd - GM 2.1.22 and later
* mxlnd - MX 1.2.1 or later
* ptllnd - Portals 3.3 / UNICOS/lc 1.5.x, 2.0.x


Description: Console message flood
Support for kernels:
* 2.6.5-7.314 (SLES 9)
* 2.6.9-67.0.22.EL (RHEL 4)
* 2.6.16.60-0.31 (SLES 10)
* 2.6.18-92.1.17.el5 (RHEL 5)
* 2.6.22.14 vanilla (kernel.org)


Details: Make cdls ratelimiting more tunable by adding several tunable in procfs /proc/sys/lnet/console_{min,max}_delay_centisecs and /proc/sys/lnet/console_backoff.  
Client support for unpatched kernels: (see [[Patchless_Client]])
* 2.6.16 - 2.6.22 vanilla (kernel.org)


Client support for unpatched kernels:
*We do not recommend using patchless RHEL4 clients with kernels prior to 2.6.9-55EL (RHEL4U5).


Severity: enhancement
Recommended e2fsprogs version: 1.40.11-sun1


Bugzilla: 13521
Note that reiserfs quotas are disabled on SLES 10 in this kernel.


Description: Update kernel patches for SLES10 2.6.16.53-0.8.  
RHEL 4 and RHEL 5/SLES 10 clients behaves differently on ''cd ./'' to a removed current working directory (refer to bugzilla [https://bugzilla.lustre.org/show_bug.cgi?id=14399 14399].


Details: Update which_patch & target file for SLES10 latest kernel.  
A new quota file format has been introduced in 1.6.5. The format conversion from prior releases is handled transparently, but releases older than 1.4.12/1.6.5 will not understand this new format.  The automatic format conversion can be avoided by running the following command on the MDS before upgrading:
tunefs.lustre --param="mdt.quota_type=ug1" $MDTDEV
For more information, please refer to bugzilla [https://bugzilla.lustre.org/show_bug.cgi?id=13904 13904].


A new quota file format was introduced in 1.6.6 (for 2.6.16+ kernels). The format conversion from prior releases is handled transparently, but releases older than 1.6.6/1.8.0 don't understand this new format. The automatic format conversion can be avoided by running the following commands on the MDS and OSS servers (for pre 1.4.12-1.6.5 quota files):
tunefs.lustre --param="mdt.quota_type=ug1" $MDTDEV
tunefs.lustre --param="ost.quota_type=ug1" $MDTDEV
or (for 1.4.12/1.6.5 quota files)
tunefs.lustre --param="mdt.quota_type=ug2" $MDTDEV
tunefs.lustre --param="ost.quota_type=ug2" $MDTDEV
For more information, please refer to bugzilla [https://bugzilla.lustre.org/show_bug.cgi?id=13904 13904].


Severity: enhancement
*'''Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=16498 16498]'''
Severity: normal<br>
Description: Get RAID stripe size from superblock<br>
Details: RAID striping parameters are now saved in the superblock itself, so we should use these parameters instead of having to specify a mount option each time.


Bugzilla: 13128
*'''Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=16438 16438]'''
Severity: major<br>
Description: Disable big-endian ldiskfs server support.<br>
Details: The ldiskfs code is not tested on big-endian machines, and there are known compatibility problems in the extents code when running for most of the kernels.  Print an error message and refuse to mount, in case anyone tests this.  For existing file systems that might have been created in this way it is possible to mount with the "bigendian_extents" option to force the mount.


Description: add --type and --size parameters to lfs find


Details: Enhance lfs find by adding filetype and filesize parameters. Also multiple OBDs can now be specified for the --obd option.  
*'''Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=15983 15983]'''
Severity: major<br>
Description: workaround for OOM from o2iblnd<br>
Details: OFED needs allocate big chunk of memory for QP while creating connection for o2iblnd, OOM can happen if no such a contiguous memory chunk. QP size is decided by concurrent_sends and max_fragments of o2iblnd, now we permit user to specify smaller value for concurrent_sends of o2iblnd(i.e: concurrent_sends=7), which will decrease memory block size required by creating QP.


*'''Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=15093 15093]'''
Severity: major<br>
Description: Support Zerocopy receive of Chelsio device<br>
Details: Chelsio driver can support zerocopy for iov[1] if it's contiguous and large enough.


Severity: enhancement
*'''Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=13490 13490]'''
Severity: normal<br>
Description: fix credit flow deadlock in uptllnd


Bugzilla: 11270
*'''Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=16308 16308]'''
Severity: normal<br>
Description: finalize network operation in reasonable time<br>
Details: conf-sanity test_32a couldn't stop ost and mds because it tried to access non-existent peer and tcp connect took quite long before timing out.


Description: eliminate client locks in face of contention
*'''Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=16338 16338]'''
Severity: major<br>
Description: Continuous recovery on 33 of 413 nodes after lustre oss failure<br>
Details: Lost reference on conn prevents peer from being destroyed, which could prevent new peer creation if peer count has reached upper limit.


Details: file contention detection and lockless i/o implementation for contended files.  
*'''Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=16102 16102]'''
Severity: normal<br>
Description: LNET Selftest results in Soft lockup on OSS CPU<br>
Details: only hits when 8 or more o2ib clients involved and a session is torn down with 'lst end_session' without preceeding 'lst stop'.


*'''Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=16321 16321]'''
Severity: minor<br>
Description: concurrent_sends in IB LNDs should not be changeable at run time
Details: concurrent_sends in IB LNDs should not be changeable at run time


Severity: enhancement
*'''Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=18238 18238]'''
Severity: normal<br>
Frequency: rare<br>
Description: panic in mds_open<br>
Details: don't confuse mds_finish_transno() with PTR_ERR(-ENOENT)


Bugzilla: 12411
*'''Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=17972 17972]'''
Severity: normal<br>
Frequency: rare<br>
Description: stuck in cache_remove_extent() or panic with accessing to already freed look.<br>
Details: release lock refernce only after add page to pages list.


Description: Remove client patches from SLES 10 kernel.  
*'''Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=17636 17636]'''
Severity: normal<br>
Frequency: always with long access acl<br>
Descriptoin: mds can't pack reply with long acl.<br>
Details: mds don't control size of acl but they limited by reint/getattr reply buffer.


Details: This causes SLES 10 clients to behave as patchless clients even on a Lustre-patched (server) kernel.  
*'''Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=18049 18049]'''
Severity: normal<br>
Frequency: start MDS on uncleanly shutdowned MDS device<br>
Description: aborting recovery hang on MDS<br>
Details: don't throttle destroy RPCs for the MDT.


*'''Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=18018 18018]'''
Severity: major<br>
Frequency: on remount<br>
Description: external journal device not working after the remount<br>
Details: clear dev_rdonly flag for external journal devices in blkdev_put()


Severity: enhancement
*'''Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=17802 17802]'''
Severity: minor<br>
Frequency: rare<br>
Description: shutdown vs evict race<br>
Details: client_disconnect_export vs connect request race. if client will evicted at this time - we start invalidate thread without referece to import and import can be freed at same time.


Bugzilla: 2369
*'''Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=16693 16693]'''
Severity: minor<br>
Frequency: always<br>
Description: shrink LOV EAs before replying<br>
Details: correctly adjust LOV EA buffer for reply.


Description: use i_size_read and i_size_write in 2.6 port
*'''Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=16081 16081]'''
Severity: normal<br>
Frequency: rare<br>
Description: don't skip ost target if they assigned to file<br>
Details: Drop slow OSCs if we can, but not for requested start idx. This means "if OSC is slow and it is not the requested start OST, then it can be skipped, otherwise skip it only if it is inactive/recovering/out-of-space.


Details: replace inode->i_size access with i_size_read/write()
*'''Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=17201 17201]'''
Severity: enhancement<br>
Description: Update to RHEL5 kernel-2.6.18-92.1.17.el5.


*'''Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=16492 16492]'''
Severity: normal<br>
Frequency: rare, need ACLs on inode.<br>
Description: client can't handle ost additional correctly<br>
Details: if ost was added after client connected to mds client can have hit lnet_try_match_md ... to big messages to wide striped files. in this case need teach client to handle config events about add lov target and update client max ea size at that event.


Severity: enhancement
*'''Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=17374 17374]'''
Severity: enhancement<br>
Description: Update to sles9 kernel-2.6.5-7.314.


Bugzilla: 13454
*'''Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=17458 17458]'''
Severity: enhancement<br>
Description: Update to SLES10 SP2 kernel-2.6.16.60-0.31.


Description: Add jbd statistics patch for RHEL5 and 2.6.18-vanilla.  
*'''Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=16578 16578]'''
Severity: normal<br>
Frequency: Create a symlink file with a very long name<br>
Description: ldlm_cancel_pack()) ASSERTION(max >= dlm->lock_count + count)<br>
Details: If there is no extra space in the request for early cancels, ldlm_req_handles_avail() returns 0 instead of a negative value.


*'''Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=16492 16492]'''
Severity: major<br>
Frequency: rare, during racing unlink and create in same directory<br>
Description: mds is deadlocked<br>
Details: in rare cases, inode in directory can have inode number lower than parent inode number.  This produces wrong locking order during open and parallel unlink.  Teach mds_open to grab locks in inode number order, not parent -> child order.


Severity: enhancement
*'''Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=1819 1819]'''
Severity: enhancement<br>
Description: Add /proc entry for import status<br>
Details: The mdc, osc, and mgc import directories now have an import directory that contains useful import data for debugging connection problems.


Bugzilla: 13518
*'''Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=15966 15966]'''
Severity: enhancement<br>
Description: Re-disable certain /proc logging<br>
Details: Enable and disable client's offset_stats, extents_stats and extents_stats_per_process stats logging on the fly.


Description: Kernel patches update for RHEL4 2.6.9-55.0.6.  
*'''Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=16643 16643]'''
Severity: enhancement<br>
Description: Generic /proc file permissions<br>
Details: Set /Proc file permissions in a more generic way to enable non-root users operate on some /proc files.


Details: Modify vm-tunables-rhel4.patch.  
*'''Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=16561 16561]'''
Severity: major<br>
Description: Hitting mdc_commit_close() ASSERTION<br>
Details: Properly handle request reference release in ll_release_openhandle().


*'''Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=16907 16907]'''
Severity: normal<br>
Description: Prevent import from entering FULL state when server in recovery


Severity: enhancement
*'''Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=16750 16750]'''
Severity: normal<br>
Frequency: only with devices that have a ':' in the name<br>
Description: service mount cannot take device name with ':'<br>
Details: Only when device name contains ":/" will mount treat it as client mount.


Bugzilla: 13452
*'''Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=15927 15927]'''
Severity: normal<br>
Frequency: rare<br>
Description: replace ptlrpcd with the statahead thread to interpret the async statahead RPC callback


Description: Kernel config for 2.6.18-vanilla.  
*'''Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=16611 16611]'''
Severity: normal<br>
Frequency: on recovery<br>
Description: I/O failures after umount during fail back<br>
Details: if client reconnected to restarted server we need join to recovery instead of find server handler is changed and process self eviction with cancel all locks.


Details: Modify targets/2.6-vanilla.target.in. Add config file kernel-2.6.18-2.6-vanilla-i686.config. Add config file kernel-2.6.18-2.6-vanilla-i686-smp.config. Add config file kernel-2.6.18-2.6-vanilla-x86_64.config. Add config file kernel-2.6.18-2.6-vanilla-x86_64-smp.config.  
*'''Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=16633 16633]'''
Severity: enhancement<br>
Description: Update to RHEL5 kernel-2.6.18-92.1.10.el5.


*'''Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=16547 16547]'''
Severity: enhancement<br>
Description: Update to SLES10 SP2 kernel-2.6.16.60-0.27.


Severity: enhancement
*'''Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=16566 16566]'''
Severity: enhancement<br>
Description: Upcall on Lustre log has been dumped<br>
Details: Allow for a user mode script to be called once a Lustre log has been dumped. It passes the filename of the dumped log to the script, the location of the script can be specified via /proc/sys/lnet/debug_log_upcall.


Bugzilla: 13207
*'''Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=16583 16583]'''
Severity: minor<br>
Frequency: rare<br>
Description: avoid messages about idr_remove called for unallocated id.<br>
Details: Move s_dev assigment for clustered NFS to end of initialization, to avoid problem with error handling.


Description: adapt the lustre_config script to support the upgrade case
*'''Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=16109 16109]'''
Severity: minor<br>
Frequency: rare<br>
Description: avoid Already found the key in hash [CONN_UNUSED_HASH] messages<br>
Details: When connection is reused this not moved from CONN_UNUSED_HASH into CONN_USED_HASH and this prodice warning when put connection again in unused hash.


Details: Add "-u" option for lustre_config script to support upgrading 1.4 server targets to 1.6 in parallel.  
*'''Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=16573 16573]'''
Severity: enhancement<br>
Description: Export bytes_read/bytes_write count on OSC/OST.


*'''Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=16237 16237]'''
Severity: normal<br>
Description: Early reply size mismatch, MGC loses connection<br>
Details: Apply the MGS_CONNECT_SUPPORTED mask at reconnect time so the connect flags are properly negotiated.


*'''Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=14840 14840]'''
Severity: major<br>
Description: quota recovery deadlock during mds failover<br>
Details: This patch includes att18982, att18236, att18237 in bz14840.<br>
Problems solved:<br>
* Fix osts hang when mds does failover with quotaon<br>
* Prevent watchdog storm when osts threads wait for the recovery of mds<br>


Severity: critical
*'''Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=14095 14095]'''
Severity: enhancement<br>
Description: Add lustre_start utility to start or stop multiple Lustre servers from a CSV file.


Frequency: always
*'''Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=17026 17026]'''
Severity: normal<br>
Description: kptllnd_peer_check_sends() ASSERTION(!in_interrupt()) failed<br>
Details: fix stack overflow in distributed lock manager by defering export eviction after a failed callback to the ELT thread instead of handling it in the DLM interpret routine.


Bugzilla: 13751
*'''Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=12800 12800]'''
Severity: enhancement<br>
Description: More exported tunables for mballoc<br>
Details: Add support for tunable preallocation window and new tunables for large/small requests


Description: Kernel patches update for RHEL5 2.6.18-8.1.14.el5.  
*'''Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=16680 16680]'''
Severity: normal<br>
Description: Detect corruption of block bitmap and checking for preallocations<br>
Details: Checks validity of on-disk block bitmap. Also it does better checking of number of applied preallocations. When corruption is found, it turns file system read-only to prevent further corruptions.


Details: Modify target file & which_patch. A flaw was found in the IA32 system call emulation provided on AMD64 and Intel 64 platforms. An improperly validated 64-bit value could be stored in the %RAX register, which could trigger an out-of-bounds system call table access. An untrusted local user could exploit this flaw to run code in the kernel (ie a root privilege escalation). (CVE-2007-4573).  
*'''Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=17197 17197]'''
Severity: normal<br>
Description: ll_read_ahead_pages()) ASSERTION(page_idx > ria->ria_stoff) failed<br>
Details: Once the unmatched stride IO mode is detected, shrink the stride-ahead window to 0. If it does hit cache miss, and read pattern is still stride-io mode, does not reset the stride window, but also does not increase the stride window length in this case.


*'''Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=16438 16438]'''
Severity: normal<br>
Frequency: only for big-endian servers<br>
Description: Check if system is big-endian while mounting fs with extents<br>
Details: Mounting a file system with extents feature will fail on big-endian systems since ext3-based ldiskfs is not supported on big-endian systems.  Can be bypassed with "bigendian_extents" mount option.


Severity: critical
*'''Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=16860 16860]'''
Severity: normal<br>
Description: Excessive recovery window<br>
Details: With AT enabled, the recovery window can be excessively long (6000+ seconds). To address this problem, we no longer use OBD_RECOVERY_FACTOR when extending the recovery window (the connect timeout no longer depends on the service time, it is set to INITIAL_CONNECT_TIMEOUT now) and clients report the old service time via pb_service_time.


Frequency: always
*'''Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=16522 16522]'''
Severity: normal<br>
Description: Watchdog triggered on MDS failover<br>
Details: enable OBD_CONNECT_MDT flag when connecting from the MDS so that the OSTs know that the MDS "UUID" can be reused for the same export from a different NID, so we do not need to wait for the export to be evicted.


Bugzilla: 13748
*'''Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=16839 16839]'''
Severity: normal<br>
Frequency: start MDS on uncleanly shutdowned MDS device<br>
Description: ll_sync thread stay in waiting mds<>ost recovery finished<br>
Details: fix race due to two ll_sync threads processing the same lov target causing random failures in various tests. The solution is to send ACTIVATE event only if connect already finished and import is in FULL state.


Description: Update RHEL 4 kernel to fix local root privilege escalation.  
*'''Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=17895 17895]'''
Severity: major<br>
Frequency: rare, only if using MMP with Linux RAID<br>
Description: MMP doesn't work with Linux RAID<br>
Details: While using HA for Lustre servers with Linux RAID, it is possible that MMP will not detect multiple mounts. To make this work we need to unplug the device queue in RAID when the MMP block is being written. Also while reading the MMP block, we should read it from disk and not the cached one.


Details: Update to the latest RHEL 4 kernel to fix the vulnerability described in CVE-2007-4573. This problem could allow untrusted local users to gain root access.  
=Changes from v1.6.5.1 to v1.6.6=
'''Support for networks:'''<br>
''' socklnd - any kernel supported by Lustre'''<br>
''' qswlnd - Qsnet kernel modules 5.20 and later'''<br>
''' openiblnd - IbGold 1.8.2'''<br>
''' o2iblnd - OFED 1.1, 1.2.0, 1.2.5, and 1.3.1'''<br>
''' viblnd - Voltaire ibhost 3.4.5 and later'''<br>
''' ciblnd - Topspin 3.2.0'''<br>
''' iiblnd - Infiniserv 3.3 + PathBits patch'''<br>
''' gmlnd - GM 2.1.22 and later'''<br>
''' mxlnd - MX 1.2.1 or later'''<br>
''' ptllnd - Portals 3.3 / UNICOS/lc 1.5.x, 2.0.x'''<br>


'''Support for kernels:'''<br>
''' 2.6.5-7.312 (SLES 9)'''<br>
''' 2.6.9-67.0.22.EL (RHEL 4)'''<br>
''' 2.6.16.60-0.27 (SLES 10)'''<br>
''' 2.6.18-92.1.10.el5 (RHEL 5)'''<br>
''' 2.6.22.14 vanilla (kernel.org)'''<br>


Severity: major
'''Client support for unpatched kernels: (see [[Patchless Client]])'''<br>
''' 2.6.16 - 2.6.22 vanilla (kernel.org)'''<br>


Frequency: occasional
'''Recommended e2fsprogs version: 1.40.11-sun1'''


Bugzilla: 14353
'''Note that reiserfs quotas are disabled on SLES 10 in this kernel.'''


Description: excessive CPU consumption on client reduces IO performance
'''RHEL 4 and RHEL 5/SLES 10 clients behaves differently on 'cd ./' to a removed current working directory (refer to bugzilla [https://bugzilla.lustre.org/show_bug.cgi?id=14399 14399]'''


Details: in some cases the ldlm_poold thread is spending too much time trying to cancel locks, and is cancelling them too aggressively and this can severely impact IO performance. Disable the dynamic LRU resize code at build time. It can be re-enabled with configure --enable-lru-resize at build time.  
'''A new quota file format has been introduced in 1.6.5. The format conversion from prior releases is handled transparently, but releases older than 1.4.12/1.6.5 will not understand this new format.  The automatic format conversion can be avoided by running the following command on the MDS before upgrading:
    'tunefs.lustre --param="mdt.quota_type=ug1" $MDTDEV'.
'''For more information, please refer to bugzilla [https://bugzilla.lustre.org/show_bug.cgi?id=13904 13904]'''


*'''Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=15272 15272]'''
Severity: normal<br>
Description: ptl_send_rpc hits LASSERT when ptl_send_buf fails<br>
Details: only hits under out-of-memory situations


Severity: major
*'''Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=15899 15899]'''
Severity: enhancement<br>
Description: Add support for downgrading pools-striped files<br>
Details: The MDS can understand the new LOV magic from pool striped files and will automatically convert them to the standard striping format for clients (pools will be available in a future release).


Frequency: occasional
*'''Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=15975 15975]'''
Severity: normal<br>
Frequency: occasionally, only on patchless client<br>
Description: add workaround for race between add/remove dentry from hash


Bugzilla: 13917
*'''Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=16717 16717]'''
Severity: minor<br>
Frequency: only during testing<br>
Description: LBUG when llog conf file is full<br>
Details: When llog bitmap is full, ENOSPC should be returned for plain log.


Description: MDS hang or stay in waiting lock
*'''Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=16907 16907]'''
Severity: normal<br>
Frequency: occasionally, during recovery<br>
Description: Prevent import from entering FULL state when server in recovery<br>


Details: If client receive lock with CBPENDING flag ldlm need send lock cancel as separate rpc, to avoid situation when cancel request can't processed due all i/o threads stay in wait lock.
*'''Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=15927 15927]'''
Severity: normal<br>
Frequency: rare<br>
Description: replace ptlrpcd with the statahead thread to interpret the async statahead RPC callback<br>


*'''Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=16611 16611]'''
Severity: normal<br>
Frequency: on recovery<br>
Description: I/O failures after umount during fail back<br>
Details: if client reconnected to restarted server we need join to recovery instead of find server handler is changed and process self eviction with cancel all locks.


Severity: major
*'''Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=16633 16633]'''
Severity: enhancement<br>
Description: Update to RHEL5 kernel-2.6.18-92.1.10.el5.<br>


Frequency: occasional
*'''Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=16547 16547]'''
Severity: enhancement<br>
Description: Update to SLES10 SP2 kernel-2.6.16.60-0.27.<br>


Bugzilla: 11710
*'''Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=15139 15139]'''
Severity: normal<br>
Frequency: rare<br>
Description: avoid ASSERTION(client_stat->nid_exp_ref_count == 0) failed<br>
Details: release reference to stats when client disconnected, not when export destroyed for avoid races when client destroyed after main ost export.


Description: improve handling recoverable errors
*'''Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=16679 16679]'''
Details: If request processed with error which can be recoverable on server request should be resend, otherwise page released from cache and marked as error.  
Severity: normal<br>
Frequency: when adding OSTs to a running filesystem<br>
Description: more cleanup in mds_lov<br>
Details: add workaround for get valid ost count for avoid warnings about drop too big messages, not init llog cat under semphore which can be blocked on reconnect and break normal replay, fix access to wrong pointer.


*'''Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=16237 16237]'''
Severity: normal<br>
Frequency: only when connecting 1.6.5 clients to 1.6.4 or earlier servers<br>
Description: Early reply size mismatch, MGC loses connection<br>
Details: Apply the MGS_CONNECT_SUPPORTED mask at reconnect time so the connect flags are properly negotiated.


Severity: normal
*'''Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=16006 16006]'''
Severity: normal<br>
Frequency: rare<br>
Description: statfs sometimes returns stale values on the client<br>
Details: restore missing copy oi_flags to lov requests.


Bugzilla: 12302
*'''Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=16188 16188]'''
Severity: enhancement<br>
Description: Update to SLES9 kernel-2.6.5-7.312.<br>


Description: new userspace socklnd
*'''Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=16503 16503]'''
Severity: enhancement<br>
Description: Update to RHEL4 kernel-2.6.9-67.0.22.EL.<br>


Details: Old userspace tcpnal that resided in lnet/ulnds/socklnd replaced with new one - usocklnd.  
*'''Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=16317 16317]'''
Severity: minor<br>
Frequency: when clients reconnect to server<br>
Description: per-export statistics in /proc are broken<br>
Details: recreate /proc entries for clients when they reconnect.


*'''Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=16080 16080]'''
Severity: normal<br>
Frequency: when adding OSTs to a mounted filesystem<br>
Description: don't fail open with -ERANGE<br>
Details: if client connected until mds will be know about real ost count get LOV EA can be fail because mds not allocate enougth buffer for LOV EA.


Severity: normal
*'''Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=16101 16101]'''
Severity: normal<br>
Frequency: only for filesystems larger than 8TB<br>
Description: ldiskfs BUG ldiskfs_mb_use_best_found()<br>
Details: The ldiskfs mballoc3 code was using a __u16 to store the group number, but with 8TB+ filesystems there are more than 65536 groups, causing an oops.


Frequency: occasional
*'''Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=15576 15576]'''
Severity: normal<br>
Frequency: rare<br>
Description: Resolve device initialization race<br>
Details: Prevent proc handler from accessing devices added to the obd_devs array but yet be intialized.


Bugzilla: 13730
*'''Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=15308 15308]'''
Severity: enhancement<br>
Description: Update to SLES10 SP2 kernel-2.6.16.60-0.23.<br>


Description: Do not fail import if osc_interpret_create gets -EAGAIN
*'''Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=16190 16190]'''
Severity: enhancement<br>
Description: Update to RHEL5 kernel-2.6.18-92.1.6.el5.<br>


Details: If osc_interpret_create got -EAGAIN it immediately exits and wakeup oscc_waitq. After wakeup oscc_wait_for_objects call oscc_has_objects and see OSC has no objests and call oscc_internal_create to resend create request.  
*'''Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=16318 16318]'''
Severity: normal<br>
Frequency: rare, on PPC clients<br>
Description: don't swab ost objects in response about directory, because this not exist.<br>
Details: bug similar bug 14856, but in different function.


*'''Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=15754 15754]'''
Severity: enhancement<br>
Description: lfs quota tool enhancements<br>
Details: added units specifiers support for setquota, default to current uid/gid for quota report, short quota stats by default, nonpositional parameters for setquota, added llapi_quotactl manual page.


Severity: normal
*'''Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=16037 16037]'''
Severity: normal<br>
Frequency: only on 32-bit clients with more than 1GB of RAM<br>
Description: Client runs out of low memory<br>
Details: Consider only lowmem when counting initial number of llap pages


Frequency: when removing large files
*'''Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=15625 15625]'''
Severity: enhancement<br>
Description: optional service tags registration<br>
Details: if the "service tags" package is installed on a Lustre node When the filesystem is mounted, a local-node service tag will be created.  See http://inventory.sun.com/ for more information about the Service Tags asset management system.


Bugzilla: 13181
*'''Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=15825 15825]'''
Severity: normal<br>
Frequency: only if client is mounted with "-o flock"<br>
Description: Kernel BUG tries to release flock<br>
Details: Lustre does not destroy flock lock before last reference goes away. So always drop flock locks when client is evicted and perform unlock regardless of successfulness of speaking to MDS.


Description: scheduling issue during removal of large Lustre files
*'''Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=16189 16189]'''
Severity: enhancement<br>
Description: Update to RHEL4 kernel-2.6.9-67.0.20.<br>


Details: Don't take the BKL in fsfilt_ext3_setattr() for 2.6 kernels. It causes scheduling issues when removing large files (17TB in the present case).  
*'''Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=15210 15210]'''
Severity: normal<br>
Frequency: rare, only during unmount<br>
Description: add refcount for osc callbacks, so avoid panic on shutdown<br>


*'''Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=16014 16014]'''
Severity: normal<br>
Frequency: only if OSTs have been removed or non-sequential OST index used<br>
Description: Kernel panic with find ost index.<br>
Details: lov_obd have panic if some OST's have sparse indexes.


Severity: normal
*'''Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=15865 15865]'''
Severity: enhancement<br>
Description: Update to RHEL5 kernel-2.6.18-53.1.21.el5.<br>


Frequency: always
*'''Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=15924 15924]'''
Severity: major<br>
Frequency: only if client is mounted with "-o flock"<br>
Description: do not process already freed flock<br>
Details: flock can possibly be freed by another thread before it reaches to ldlm_flock_completion_ast.


Bugzilla: 13358
*'''Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=14480 14480]'''
Severity: normal<br>
Frequency: only if client is mounted with "-o flock"<br>
Description: LBUG during stress test<br>
Details: Need properly lock accesses the flock deadlock detection list.


Description: 1.4.11 Can't handle directories with stripe set and extended ACLs
*'''Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=15837 15837]'''
Severity: minor<br>
Frequency: rare<br>
Description: oops in page fault handler<br>
Details: kernel page fault handler can return two special 'pages' in error case, don't try dereference NOPAGE_SIGBUS and NOPAGE_OMM.


Details: Impossible (EPROTO is returned) to access a directory that has a non-default striping and ACLs.  
*'''Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=15716 15716]'''
Severity: minor<br>
Frequency: rare, during recovery<br>
Description: timeout with invalidate import.<br>
Details: ptlrpcd_check call obd_zombie_impexp_cull and wait request which should be handled by ptlrpcd. This produce long age waiting and -ETIMEOUT ptlrpc_invalidate_import and as result LASSERT.


*'''Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=14742 14742]'''
Severity: normal<br>
Frequency: rare<br>
Description: ASSERTION(CheckWriteback(page,cmd)) failed<br>
Details: badly clear PG_Writeback bit in ll_ap_completion can produce false positive assertion.


Severity: normal
*'''Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=15779 15779]'''
Severity: normal<br>
Frequency: only with broken builds/installations<br>
Description: no LBUG if lquota.ko and fsfilt_ldiskfs.ko are different versions<br>
Details: just return an error to a user, put a console error message


Frequency: only on ppc
*'''Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=15741 15741]'''
Severity: enhancement<br>
Description: Update to RHEL5 kernel-2.6.18-53.1.19.el5.<br>


Bugzilla: 12234
*'''Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=15742 15742]'''
Severity: enhancement<br>
Description: Update to RHEL4 kernel-2.6.9-67.0.15.<br>


Description: /proc/fs/lustre/devices broken on ppc
*'''Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=14134 14134]'''
Severity: enhancement<br>
Description: enable MGS and MDT services start separately<br>
Details: add a 'nomgs' option in mount.lustre to enable start a MDT with a co-located MGS without starting the MGS, which is a complement to 'nosvc' mount option.


Details: The patch as applied to 1.6.2 doesn't look correct for all arches. We should make sure the type of 'index' is loff_t and then cast explicitly as needed below. Do not assign an explicitly cast loff_t to an int.  
*'''Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=14856 14856]'''
Severity: normal<br>
Frequency: always, on big-endian systems<br>
Description: cleanup in ptlrpc code, related to PPC platform<br>
Details: store magic in native order avoid panic's in recovery on PPC node and forbid from this error in future. Also fix posibily of twice swab data. Fix get lov striping to userpace.


*'''Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=15756 15756]'''
Severity: normal<br>
Frequency: rare, replay get lost on server<br>
Description: server incorrectly drop resent replays lead to recovery failure.<br>
Details: do not drop replay according to msg flags, instead we check the per-export recovery request queue for duplication of transno.


Severity: normal
*'''Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=14835 14835]'''
Severity: normal<br>
Frequency: after recovery<br>
Description: precreate to many object's after del orphan.<br>
Details: del orphan st in oscc last_id == next_id and this triger growing count of precreated objects. Set flag LOW to skip increase count OF precreated objects.


Frequency: only for rhel5
*'''Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=15139 15139]'''
Severity: normal<br>
Frequency: rare, on clear nid stats<br>
Description: ASSERTION(client_stat->nid_exp_ref_count == 0)<br>
Details: when clean nid stats sometimes try destroy live entry, and this produce panic in free.


Bugzilla: 13616
*'''Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=15575 15575]'''
Severity: major<br>
Frequency: occasionally since 1.6.4<br>
Description: Stack overflow during MDS log replay<br>
Details: ease stack pressure by using a thread dealing llog_process.


Description: Kernel patches update for RHEL5 2.6.18-8.1.10.el5.  
*'''Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=13380 13380]'''
Severity: minor<br>
Frequency: very rare<br>
Description: MDT cannot be unmounted, reporting "Mount still busy"<br>
Details: Mountpoint references were being leaked during open reply reconstruction after an MDS restart. Drop mountpoint reference in reconstruct_open() and free dentry reference also.


Details: Modify the target file & which_kernel.  
*'''Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=15443 15443]'''
Severity: normal<br>
Frequency: rare<br>
Description: wait until IO finished before start new when do lock cancel.<br>
Details: VM protocol want old IO finished before start new, in this case need wait until PG_writeback is cleared until check dirty flag and call writepages in lock cancel callback.


*'''Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=12888 12888]'''
Severity: normal<br>
Frequency: rare<br>
Description: mds_mfd_close() ASSERTION(rc == 0)<br>
Details: In mds_mfd_close(), we need protect inode's writecount change within its orphan write semaphore to prevent possible races.


Severity: normal
*'''Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=14645 14645]'''
Severity: minor<br>
Frequency: rare, on shutdown ost<br>
Description: don't hit live lock with umount ost.<br>
Details: shrink_dcache_parent can be in long loop with destroy dentries, use shrink_dcache_sb instead.


Frequency: if the uninit_groups feature is enabled on ldiskfs
*'''Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=14949 14949]'''
Severity: minor<br>
Frequency: only when echo_client is used<br>
Description: don't panic with use echo_client<br>
Details: echo client pass NULL as client nid pointer and this produce NULL pointer dereference.


Bugzilla: 13706
*'''Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=15278 15278]'''
Severity: normal<br>
Frequency: Always on 32-bit PowerPC systems<br>
Description: fix build on PPC32<br>
Details: compile code with -m64 flag produce wrong object file for PPC32.


Description: e2fsck reports "invalid unused inodes count"
*'''Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=15574 15574]'''
Severity: normal<br>
Frequency: rare<br>
Description: MDS LBUG: ASSERTION(!IS_ERR(dchild))<br>
Details: In reconstruct_* functions, LASSERTs on both the data supplied by a client, and the data on disk are dangerous and incorrect. Change them with client eviction.


Details: If a new ldiskfs filesystem is created with the "uninit_groups" feature and only a single inode is created in a group then the "bg_unused_inodes" count is incorrectly updated. Creating a second inode in that group would update it correctly.
*'''Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=15346 15346]'''
Severity: enhancement<br>
Description: skiplist implementation simplification<br>
Details: skiplists are used to group compatible locks on granted list that was implemented as tracking first and last lock of each lock group the patch changes that to using doubly linked lists


*'''Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=14693 14693]'''
Severity: normal<br>
Frequency: only with administrator action<br>
Description: mount failure if config log has invalid conf_param setting<br>
Details: If administrator specified an incorrect configuration parameter with "lctl conf_param" this would cause an error during future client mounts.  Instead, ignore the bad configuration parameter.


Severity: normal
*'''Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=15932 15932]'''
Severity: normal<br>
Frequency: blocks per group < blocksize*8 and uninit_groups is enabled<br>
Description: ldiskfs error: XXX blocks in bitmap, YYY in gd<br>
Details: If blocks per group is less than blocksize*8, set rest of the bitmap to 1.


Frequency: only if filesystem is inconsistent
*'''Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=16172 16172]'''
Severity: major<br>
Frequency: Application do stride read on lustre<br>
Description: The read performance will drop a lot if the application does stride read.<br>
Details: Because the stride_start_offset are missing in stride read-ahead, it will cause clients read a lot of unused pages in read-ahead, then the read-performance drops.


Bugzilla: 11673
*'''Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=15953 15953]'''
Severity: normal<br>
Description: more ldlm soft lockups<br>
Details: In ldlm_resource_add_lock(), call to ldlm_resource_dump() starve other threads from the resource lock for a long time in case of long waiting queue, so change the debug level from D_OTHER to the less frequently used D_INFO.


Description: handle "serious error: objid * already exists" more gracefully
*'''Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=13128 13128]'''
Severity: enhancement<br>
Description: add -gid, -group, -uid, -user options to lfs find<br>


Details: If LAST_ID value on disk is smaller than the objects existing in the O/0/d* directories, it indicates disk corruption and causes an LBUG(). If the object is 0-length, then we should use the existing object. This will help to avoid a full fsck in most cases.  
*'''Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=15284 15284]'''
Severity: enhancement<br>
Description: tool to recover objects put in lost+found by e2fsck<br>
Details: OST crashes and subsequent e2fsck can lead to objects being moved to lost+found directory. Using the "ll_recover_lost_found_objs" tool, these objects can be retrieved and data can be salvaged by using the object ID saved in the fid.


*'''Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=15758 15758]'''
Severity: minor<br>
Frequency: rare<br>
Description: this bug _only_ happens when inode quota limitation is very low (less than 12), so that inode quota unit is 1 at initialization.<br>
Details: if remaining quota equates 1, it is a sign to demonstate that quota is effective now. So least quota qunit should be 2.


Severity: normal
*'''Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=15950 15950]'''
Severity: normal<br>
Frequency: rare, using O_DIRECT only<br>
Description: Hung threads in invalidate_inode_pages2_range<br>
Details: The direct IO path doesn't call check_rpcs to submit a new RPC once one is completed. As a result, some RPCs are stuck in the queue and are never sent.


Frequency: rarely
*'''Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=15684 15684]'''
Severity: normal<br>
Frequency: rare, during shutdown<br>
Description: Procfs and llog threads access destoryed import sometimes.<br>
Details: Sync the import destoryed process with procfs and llog threads by the import refcount and semaphore.


Bugzilla: 13570
*'''Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=15674 15674]'''
Severity: major<br>
Description: mds fails to respond, threads stuck in ldlm_completion_ast<br>
Details: Sort source/child resource pair after updating child resource.


Description: To avoid grant space > avaible space when the disk is almost full. Without this patch you might see the error "grant XXXX > available" or some LBUG about grant, when the disk is almost full.  
*'''Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=16226 16226]'''
Severity: major<br>
Frequency: rare<br>
Description: kernel BUG at ldiskfs2_ext_new_extent_cb<br>
Details: If insertion of an extent fails, then discard the inode preallocation and free data blocks else it can lead to duplicate blocks.


Details: In filter_check_grant, for non_grant cache write, we should check the left space by if (*left > ungranted + bytes), instead of (*left > ungranted), because only we are sure the left space is enough for another "bytes", then the ungrant space should be increase. In client, we should update cl_avail_grant only there is OBD_MD_FLGRANT in the reply.  
*'''Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=16199 16199]'''
Severity: normal<br>
Description: don't always update ctime in ext3_xattr_set_handle()<br> In some cases the ctime should not be updated, for example for 2.0->1.8 compatibility it is necessary to delete an xattr and it should not update the ctime.


*'''Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=15058 15058]'''
Severity: normal<br>
Description: add quota statistics<br>
Details: 1. sort out quota proc entries and proc code.  2. add quota statistics


Severity: normal
*'''Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=16125 16125]'''
Severity: normal<br>
Frequency: often<br>
Description: quotas are not honored with O_DIRECT<br>
Details: all writes with the flag O_DIRECT will use grants which leads to this problem. Now using OBD_BRW_SYNC to guard this.


Frequency: when using O_DIRECT and quotas
*'''Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=15713 15713]'''
*'''Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=16362 16362]'''
Severity: major<br>
Frequency: rare<br>
Description: Assertion in iopen_connect_dentry in 1.6.3<br>
Details: looking up an inode via iopen with the wrong generation number can populate the dcache with a disconneced dentry while the inode number is in the process of being reallocated. This causes an assertion failure in iopen since the inode's dentry list contains both a connected and disconnected dentry.


Bugzilla: 13930
*'''Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=16496 16496]'''
Severity: normal<br>
Description: assertion failure in ldlm_handle2lock()<br>
Details: fix a race between class_handle_unhash() and class_handle2object() introduced in lustre 1.6.5 by bug 13622.


Description: Incorrect file ownership on O_DIRECT output files
*'''Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=15899 15899]'''
Severity: minor<br>
Frequency: rare<br>
Description: Pools downgrade compatibility<br>
Details: Files striped across pools in future (1.8) releases will be properly understood if the server is downgraded to this version.


Details: block usage reported by 'lfs quota' does not take into account files that have been written with O_DIRECT.
*'''Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=12755 12755]'''
Severity: minor<br>
Frequency: rare<br>
Description: Kernel BUG: sd_iostats_bump: unexpected disk index<br>
Details: remove the limit of 256 scsi disks in the sd_iostat patch


*'''Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=16494 16494]'''
Severity: minor<br>
Frequency: rare<br>
Description: oops in sd_iostats_seq_show()<br>
Details: unloading/reloading the scsi low level driver triggers a kernel bug when trying to access the sd iostat file.


Severity: normal
*'''Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=16404 16404]'''
Severity: major<br>
Frequency: rare<br>
Description: Kernel panics during QLogic driver reload<br>
Details: REQ_BLOCK_PC requests are not handled properly in the sd iostat patch, causing memory corruption.


Frequency: always
*'''Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=16140 16140]'''
Severity: minor<br>
Description: journal_dev option does not work in b1_6<br>
Details: pass mount option during pre-mount.


Bugzilla: 13976
*'''Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=10555 10555]'''
Severity: enhancement<br>
Description: Add a FIEMAP (FIle Extent MAP) ioctl for ldiskfs<br>
Details: FIEMAP ioctl will allow an application to efficiently fetch the extent information of a file. It can be used to map logical blocks in a file to physical blocks in the block device.


Description: touch file failed when fs is not full
*'''Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=16972 16972]'''
Severity: normal<br>
Frequency: only with adaptive timeout enabled<br>
Description: DEBUG_REQ() bad paging request<br>
Details: ptlrpc_at_recv_early_reply() should not modify req->rq_repmsg because it can be accessed by reply_in_callback() without the rq_lock held.


Details: OST in recovery should not be discarded by MDS in alloc_qos(), otherwise we can get ENOSP while fs is not full.  
*'''Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=16813 16813]'''
Severity: normal<br>
Frequency: only on Cray X2<br>
Description: X2 build failures<br>
Details: fix build failures on Cray X2.


*'''Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=16303 16303]'''
Severity: major<br>
Frequency: Only on FC kernels 2.6.22+<br>
Description: oops in statahead<br>
Details: Do not drop reference count for the dentry from VFS when lookup, VFS will do that by itself.


Severity: normal
*'''Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=17024 17024]'''
Severity: major<br>
Description: Lustre oops in {:ptlrpc:ptlrpc_server_free_request+373}<br>
Details: In case of memory pressure, list_del() can be called twice on req->rq_history_list, causing a kernel oops.


Frequency: always
=Changes from v1.6.5 to v1.6.5.1=
Support for networks:
* socklnd - any kernel supported by Lustre
* qswlnd - Qsnet kernel modules 5.20 and later
* openiblnd - IbGold 1.8.2
* o2iblnd - OFED 1.1, 1.2.0, 1.2.5, and 1.3
* viblnd - Voltaire ibhost 3.4.5 and later
* ciblnd - Topspin 3.2.0
* iiblnd - Infiniserv 3.3 + PathBits patch
* gmlnd - GM 2.1.22 and later
* mxlnd - MX 1.2.1 or later
* ptllnd - Portals 3.3 / UNICOS/lc 1.5.x, 2.0.x


Bugzilla: 13805
Support for kernels:
* 2.6.5-7.311 (SLES 9)
* 2.6.9-67.0.7.EL (RHEL 4)
* 2.6.16.54-0.2.5 (SLES 10)
* 2.6.18-53.1.14.el5 (RHEL 5)
* 2.6.22.14 vanilla (kernel.org)


Description: data checksumming impacts single node performance
Client support for unpatched kernels: (see [[Patchless Client]])
* 2.6.16 - 2.6.22 vanilla (kernel.org)


Details: disable checksums by default since it impacts single node performance. It is still possible to enable checksums by default via "configure --enable-checksum", or at runtime via procfs.  
Due to problems with nested symlinks and FMODE_EXEC (bug [https://bugzilla.lustre.org/show_bug.cgi?id=12652 12652]), we do not recommend using patchless RHEL4 clients with kernels prior to 2.6.9-55EL (RHEL4U5).


Recommended e2fsprogs version: 1.40.7-sun1


Severity: minor
Note that reiserfs quotas are disabled on SLES 10 in this kernel.


Frequency: when lov objid is destroyed
RHEL 4 and RHEL 5/SLES 10 clients behaves differently on ''cd ./'' to a removed current working directory (refer to bugzilla [https://bugzilla.lustre.org/show_bug.cgi?id=14399 14399].


Bugzilla: 14222
A new quota file format has been introduced in 1.6.5. The format conversion from prior releases is handled transparently, but releases older than 1.4.12/1.6.5 will not understand this new format.  The automatic format conversion can be avoided by running the following command on the MDS before upgrading:
tunefs.lustre --param="mdt.quota_type=ug1" $MDTDEV
For more information, please refer to bugzilla [https://bugzilla.lustre.org/show_bug.cgi?id=13904 13904].


Description: mds can't recreate lov objid file.


Details: if lov objid file is destroyed and ost with highest index connected first mds not get last objid number from ost. Also if mds get last id from ost his not tell osc about this and it's produce warning about wrong del orphan request.  
*'''Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=14309 14309]'''
Severity: normal<br>
Description: RPM packages did not include InfinBand support<br>
Details: The Lustre 1.6.5 did not include InfiniBand RPM packages.


*'''Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=14699 14699]'''
Severity: normal<br>
Frequency: only with administrator action<br>
Description: mount failure if config log has invalid conf_param setting<br>
Details: If administrator specified an incorrect configuration parameter with "lctl conf_param" this would cause an error during future client mounts.  Instead, ignore the bad configuration parameter.


Severity: minor
*'''Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=16172 16172]'''
Severity: major<br>
Frequency: Application do stride read on lustre<br>
Description: The read performance will drop a lot if the application does stride read.<br>
Details: Because the stride_start_offset are missing in stride read-ahead, it will cause clients read a lot of unused pages in read-ahead, then the read-performance drops.


Frequency: rarely
=Changes from v1.6.4.3 to v1.6.5=
Support for networks:
* socklnd - any kernel supported by Lustre
* qswlnd - Qsnet kernel modules 5.20 and later
* openiblnd - IbGold 1.8.2
* o2iblnd - OFED 1.1, 1.2.0, 1.2.5, and 1.3
* viblnd - Voltaire ibhost 3.4.5 and later
* ciblnd - Topspin 3.2.0
* iiblnd - Infiniserv 3.3 + PathBits patch
* gmlnd - GM 2.1.22 and later
* mxlnd - MX 1.2.1 or later
* ptllnd - Portals 3.3 / UNICOS/lc 1.5.x, 2.0.x


Bugzilla: 12948
Support for kernels:
* 2.6.5-7.311 (SLES 9)
* 2.6.9-67.0.7.EL (RHEL 4)
* 2.6.16.54-0.2.5 (SLES 10)
* 2.6.18-53.1.14.el5 (RHEL 5)
* 2.6.22.14 vanilla (kernel.org)


Description: buffer overruns could theoretically occur
Client support for unpatched kernels: (see [[Patchless Client]])
* 2.6.16 - 2.6.22 vanilla (kernel.org)


Details: llapi_semantic_traverse() modifies the "path" argument by appending values to the end of the origin string, and a buffer overrun may occur. Adding buffer overrun check in liblustreapi.  
Due to problems with nested symlinks and FMODE_EXEC (bug [https://bugzilla.lustre.org/show_bug.cgi?id=12652 12652]), we do not recommend using patchless RHEL4 clients with kernels prior to 2.6.9-55EL (RHEL4U5).


Recommended e2fsprogs version: 1.40.7-sun1


Severity: minor
Note that reiserfs quotas are disabled on SLES 10 in this kernel.


Bugzilla: 13732
RHEL 4 and RHEL 5/SLES 10 clients behaves differently on ''cd ./'' to a removed current working directory (refer to bugzilla [https://bugzilla.lustre.org/show_bug.cgi?id=14399 14399].


Description: change order of libsysio includes
A new quota file format has been introduced in 1.6.5. The format conversion from prior releases is handled transparently, but releases older than 1.4.12/1.6.5 will not understand this new format.  The automatic format conversion can be avoided by running the following command on the MDS before upgrading:
tunefs.lustre --param="mdt.quota_type=ug1" $MDTDEV
For more information, please refer to bugzilla [https://bugzilla.lustre.org/show_bug.cgi?id=13904 13904].


Details: '#include sysio.h' should always come before '#include xtio.h'
*Severity: critical


Frequency: very rare, if additional xattrs are used on kernels >= 2.6.12


=Changes from v1.6.2 to v1.6.3=
Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=15777 15777]


Support for networks: socklnd - any kernel supported by Lustre, qswlnd - Qsnet kernel modules 5.20 and later, openiblnd - IbGold 1.8.2, o2iblnd - OFED 1.1 and 1.2, viblnd - Voltaire ibhost 3.4.5 and later, ciblnd - Topspin 3.2.0, iiblnd - Infiniserv 3.3 + PathBits patch, gmlnd - GM 2.1.22 and later, mxlnd - MX 1.2.1 or later, ptllnd - Portals 3.3 / UNICOS/lc 1.5.x, 2.0.x
Description: MDS may lose file striping (and hence file data) in some cases


Support for kernels: 2.6.5-7.286 (SLES 9), 2.6.9-55.0.2.EL (RHEL 4), 2.6.16.46-0.14 (SLES 10), 2.6.18-8.1.8.el5 (RHEL 5), 2.6.18.8 vanilla (kernel.org)
Details: If there are additional extended attributes stored on the MDS, in particular ACLs, SELinux, or user attributes (if user_xattr is specified for the client mount options) then there is a risk of attribute loss.  Additionally, the Lustre file striping needs to be larger than default (e.g. striped over all OSTs), and an additional attribute must be stored initially in the inode and then increase in size enough to be moved to the external attribute block (e.g. ACL growing in size) for file data to be lost.


Client support for unpatched kernels: (see http://wiki.lustre.org/index.php?title=Patchless_Client) 2.6.16 - 2.6.22 vanilla (kernel.org)
*Severity: enhancement


Due to recently discovered recovery problems, we do not recommend using patchless RHEL 4 clients with this or any earlier release.  
Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=12191 12191]


Recommended e2fsprogs version: 1.40.2-cfs1
Description: add message levels for liblustreapi


Note that reiserfs quotas are disabled on SLES 10 in this kernel.
*Severity: minor


Severity: enhancement
Frequency: rare, only if {mds,oss}_num_threads is specified


Bugzilla: 12192
Bugzilla : [https://bugzilla.lustre.org/show_bug.cgi?id=15759 15759]


Description: llapi_file_create() does not allow some changes
Description: MDS or OSS service threads fail startup with -24 (-EMFILE)


Details: add llapi_file_open() that allows specifying the file creation mode and open flags, and also returns an open file handle.  
Details: During startup under recovery, it is possible for service thread startup to fail in ptlrpc_start_threads() if one of the threads begins processing a request and then starts an additional thread.  This causes ptlrpc_start_threads() to try and start 1 too many threads and get an error.


*Severity: normal


Severity: enhancement
Frequency: rare


Bugzilla: 12743
Bugzilla   : [https://bugzilla.lustre.org/show_bug.cgi?id=13380 13380]


Description: df doesn't work properly if diskfs blocksize != 4K
Description: MDT cannot be unmounted, reporting "Mount still busy"


Details: Choose biggest blocksize of OST's as the LOV's blocksize.  
Details: Mountpoint references were being leaked during open reply reconstruction after an MDS restart.  Drop mountpoint reference in reconstruct_open() and free dentry reference also.


*Severity: minor


Severity: enhancement
Frequency: rare


Bugzilla: 11248
Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=13380 13380]


Description: merge and cleanup kernel patches.
Description: fix for occasional failure case of -ENOSPC in recovery-small tests


Details: Remove mnt_lustre_list in vfs_intent-2.6-rhel4.patch.  
Details: Move the 'good_osts' check before the 'total_bavail' check.  This will result in an -EAGAIN and in the exit call path we call alloc_rr() which will with increasing aggressiveness attempt to aquire precreated objects on the minimum number of required OSCs.


*Severity: major


Severity: enhancement
Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=14326 14326]


Bugzilla: 13039
Description: Use old size assignment to avoid deadlock


Description: RedHat Update kernel for RHEL5
Details: This reverts the changes in bugs 2369 and bug 14138 that introduced           
the scheduling while holding a spinlock.  We do not need locking for size in ll_update_inode() because size is only updated from the MDS for directories or files without objects, so there is no other place to do the update, and concurrent access to such inodes are protected by the inode lock.


Details: Kernel config file for RHEL5.
*Severity: normal


Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=14655 14655]


Severity: enhancement
Description: Use __u64 instead of int for valid bits


Bugzilla: 12446
*Severity: normal


Description: OSS needs mutliple precreate threads
Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=14746 14746]


Details: Add ability to start more than one create thread per OSS.
Description: resolve "_IOWR redefined" build error on SLES10


*Severity: normal


Severity: enhancement
Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=14763 14763]


Bugzilla: 13039
Description: dump the memory debugging after all modules are unloaded to suppress false negative in conf_sanity test 39


Description: RedHat Update kernel for RHEL5
*Severity: normal


Details: Modify the kernel config file more closer RHEL5.  
Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=14872 14872]


Description: the recovery timer never expires


Severity: enhancement
Details: for new client connect request, the recovery timer should not be reset, otherwise recovery timer will never expired, if the old client never come. Only old client connect and first connection req should trigger recovery timer reset.


Bugzilla: 13360
*Severity: normal


Description: Build failure against Centos5 (RHEL5)
Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=15521 15521]


Details: Define PAGE_SIZE when it isn't present.
Description: the min numbers of lproc stats are wrong


Details: adding a new constant LC_MIN_INIT and use it for initialization of lc_min.


Severity: enhancement
*Severity: normal


Bugzilla: 11401
Frequency: always with interactive lfs


Description: client-side metadata stat-ahead during readdir(directory readahead)
Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=15212 15212]


Details: perform client-side metadata stat-ahead when the client detects readdir and sequential stat of dir entries therein
Description: Reinitialize optind to 0 so that interactive lfs works in all cases


*Severity: normal


Severity: enhancement
Frequency: with multiple concurrent readdir processes in same directory


Bugzilla: 11230
Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=15406| 15406] [https://bugzilla.lustre.org/show_bug.cgi?id=15169 15169] [https://bugzilla.lustre.org/show_bug.cgi?id=15175 15175]


Description: Tune the kernel for good SCSI performance.  
Description: misc fixes for directory readahead.


Details: Set the value of /sys/block/{dev}/queue/max_sectors_kb to the value of /sys/block/{dev}/queue/max_hw_sectors_kb in mount_lustre.  
Details: prevent previous statahead async RPC callback from processing the current "statahead_info", race condition between async RPC callback add dentry into dentry hash table and "ls" thread revalidate such dentry, statahead his/miss control for hidden items, and so on.


*Severity: enhancement


Severity: critical
Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=15316 15316]


Frequency: Always for filesystems larger than 2TB on 32-bit systems.
Description: build kernel-ib packages for OFED 1.3 in our release cycle


Bugzilla: 13547 , 13627
*Severity: normal


Description: Data corruption for OSTs that are formatted larger than 2TB on 32-bit servers.  
Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=15036 15036]


Details: When generating the bio request for lustre file writes the sector number would overflow a temporary variable before being used for the IO. The data reads correctly from Lustre (which will overflow in a similar manner) but other file data or filesystem metadata may be corrupted in some cases.
Description: incore types cleaning in quota code (with respect to 64-bit limits)


Details: several u32 variables declarations are replaced with u64 declarations


Severity: major
*Severity: minor


Bugzilla: 13236
Frequency: always


Description: TOE Kernel panic by ksocklnd
Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=13969 13969]


Details: offloaded sockets provide their own implementation of sendpage, can't call tcp_sendpage() directly
Description: fix SLES kernel versioning


Details: the kernel version for our SLES 10 kernel did not include a "-" before the "smp" at the end.  while this was not a problem in general, it did mean that software trying to use the kernel version to try to detect a vendor specific kernel would fail. this was most evident by the OFED build scripts.


Severity: major
*Severity: normal


Bugzilla: 13482
Frequency: rare


Description: build error
Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=14803 14803]


Details: fix typos in gmlnd, ptllnd and viblnd
Description: Don't update lov_desc members until making sure they are valid


Details: When updating lov_desc members via proc fs, need fix their validities before doing the real update.


Severity: major
*Severity: normal


Bugzilla: 12932
Frequency: very rare


Description: obd_health_check_timeout too short
Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=15069 15069]


Details: set obd_health_check_timeout as 1.5x of obd_timeout
Description: don't put request into delay list while invalidate in flight.


Details: ptlrpc_delay_request sometimes put in delay list while invalidate import in flight. this produce timeout for invalidate and sometimes can cause stale data.


Severity: major
*Severity: enhancement


Frequency: only with quota on the root user
Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=15416 15416]


Bugzilla: 12223
Description: Update kernel to SLES9 2.6.5-7.311.


Description: mds_obd_create error creating tmp object
*Severity: enhancement


Details: When the user sets quota on root, llog will be affected and can't create files and write files.  
Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=15240 15240]


Description: Update kernel to RHEL4 2.6.9-67.0.7.


Severity: normal
*Severity: normal


Bugzilla: 12782
Frequency: always


Description: /proc/sys/lnet has non-sysctl entries
Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=14856 14856]


Details: Updating dump_kernel/daemon_file/debug_mb to use sysctl variables
Frequency: on PPC only


Description: not convert ost objects for directory because it's not exist.


Severity: normal
Details: ll_dir_getstripe assume directory has ost objects but this wrong.


Bugzilla: 10778
*Severity: enhancement


Description: kibnal_shutdown() doesn't finish; lconf --cleanup hangs
Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=15517 15517]


Details: races between lnd_shutdown and peer creation prevent lnd_shutdown from finishing.  
Description: Fix warnings with compile liblustre at sles10/rhel5 which have __u64 as usingied long long type.


*Severity: minor


Severity: normal
Frequency: rare, on shutdown


Bugzilla: 13279
Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=15210 15210]


Description: open files rlimit 1024 reached while liblustre testing
Description: race process AST vs remove callback


Details: ulnds/socklnd must close open socket after unsuccessful 'say hello' attempt.  
Details: removing callback before disconnect import open race with processing callback.


*Severity: enhancement


Severity: normal
Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=15416 15416]


Frequency: always on directories with default striping set
Description: Update kernel to SLES9 2.6.5-7.311.


Bugzilla: 12836
*Severity: enhancement


Description: lfs find on -1 stripe looping in lsm_lmm_verify_common()
Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=12652 12652]


Details: Avoid lov_verify_lmm_common() on directory with -1 stripe count.
Description: Files open for execute are not marked busy on SLES10


Details: Add FMODE_EXEC to SLES10 SP1 server kernel series.


Severity: normal
*Severity: enhancement


Frequency: Always on ia64 patchless client, and possibly others.
Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=13397 13397]


Bugzilla: 12826
Description: Add server support for vanilla-2.6.22.14.


Description: Add EXPORT_SYMBOL check for node_to_cpumask symbol.
*Severity: normal


Details: This allows the patchless client to be loaded on architectures without this export.
Frequency: occasional


Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=13375 13375]


Severity: normal
Description: Avoid lov_create() getting stuck in obd_statfs_rqset()


Frequency: rare
Details: If an OST is down the MDS will hang indefinitely in obd_statfs_rqset() waiting for the statfs data. While for MDS QOS usage of statfs, it should not stuck in waiting.


Bugzilla: 13142
*Severity: enhancement


Description: disorder of journal start and llog_add cause deadlock.  
Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=3055 3055]


Details: in llog_origin_connect, journal start should happen before llog_add keep the same order as other functions to avoid the deadlock.
Description: Disable adaptive timeouts by default


*Severity: major


Severity: normal
Frequency: on network error


Frequency: occasionally when using NFS
Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=15027 15027]


Bugzilla: 13030
Description: panic with double free request if network error


Description: "ll_intent_file_open()) lock enqueue: err: -13" with nfs
Details: mdc_finish_enqueue is finish request if any network error occuring, but it's true only for synchronus enqueue, for async enqueue (via ptlrpcd) this incorrect and ptlrpcd want finish request himself.


Details: with NFS, the anon dentry's parent was set to itself in d_alloc_anon(), so in MDS, we use rec->ur_fid1 to find the corresponding dentry other than use rec->ur_name.
*Severity: normal


Frequency: rare, on recovery


Severity: normal
Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=14533 14533]


Frequency: Occasionally with failover
Description: read procfs can produce deadlock in some situation


Bugzilla: 12459
Details: Holding lprocfs lock with send rpc can produce block for destroy obd objects and this also block reconnect with -EALREADY. This isn't fix all lprocfs bugs - but make it rare.


Description: Client eviction due to failover config
*Severity: enhancement


Details: after a connection loss, the lustre client should attempt to reconnect to the last active server first before trying the other potential connections.  
Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=15152 15152]


Description: Update kernel to RHEL5 2.6.18-53.1.14.el5.


Severity: normal
*Severity: major


Frequency: only with liblustre clients on XT3
Frequency: frequent on X2 node


Bugzilla: 12418
Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=15010 15010]


Description: evictions taking too long
Description: mdc_set_open_replay_data LBUG


Details: allow llrd to evict clients directly on OSTs
Details: Set replay data for requests that are eligible for replay.


*Severity: normal


Severity: normal
Frequency: common
 
Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=14321 14321]


Bugzilla: 13125
Description: lustre_mgs: operation 101 on unconnected MGS


Description: osts not allocated evenly to files
Details: When MGC is disconnected from MGS long enough, MGS will evict the MGC, and late on MGC cannot successfully connect to MGS and a lot of the error messages complaining that MGS is not connected.


Details: change the condition to increase offset_idx
*Severity: major


Frequency: rare, depends on device drivers and load


Severity: normal
Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=14529 14529]


Bugzilla: 13436
Description: MDS or OSS nodes crash due to stack overflow


Description: Only those disconnect error should be returned by rq_status.  
Details: Code changes in 1.6.4 increased the stack usage of some functions. In some cases, in conjunction with device drivers that use a lot of stack, the MDS (or possibly OSS) service threads could overflow the stack.  One change which was identified to consume additional stack has been reworked to avoid the extra stack usage.


Details: In open/enqueue processs, Some errors, which will cause client disconnected, should be returned by rq_status, while other errors should still be returned by intent, then mdc or llite will detect them.
*Severity: enhancement


Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=14876 14876]


Severity: normal
Description: Update to RHEL5 latest kernel-2.6.18-53.1.13.el5.


Bugzilla: 13600
*Severity: enhancement


Description: "lfs find -obd UUID" prints directories
Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=14858 14858]


Details: "lfs find -obd UUID" will return all directory names instead of just file names. It is incorrect because the directories do not reside on the OSTs.  
Description: Update to SLES10 SP1 latest kernel-2.6.16.54-0.2.5.


*Severity: enhancement


Severity: normal
Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=14720 14720]


Bugzilla: 13596
Description: Update to RHEL5 latest kernel-2.6.18-53.1.6.el5.


Description: MDS hang after unclean shutdown of lots of clients
*Serverity: enhancement


Details: Never resend AST requests.  
Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=14793 14793]


Description: Update RHEL4 kernel to 2.6.9-67.0.4.


Severity: normal
*Severity: minor


Frequency: Always, for kernels after 2.6.16
Frequency: rare on shutdown OST


Bugzilla: 13304
Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=13196 13196]


Description: Fix warning idr_remove called for id=.. which is not allocated.
Description: Don't allow skipping OSTs if index has been specified.
Details: Last kernels save old s_dev before kill super and not allow to restore from callback - restore it before call kill_anon_super.  


Details: Don't allow skipping OSTs if index has been specified, make locking in internal create lots better.


Severity: minor
*Severity: normal


Bugzilla: 12186
Frequency: rare


Description: Fix errors in lfs documentation
Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=14421 14421]


Details: Fixes man pages
Description: ASSERTION(!PageDirty(page)) failed


Details: Wrong check could lead to an assertion failure under specific load patterns.


Severity: minor
*Severity: normal


Frequency: rare
Frequency: rare


Bugzilla: 12588
Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=12228 12228]


Description: when mds and osts use different quota unit(32bit and 64bit), quota will be released repeatly.
Description: LBUG in ptlrpc_check_set() bad phase ebc0de00


Details: void sending multiple quota reqs to mds, which will keep the status between the reqs.  
Details: access to bitfield in structure is always rounded to long and this produce problem with not atomic change any bit.


*Severity: normal


Severity: cleanup
Frequency: always


Bugzilla: 13532
Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=13647 13647]


Description: rewrite ext2-derived code in llite/dir.c and obdclass/uuid.c
Description: Lustre 'make rpms' failed.


Details: rewrite inherited code (uuid parsing code from ext2 utils and readdir code from ext3) from scratch preserving functionality.  
Details: Remove ldiskfs spec file to avoids rpmbuild be confused when builds Lustre rpms from tarball.


*Severity: enhancement


=Changes from v1.6.1 to v1.6.2=
Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=14498 14498]


Support for kernels: 2.6.5-7.286 (SLES 9), 2.6.9-55.0.2.EL (RHEL 4), 2.6.16.46-0.14 (SLES 10), 2.6.18-8.1.8.el5 (RHEL 5), 2.6.18.8 vanilla (kernel.org)
Description: Update to SLES9 SP4 kernel-2.6.5-7.308.


Client support for unpatched kernels: (see http://wiki.lustre.org/index.php?
*Severity: normal
title=Patchless_Client) 2.6.16 - 2.6.22 vanilla (kernel.org)


Due to recently discovered recovery problems, we do not recommend using patchless RHEL 4 clients with this or any earlier release.
Frequency: rare on shutdown OST


Recommended e2fsprogs version: 1.39.cfs8
Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=14608 14608]


Note that reiserfs quotas are disabled on SLES 10 in this kernel.  
Description: If llog cancel was not send before clean_exports phase, this can produce deadlock in llog code.


Severity: enhancement
Details: If llog thread has last reference to obd and call class_import_put this produce deadlock because llog_cleanup_commit_master wait when last llog_commit_thread exited, but this never success because was called from llog_commit_thread.


Bugzilla: 12786
*Severity: normal


Description: lfs setstripe enhancement
Frequency: only if OST index is skipped


Details: Make lfs setstripe understand 'k', 'm' and 'g' for stripe size.  
Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=14607 14607]


Description: NULL lov_tgts causing MDS oops


Severity: enhancement
Details: more safe checks for NULL lov_tgts for avoid oops.


Bugzilla: 12211
*Severity: enhancement


Description: randomly memory allocation failure util
Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=14531 14531]


Details: Make lustre randomly failed allocating memory for testing purpose.  
Description: Update to RHEL4 latest kernel-2.6.9-67.0.1.EL.


*Severity: enhancement


Severity: enhancement
Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=14368 14368]


Bugzilla: 10786
Description: Update to RHEL5 latest kernel-2.6.18-53.1.4.el5.


Description: omit set fsid for export NFS
*Severity: normal


Details: fix set/restore device id for avoid EMFILE error and mark lustre fs as FS_REQUIRES_DEV for avoid problems with generate fsid.
Frequency: always


Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=14136 14136]


Severity: enhancement
Description: make mgs_setparam() handle fsname containing dash


Bugzilla: 10595
Details: fsname containing a dash does not work with lctl conf_param


Description: Error message improvement.
*Severity: enhancement


Details: Merging of two LCONSOLE_ERROR_MSG into one.  
Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=14288 14288]


Description: Update to RHEL4 Update-6 kernel-2.6.9-67.EL.


Severity: enhancement
*Severity: normal


Bugzilla: 12606
Frequency: rare, in recovery and (or) destroy lovobjid file.


Description: don't use GFP_* in generic Lustre code.  
Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=12702 12702]


Details: Use cfs_alloc_* functions and CFS_* flags for code portability.  
Description: rewrite lov_objid code.


Details: Cleanup for lov_objid code, remove scability problems and wrong locking. Fix sending last_id into OST.


Severity: enhancement
*Severity: enhancement


Bugzilla: 12333
Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=14388 14388]


Description: obdclass is limited by single OBD_ALLOC(idarray)
Description: Update to SLES10 SP1 latest kernel-2.6.16.54-0.2.3.


Details: replace OBD_ALLOC/OBD_FREE with OBD_VMALLOC/OBD_VFREE
*Severity: enhancement


Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=14289 14289]


Severity: enhancement
Description: Update to RHEL5 Update-1 kernel 2.6.18-53.el5.


Bugzilla: 12415
Details: Use d_move_locked instead of __d_move.


Description: updated patchess for new RHEL4 kernel
*Severity: major


Details: Fixed ext3-unlink-race.patch per Kalpak's comment.
Frequency: rare, at shutdown


Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=14260 14260]


Severity: enhancement
Description: access already free / zero obd_namespace.


Bugzilla: 13006
Details: if client_disconnect_export was called without force flag set, and exist connect request in flight, this can produce access to NULL pointer (or already free pointer) when connect_interpret store ocd flags in obd_namespace.


Description: warnings with build patchless client with vanila 2.6.19 and up
*Severity: minor


Details: change old ctl_table style and replace ctl_table/ctl_table_header with cfs_sysctl_table_t/cfs_sysctl_table_header_t
Frequency: only at startup


Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=14418 14418]


Severity: enhancement
Description: not alloc memory with spinlock held.


Bugzilla: 13093
Details: allocation memory with GFP_KERNEL can produce sleep deadlock, if any spinlock held.


Description: O_DIRECT bypasses client statistics.
*Severity: normal


Details: When running with O_DIRECT I/O, neither the client rpc_stats nor read_ahead_stats were updated. Copied stats section from osc_send_oap_rpc() into async_internal().
Frequency: always


Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=14270 14270]


Severity: enhancement
Description: lfs find does not continue on file error


Bugzilla: 13249
Details: Continue other files processing when a file/dir is absent.


Description: Kernel patches for SLES9 2.6.5-7.286 kernel
*Severity: normal


Details: Update target/ChangeLog/which_patch .  
Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=11791 11791]


Description: Inconsistent usage of lustre_pack_reply()


Severity: enhancement
Details: Standardize the usage of lustre_pack_reply() such that it always generate a CERROR on failure.


Bugzilla: 12955
*Severity: normal


Description: jbd statistics
Frequency: very rare


Details: Port older jbd statistics patch for sles10
Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=3462 3462]


Description: Fix replay if there is an un-replied request and open


Severity: enhancement
Details: In some cases, older replay request will revert the mcd->mcd_last_xid on MDS which is used to record the client's latest sent request.


Bugzilla: 13360
*Severity: enhancement


Description: Build failure against Centos5 (RHEL5)
Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=13969 13969]


Details: Use getpagesize() instead of PAGE_SIZE.  
Description: Update to RHEL5 kernel 2.6.18-8.1.15.el5.


*Severity: enhancement


Severity: major
Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=13874 13874]


Frequency: after network failures
Description: Update to SLES10 SP1 kernel 2.6.16.53-0.16


Bugzilla: 12769
*Severity: enhancement


Description: Add sync option to mount_lustre.c
Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=13889 13889]


Details: Client loses data written to lustre after a network interruption.  
Description: Update to SLES9 kernel-2.6.5-7.287.3.


*Severity: enhancement


Severity: normal
Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=14041 14041]


Frequency: mds/oss recovery
Description: Update to RHEL4 kernel-2.6.9-55.0.12.EL.


Bugzilla: 10800
*Severity: enhancement


Description: llog ctxt is refrenced after it has been freed.  
Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=13690 13690]


Details: llog ctxt refcount was added to avoide the race between ctxt free and llog recovery process. Each llog user must hold ctxt refcount before it access the llog. And the llog ctxt can only be freed when its refcount is zero.
Description: Build SLES10 patchless client fails


Details: The configure was broken by run ./configure with --with-linux-obj=.... argument for patchless client. When the configure use --with-linux-obj, the LINUXINCLUDE= -Iinclude can't search header adequately. Use absolute path such as -I($LINUX)/include instead.


Severity: normal
*Severity: enhancement


Frequency: only for SLES10
Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=11622 11622]


Bugzilla: 12771
Description: Lustre Page Accounting


Description: Update kernel patch for SLES10 SP1
Details: New macros for page alloc and free which enable accounting of page allocation of Lustre. Use percpu counters to store memory and page statistics.


Details: Add patch blkdev_tunables-2.6-sles10.patch to 2.6-sles10.series.
*Severity: normal


Frequency: only if debugging is disabled


Severity: normal
Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=13497 13497]


Bugzilla: 11802
Description: LASSERT_{REQ,REP}SWAB macros are buggy


Description: lustre support for RHEL5
Details: If SWAB_PARANOIA is disabled, the LASSERT_REQSWAB and LASSERT_REPSWAB macros become no-ops, which is incorrect. Drop these macros and replace them with their definitions instead.


Details: Add support for RHEL5.
*Severity: normal


Frequency: rare


Severity: normal
Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=13888 13888]


Frequency: rare
Description: interrupt oig_wait produce painc on resend.


Bugzilla: 11756
Details: brw_redo_request can be used for resend requests from ptlrpcd and private set, and this produce situation when rq_ptlrpcd_data not copyed to new allocated request and triggered LBUG on assert req->rq_ptlrpcd_data != NULL. But this member used only for wakeup ptlrpcd set if request is changed and can be safety changed to use rq_set directly.


Description: umount blocks forever on error
*Severity: enhancement


Details: In result of wrong using obd_no_recov and obd_force flags client can hand if cancel or some other requests is lost.  
Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=11089 11089]


Description: organize the server-side client stats on per-nid basis


Severity: normal
Details: Change the structure of stats under obdfilter and mds to
        New structure:
            +- exports
                    +- nid#1
                    |  + stats
                    |  + uuids
                    +- nid#2...
                    +- clear
The "uuid"s file would list the uuids of _active_ exports. And the clear entry is to clear all stats and stale nids.


Frequency: Only for SLES
*Severity: normal


Bugzilla: 13177
Frequency: rare


Description: sanity_quota fail test_1
Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=12266 12266]


Details: There are multiple occurences of $TSTUSR in SLES's /etc/group file, which makes TSTID[2] inunique.
Description: Processes looping in ll_readdir() on Lustre clients finally causing a full node pseudo-hang


Details: Concurrent access to the same directory from multiple clients with intensive file creation/removal can cause a client node to spin in ll_readdir(). i_version must be increased every time the lock is cancelled to ensure a revalidate is done.


Severity: normal
*Severity: normal


Frequency: rare
Frequency: always


Bugzilla: 9977
Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=13976 13976]


Description: lvbo_init failed for resource with missing objects.
Description: touch file failed when fs is not full


Details: Fix returning error if we do stat for file with missing/corrupted objects and i_size set to all sum of size of all avaible objects. if we to truncate/write to missing object - it is recreated.  
Details: OST in recovery should not be discarded by MDS in alloc_qos(), otherwise we can get ENOSP while fs is not full.


*Severity: normal


Severity: normal
Frequency: only for Cray XT3


Frequency: When flocks are used.
Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=12829 12829] [https://bugzilla.lustre.org/show_bug.cgi?id=13455 13455]


Bugzilla: 13103
Description: Changing primary group doesn't change the group lustre assigns to a file


Description: assertion failure in ldlm_cli_enquque_fini for non NULL lock.  
Details: When CRAY_XT3 is defined, the fsgid supplied by the client is overridden with the primary group provided by the group upcall, whereas the supplied fsgid can be trusted if it is in the list of supplementary groups returned by the group upcall.


Details: Flock locks might destroy just granted lock if it could be merged with another existing flock, this is done in completion handler, so teach ldlm_cli_enquque_fini that this is a valid case for flock locks.  
*Severity: enhancement
Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=12749 12749]


Description: Root Squash Functionality


Severity: normal
Details: Implementation of NFS-like root squash capability. Specifically, don't allow someone with root access on a client node to be able to manipulate files owned by root on a server node.


Frequency: Rare
*Severity: enhancement


Bugzilla: 11974
Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=10718 10718]


Description: reply_lock_interpret crash due to race with it and lock cancel.  
Description: Slow trucate/writes to huge files at high offsets.


Details: Do not replay locks that are being cancelled. Do not reference locks by their address during replay, just by their handle.  
Details: Directly associate cached pages to lock that protect those pages, this allows us to quickly find what pages to write and remove once lock callback is received.


*Severity: normal


Severity: normal
Frequency: common


Frequency: only with deactivated OSTs
Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=14379 14379]


Bugzilla: 11679
Description: Too many locks accumulating on client during NFS usage


Description: lstripe command fails for valid OST index
Details: mds_open improperly used accmode to find out access mode to a file. Also mdc_intent_lock logic to find out if we already have lock similar to just received was flawed since introduction of skiplists - locks are now added to the front of the granted queue.


Details: The stripe offset is compared to 'lov->desc.ld_tgt_count' instead of lov->desc.ld_active_tgt_count.
*Severity: normal


Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=14477 14477]


Severity: minor
Description: Hit ASSERTION(obd->obd_stopping == 1) failed in some setup failed situation.


Frequency: rare
Details: In obd setup failure handler, obd_stopping will not necessarily to be 1, and obd_set_up should also be checked to make sure whether obd is completely setup.


Bugzilla: 13147
*Severity: enhancement


Description: block reactivating mgc import until all deactivates complete
Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=14398 14398]


Details: Fix race when failing back MDT/MGS to itself (testing)
Description: Allow masking D_WARNING, D_ERROR messages from console


Details: Console messages can now be disabled via lnet.printk.


Severity: minor
*Severity: normal


Frequency: only for Cray XT3
Frequency: always


Bugzilla: 11706
Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=14614 14614]


Description: peer credits not enough on many OST per OSS systems.
Description: User code with malformed file open parameter crashes client node


Details: Use new lnet way to add credits as we need those for pings and ASTs
Details: Before packing join_file req, all the related reference should be checked carefully in case some malformed flags cause fake join_file req on client.


*Severity: normal


Severity: minor
Frequency: always


Frequency: only with liblustre
Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=10600 10600]


Bugzilla: 12790
Description: shrink/enlarge qunit size when needed; fix the problem of coarse grain of quota doing harm to quota's accuracy


Description: Liblustre is not releasing flock locks on file close.  
Details: qunit size will be changed when quota limitation is too low/high; record the pending quota write in order to get more accureate quota; delete the patch for bug12588, which is unnecessary when this patch is landed. This bug also contains fixes for bug 14526, 14299, 14601 and 13794.


Details: Release flock locks on file close.
*Severity: normal


Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=14225 14225]


Severity: minor
Description: LDLM_ENQUEUE races with LDLM_CP_CALLBACK


Frequency: only for RHEL4
Details: ldlm_completion_ast() assumes that a lock is granted when the req mode is equal to the granted mode. However, it should also check that LDLM_FL_CP_REQD is not set.


Bugzilla: 12839
*Severity: normal


Description: Update kernel patches for kernel-2.6.9-55.0.2.EL
Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=14360 14360]


Details: Remove inode-nr_unused-2.6.9-rhel4.patch from 2.6-rhel4.series Update target file and kernel config.
Description: Heavy nfs access might result in deadlocks


Details: After ELC code landed, it is now improper to enqueue any mds locks under och_sem, because enqueue might want to decide to cancel open locks for same inode we are holding och_sem for.


Severity: minor
*Severity: normal


Frequency: rare
Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=14443 14443]


Bugzilla: 11327
Description: 35% write performance drop with ldiskfs2 when quotas are on


Description: ASSERTION(export != NULL) failed in target_handle_connect
Details: Enable ext3 journalled quota by default to improve performance when quotas are turned on.


Details: Assetion hit is result of rare race between disconnect and connet to same nid. target_handle_connect found old connect cockie and tried to reconnect, but can't find export for this cockie.
*Severity: normal


Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=13843 13843]


Severity: minor
Description: Client eviction while running blogbench


Frequency: rare
Details: A lot of unlink operations with concurrent I/O can lead to a deadlock causing evictions. To address the problem, the number of oustanding OST_DESTROY requests is now throttled to max_rpcs_in_flight per OSC and LDLM_FL_DISCARD_DATA blocking callbacks are processed in priority.


Bugzilla: 13276
*Severity: normal


Description: Oops in read and write path when failing to allocate lock.
Frequency: RHEL4 only


Details: Check if lock allocation failed and return error back.  
Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=14618 14618]


Description: mkfs is very slow on IA64/RHEL4


=Changes from v1.6.0.1 to v1.6.1=
Details: A performance regression has been discovered in the MPT Fusion driver between versions 3.02.73rh and 3.02.99.00rh. As a consequence, we have downgraded the MPT Fusion driver in the RHEL4


Support for networks: socklnd - kernels up to 2.6.16, qswlnd - Qsnet kernel modules 5.20 and later, openiblnd - IbGold 1.8.2, o2iblnd - OFED 1.1 and 1.2 viblnd - Voltaire ibhost 3.4.5 and later, ciblnd - Topspin 3.2.0, iiblnd - Infiniserv 3.3 + PathBits patch, gmlnd - GM 2.1.22 and later, mxlnd - MX 1.2.1 or later, ptllnd - Portals 3.3 / UNICOS/lc 1.5.x, 2.0.x
*Severity: normal


Support for kernels: 2.6.5-7.283 (SLES 9), 2.6.9-55.EL (RHEL 4), 2.6.16.46-0.14 (SLES 10), 2.6.18.8 vanilla (kernel.org)
Frequency: PPC/PPC64 only


Client support for unpatched kernels: (see http://wiki.lustre.org/index.php?title=Patchless_Client) 2.6.16 - 2.6.22 vanilla (kernel.org)
Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=14845 14845]


Due to recently discovered recovery problems, we do not recommend using patchless RHEL 4 clients with this or any earlier release.  
Description: conflicts between asm-ppc64/types.h and lustre_types.h


Recommended e2fsprogs version: 1.39.cfs8
Details: fix duplicated definitions between asm-ppc64/types.h and lustre_types.h on PPC.


Note that reiserfs quotas are disabled on SLES 10 in this kernel.
*Severity: normal
Starting with this release, the ldiskfs backing filesystem required by Lustre is now in its own package, lustre-ldiskfs. This package should be installed. It is versioned separately from Lustre and may be released separately in future.


Severity: enhancement
Frequency: PPC/PPC64 only


Bugzilla: 12194
Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=14844 14844]


Description: add optional extra BUILD_VERSION info
Description: asm-ppc/segment.h does not exist


Details: add a new environment variable (namely LUSTRE_VERS) which allows to override the lustre version.  
Details: fix compile issue on PPC.


*Severity: normal


Severity: enhancement
Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=13805 13805]


Bugzilla: 11548
Description: data checksumming impacts single node performance


Description: Add LNET router traceability for debug purposes
Details: add support for several checksum algorithms. Currently, CRC32 and Adler-32 are supported. The checksum type can be changed on the fly through /proc/fs/lustre/osc/*/checksum_type.


Details: If a checksum failure occurs with a router as part of the IO path, the NID of the last router that forwarded the bulk data is printed so it can be identified.
*Severity: normal


Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=14648 14648]


Severity: enhancement
Description: use adler32 for page checksums


Bugzilla: 10997
Details: when available, use the Adler-32 algorithm instead of CRC32 for page checksums.


Description: lfs setstripe use optional parameters instead of postional parameters.
*Severity: normal


Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=14864 14864]


Severity: enhancement
Description: better handle error messages in extents code


Bugzilla: 10651
*Severity: enhancement


Description: Nanosecond timestamp support for ldiskfs
Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=14729 14729]


Details: The on-disk ldiskfs filesystem has added support for nanosecond resolution timestamps. There is not yet support for this at the Lustre filesystem level.
Description: SNMP support enhancement


Details: Adding total number of sampled request for an MDS node in snmp support.


Severity: enhancement
*Severity: enhancement


Bugzilla: 10768
Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=14748 14748]


Description: 64-bit inode version
Description: Optimize ldlm waiting list processing for PR extent locks


Details: : Add a on-disk 64-bit inode version for ext3 to track changes made to the inode. This will be required for version-based recovery.  
Details: When processing waiting list for read extent lock and meeting read lock that is same or wider to it that is not contended, skip processing rest of the list and immediatelly return current status of conflictness, since we are guaranteed there are no conflicting locks in the rest of the list.


*Severity: normal


Severity: enhancement
Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=14774 14774]


Bugzilla: 11563
Description: Time out and refuse to reconnect


Description: Add -o localflock option to simulate old noflock behaviour.  
Details: When the failover node is the primary node, it is possible to have two identical connections in imp_conn_list. We must compare not conn's pointers but NIDs, otherwise we can defeat connection throttling.


Details: This will achieve local-only flock/fcntl locks coherentness.
*Severity: major


Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=14775 14775]


Severity: enhancement
Description: Client not clear own cache if answer to reconnect is lost.


Bugzilla: 11647
Details: Client gets evicted from server.  Now client also thinks it is disconnected (or gets ENOTCONN on its operation) and decides to reconnect.  Server receives reconnect message, but cannot find export.  New export is created that is fully valid (new cookie!), but reply is lost and not reported to client.  Client reconnects again and gets back a just-created connection, but it is not new so client thinks it was not evicted and does not do recovery.


Description: update patchless client
*Severity: normal


Details: Add support for patchless client with 2.6.20, 2.6.21 and RHEL 5
Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=14483 14483]


Description: Detect stride IO mode in read-ahead


Severity: enhancement
Details: When a client does stride read, read-ahead should detect that and read-ahead pages according to the detected stride pattern.


Bugzilla: 10589
*Severity: normal


Description: metadata RPC reduction (e.g. for rm performance)
Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=15033 15033]


Details: decrease the amount of synchronous RPC between clients and servers by canceling conflicing lock before the operation on the client and packing thier handles into the main operation RPC to server.
Description: build for X2 fails


Details: fix compile issue on Cray systems.


Severity: enhancement
*Severity: enhancement


Bugzilla: 12605
Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=13371 13371]


Description: add #ifdef HAVE_KERNEL_CONFIG_H
Description: implement readv/writev APIs(aio_read/aio_writes in newer kernels)


Details: kernels from 2.6.19 not need include linux/config.h, but add include linux/autoconf.h in commpiler command line.  
Details: This greatly improves speed of NFS writes on 2.6 kernels.


*Severity: normal


Severity: enhancement
Frequency: only on PPC/SLES10


Bugzilla: 12764
Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=14855 14855]


Description: patchless client support for 2.6.22 kernel
Description: "BITS_PER_LONG is not 32 or 64" in linux/idr.h


Details: 2.6.22 has only one visble change, SLAB_CTOR_* constants is removed. In this case we need drop using os depended interface to kmem_cache and use cfs_mem_cache API.  
Details: On SLES10/PPC, fs.h includes idr.h which requires BITS_PER_LONG to be defined. Add a hack in mkfs_lustre.c to work around this compile issue.


*Severity: normal


Severity: enhancement
Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=14257 14257]


Bugzilla: 10968
Description: LASSERT on MDS when client holding flock lock dies


Description: VFS operations stats tool.  
Details: ldlm pool logic depends on number of granted locks equal to number of released locks which is not true for flock locks, so just exclude such locks from consideration.


Details: Tool which collects stats by tracking value written in pid, ppid, gid and uses llstat to generate output to plot graph using plot-llstat Updated lustre/utils/Makefile.am Added lustre/utils/ltrack_stats.c
*Severity: normal


Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=15188 15188]


Severity: enhancement
Description: MDS deadlock with many ll_sync_lov threads and I/O stalled


Bugzilla: 11039
Details: Use fsfilt_sync() for both the whole filesystem sync and individual file sync to eliminate dangerous inode locking with I_LOCK that can lead to a deadlock.


Description: 2.6.18 server support (lustre 1.6.1)
*Severity: minor


Details: Support for 2.6.18 kernels on the server side.  
Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=15566 15566]


Description: Update an obsolete wirecheck.c generator


Severity: enhancement
Details: Update wirecheck.c/wirehdr.c and regenerate wiretest.c


Bugzilla: 12678
*Severity: normal


Description: remove fs_prep_san_write operation and related patches
Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=14712 14712]


Details: remove the ext3-san-jdike patches which are no longer useful.
Description: Client can panic on open sometimes


Details: It is possible that we try to free already freed request in ll_file_open in some error cases when we send request from ll_file_open


Severity: enhancement
*Severity: normal


Bugzilla: 4900
Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=14410 14410]


Description: Async OSC create to avoid the blocking unnecessarily.  
Description: performance in 1.6.3
 
Details: Force q->max_phys_segments to MAX_PHYS_SEGMENTS on SLES10 to be sure that 1MB requests are not fragmented by the block layer.
 
*Severity: normal
 
Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=15198 15198]
 
Description: LDLM soft lockups - improvement


Details: If a OST has no remain object, system will block on the creating when need to create a new object on this OST. Now, ways use pre-created objects when available, instead of blocking on an empty osc while others are not empty. If we must block, we block for the shortest possible period of time.  
Details: It is be possible to send the lock handle along with each read or write request because the client is already doing a lock match itself so there isn't any reason the OST should have to re-do that search.


*Severity: normal


Severity: enhancement
Frequency: rare


Bugzilla: 11721
Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=14036 14036]


Description: Add printing inode info into message about error in writepage.
Description: lfs quota fails with deactivated OSTS


Details: With this patch, three improvements are included:
    1. detete the softlimit in mds and osts when use "lfs quota".
    2. display the inaccurate data in the output of "lfs quota".
    3. try to get quota info when "lfs quota" is executed.


Severity: major
*Severity: normal


Bugzilla: 11971
Frequency: rare


Description: Accessing a block bevice can re-enable I/O when Lustre is tearing down a device.  
Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=15776 15776]


Details: dev_clear_rdonly(bdev) must be called in kill_bdev() instead of blkdev_put().  
Description: Extent locks not granted with no conflicts sometimes.


Details: When race occurs in glimpse handler and nothing is returned, we do not reprocess the queue after lock cancel, and that leads to a stall until next activity on a resource


Severity: major
Severity: major


Frequency: only with mballoc3 code and deep extent trees
Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=15712 15712]


Bugzilla: 12861
Description: ksocknal_create_conn() hit ASSERTION during connection race


Description: ldiskfs_ext_search_right: bad header in inode: unexpected eh_depth
Details: ksocknal_create_conn() hit ASSERTION during connection race


Details: a wrong check of extent headers in ldiskfs_ext_search_right() can cause the filesystem to be remounted read-only.
Severity: major


Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=13983 13983]


Severity: normal
Description: ksocknal_send_hello() hit ASSERTION while connecting race


Frequency: rare
Details: ksocknal_send_hello() hit ASSERTION while connecting race


Bugzilla: 13129
Severity: major


Description: server LBUG when shutting down
Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=14425 14425]


Details: Block umount forever until the mount refcount is zero rather than giving up after an arbitrary timeout.  
Description: o2iblnd/ptllnd credit deadlock in a routed config.


Details: o2iblnd/ptllnd credit deadlock in a routed config.


Severity: normal
Severity: normal


Frequency: 2.6.18 servers only
Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=14956 14956]


Bugzilla: 12546
Description: High load after starting lnet


Description: ll_kern_mount() doesn't release the module reference
Details: gmlnd should sleep in rx thread in interruptible way. Otherwise, uptime utility reports high load that looks confusingly.


Details: The ldiskfs module reference count never drops down to 0 because ll_kern_mount() doesn't release the module reference.
Severity: normal


Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=14838 14838]


Severity: normal
Description: ksocklnd fails to establish connection if accept_port is high


Frequency: rare
Details: PID remapping must not be done for active (outgoing) connections


Bugzilla: 12470
=Changes from v1.6.4.2 to v1.6.4.3=
Support for kernels: 2.6.5-7.286 (SLES 9), 2.6.9-67.0.4.EL (RHEL 4), 2.6.16.54-0.2.5 (SLES 10), 2.6.18-53.1.13.el5 (RHEL 5), 2.6.18.8 vanilla (kernel.org)


Description: server LBUG when using old ost_num_threads parameter
Client support for unpatched kernels: (see [[Patchless Client]]) 2.6.16 - 2.6.22 vanilla (kernel.org)


Details: Accept the old ost_num_threads parameter but warn that it is deprecated, and fix an off-by-one error that caused an LBUG.  
Due to problems with nested symlinks and FMODE_EXEC (bug 12652), we do not recommend using patchless RHEL4 clients with kernels prior to 2.6.9-55EL (RHEL4U5).


Recommended e2fsprogs version: 1.40.4-cfs1


Severity: normal
Note that reiserfs quotas are disabled on SLES 10 in this kernel.


Frequency: rare
RHEL 4 (patched) and RHEL 5/SLES 10 (patchless) clients behave differently on 'cd' to a removed cwd "./" (refer to Bugzilla 14399).


Bugzilla: 11722
*Severity: critical


Description: Transient SCSI error results in persistent IO issue
Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=14793  14793 ]


Details: iobuf->dr_error is not reinitialized to 0 between two uses.  
Description: Update to the latest RHEL4 kernel (i.e. 2.6.9-67.0.4.EL) to fix the vulnerabilities described in CVE-2008-0001, CVE-2007-5500 and CVE-2007-4130.  




Severity: normal
*Severity: critical


Frequency: sometimes when underlying device returns I/O errors
Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=14858  14858 ]


Bugzilla: 11743
Description: Update to the latest SLES10 kernel (i.e. 2.6.16.54-0.2.5) to fix the security problems described in CVE-2008-0007, CVE-2008-0001, CVE-2007-5966 and CVE-2007-6417.


Description: OSTs not going read-only during write failures


Details: OSTs are not remounted read-only when the journal commit threads get I/O errors because fsfilt_ext3 calls journal_start/stop() instead of the ext3 wrappers.
*Severity: critical


Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=14876  14876 ]


Severity: normal
Description: Update to the latest RHEL5 kernel (i.e. 2.6.18-53.1.13.el5) to fix the vulnerability described in CVE-2008-0600. This problem could allow local user to gain root privileges.


Frequency: SLES10 only


Bugzilla: 12538
*Severity: normal


Description: sanity-quota.sh quotacheck failed: rc = -22
Frequency: RHEL4 only


Details: Quotas cannot be enabled on SLES10.  
Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=14618  14618 ]


Description: mkfs is very slow on IA64/RHEL4


Severity: normal
Details: A performance regression has been discovered in the MPT Fusion driver between versions 3.02.73rh and 3.02.99.00rh. As a consequence, we have downgraded the MPT Fusion driver in the RHEL4 kernel from 3.02.99.00 to 3.02.73 until this problem is fixed.


Frequency: liblustre clients only


Bugzilla: 12229
*Severity: major


Description: getdirentries does not give error when run on compute nodes
Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=14775  14775 ]


Details: getdirentries does not fail when the size specified as an argument is too small to contain at least one entry
Description: Client not clear own cache if answer to reconnect is lost.


Details: client gets evicted from server. Now client also thinks it is disconnected (ot gets enotconn on its operation) and decides to reconnect. Server receives reconnect message, but cannot find export. New export is created that is fully valid (new cookie!), but client gets a reply that the export is new, and so no recovery should be performed.


Severity: normal
=Changes from v1.6.4.1 to v1.6.4.2=


Frequency: rare
Support for kernels: 2.6.5-7.286 (SLES 9), 2.6.9-55.0.9.EL (RHEL 4), 2.6.16.53-0.8 (SLES 10), 2.6.18-8.1.14.el5 (RHEL 5), 2.6.18.8 vanilla (kernel.org)


Bugzilla: 11315
Client support for unpatched kernels: (see [[Patchless Client]]) 2.6.16 - 2.6.22 vanilla (kernel.org)


Description: OST "spontaneously" evicts client; client has imp_pingable == 0
Due to problems with nested symlinks and FMODE_EXEC (bug 12652), we do not recommend using patchless RHEL4 clients with kernels prior to 2.6.9-55EL (RHEL4U5).


Details: Due to a race condition, liblustre clients were occasionally evicted incorrectly.  
Recommended e2fsprogs version: 1.40.4-cfs1


Note that reiserfs quotas are disabled on SLES 10 in this kernel.


Severity: normal
RHEL 4 (patched) and RHEL 5/SLES 10 (patchless) clients behave differently on 'cd' to a removed cwd "./" (refer to Bugzilla 14399).


Frequency: during server recovery
*Severity: critical


Bugzilla: 11203
Frequency: only for relatively new filesystems, when OSTs are in recovery


Description: MDS failing to send precreate requests due to OSCC_FLAG_RECOVERING
Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=14631  14631 ]


Details: request with rq_no_resend flag not awake l_wait_event if they get a timeout.
Description: OST objects below id 20000 are deleted, causing data loss


Details: For relatively newly formatted OST filesystem(s), where there have not been at least 20000 objects created on an OST a bug in MDS->OST orphan recovery could cause those objects to be deleted if the OST was in recovery, but the MDS was not. Safety checks in the orphan recovery prevent this if more than 20000 objects were ever created on an OST. If the MDS was also in recovery the problem was not hit. Only in 1.6.4.1.


Severity: normal


Frequency: rare


Bugzilla: 11818
*Severity: major


Description: MDS fails to start if a duplicate client export is detected
Frequency: rare, depends on device drivers and load


Details: in some rare cases it was possible for a client to connect to an MDS multiple times. Upon recovery the MDS would detect this and fail during startup. Handle this more gracefully.  
Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=14529 14529]


Description: MDS or OSS nodes crash due to stack overflow


Severity: normal
Details: Code changes in 1.6.4 increased the stack usage of some functions. In some cases, in conjunction with device drivers that use a lot of stack the MDS (or possibly OSS) service threads could overflow the stack. One change which was identified to consume additional stack has been reworked to avoid the extra stack usage.


Frequency: rare
=Changes from v1.6.4 to v1.6.4.1=


Bugzilla: 12477
Support for networks: socklnd - any kernel supported by Lustre, qswlnd - Qsnet kernel modules 5.20 and later, openiblnd - IbGold 1.8.2, o2iblnd - OFED 1.1 and 1.2, viblnd - Voltaire ibhost 3.4.5 and later, ciblnd - Topspin 3.2.0, iiblnd - Infiniserv 3.3 + PathBits patch, gmlnd - GM 2.1.22 and later, mxlnd - MX 1.2.1 or later, ptllnd - Portals 3.3 / UNICOS/lc 1.5.x, 2.0.x


Description: Wrong request locking in request set processing
Support for kernels: 2.6.5-7.286 (SLES 9), 2.6.9-55.0.9.EL (RHEL 4), 2.6.16.53-0.8 (SLES 10), 2.6.18-8.1.14.el5 (RHEL 5), 2.6.18.8 vanilla (kernel.org)


Details: ptlrpc_check_set wrongly uses req->rq_lock for proctect add to imp_delayed_list, in this place should be used imp_lock.  
Client support for unpatched kernels: (see [[Patchless Client]]) 2.6.16 - 2.6.22 vanilla (kernel.org)


Due to recently discovered recovery problems, we do not recommend using patchless RHEL 4 clients with this or any earlier release.


Severity: normal
Recommended e2fsprogs version: 1.40.2-cfs1


Frequency: when reconnecting
Note that reiserfs quotas are disabled on SLES 10 in this kernel.


Bugzilla: 11662
*Severity: major


Description: Grant leak when OSC reconnect to OST
Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=14433 14433]


Details: When osc reconnect ost, OST(filter) should check whether it should grant more space to client by comparing fed_grant and cl_avail_grant, and return the granted space to client instead of "new granted" space, because client will call osc_init_grant to update the client grant space info.
Description: Oops on connection from 1.6.3 client  


Frequency: always, on connection from 1.6.3 client


Severity: normal
Details: Enable and accept the OBD_CONNECT_LRU_RESIZE flag only if LRU resizing is enabled at configure time. This fixes an oops caused by incorrectly accepting the LRU_RESIZE feature even if --enable-lru-resize is not specified.


Frequency: when client reconnects to OST
=Changes from v1.6.3 to v1.6.4=


Bugzilla: 11662
Support for networks: socklnd - any kernel supported by Lustre, qswlnd - Qsnet kernel modules 5.20 and later, openiblnd - IbGold 1.8.2, o2iblnd - OFED 1.1 and 1.2, viblnd - Voltaire ibhost 3.4.5 and later, ciblnd - Topspin 3.2.0, iiblnd - Infiniserv 3.3 + PathBits patch, gmlnd - GM 2.1.22 and later, mxlnd - MX 1.2.1 or later, ptllnd - Portals 3.3 / UNICOS/lc 1.5.x, 2.0.x


Description: Grant leak when OSC does a resend and replays bulk write
Support for kernels: 2.6.5-7.286 (SLES 9), 2.6.9-55.0.9.EL (RHEL 4), 2.6.16.53-0.8 (SLES 10), 2.6.18-8.1.14.el5 (RHEL 5), 2.6.18.8 vanilla (kernel.org)


Details: When osc reconnect to OST, OST(filter) should clear grant info of bulk write request, because the grant info while be sync between OSC and OST when reconnect, and we should ignore the grant info these of resend/replay write req.  
Client support for unpatched kernels: (see [[Patchless Client]]) 2.6.16 - 2.6.22 vanilla (kernel.org)


Due to recently discovered recovery problems, we do not recommend using patchless RHEL 4 clients with this or any earlier release.


Severity: normal
Recommended e2fsprogs version: 1.40.2-cfs1


Frequency: rare
Note that reiserfs quotas are disabled on SLES 10 in this kernel.


Bugzilla: 11662
*Severity: enhancement


Description: Grant space more than avaiable space sometimes.  
Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=11686 11686]


Details: When then OST is about to be full, if two bulk writing from different clients came to OST. Accord the avaliable space of the OST, the first req should be permitted, and the second one should be denied by ENOSPC. But if the seconde arrived before the first one is commited. The OST might wrongly permit second writing, which will cause grant space > avaiable space.
Description: Console message flood


Details: Make cdls ratelimiting more tunable by adding several tunable in procfs /proc/sys/lnet/console_{min,max}_delay_centisecs and /proc/sys/lnet/console_backoff.


Severity: normal


Frequency: when client is evicted
*Severity: enhancement


Bugzilla: 12371
Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=13521 13521]


Description: Grant might be wrongly erased when osc is evicted by OST
Description: Update kernel patches for SLES10 2.6.16.53-0.8.


Details: when the import is evicted by server, it will fork another thread ptlrpc_invalidate_import_thread to invalidate the import, where the grant will be set to 0. While the original thread will update the grant it got when connecting. So if the former happened latter, the grant will be wrongly errased because of this race.  
Details: Update which_patch & target file for SLES10 latest kernel.  




Severity: normal
*Severity: enhancement


Frequency: rare
Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=13128 13128]


Bugzilla: 12401
Description: add --type and --size parameters to lfs find


Description: Checking Stale with correct fid
Details: Enhance lfs find by adding filetype and filesize parameters. Also multiple OBDs can now be specified for the --obd option.


Details: ll_revalidate_it should uses de_inode instead of op_data.fid2 to check whether it is stale, because sometimes, we want the enqueue happened anyway, and op_data.fid2 will not be initialized.


*Severity: enhancement


Severity: normal
Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=11270 11270]


Frequency: only with 2.4 kernel
Description: eliminate client locks in face of contention


Bugzilla: 12134
Details: file contention detection and lockless i/o implementation for contended files.


Description: random memory corruption


Details: size of struct ll_inode_info is to big for union inode.u and this can be cause of random memory corruption.
*Severity: enhancement


Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=12411 12411]


Severity: normal
Description: Remove client patches from SLES 10 kernel.


Frequency: rare
Details: This causes SLES 10 clients to behave as patchless clients even on a Lustre-patched (server) kernel.


Bugzilla: 10818


Description: Memory leak in recovery
*Severity: enhancement


Details: Lov_mds_md was not free in an error handler in mds_create_object. It should also check obd_fail before fsfilt_start, otherwise if fsfilt_start return -EROFS,(failover mds during mds recovery). then the req will return with repmsg->transno = 0 and rc = EROFS. and we met hit the assert LASSERT(req->rq_reqmsg->transno == req->rq_repmsg->transno) in ptlrpc_replay_interpret. Fcc should be freed no matter whether fsfilt_commit success or not.
Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=2369 2369 ]


Description: use i_size_read and i_size_write in 2.6 port


Severity: normal
Details: replace inode->i_size access with i_size_read/write()


Frequency: rare


Bugzilla: 11935
*Severity: enhancement


Description: Not check open intent error before release open handle
Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=13454 13454]


Details: in some rare cases, the open intent error is not checked before release open handle, which may cause ASSERTION(open_req->rq_transno != 0), because it tries to release the failed open handle.  
Description: Add jbd statistics patch for RHEL5 and 2.6.18-vanilla.  




Severity: normal
*Severity: enhancement


Frequency: rare
Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=13518 13518]


Bugzilla: 12556
Description: Kernel patches update for RHEL4 2.6.9-55.0.6.


Description: Set cat log bitmap only after create log success.  
Details: Modify vm-tunables-rhel4.patch.  


Details: in some rare cases, the cat log bitmap is set too early. and it should be set only after create log success.


*Severity: enhancement


Severity: normal
Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=13452 13452]


Frequency: rare
Description: Kernel config for 2.6.18-vanilla.


Bugzilla: 12086
Details: Modify targets/2.6-vanilla.target.in. Add config file kernel-2.6.18-2.6-vanilla-i686.config. Add config file kernel-2.6.18-2.6-vanilla-i686-smp.config. Add config file kernel-2.6.18-2.6-vanilla-x86_64.config. Add config file kernel-2.6.18-2.6-vanilla-x86_64-smp.config.


Description: the cat log was not initialized in recovery


Details: When mds(mgs) do recovery, the tgt_count might be zero, so the unlink log on mds will not be initialized until mds post recovery. And also in mds post recovery, the unlink log will initialization will be done asynchronausly, so there will be race between add unlink log and unlink log initialization.
*Severity: enhancement


Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=13207 13207]


Severity: normal
Description: adapt the lustre_config script to support the upgrade case


Bugzilla: 12597
Details: Add "-u" option for lustre_config script to support upgrading 1.4 server targets to 1.6 in parallel.


Description: brw_stats were being printed incorrectly


Details: brw_stats were being printed as log2 but all of them were not recorded as log2. Also remove some code duplication arising from filter_tally_{read,write}.


*Severity: critical


Severity: normal
Frequency: always


Frequency: rare, only in recovery.
Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=13751 13751]


Bugzilla: 11674
Description: Kernel patches update for RHEL5 2.6.18-8.1.14.el5.


Description: ASSERTION(req->rq_type != LI_POISON) failed
Details: Modify target file & which_patch. A flaw was found in the IA32 system call emulation provided on AMD64 and Intel 64 platforms. An improperly validated 64-bit value could be stored in the %RAX register, which could trigger an out-of-bounds system call table access. An untrusted local user could exploit this flaw to run code in the kernel (ie a root privilege escalation). (CVE-2007-4573).


Details: imp_lock should be held while iterating over imp_sending_list for prevent destroy request after get timeout in ptlrpc_queue_wait.


*Severity: critical


Severity: normal
Frequency: always


Bugzilla: 12689
Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=13748 13748]


Description: replay-single.sh test 52 fails
Description: Update RHEL 4 kernel to fix local root privilege escalation.  


Details: A lock's skiplist need to be cleanup when it being unlinked from its resource list.  
Details: Update to the latest RHEL 4 kernel to fix the vulnerability described in CVE-2007-4573. This problem could allow untrusted local users to gain root access.  




Severity: normal
*Severity: major


Frequency: always
Frequency: occasional


Bugzilla: 11737
Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=14353 14353]


Description: Short directio read returns full requested size rather than
Description: excessive CPU consumption on client reduces IO performance
actual amount read.


Details: Direct I/O operations should return actual amount of bytes transferred rather than requested size.  
Details: in some cases the ldlm_poold thread is spending too much time trying to cancel locks, and is cancelling them too aggressively and this can severely impact IO performance. Disable the dynamic LRU resize code at build time. It can be re-enabled with configure --enable-lru-resize at build time.  




Severity: normal
*Severity: major


Bugzilla: 12646
Frequency: occasional


Description: sanity.sh test_77h fails with "test_77h file compare failed"
Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=13917 13917]


Details: test_77h uses a file which was messed by other test case.
Description: MDS hang or stay in waiting lock


Details: If client receive lock with CBPENDING flag ldlm need send lock cancel as separate rpc, to avoid situation when cancel request can't processed due all i/o threads stay in wait lock.


Severity: normal


Bugzilla: 12576
*Severity: major


Description: Not Check whether lov_tgts is NULL in some lov functions
Frequency: occasional


Details: Checking whether lov_tgts is NULL in some functions.  
Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=11710 11710]


Description: improve handling recoverable errors
Details: If request processed with error which can be recoverable on server request should be resend, otherwise page released from cache and marked as error.


Severity: normal


Bugzilla: 11815
*Severity: normal


Description: replace obdo_alloc() with OBDO_ALLOC macro
Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=12302 12302]


Details: nothing special is done in obdo_alloc() function, and for debugging purpose, it needs to be replaced with macros.
Description: new userspace socklnd


Details: Old userspace tcpnal that resided in lnet/ulnds/socklnd replaced with new one - usocklnd.


Severity: normal


Bugzilla: 12784
*Severity: normal


Description: bad return value and errno from fcntl call
Frequency: occasional


Details: In liblustre API, errno should be a negative value if error happens.  
Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=13730 13730]


Description: Do not fail import if osc_interpret_create gets -EAGAIN


Severity: normal
Details: If osc_interpret_create got -EAGAIN it immediately exits and wakeup oscc_waitq. After wakeup oscc_wait_for_objects call oscc_has_objects and see OSC has no objests and call oscc_internal_create to resend create request.


Bugzilla: 11544


Description: ptlrpc_check_set() LBUG
*Severity: normal


Details: In case of positive reply from server and failed client bulk callback after bulk transfer shouldn't LBUG, but process this request as erroneous.
Frequency: when removing large files


Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=13181 13181]


Severity: normal
Description: scheduling issue during removal of large Lustre files


Frequency: rare
Details: Don't take the BKL in fsfilt_ext3_setattr() for 2.6 kernels. It causes scheduling issues when removing large files (17TB in the present case).


Bugzilla: 12696


Description: ASSERTION(imp->imp_conn_current) failed
*Severity: normal


Details: an assertion failure is hit if a client node boots and attempts to mount a lustre filesystem faster than RECONNECT_INTERVAL seconds.
Frequency: always


Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=13358 13358]


Severity: normal
Description: 1.4.11 Can't handle directories with stripe set and extended ACLs


Frequency: only for i686
Details: Impossible (EPROTO is returned) to access a directory that has a non-default striping and ACLs.


Bugzilla: 12695


Description: 1.4.11 RC1 build fails for RHEL 4, i686
*Severity: normal


Details: Fixed config variable for build.
Frequency: only on ppc


Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=12234 12234]


Severity: normal
Description: /proc/fs/lustre/devices broken on ppc


Frequency: rare
Details: The patch as applied to 1.6.2 doesn't look correct for all arches. We should make sure the type of 'index' is loff_t and then cast explicitly as needed below. Do not assign an explicitly cast loff_t to an int.


Bugzilla: 12415


Description: Updated patchess for new RHEL4 kernel
*Severity: normal


Details: Updated patch inode-nr_unused-2.6.9-rhel4.patch Updated patch jbd-stats-2.6.9.patch Updated patch qsnet-rhel4-2.6.patch Updated patch quota-deadlock-on-pagelock-core.patch Updated patch vfs_intent-2.6-rhel4.patch Updated patch vfs_races-2.6-rhel4.patch Updated series file 2.6-rhel4-titech.series Updated series file 2.6-rhel4.series Updated kernel config files
Frequency: only for rhel5


Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=13616 13616]


Severity: normal
Description: Kernel patches update for RHEL5 2.6.18-8.1.10.el5.


Frequency: rare
Details: Modify the target file & which_kernel.


Bugzilla: 12374


Description: lquota slave complains LBUG when reconnecting with mds or
*Severity: normal
failover in mds.


Details: quota slave depends qctxt->lqc_import to send its quota request. This pointer will be invalid if mds did failover or broke its connect to osts, which leads to LBUG.
Frequency: if the uninit_groups feature is enabled on ldiskfs


Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=13706 13706]


Severity: normal
Description: e2fsck reports "invalid unused inodes count"


Frequency: when qunit size is too small(less than 20M)
Details: If a new ldiskfs filesystem is created with the "uninit_groups" feature and only a single inode is created in a group then the "bg_unused_inodes" count is incorrectly updated. Creating a second inode in that group would update it correctly.


Bugzilla: 12588


Description: write is stopped by improper -EDQUOT
*Severity: normal


Details: If the master is busy and qunit size is small enough(let's say 1M), the slave can not get quota from master on time, which will lead slave to trigger a -EQUOTA to client.
Frequency: only if filesystem is inconsistent


Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=11673 11673]


Severity: normal
Description: handle "serious error: objid * already exists" more gracefully


Frequency: rare
Details: If LAST_ID value on disk is smaller than the objects existing in the O/0/d* directories, it indicates disk corruption and causes an LBUG(). If the object is 0-length, then we should use the existing object. This will help to avoid a full fsck in most cases.


Bugzilla: 12629


Description: Deadlock during metadata tests
*Severity: normal


Details: in prune_dir_dentries(), shrink_dcache_parent() should not be called with the per-dentry lock held.
Frequency: rarely


Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=13570 13570]


Severity: normal
Description: To avoid grant space > avaible space when the disk is almost full. Without this patch you might see the error "grant XXXX > available" or some LBUG about grant, when the disk is almost full.


Frequency: SLES9 only
Details: In filter_check_grant, for non_grant cache write, we should check the left space by if (*left > ungranted + bytes), instead of (*left > ungranted), because only we are sure the left space is enough for another "bytes", then the ungrant space should be increase. In client, we should update cl_avail_grant only there is OBD_MD_FLGRANT in the reply.


Bugzilla: 12744


Description: Lustre patched kernel for SLES9 SP3 has NR_CPUS set to 8
*Severity: normal


Details: set CONFIG_NR_CPUS to 128 instead of 8.
Frequency: when using O_DIRECT and quotas


Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=13930 13930]


Severity: normal
Description: Incorrect file ownership on O_DIRECT output files


Frequency: rare
Details: block usage reported by 'lfs quota' does not take into account files that have been written with O_DIRECT.


Bugzilla: 11324


Description: LDISKFS-fs error (device sdc): ldiskfs_free_blocks
*Severity: normal


Details: a disk corruption can cause the mballoc code to assert on a double free or other extent corruptions. Handle these with ext3_error() instead of assertions.
Frequency: always


Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=13976 13976]


Severity: normal
Description: touch file failed when fs is not full


Frequency: rare
Details: OST in recovery should not be discarded by MDS in alloc_qos(), otherwise we can get ENOSP while fs is not full.


Bugzilla: 13063


Description: lfsck built against 1.4.x cannot run against 1.6.0 lustre
*Severity: normal


Details: the definition for OBD_IOC_GETNAME changed in 1.6.0. One of the few external users of this ioctl number is lfsck's call to llapi_lov_get_uuids() and this caused lfsck to fail at startup. Add the old ioctl number to the handler so both old and new lfsck can work.
Frequency: always


Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=13805 13805]


Severity: normal
Description: data checksumming impacts single node performance


Bugzilla: 11301
Details: disable checksums by default since it impacts single node performance. It is still possible to enable checksums by default via "configure --enable-checksum", or at runtime via procfs.


Description: parallel lock callbacks


Details: Instead of sending blocking and completion callbacks as separated requests, adding them to a set and sending in parallel.
*Severity: minor


Frequency: when lov objid is destroyed


Severity: normal
Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=14222 14222]


Bugzilla: 12417
Description: mds can't recreate lov objid file.


Description: Disable most debugging by default
Details: if lov objid file is destroyed and ost with highest index connected first mds not get last objid number from ost. Also if mds get last id from ost his not tell osc about this and it's produce warning about wrong del orphan request.


Details: To improve performance, disable most logging (for debug purposes) by default. VFSTRACE, RPCTRACE, and DLMTRACE are now off by default, and HA includes fewer messages.


*Severity: minor


Severity: normal
Frequency: rarely


Bugzilla: 11013
Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=12948 12948]


Description: hash tables for lists of nids, connections and uuids
Description: buffer overruns could theoretically occur


Details: Hash tables noticeably help when a lot of clients connect to a server, to faster identify duplicate connections or reconnects, also to faster find export to evict in manual eviction case.  
Details: llapi_semantic_traverse() modifies the "path" argument by appending values to the end of the origin string, and a buffer overrun may occur. Adding buffer overrun check in liblustreapi.  




Severity: normal
*Severity: minor


Bugzilla: 11190
Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=13732 13732]


Description: Sometimes, when the server evict a client, and the client will not be evicted as soon as possible.
Description: change order of libsysio includes


Details: In enqueue req, the error was returned by intent, instead of rq_status which make ptlrpc layer not detect this error, and does not evict the client. So enqueue error should be returned by rq_status.  
Details: '#include sysio.h' should always come before '#include xtio.h'


=Changes from v1.6.2 to v1.6.3=
Support for networks: socklnd - any kernel supported by Lustre, qswlnd - Qsnet kernel modules 5.20 and later, openiblnd - IbGold 1.8.2, o2iblnd - OFED 1.1 and 1.2, viblnd - Voltaire ibhost 3.4.5 and later, ciblnd - Topspin 3.2.0, iiblnd - Infiniserv 3.3 + PathBits patch, gmlnd - GM 2.1.22 and later, mxlnd - MX 1.2.1 or later, ptllnd - Portals 3.3 / UNICOS/lc 1.5.x, 2.0.x


Severity: normal
Support for kernels: 2.6.5-7.286 (SLES 9), 2.6.9-55.0.2.EL (RHEL 4), 2.6.16.46-0.14 (SLES 10), 2.6.18-8.1.8.el5 (RHEL 5), 2.6.18.8 vanilla (kernel.org)


Frequency: only for SLES9
Client support for unpatched kernels: (see http://wiki.lustre.org/index.php?title=Patchless_Client) 2.6.16 - 2.6.22 vanilla (kernel.org)


Bugzilla: 12543
Due to recently discovered recovery problems, we do not recommend using patchless RHEL 4 clients with this or any earlier release.


Description: Routinely utilize latest Quadrics drivers in CFS releases
Recommended e2fsprogs version: 1.40.2-cfs1


Details: Update patch qsnet-suse-2.6.patch.  
Note that reiserfs quotas are disabled on SLES 10 in this kernel.  


*Severity: enhancement


Severity: normal
Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=12192 12192]


Frequency: only for sles10
Description: llapi_file_create() does not allow some changes


Bugzilla: 12771
Details: add llapi_file_open() that allows specifying the file creation mode and open flags, and also returns an open file handle.


Description: Update patches for SLES 10 SP1 kernel.


Details: Update the patch vfs_intent-2.6-sles10.patch.
*Severity: enhancement


Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=12743 12743]


Severity: normal
Description: df doesn't work properly if diskfs blocksize != 4K


Frequency: rare
Details: Choose biggest blocksize of OST's as the LOV's blocksize.


Bugzilla: 12543


Description: Routinely utilize latest Quadrics drivers in CFS releases
*Severity: enhancement


Details: Update patch qsnet-rhel4-2.6.patch.  
Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=11248 11248]


Description: merge and cleanup kernel patches.


Severity: normal
Details: Remove mnt_lustre_list in vfs_intent-2.6-rhel4.patch.


Frequency: rare


Bugzilla: 12975
*Severity: enhancement


Description: Using wrong pointer in osc_brw_prep_request
Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=13039 13039]


Details: Access to array[-1] can produce panic if kernel compiled with CONFIG_PAGE_ALLOC enabled
Description: RedHat Update kernel for RHEL5


Details: Kernel config file for RHEL5.


Severity: normal


Frequency: only in recovery
*Severity: enhancement


Bugzilla: 13148
Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=12446 12446]


Description: Mark OST as early accessible if his start SYNC.
Description: OSS needs mutliple precreate threads


Details: osc_precreate return flag early accessible if oscc marked as OSCC_FLAG_SYNC_IN_PROGRESS.  
Details: Add ability to start more than one create thread per OSS.  




Severity: normal
*Severity: enhancement


Frequency: rare
Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=13039 13039]


Bugzilla: 13196
Description: RedHat Update kernel for RHEL5


Description: Sometimes precreate code can triger create object on wrong ost
Details: Modify the kernel config file more closer RHEL5.


Details: Wrong protected or not not restored variables aftre precreate loop can produce creation object on wrong ost.


*Severity: enhancement


Severity: normal
Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=13360 13360]


Frequency: oss recovery
Description: Build failure against Centos5 (RHEL5)


Bugzilla: 10800
Details: Define PAGE_SIZE when it isn't present.


Description: llog_commit_thread cleanup should sync with llog_commit_thread
start


Details: llog_commit_thread_count should be synced between llog_commit start and cleanup, so new llog_commit thread should not be started when llog_commit threads being stopped to avoid accessing some freed stuff.
*Severity: enhancement


Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=11401 11401]


Severity: minor
Description: client-side metadata stat-ahead during readdir(directory readahead)


Frequency: only with 10000 clients or more
Details: perform client-side metadata stat-ahead when the client detects readdir and sequential stat of dir entries therein


Bugzilla: 12364


Description: poor connect scaling with increasing client count
*Severity: enhancement


Details: Don't run filter_grant_sanity_check for more than 100 exports to improve scaling for large numbers of clients.  
Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=11230 11230]


Description: Tune the kernel for good SCSI performance.


Severity: minor
Details: Set the value of /sys/block/{dev}/queue/max_sectors_kb to the value of /sys/block/{dev}/queue/max_hw_sectors_kb in mount_lustre.


Frequency: nfs export on patchless client


Bugzilla: 11970
*Severity: critical


Description: connectathon hang when test nfs export over patchless client
Frequency: Always for filesystems larger than 2TB on 32-bit systems.


Details: Disconnected dentry cannot be found with lookup, so we do not need to unhash it or make it invalid
Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=13547 13547] , [https://bugzilla.lustre.org/show_bug.cgi?id=13627 13627]


Description: Data corruption for OSTs that are formatted larger than 2TB on 32-bit servers.


Severity: minor
Details: When generating the bio request for lustre file writes the sector number would overflow a temporary variable before being used for the IO. The data reads correctly from Lustre (which will overflow in a similar manner) but other file data or filesystem metadata may be corrupted in some cases.


Frequency: rare


Bugzilla: 11546
*Severity: major


Description: open req refcounting wrong on reconnect
Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=13236 13236]


Details: If reconnect happened between getting open reply from server and call to mdc_set_replay_data in ll_file_open, we will schedule replay for unreferenced request that we are about to free. Subsequent close will crash in variety of ways. Check that request is still eligible for replay in mdc_set_replay_data().
Description: TOE Kernel panic by ksocklnd


Details: offloaded sockets provide their own implementation of sendpage, can't call tcp_sendpage() directly


Severity: minor


Frequency: rare
*Severity: major


Bugzilla: 11512
Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=13482 13482]


Description: disable writes to filesystem when reading health_check file
Description: build error


Details: the default for reading the health_check proc file has changed to NOT do a journal transaction and write to disk, because this can cause reads of the /proc file to hang and block HA state checking on a healthy but otherwise heavily loaded system. It is possible to return to the previous behaviour during configure with --enable-health-write.
Details: fix typos in gmlnd, ptllnd and viblnd




Severity: minor
*Severity: major


Frequency: rare
Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=12932 12932]


Bugzilla: 11658
Description: obd_health_check_timeout too short


Description: log_commit_thread vs filter_destroy race leads to crash
Details: set obd_health_check_timeout as 1.5x of obd_timeout


Details: Take import reference before releasing llog record semaphore


*Severity: major


Severity: minor
Frequency: only with quota on the root user


Frequency: only with huge numbers of clients
Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=12223 12223]


Bugzilla: 11817
Description: mds_obd_create error creating tmp object


Description: Prevents from taking the superblock lock in llap_from_page for a soon died page.  
Details: When the user sets quota on root, llog will be affected and can't create files and write files.  


Details: using LL_ORIGIN_REMOVEPAGE origin flag instead of LL_ORIGIN_UNKNOW for llap_from_page call in ll_removepage() prevents from taking the superblock lock for a soon died page.


*Severity: normal


Severity: minor
Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=12782 12782]


Bugzilla: 11706
Description: /proc/sys/lnet has non-sysctl entries


Description: service threads may hog cpus when there are a lot of requests
Details: Updating dump_kernel/daemon_file/debug_mb to use sysctl variables


Details: Insert cond_resched to give other threads a chance to use some CPU


*Severity: normal


Severity: minor
Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=10778 10778]


Frequency: always
Description: kibnal_shutdown() doesn't finish; lconf --cleanup hangs


Bugzilla: 12747
Details: races between lnd_shutdown and peer creation prevent lnd_shutdown from finishing.


Description: fix mal-formatted messages


Details: fix some mal-formatted DEBUG_REQ and LCONSOLE_ERROR_MSG messages
*Severity: normal


Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=13279 13279]


Severity: minor
Description: open files rlimit 1024 reached while liblustre testing


Frequency: always in liblustre
Details: ulnds/socklnd must close open socket after unsuccessful 'say hello' attempt.


Bugzilla: 11737


Description: wrong IS_ERR implementation in liblustre.h
*Severity: normal


Details: fix IS_ERR implementation in liblustre.h for right detect errors.
Frequency: always on directories with default striping set


Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=12836 12836]


Severity: minor
Description: lfs find on -1 stripe looping in lsm_lmm_verify_common()


Frequency: always
Details: Avoid lov_verify_lmm_common() on directory with -1 stripe count.


Bugzilla: 10419


Description: Correct condition for output debug message.
*Severity: normal


Details: inode i_nlink equal zero is not enough for output message about disk corruption, i_ctime and i_mode should be also checked.  
Frequency: Always on ia64 patchless client, and possibly others.


Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=12826 12826]


Severity: minor
Description: Add EXPORT_SYMBOL check for node_to_cpumask symbol.


Frequency: always in patchless client
Details: This allows the patchless client to be loaded on architectures without this export.


Bugzilla: 12415


Description: add configure check for truncate_complete_page
*Severity: normal


Details: improve checks for exported symbols. This allow run check without
Frequency: rare
sources, but with Module.symvers shipped with kernel distribution. add check for truncate_complete_page used by patchless client.


Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=13142 13142]


Severity: minor
Description: disorder of journal start and llog_add cause deadlock.


Frequency: only run on patchless client.
Details: in llog_origin_connect, journal start should happen before llog_add keep the same order as other functions to avoid the deadlock.  


Bugzilla: 12858


Description: use do_facet on sanity.sh for test handling recoverables errors
*Severity: normal


Details: use do_facet instead of direct use sysctl for set fail_loc on OST
Frequency: occasionally when using NFS


Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=13030 13030]


Severity: minor
Description: "ll_intent_file_open()) lock enqueue: err: -13" with nfs


Frequency: only at startup
Details: with NFS, the anon dentry's parent was set to itself in d_alloc_anon(), so in MDS, we use rec->ur_fid1 to find the corresponding dentry other than use rec->ur_name.


Bugzilla: 11778


Description: Delay client connections to MDT until fist MDT->OST connect
*Severity: normal


Details: If a client tried to create a new file before the MDT had connected to any OSTs, the create would return EIO. Now the client will simply block until the MDT connects to the first OST and the create can succeed.
Frequency: Occasionally with failover


Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=12459 12459]


Severity: minor
Description: Client eviction due to failover config


Frequency: at statup only
Details: after a connection loss, the lustre client should attempt to reconnect to the last active server first before trying the other potential connections.


Bugzilla: 12860


Description: mds_lov_synchronize race leads to various problems
*Severity: normal


Details: simultaneous MDT->OST connections at startup can cause the sync to abort, leaving the OSC in a bad state.
Frequency: only with liblustre clients on XT3


Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=12418 12418]


=Changes from v1.6.0 to v1.6.0.1=
Description: evictions taking too long


Severity: normal
Details: allow llrd to evict clients directly on OSTs


Frequency: on some architectures


Bugzilla: 12404
*Severity: normal


Description: 1.6 client sometimes fails to mount from a 1.4 MDT
Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=13125 13125]


Details: Uninitialized flags sometimes cause configuration commands to be skipped.
Description: osts not allocated evenly to files


Details: change the condition to increase offset_idx


Severity: normal


Frequency: patchless clients only
*Severity: normal


Bugzilla: 12391
Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=13436 13436]


Description: missing __iget() symbol export
Description: Only those disconnect error should be returned by rq_status.


Details: The __iget() symbol export is missing. To avoid the need for this on patchless clients the deathrow inode reaper is turned off, and we depend on the VM to clean up old inodes. This dependency was during via the fix for bug 12181.  
Details: In open/enqueue processs, Some errors, which will cause client disconnected, should be returned by rq_status, while other errors should still be returned by intent, then mdc or llite will detect them.  




Severity: normal
*Severity: normal


Frequency: always
Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=13600 13600]


Bugzilla: 12848
Description: "lfs find -obd UUID" prints directories


Description: sanity.sh fail: test_52b
Details: "lfs find -obd UUID" will return all directory names instead of just file names. It is incorrect because the directories do not reside on the OSTs.  


Details: The ll_inode_to_ext_flags() has a glitch which makes MDS return incorrect inode's flags to client.


*Severity: normal


=Changes from v1.4.10 to v1.6.0=
Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=13596 13596]


CONFIGURATION CHANGE. This version of Lustre WILL NOT INTEROPERATE with older versions automatically. In many cases a special upgrade step is needed. Please read the user documentation before upgrading any part of a 1.4.x system.
Description: MDS hang after unclean shutdown of lots of clients


WARNING: Lustre configuration and startup changes are required with this release. See https://mail.clusterfs.com/wikis/lustre/MountConf for details.  
Details: Never resend AST requests.  


Support for kernels: 2.4.21-47.0.1.EL (RHEL 3), 2.6.5-7.283 (SLES 9), 2.6.9-42.0.10.EL (RHEL 4), 2.6.12.6 vanilla (kernel.org), 2.6.16.27-0.9 (SLES10)


Client support for unpatched kernels: (see https://mail.clusterfs.com/wikis/lustre/PatchlessClient) 2.6.16 - 2.6.19 vanilla (kernel.org), 2.6.9-42.0.8EL (RHEL 4)
*Severity: normal


Recommended e2fsprogs version: 1.39.cfs6
Frequency: Always, for kernels after 2.6.16


Note that reiserfs quotas are disabled on SLES 10 in this kernel
Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=13304 13304]


Severity: enhancement
Description: Fix warning idr_remove called for id=.. which is not allocated.
Details: Last kernels save old s_dev before kill super and not allow to restore from callback - restore it before call kill_anon_super.


Bugzilla: 4900


Description: Async OSC create to avoid the blocking unnecessarily.
*Severity: minor


Details: If a OST has no remain object, system will block on the creating when need to create a new object on this OST. Now, ways use pre-created objects when available, instead of blocking on an empty osc while others are not empty. If we must block, we block for the shortest possible period of time.  
Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=12186 12186]


Description: Fix errors in lfs documentation


Severity: enhancement
Details: Fixes man pages


Bugzilla: 8007


Description: MountConf
*Severity: minor


Details: Lustre configuration is now managed via mkfs and mount commands instead of lmc and lconf. New obd types (MGS, MGC) are added for dynamic configuration management. See https://mail.clusterfs.com/wikis/lustre/MountConf for details.
Frequency: rare


Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=12588 12588]


Severity: enhancement
Description: when mds and osts use different quota unit(32bit and 64bit), quota will be released repeatly.


Bugzilla: 4482
Details: void sending multiple quota reqs to mds, which will keep the status between the reqs.


Description: dynamic OST addition


Details: OSTs can now be added to a live filesystem
*Severity: cleanup


Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=13532 13532]


Severity: enhancement
Description: rewrite ext2-derived code in llite/dir.c and obdclass/uuid.c


Bugzilla: 9851
Details: rewrite inherited code (uuid parsing code from ext2 utils and readdir code from ext3) from scratch preserving functionality.


Description: startup order invariance
=Changes from v1.6.1 to v1.6.2=


Details: MDTs and OSTs can be started in any order. Clients only require the MDT to complete startup.  
Support for kernels: 2.6.5-7.286 (SLES 9), 2.6.9-55.0.2.EL (RHEL 4), 2.6.16.46-0.14 (SLES 10), 2.6.18-8.1.8.el5 (RHEL 5), 2.6.18.8 vanilla (kernel.org)


Client support for unpatched kernels: (see [[Patchless Client]]) 2.6.16 - 2.6.22 vanilla (kernel.org)


Severity: enhancement
Due to recently discovered recovery problems, we do not recommend using patchless RHEL 4 clients with this or any earlier release.


Bugzilla: 4899
Recommended e2fsprogs version: 1.39.cfs8


Description: parallel, asynchronous orphan cleanup
Note that reiserfs quotas are disabled on SLES 10 in this kernel.


Details: orphan cleanup is now performed in separate threads for each OST, allowing parallel non-blocking operation.
*Severity: enhancement


Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=12786 12786]


Severity: enhancement
Description: lfs setstripe enhancement  


Bugzilla: 9862
Details: Make lfs setstripe understand 'k', 'm' and 'g' for stripe size.


Description: optimized stripe assignment


Details: stripe assignments are now made based on ost space available, ost previous usage, and OSS previous usage, in order to try to optimize storage space and networking resources.
*Severity: enhancement


Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=12211 12211]


Severity: enhancement
Description: randomly memory allocation failure util


Bugzilla: 4226
Details: Make lustre randomly failed allocating memory for testing purpose.


Description: Permanently set tunables


Details: All writable /proc/fs/lustre tunables can now be permanently set on a per-server basis, at mkfs time or on a live system.
*Severity: enhancement


Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=10786 10786]


Severity: enhancement
Description: omit set fsid for export NFS


Bugzilla: 10547
Details: fix set/restore device id for avoid EMFILE error and mark lustre fs as FS_REQUIRES_DEV for avoid problems with generate fsid.


Description: Lustre message v2


Details: Add lustre message format v2.
*Severity: enhancement


Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=10595 10595]


Severity: enhancement
Description: Error message improvement.


Bugzilla: 9866
Details: Merging of two LCONSOLE_ERROR_MSG into one.


Description: client OST exclusion list


Details: Clients can be started with a list of OSTs that should be declared "inactive" for known non-responsive OSTs.
*Severity: enhancement


Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=12602 12606]


Severity: enhancement
Description: don't use GFP_* in generic Lustre code.


Bugzilla: 10088
Details: Use cfs_alloc_* functions and CFS_* flags for code portability.


Description: fine-grained SMP locking inside DLM


Details: Improve DLM performance on SMP systems by removing the single per-namespace lock and replace it with per-resource locks.
*Severity: enhancement


Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=12333 12333]


Severity: enhancement
Description: obdclass is limited by single OBD_ALLOC(idarray)


Bugzilla: 9332
Details: replace OBD_ALLOC/OBD_FREE with OBD_VMALLOC/OBD_VFREE


Description: don't hold multiple extent locks at one time


Details: To avoid client eviction during large writes, locks are not held on multiple stripes at one time or for very large writes. Otherwise, clients can block waiting for a lock on a failed OST while holding locks on other OSTs and be evicted.
*Severity: enhancement


Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=12415 12415 ]


Severity: enhancement
Description: updated patchess for new RHEL4 kernel


Bugzilla: 9293
Details: Fixed ext3-unlink-race.patch per Kalpak's comment.


Description: Multiple MD RPCs in flight.


Details: Further unserialise some read-only MDT RPCs - learn about intents. To avoid overly-overloading MDT, introduce a limit on number of MDT RPCs in flight for a single client and add /proc controls to adjust this limit.
*Severity: enhancement


Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=13006 13006 ]


Severity: enhancement
Description: warnings with build patchless client with vanila 2.6.19 and up


Bugzilla: 22484
Details: change old ctl_table style and replace ctl_table/ctl_table_header with cfs_sysctl_table_t/cfs_sysctl_table_header_t


Description: client read/write statistics


Details: Add client read/write call usage stats for performance analysis of user processes. /proc/fs/lustre/llite/*/offset_stats shows non-sequential file access. extents_stats shows chunk size distribution. extents_stats_per_process show chunk size distribution per user process.
*Severity: enhancement


Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=13093 13093]


Severity: enhancement
Description: O_DIRECT bypasses client statistics.


Bugzilla: 22485
Details: When running with O_DIRECT I/O, neither the client rpc_stats nor read_ahead_stats were updated. Copied stats section from osc_send_oap_rpc() into async_internal().


Description: per-client statistics on server


Details: Add ldlm and operations statistics for each client in /proc/fs/lustre/mds|obdfilter/*/exports/
*Severity: enhancement


Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=13249 13249]


Severity: enhancement
Description: Kernel patches for SLES9 2.6.5-7.286 kernel


Bugzilla: 22486
Details: Update target/ChangeLog/which_patch .


Description: improved MDT statistics


Details: Add detailed MDT operations statistics in /proc/fs/lustre/mds/*/stats
*Severity: enhancement


Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=12955 12955]


Severity: enhancement
Description: jbd statistics


Bugzilla: 10968
Details: Port older jbd statistics patch for sles10


Description: VFS operations stats


Details: Add client VFS call stats, trackable by pid, ppid, or gid /proc/fs/lustre/llite/*/stats_track_[pid|ppid|gid]
*Severity: enhancement


Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=13360 13360]


Severity: enhancement
Description: Build failure against Centos5 (RHEL5)


Bugzilla: 2258
Details: Use getpagesize() instead of PAGE_SIZE.


Description: Dynamic service threads


Details: Within a small range, start extra service threads automatically when the request queue builds up.
*Severity: major


Frequency: after network failures


Severity: enhancement
Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=12769 12769]


Bugzilla: 11229
Description: Add sync option to mount_lustre.c


Description: Easy OST removal
Details: Client loses data written to lustre after a network interruption.


Details: OSTs can be permanently deactivated with e.g. 'lctl conf_param lustre-OST0001.osc.active=0'


*Severity: normal


Severity: enhancement
Frequency: mds/oss recovery


Bugzilla: 11335
Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=10800 10800]


Description: MGS proc entries
Description: llog ctxt is refrenced after it has been freed.


Details: Added basic proc entries for the MGS showing what filesystems are served.  
Details: llog ctxt refcount was added to avoide the race between ctxt free and llog recovery process. Each llog user must hold ctxt refcount before it access the llog. And the llog ctxt can only be freed when its refcount is zero.  




Severity: enhancement
*Severity: normal


Bugzilla: 10998
Frequency: only for SLES10


Description: provide MGS failover
Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=12771 12771]


Details: Added config lock reacquisition after MGS server failover.
Description: Update kernel patch for SLES10 SP1


Details: Add patch blkdev_tunables-2.6-sles10.patch to 2.6-sles10.series.


Severity: enhancement


Bugzilla: 11461
*Severity: normal


Description: add Linux 2.4 support
Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=11802 11802]


Details: Added support for RHEL 2.4.21 kernel for 1.6 servers and clients
Description: lustre support for RHEL5


Details: Add support for RHEL5.


Severity: enhancement


Bugzilla: 10902
*Severity: normal


Description: plain/inodebits lock performance improvement
Frequency: rare


Details: Grouping plain/inodebits in granted list by their request modes and bits policy, thus improving the performance of search through the granted list.  
Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=11756 11756]


Description: umount blocks forever on error


Severity: enhancement
Details: In result of wrong using obd_no_recov and obd_force flags client can hand if cancel or some other requests is lost.


Bugzilla: 11667


Description: Add "/proc/sys/lustre/debug_peer_on_timeout"
*Severity: normal


Details: liblustre envirable: LIBLUSTRE_DEBUG_PEER_ON_TIMEOUT boolean to control whether to print peer debug info when a client's RPC times out.
Frequency: Only for SLES


Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=13177 13177]


Severity: enhancement
Description: sanity_quota fail test_1


Bugzilla: 11264
Details: There are multiple occurences of $TSTUSR in SLES's /etc/group file, which makes TSTID[2] inunique.


Description: Add uninit_groups feature to ldiskfs2 to speed up e2fsck


Details: The uninit_groups feature works in conjunction with the kernel filesystem code (ldiskfs2 only) and e2fsprogs-1.39-cfs6 to speed up the pass1 processing of e2fsck. This is a read-only feature in ldiskfs2 only, so older kernels and current ldiskfs cannot mount filesystems that have had this feature enabled.
*Severity: normal


Frequency: rare


Severity: enhancement
Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=9977 9977]


Bugzilla: 10816
Description: lvbo_init failed for resource with missing objects.


Description: Improve multi-block allocation algorithm to avoid fragmentation
Details: Fix returning error if we do stat for file with missing/corrupted objects and i_size set to all sum of size of all avaible objects. if we to truncate/write to missing object - it is recreated.


Details: The mballoc3 code (ldiskfs2 only) adds new mechanisms to improve allocation locality and avoid filesystem fragmentation.


*Severity: normal


Severity: major
Frequency: When flocks are used.


Frequency: mixed-endian client/server environments
Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=13103 13103]


Bugzilla: 11214
Description: assertion failure in ldlm_cli_enquque_fini for non NULL lock.


Description: mixed-endian crashes
Details: Flock locks might destroy just granted lock if it could be merged with another existing flock, this is done in completion handler, so teach ldlm_cli_enquque_fini that this is a valid case for flock locks.


Details: The new msg_v2 system had some failures in mixed-endian environments.


*Severity: normal


Severity: major
Frequency: Rare


Frequency: when an incorrect nid is specified during startup
Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=11974 11974]


Bugzilla: 10734
Description: reply_lock_interpret crash due to race with it and lock cancel.


Description: ptlrpc connect to non-existant node causes kernel crash
Details: Do not replay locks that are being cancelled. Do not reference locks by their address during replay, just by their handle.


Details: LNET can't be re-entered from an event callback, which happened when we expire a message after the export has been cleaned up. Instead, hand the zombie cleanup off to another thread.


*Severity: normal


Severity: major
Frequency: only with deactivated OSTs


Frequency: only if OST filesystem is corrupted
Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=11679 11679]


Bugzilla: 9829
Description: lstripe command fails for valid OST index


Description: client incorrectly hits assertion in ptlrpc_replay_req()
Details: The stripe offset is compared to 'lov->desc.ld_tgt_count' instead of lov->desc.ld_active_tgt_count.


Details: for a short time RPCs with bulk IO are in the replay list, but replay of bulk IOs is unimplemented. If the OST filesystem is corrupted due to disk cache incoherency and then replay is started it is possible to trip an assertion. Avoid putting committed RPCs into the replay list at all to avoid this issue.


*Severity: minor


Severity: major
Frequency: rare


Frequency: liblustre (e.g. catamount) on a large cluster with >= 8 OSTs/OSS
Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=13147 13147]


Bugzilla: 11684
Description: block reactivating mgc import until all deactivates complete


Description: System hang on startup
Details: Fix race when failing back MDT/MGS to itself (testing)


Details: This bug allowed the liblustre (e.g. catamount) client to return to the app before handling all startup RPCs. This could leave the node unresponsive to lustre network traffic and manifested as a server ptllnd timeout.


*Severity: minor


Severity: major
Frequency: only for Cray XT3


Frequency: only for devices with external journals
Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=11706 11706]


Bugzilla: 10719
Description: peer credits not enough on many OST per OSS systems.


Description: Set external device read-only also
Details: Use new lnet way to add credits as we need those for pings and ASTs


Details: During a commanded failover stop, we set the disk device read-only while the server shuts down. We now also set any external journal device read-only at the same time.


*Severity: minor


Severity: major
Frequency: only with liblustre


Frequency: when setting specific ost indicies
Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=12790 12790]


Bugzilla: 11149
Description: Liblustre is not releasing flock locks on file close.


Description: QOS code breaks on skipped indicies
Details: Release flock locks on file close.


Details: Add checks for missing OST indicies in the QOS code, so OSTs created with --index need not be sequential.


*Severity: minor


Severity: normal
Frequency: only for RHEL4


Bugzilla: 12123
Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=12839 12839]


Description: ENOENT returned for valid filehandle during dbench.  
Description: Update kernel patches for kernel-2.6.9-55.0.2.EL


Details: Check if a directory has children when invalidating dentries associated with an inode during lock cancellation. This fixes an incorrect ENOENT sometimes seen for valid filehandles during testing with dbench.  
Details: Remove inode-nr_unused-2.6.9-rhel4.patch from 2.6-rhel4.series Update target file and kernel config.  




Severity: normal
*Severity: minor


Bugzilla: 11330
Frequency: rare


Description: a large application tries to do I/O to the same resource and dies in the middle of it.  
Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=11327 11327 ]


Details: Check the req->rq_arrival time after the call to ost_brw_lock_get(), but before we do anything about processing it & sending the BULK transfer request. This should help move old stale pending locks off the queue as quickly as obd_timeout.
Description: ASSERTION(export != NULL) failed in target_handle_connect


Details: Assetion hit is result of rare race between disconnect and connet to same nid. target_handle_connect found old connect cockie and tried to reconnect, but can't find export for this cockie.


Severity: minor


Frequency: SFS test only (otherwise harmless)
*Severity: minor


Bugzilla: 6062
Frequency: rare


Description: SPEC SFS validation failure on NFS v2 over lustre.  
Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=13276 13276]


Details: Changes the blocksize for regular files to be 2x RPC size, and not depend on stripe size.  
Description: Oops in read and write path when failing to allocate lock.  


Details: Check if lock allocation failed and return error back.


Severity: minor
=Changes from v1.6.0.1 to v1.6.1=


Frequency: always
Support for networks: socklnd - kernels up to 2.6.16, qswlnd - Qsnet kernel modules 5.20 and later, openiblnd - IbGold 1.8.2, o2iblnd - OFED 1.1 and 1.2 viblnd - Voltaire ibhost 3.4.5 and later, ciblnd - Topspin 3.2.0, iiblnd - Infiniserv 3.3 + PathBits patch, gmlnd - GM 2.1.22 and later, mxlnd - MX 1.2.1 or later, ptllnd - Portals 3.3 / UNICOS/lc 1.5.x, 2.0.x


Bugzilla: 6380
Support for kernels: 2.6.5-7.283 (SLES 9), 2.6.9-55.EL (RHEL 4), 2.6.16.46-0.14 (SLES 10), 2.6.18.8 vanilla (kernel.org)


Description: Fix client-side osc byte counters
Client support for unpatched kernels: (see [[Patchless Client]]) 2.6.16 - 2.6.22 vanilla (kernel.org)


Details: The osc read/write byte counters in /proc/fs/lustre/osc/*/stats are now working
Due to recently discovered recovery problems, we do not recommend using patchless RHEL 4 clients with this or any earlier release.


Recommended e2fsprogs version: 1.39.cfs8


Severity: minor
Note that reiserfs quotas are disabled on SLES 10 in this kernel.
Starting with this release, the ldiskfs backing filesystem required by Lustre is now in its own package, lustre-ldiskfs. This package should be installed. It is versioned separately from Lustre and may be released separately in future.


Frequency: always as root on SLES
*Severity: enhancement


Bugzilla: 10667
Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=12194 12194]


Description: Failure of copying files with lustre special EAs.
Description: add optional extra BUILD_VERSION info


Details: Client side always return success for setxattr call for lustre special xattr (currently only "trusted.lov").  
Details: add a new environment variable (namely LUSTRE_VERS) which allows to override the lustre version.  




Severity: minor
*Severity: enhancement


Frequency: always
Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=11548 11548]


Bugzilla: 10345
Description: Add LNET router traceability for debug purposes


Description: Refcount LNET uuids
Details: If a checksum failure occurs with a router as part of the IO path, the NID of the last router that forwarded the bulk data is printed so it can be identified.


Details: The global LNET uuid list grew linearly with every startup; refcount repeated list entries instead of always adding to the list.


*Severity: enhancement


Severity: minor
Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=10997 10997]


Frequency: only for kernels with patches from Lustre below 1.4.3
Description: lfs setstripe use optional parameters instead of postional parameters.  


Bugzilla: 11248


Description: Remove old rdonly API
*Severity: enhancement


Details: Remove old rdonly API which unused from at least lustre 1.4.3
Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=10651 10651]


Description: Nanosecond timestamp support for ldiskfs


Severity: minor
Details: The on-disk ldiskfs filesystem has added support for nanosecond resolution timestamps. There is not yet support for this at the Lustre filesystem level.


Frequency: when upgrading from 1.4 while trying to change parameters


Bugzilla: 11692
*Severity: enhancement


Description: The wrong (new) MDC name was used when setting parameters for upgraded MDT's. Also allows changing of OSC (and MDC) parameters if --writeconf is specified at tunefs upgrade time.  
Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=10768 10768]


Description: 64-bit inode version


=Changes from v1.6.0 to v1.4.11=
Details: : Add a on-disk 64-bit inode version for ext3 to track changes made to the inode. This will be required for version-based recovery.  


Support for networks: socklnd - kernels up to 2.6.16, qswlnd - Qsnet kernel modules 5.20 and later, openiblnd - IbGold 1.8.2, o2iblnd - OFED 1.1 viblnd - Voltaire ibhost 3.4.5 and later, ciblnd - Topspin 3.2.0, iiblnd - Infiniserv 3.3 + PathBits patch, gmlnd - GM 2.1.22 and later, mxlnd - MX 1.2.1 or later, ptllnd - Portals 3.3 / UNICOS/lc 1.5.x, 2.0.x


Severity: major
*Severity: enhancement


Bugzilla: 12014
Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=11563 11563]


Description: ASSERTION failures when upgrading to the patchless zero-copy socklnd
Description: Add -o localflock option to simulate old noflock behaviour.


Details: This bug affects "rolling upgrades", causing an inconsistent protocol version negotiation and subsequent assertion failure during rolling upgrades after the first wave of upgrades.  
Details: This will achieve local-only flock/fcntl locks coherentness.  




Severity: major
*Severity: enhancement


Bugzilla: 10916
Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=11647 11647]


Description: added LNET self test
Description: update patchless client


Details: landing b_self_test
Details: Add support for patchless client with 2.6.20, 2.6.21 and RHEL 5




Severity: major
*Severity: enhancement


Bugzilla: 12316
Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=10589 10589]


Description: Add OFED1.2 support to o2iblnd
Description: metadata RPC reduction (e.g. for rm performance)


Details: o2iblnd depends on OFED's modules, if out-tree OFED's modules are installed (other than kernel's in-tree infiniband), there could be some problem while insmod o2iblnd (mismatch CRC of ib_* symbols). If extra Module.symvers is supported in kernel (i.e, 2.6.17), this link provides solution: https://bugs.openfabrics.org/show_bug.cgi?id=355 if extra Module.symvers is not supported in kernel, we will have to run the script in bug 12316 to update $LINUX/module.symvers before building o2iblnd. More details about this are in bug 12316.  
Details: decrease the amount of synchronous RPC between clients and servers by canceling conflicing lock before the operation on the client and packing thier handles into the main operation RPC to server.  




Severity: normal
*Severity: enhancement


Bugzilla: 11680
Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=12605 12605]


Description: make panic on lbug configurable
Description: add #ifdef HAVE_KERNEL_CONFIG_H


Details: kernels from 2.6.19 not need include linux/config.h, but add include linux/autoconf.h in commpiler command line.




Severity: minor
*Severity: enhancement


Bugzilla: 13288
Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=12764 12764]


Description: Initialize cpumask before use
Description: patchless client support for 2.6.22 kernel


Details: 2.6.22 has only one visble change, SLAB_CTOR_* constants is removed. In this case we need drop using os depended interface to kmem_cache and use cfs_mem_cache API.


Severity: minor


Bugzilla: 11223
*Severity: enhancement


Details: Change "dropped message" CERRORs to D_NETERROR so they are logged instead of creating "console chatter" when a lustre timeout races with normal RPC completion.  
Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=10968 10968]


Description: VFS operations stats tool.


Severity: minor
Details: Tool which collects stats by tracking value written in pid, ppid, gid and uses llstat to generate output to plot graph using plot-llstat Updated lustre/utils/Makefile.am Added lustre/utils/ltrack_stats.c


Details: lnet_clear_peer_table can wait forever if user forgets to clear a lazy portal.


*Severity: enhancement


Severity: minor
Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=11039 11039]


Details: libcfs_id2str should check pid against LNET_PID_ANY.  
Description: 2.6.18 server support (lustre 1.6.1)


Details: Support for 2.6.18 kernels on the server side.


Severity: minor


Frequency: rare
*Severity: enhancement


Bugzilla: 12227
Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=12678 12678]


Description: cfs_duration_{u,n}sec() wrongly calculate nanosecond part of struct timeval.
Description: remove fs_prep_san_write operation and related patches


Details: do_div() macro is used incorrectly.  
Details: remove the ext3-san-jdike patches which are no longer useful.  




=Changes from v1.4.9 to v1.6.0=
*Severity: enhancement


Support for networks: socklnd - kernels up to 2.6.16, qswlnd - Qsnet kernel modules 5.20 and later, openiblnd - IbGold 1.8.2, o2iblnd - OFED 1.1, viblnd - Voltaire ibhost 3.4.5 and later, ciblnd - Topspin 3.2.0, iiblnd - Infiniserv 3.3 + PathBits patch, gmlnd - GM 2.1.22 and later, mxlnd - MX 1.2.1 or later, ptllnd - Portals 3.3 / UNICOS/lc 1.5.x, 2.0.x
Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=4900 4900]


Severity: enhancement
Description: Async OSC create to avoid the blocking unnecessarily.


Bugzilla: 10316
Details: If a OST has no remain object, system will block on the creating when need to create a new object on this OST. Now, ways use pre-created objects when available, instead of blocking on an empty osc while others are not empty. If we must block, we block for the shortest possible period of time.


Description: Fixed console chatter in case of -ETIMEDOUT.


*Severity: enhancement


Severity: enhancement
Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=11721 11721]


Bugzilla: 11684
Description: Add printing inode info into message about error in writepage.


Description: Added D_NETTRACE for recording network packet history (initially only for ptllnd). Also a separate userspace ptllnd facility to gather history which should really be covered by D_NETTRACE too, if only CDEBUG recorded history in userspace.


*Severity: major


Severity: enhancement
Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=11971 11971]


Bugzilla: 11094
Description: Accessing a block bevice can re-enable I/O when Lustre is tearing down a device.


Description: Multiple instances for o2iblnd
Details: dev_clear_rdonly(bdev) must be called in kill_bdev() instead of blkdev_put().


Details: Allow multiple instances of o2iblnd to enable networking over multiple HCAs and routing between them.


*Severity: major


Severity: major
Frequency: only with mballoc3 code and deep extent trees


Frequency: rare
Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=12861 12861]


Bugzilla: 12458
Description: ldiskfs_ext_search_right: bad header in inode: unexpected eh_depth


Description: Assertion failure in kernel ptllnd caused by posting passive bulk buffers before connection establishment complete.  
Details: a wrong check of extent headers in ldiskfs_ext_search_right() can cause the filesystem to be remounted read-only.  




Severity: major
*Severity: normal


Frequency: rare
Frequency: rare


Bugzilla: 12455
Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=13129 13129]


Description: A race in kernel ptllnd between deleting a peer and posting new communications for it could hang communications - manifesting as "Unexpectedly long timeout" messages.
Description: server LBUG when shutting down


Details: Block umount forever until the mount refcount is zero rather than giving up after an arbitrary timeout.


Severity: major


Frequency: rare
*Severity: normal


Bugzilla: 12432
Frequency: 2.6.18 servers only


Description: Kernel ptllnd lock ordering issue could hang a node.  
Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=12546 12546 ]


Description: ll_kern_mount() doesn't release the module reference


Severity: major
Details: The ldiskfs module reference count never drops down to 0 because ll_kern_mount() doesn't release the module reference.


Frequency: rare


Bugzilla: 12016
*Severity: normal


Description: node crash on socket teardown race
Frequency: rare


Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=12470 12470]


Severity: major
Description: server LBUG when using old ost_num_threads parameter


Frequency: after Ptllnd timeouts and portals congestion
Details: Accept the old ost_num_threads parameter but warn that it is deprecated, and fix an off-by-one error that caused an LBUG.


Bugzilla: 11659


Description: Credit overflows
*Severity: normal


Details: This was a bug in ptllnd connection establishment. The fix implements better peer stamps to disambiguate connection establishment and ensure both peers enter the credit flow state machine consistently.
Frequency: rare


Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=11722 11722]


Severity: major
Description: Transient SCSI error results in persistent IO issue


Frequency: rare
Details: iobuf->dr_error is not reinitialized to 0 between two uses.


Bugzilla: 11394


Description: kptllnd didn't propagate some network errors up to LNET
*Severity: normal


Details: This bug was spotted while investigating 11394. The fix ensures network errors on sends and bulk transfers are propagated to LNET/lustre correctly.
Frequency: sometimes when underlying device returns I/O errors


Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=11743 11743]


Severity: major
Description: OSTs not going read-only during write failures


Frequency: rare
Details: OSTs are not remounted read-only when the journal commit threads get I/O errors because fsfilt_ext3 calls journal_start/stop() instead of the ext3 wrappers.


Bugzilla: 11616


Description: o2iblnd handle early RDMA_CM_EVENT_DISCONNECTED.
*Severity: normal


Details: If the fabric is lossy, an RDMA_CM_EVENT_DISCONNECTED callback can occur before a connection has actually been established. This caused an assertion failure previously.
Frequency: SLES10 only


Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=12538 12538]


Severity: major
Description: sanity-quota.sh quotacheck failed: rc = -22


Bugzilla: 11201
Details: Quotas cannot be enabled on SLES10.
 
Description: lnet deadlock in router_checker


Details: turned ksnd_connd_lock, ksnd_reaper_lock, and ksock_net_t:ksnd_lock into BH locks to eliminate potential deadlock caused by ksocknal_data_ready() preempting code holding these locks.


*Severity: normal


Severity: major
Frequency: liblustre clients only


Bugzilla: 11126
Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=12229 12229]


Description: Millions of failed socklnd connection attempts cause a very slow FS
Description: getdirentries does not give error when run on compute nodes


Details: added a new route flag ksnr_scheduled to distinguish from ksnr_connecting, so that a peer connection request is only turned down for race concerns when an active connection to the same peer is under progress (instead of just being scheduled).
Details: getdirentries does not fail when the size specified as an argument is too small to contain at least one entry




Severity: normal
*Severity: normal


Frequency: rare
Frequency: rare


Description: gmlnd ignored some transmit errors when finalizing lnet messages.  
Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=11315 11315]


Description: OST "spontaneously" evicts client; client has imp_pingable == 0


Severity: normal
Details: Due to a race condition, liblustre clients were occasionally evicted incorrectly.


Frequency: rare


Bugzilla: 11472
*Severity: normal


Description: Changed the default kqswlnd ntxmsg=512
Frequency: during server recovery


Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=11203 11203]


Severity: minor
Description: MDS failing to send precreate requests due to OSCC_FLAG_RECOVERING


Frequency: rare
Details: request with rq_no_resend flag not awake l_wait_event if they get a timeout.


Description: Ptllnd didn't init kptllnd_data.kptl_idle_txs before it could be possibly accessed in kptllnd_shutdown. Ptllnd should init kptllnd_data.kptl_ptlid2str_lock before calling kptllnd_ptlid2str.


*Severity: normal


Severity: minor
Frequency: rare


Frequency: rare
Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=11818 11818]
 
Description: MDS fails to start if a duplicate client export is detected


Description: ptllnd logs a piece of incorrect debug info in kptllnd_peer_handle_hello.  
Details: in some rare cases it was possible for a client to connect to an MDS multiple times. Upon recovery the MDS would detect this and fail during startup. Handle this more gracefully.  




Severity: minor
*Severity: normal


Frequency: rare
Frequency: rare


Description: the_lnet.ln_finalizing was not set when the current thread is about to complete messages. It only affects multi-threaded user space LNet.  
Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=12477 12477]


Description: Wrong request locking in request set processing


Severity: minor
Details: ptlrpc_check_set wrongly uses req->rq_lock for proctect add to imp_delayed_list, in this place should be used imp_lock.


Frequency: 'lctl peer_list' issued on a mx net


Bugzilla: 12237
*Severity: normal


Description: Enable lctl's peer_list for MXLND
Frequency: when reconnecting


Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=11662 11662]


=Changes from v1.4.9 to v1.4.10=
Description: Grant leak when OSC reconnect to OST


Support for kernels: 2.4.21-47.0.1.EL (RHEL 3) 2.6.5-7.283 (SLES 9) 2.6.9-42.0.10.EL (RHEL 4) 2.6.12.6 vanilla (kernel.org) 2.6.16.27-0.9 (SLES 10)
Details: When osc reconnect ost, OST(filter) should check whether it should grant more space to client by comparing fed_grant and cl_avail_grant, and return the granted space to client instead of "new granted" space, because client will call osc_init_grant to update the client grant space info.  


Recommended e2fsprogs version: 1.39.cfs5


Note that reiserfs quotas are disabled on SLES 10 in this kernel
*Severity: normal


Severity: enhancement
Frequency: when client reconnects to OST


Bugzilla: 11667
Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=11662 11662]


Description: Add "/proc/sys/lustre/debug_peer_on_timeout" (liblustre envirable: LIBLUSTRE_DEBUG_PEER_ON_TIMEOUT) boolean to control whether to print peer debug info when a client's RPC times out.
Description: Grant leak when OSC does a resend and replays bulk write


Details: When osc reconnect to OST, OST(filter) should clear grant info of bulk write request, because the grant info while be sync between OSC and OST when reconnect, and we should ignore the grant info these of resend/replay write req.


Severity: enhancement


Bugzilla: 11563
*Severity: normal


Description: Add -o localflock option to simulate old noflock behaviour.
Frequency: rare


Details: This will achieve local-only flock/fcntl locks coherentness.  
Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=11662 11662]


Description: Grant space more than avaiable space sometimes.


Severity: enhancement
Details: When then OST is about to be full, if two bulk writing from different clients came to OST. Accord the avaliable space of the OST, the first req should be permitted, and the second one should be denied by ENOSPC. But if the seconde arrived before the first one is commited. The OST might wrongly permit second writing, which will cause grant space > avaiable space.


Bugzilla: 11264


Description: Add uninit_groups feature to ldiskfs2 to speed up e2fsck
*Severity: normal


Details: The uninit_groups feature works in conjunction with the kernel filesystem code (ldiskfs2 only) and e2fsprogs-1.39-cfs6 to speed up the pass1 processing of e2fsck. This is a read-only feature in ldiskfs2 only, so older kernels and current ldiskfs cannot mount filesystems that have had this feature enabled.
Frequency: when client is evicted


Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=12371 12371]


Severity: enhancement
Description: Grant might be wrongly erased when osc is evicted by OST


Bugzilla: 10816
Details: when the import is evicted by server, it will fork another thread ptlrpc_invalidate_import_thread to invalidate the import, where the grant will be set to 0. While the original thread will update the grant it got when connecting. So if the former happened latter, the grant will be wrongly errased because of this race.


Description: Improve multi-block allocation algorithm to avoid fragmentation


Details: The mballoc3 code (ldiskfs2 only) adds new mechanisms to improve allocation locality and avoid filesystem fragmentation.
*Severity: normal


Frequency: rare


Severity: critical
Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=12401 12401]


Frequency: occasional, depends on client load and configuration
Description: Checking Stale with correct fid


Bugzilla: 12181 , 12203
Details: ll_revalidate_it should uses de_inode instead of op_data.fid2 to check whether it is stale, because sometimes, we want the enqueue happened anyway, and op_data.fid2 will not be initialized.


Description: data loss for recently-modified files


Details: In some cases it is possible that recently written or created files may not be written to disk in a timely manner (this should normally be within 30s unless client IO load is very high). The problem appears as zero-length files or files that are a multiple of 1MB in size after a client crash or client eviction that are missing data at the end of the file.
*Severity: normal


Frequency: only with 2.4 kernel


Severity: major
Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=12134 12134]


Frequency: liblustre (e.g. catamount) on a large cluster with >= 8 OSTs/OSS
Description: random memory corruption


Bugzilla: 11684
Details: size of struct ll_inode_info is to big for union inode.u and this can be cause of random memory corruption.


Description: System hang on startup


Details: This bug allowed the liblustre (e.g. catamount) client to return to the app before handling all startup RPCs. This could leave the node unresponsive to lustre network traffic and manifested as a server ptllnd timeout.
*Severity: normal
 
 
Severity: major


Frequency: rare
Frequency: rare


Bugzilla: 10866
Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=10818 10818]


Description: proc file read during shutdown sometimes raced obd removal, causing node crash
Description: Memory leak in recovery


Details: Add lock to prevent obd access after proc file removal.  
Details: Lov_mds_md was not free in an error handler in mds_create_object. It should also check obd_fail before fsfilt_start, otherwise if fsfilt_start return -EROFS,(failover mds during mds recovery). then the req will return with repmsg->transno = 0 and rc = EROFS. and we met hit the assert LASSERT(req->rq_reqmsg->transno == req->rq_repmsg->transno) in ptlrpc_replay_interpret. Fcc should be freed no matter whether fsfilt_commit success or not.  




Severity: major
*Severity: normal


Frequency: only if OST filesystem is corrupted
Frequency: rare


Bugzilla: 9829
Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=11935 11935]


Description: client incorrectly hits assertion in ptlrpc_replay_req()
Description: Not check open intent error before release open handle


Details: for a short time RPCs with bulk IO are in the replay list, but replay of bulk IOs is unimplemented. If the OST filesystem is corrupted due to disk cache incoherency and then replay is started it is possible to trip an assertion. Avoid putting committed RPCs into the replay list at all to avoid this issue.  
Details: in some rare cases, the open intent error is not checked before release open handle, which may cause ASSERTION(open_req->rq_transno != 0), because it tries to release the failed open handle.  




Severity: major
*Severity: normal


Frequency: always
Frequency: rare


Bugzilla: 11710
Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=12556 12556]


Description: add support PG_writeback bit
Description: Set cat log bitmap only after create log success.


Details: add support for PG_writeback bit for Lustre, for more carefull work with page cache in 2.6 kernel. This also fix some deadlocks and remove hack for work O_SYNC with 2.6 kernel.  
Details: in some rare cases, the cat log bitmap is set too early. and it should be set only after create log success.  




Severity: normal
*Severity: normal


Frequency: frequent on thin XT3 nodes
Frequency: rare


Bugzilla: 10802
Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=12086 12086]


Description: UUID collision on thin XT3 Linux nodes
Description: the cat log was not initialized in recovery


Details: UUIDs on Compute Node Linux XT3 nodes were not generated randomly, since we relied on an insufficiently-seeded PRNG.  
Details: When mds(mgs) do recovery, the tgt_count might be zero, so the unlink log on mds will not be initialized until mds post recovery. And also in mds post recovery, the unlink log will initialization will be done asynchronausly, so there will be race between add unlink log and unlink log initialization.  




Severity: normal
*Severity: normal


Frequency: rare
Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=12579 12597]


Bugzilla: 11693
Description: brw_stats were being printed incorrectly


Description: OSS hangs after "All ost request buffers busy"
Details: brw_stats were being printed as log2 but all of them were not recorded as log2. Also remove some code duplication arising from filter_tally_{read,write}.


Details: A deadlock between quota and journal operations caused OSS hangs after printing "All ost request buffers busy."


*Severity: normal


Severity: normal
Frequency: rare, only in recovery.


Frequency: always
Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=11674 11674]


Bugzilla: 10214
Description: ASSERTION(req->rq_type != LI_POISON) failed


Description: make O_SYNC working on 2.6 kernels
Details: imp_lock should be held while iterating over imp_sending_list for prevent destroy request after get timeout in ptlrpc_queue_wait.  


Details: 2.6 kernels use different method for mark pages for write, so need add a code to lustre for O_SYNC work.


*Severity: normal


Severity: normal
Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=12689 12689]


Frequency: Only for files larger than 4GB on 32-bit clients.
Description: replay-single.sh test 52 fails


Bugzilla: 11237
Details: A lock's skiplist need to be cleanup when it being unlinked from its resource list.


Description: improperly doing page alignment of locks


Details: Modify lustre core code to use CFS_PAGE_* defines instead of PAGE_*. Make CFS_PAGE_MASK a 64-bit mask.
*Severity: normal


Frequency: always


Severity: normal
Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=11737 11737]


Frequency: rarely
Description: Short directio read returns full requested size rather than
actual amount read.


Bugzilla: 11203
Details: Direct I/O operations should return actual amount of bytes transferred rather than requested size.


Description: RPCs being resent when they shouldn't be


Details: Some RPCs that should not be resent are being resent. This can cause inconsistencies in the RPC state machine. Do not resend such requests.
*Severity: normal


Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=12646 12646]


Severity: normal
Description: sanity.sh test_77h fails with "test_77h file compare failed"


Frequency: rare, only with NFS export
Details: test_77h uses a file which was messed by other test case.


Bugzilla: 11669


Description: Crash on NFS re-export node
*Severity: normal


Details: under very unusual load conditions an assertion is hit in ll_intent_file_open()
Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=12576 12576]


Description: Not Check whether lov_tgts is NULL in some lov functions


Severity: normal
Details: Checking whether lov_tgts is NULL in some functions.


Frequency: always


Bugzilla: 10901
*Severity: normal


Description: large O_DIRECT requests fail under memory pressure/fragmentation
Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=11815 11815]


Details: Large single O_DIRECT read and write calls can fail to allocate a sufficiently large buffer to process the request. In case of allocation failure the allocation is retried with a smaller buffer and broken into smaller requests.
Description: replace obdo_alloc() with OBDO_ALLOC macro


Details: nothing special is done in obdo_alloc() function, and for debugging purpose, it needs to be replaced with macros.


Severity: normal


Frequency: always
*Severity: normal


Bugzilla: 11090
Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=12784 12784]


Description: versioning check is incomplete
Description: bad return value and errno from fcntl call


Details: Checking the version difference of client vs. server, report error if the gap is too big.  
Details: In liblustre API, errno should be a negative value if error happens.  




Severity: minor
*Severity: normal


Frequency: always on liblustre builds
Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=11544 11544]


Bugzilla: 11175
Description: ptlrpc_check_set() LBUG


Description: Cleanup compiler warnings on liblustre
Details: In case of positive reply from server and failed client bulk callback after bulk transfer shouldn't LBUG, but process this request as erroneous.




Severity: minor
*Severity: normal


Frequency: always on liblustre builds on XT3
Frequency: rare


Bugzilla: 12146
Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=12696 12696]


Description: LC_CONFIG_CDEBUG don't run while build liblustre on XT3.
Description: ASSERTION(imp->imp_conn_current) failed


Details: an assertion failure is hit if a client node boots and attempts to mount a lustre filesystem faster than RECONNECT_INTERVAL seconds.


Severity: minor


Frequency: always
*Severity: normal


Bugzilla: 11110
Frequency: only for i686


Description: Failure to close file and release space on NFS
Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=12695 12695]
Details: Put inode details into lock acquired in ll_intent_file_open. Use mdc_intent_lock in ll_intent_open to properly detect all kind of errors unhandled by mdc_enqueue.  


Description: 1.4.11 RC1 build fails for RHEL 4, i686


=Changes from v1.4.8 to v1.4.9=
Details: Fixed config variable for build.  


Support for kernels: 2.6.16.21-0.8 (SLES10), 2.6.9-42.0.3EL (RHEL 4), 2.6.5-7.276 (SLES 9), 2.4.21-47.0.1.EL (RHEL 3), 2.6.12.6 vanilla (kernel.org)


Support for networks: socklnd - kernels up to 2.6.15 (I believe this is accurate, SLES10), qswlnd - Qsnet kernel modules 5.20 and later, openiblnd - IbGold 1.8.2, o2iblnd - OFED 1.1, viblnd - Voltaire ibhost 3.4.5 and later, ciblnd - Topspin 3.2.0, iiblnd - Infiniserv 3.3 + PathBits patch, gmlnd - GM 2.1.22 and later, mxlnd - MX 1.2.1 or later, ptllnd - Portals 3.3 / UNICOS/lc 1.5.x, 2.0.x
*Severity: normal


Recommended e2fsprogs version: 1.39.cfs2-0
Frequency: rare


The backwards-compatible /proc/sys/portals symlink has been removed in this release. Before upgrading, please ensure that you change any configuration scripts or /etc/sysctl.conf files that access /proc/sys/portals/* or sysctl portals.* to use the corresponding entry in /proc/sys/lnet or sysctl lnet.*. This change can be made in advance of the upgrade on any system running Lustre 1.4.6 or newer, since /proc/sys/lnet was added in that version.
Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=12415 12415]


Note that reiserfs quotas are temporarily disabled on SLES 10 in this kernel.
Description: Updated patchess for new RHEL4 kernel  


Severity: enhancement
Details: Updated patch inode-nr_unused-2.6.9-rhel4.patch Updated patch jbd-stats-2.6.9.patch Updated patch qsnet-rhel4-2.6.patch Updated patch quota-deadlock-on-pagelock-core.patch Updated patch vfs_intent-2.6-rhel4.patch Updated patch vfs_races-2.6-rhel4.patch Updated series file 2.6-rhel4-titech.series Updated series file 2.6-rhel4.series Updated kernel config files


Bugzilla: 11245


Description: new ko2iblnd module parameter: ib_mtu
*Severity: normal


Details: the default IB MTU of 2048 performs badly on 23108 Tavor HCAs. You can avoid this problem by setting the MTU to 1024 using this module parameter.
Frequency: rare


Severity: enhancement
Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=12374 12374]


Bugzilla: 11118/11620
Description: lquota slave complains LBUG when reconnecting with mds or
failover in mds.


Description: ptllnd small request message buffer alignment fix
Details: quota slave depends qctxt->lqc_import to send its quota request. This pointer will be invalid if mds did failover or broke its connect to osts, which leads to LBUG.


Details: Set the PTL_MD_LOCAL_ALIGN8 option on small message receives. Round up small message size on sends in case this option is not supported. 11620 was a defect in the initial implementation which effectively asserted all peers had to be running the correct protocol version which was fixed by always NAK-ing such requests and handling any misalignments they introduce.


Severity: enhancement
*Severity: normal


Bugzilla: 11250
Frequency: when qunit size is too small(less than 20M)


Description: Patchless ZC(zero copy) socklnd
Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=12588  12588]


Details: New protocol for socklnd, socklnd can support zero copy without kernel patch, it's compatible with old socklnd. Checksum is moved from tunables to modparams.
Description: write is stopped by improper -EDQUOT


Severity: enhancement
Details: If the master is busy and qunit size is small enough(let's say 1M), the slave can not get quota from master on time, which will lead slave to trigger a -EQUOTA to client.


Bugzilla: 11234


Description: Dump XT3 portals traces on kptllnd timeout
*Severity: normal


Details: Set the kptllnd module parameter "ptltrace_on_timeout=1" to dump Cray portals debug traces to a file. The kptllnd module parameter "ptltrace_basename", default "/tmp/lnet-ptltrace", is the basename of the dump file.
Frequency: rare


Severity: enhancement
Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=12629 12629]


Bugzilla: 10316
Description: Deadlock during metadata tests


Description: Allow /proc/sys/lnet/debug to be set symbolically
Details: in prune_dir_dentries(), shrink_dcache_parent() should not be called with the per-dentry lock held.


Details: Allow debug and subsystem debug values to be read/set by name in addition to numerically, for ease of use.


Severity: critical
*Severity: normal


Frequency: MDS failover only, very rarely
Frequency: SLES9 only


Bugzilla: 11125
Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=12744 12744]


Description: "went back in time" messages on mds failover
Description: Lustre patched kernel for SLES9 SP3 has NR_CPUS set to 8


Details: The greatest transno may be lost when the current operation finishes with an error (transno==0) and the client's last_rcvd record is over-written. Save the greatest transno in the mds_last_transno for this case.  
Details: set CONFIG_NR_CPUS to 128 instead of 8.  


Severity: major on XT3


Bugzilla: none
*Severity: normal


Description: libcfs overwrites /proc/sys/portals
Frequency: rare


Details: libcfs created a symlink from /proc/sys/portals to /proc/sys/lnet for backwards compatibility. This is no longer required and makes the Cray portals /proc variables inaccessible.  
Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=11324 11324]


Severity: major
Description: LDISKFS-fs error (device sdc): ldiskfs_free_blocks


Frequency: infrequent
Details: a disk corruption can cause the mballoc code to assert on a double free or other extent corruptions. Handle these with ext3_error() instead of assertions.


Bugzilla: 11308


Description: kernel ptllnd fix bug in connection re-establishment
*Severity: normal


Details: Kernel ptllnd could produce protocol errors e.g. illegal matchbits and/or violate the credit flow protocol when trying to re-establish a connection with a peer after an error or timeout.
Frequency: rare


Severity: major
Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=13063 13063]


Frequency: Cray XT3 with more than 4000 clients and multiple jobs
Description: lfsck built against 1.4.x cannot run against 1.6.0 lustre


Bugzilla: 10906
Details: the definition for OBD_IOC_GETNAME changed in 1.6.0. One of the few external users of this ioctl number is lfsck's call to llapi_lov_get_uuids() and this caused lfsck to fail at startup. Add the old ioctl number to the handler so both old and new lfsck can work.


Description: many clients connecting with IO in progress causes connect timeouts


Details: Avoid synchronous journal commits to avoid delays caused by many
*Severity: normal
clients connecting/disconnecting when bulk IO is in progress. Queue liblustre connect requests on OST_REQUEST_PORTAL instead of OST_IO_PORTAL to avoid delays behind potentially many pending slow IO requests.


Severity: major
Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=11301 11301]


Frequency: rare
Description: parallel lock callbacks


Bugzilla: 10891
Details: Instead of sending blocking and completion callbacks as separated requests, adding them to a set and sending in parallel.


Description: handle->h_buffer_credits > 0, assertion failure


Details: h_buffer_credits is zero after truncate, causing assertion failure. This patch extends the transaction or creates new one after truncate.
*Severity: normal


Severity: major
Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=12417 12417]


Frequency: rarely, using CFS RAID5 patches in non-standard kernel series
Description: Disable most debugging by default


Bugzilla: 11313
Details: To improve performance, disable most logging (for debug purposes) by default. VFSTRACE, RPCTRACE, and DLMTRACE are now off by default, and HA includes fewer messages.


Description: stale data returned from RAID cache


Details: If only a small amount of IO is done to the RAID device before reading it again it is possible to get stale data from the RAID cache instead of reading it from disk.
*Severity: normal


Severity: major
Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=11013 11013]


Frequency: always for 2.6.16.27-0.6 sles10 kernel
Description: hash tables for lists of nids, connections and uuids


Bugzilla: 11641
Details: Hash tables noticeably help when a lot of clients connect to a server, to faster identify duplicate connections or reconnects, also to faster find export to evict in manual eviction case.


Description: lbuild failure


Details: extra -0.6 in SLES10 kernel version confuses lbuild. lustre and Linux kernel calculate different kernel release strings if a localversion file is present in the kernel tarball. The fix deletes the localversion file.
*Severity: normal


Severity: minor
Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=11190 11190]


Bugzilla: 11312
Description: Sometimes, when the server evict a client, and the client will not be evicted as soon as possible.


Description: OFED FMR API change
Details: In enqueue req, the error was returned by intent, instead of rq_status which make ptlrpc layer not detect this error, and does not evict the client. So enqueue error should be returned by rq_status.


Details: This changes parameter usage to reflect a change in ib_fmr_pool_map_phys() between OFED 1.0 and OFED 1.1. Note that FMR support is only used in experimental versions of the o2iblnd - this change does not affect standard usage at all.


Severity: minor
*Severity: normal


Frequency: rarely
Frequency: only for SLES9


Description: When kib(nal|lnd)_del_peer() is called upon a peer whose ibp_tx_queue is not empty, kib(nal|lnd)_destroy_peer()'s 'LASSERT(list_empty(&peer->ibp_tx_queue))' will fail.  
Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=12543 12543]


Severity: minor
Description: Routinely utilize latest Quadrics drivers in CFS releases


Frequency: rarely
Details: Update patch qsnet-suse-2.6.patch.


Description: When ksocknal_del_peer() is called upon a peer whose ksnp_tx_queue is not empty, ksocknal_destroy_peer()'s 'LASSERT(list_empty(&peer->ksnp_tx_queue))' will fail.


Severity: minor
*Severity: normal


Frequency: very rarely
Frequency: only for sles10


Bugzilla: 10727
Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=12771 12771]


Description: If ksocknal_lib_setup_sock() fails, a ref on peer is lost. If connd connects a route which has been closed by ksocknal_shutdown(), ksocknal_create_routes() may create new routes which hold references on the peer, causing shutdown process to wait for peer to disappear forever.  
Description: Update patches for SLES 10 SP1 kernel.  


Severity: minor
Details: Update the patch vfs_intent-2.6-sles10.patch.


Frequency: always for specific kernels and striping counts


Bugzilla: 11042
*Severity: normal


Description: client may get "Matching packet too big" without ACL support
Frequency: rare


Details: Clients compiled without CONFIG_FS_POSIX_ACL get an error message when trying to access files in certain configurations. The clients should in fact be denied when mounting because they do not understand ACLs.  
Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=12543 12543]


Severity: minor
Description: Routinely utilize latest Quadrics drivers in CFS releases


Frequency: always with random mmap IO to multi-striped file
Details: Update patch qsnet-rhel4-2.6.patch.


Bugzilla: 10919


Description: mmap write might be lost if we are writing to a 'hole' in stripe
*Severity: normal
 
Details: Only if the hole is at the end of OST object so that kms is too small. Fix is to increase kms accordingly in ll_nopage.
 
Severity: minor


Frequency: rare
Frequency: rare


Bugzilla: 11040
Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=12975 12975]


Description: Creating too long symlink causes lustre errors
Description: Using wrong pointer in osc_brw_prep_request


Details: Check symlink and name lengths before sending requests to MDS.
Details: Access to array[-1] can produce panic if kernel compiled with CONFIG_PAGE_ALLOC enabled


Severity: minor


Frequency: MDS failover only, very rarely
*Severity: normal


Bugzilla: 11277
Frequency: only in recovery


Description: clients may get ASSERTION(granted_lock != NULL)
Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=13148 13148]


Details: When request was taking a long time, and a client was resending a getattr by name lock request. The were multiple lock requests with the same client lock handle and mds_getattr_name->fixup_handle_for_resent_request found one of the lock handles but later failed with ASSERTION(granted_lock != NULL).  
Description: Mark OST as early accessible if his start SYNC.  


Severity: minor
Details: osc_precreate return flag early accessible if oscc marked as OSCC_FLAG_SYNC_IN_PROGRESS.


Frequency: depends on hardware


Bugzilla: 11540
*Severity: normal


Description: lustre write performance loss in the SLES10 kernel
Frequency: rare


Details: the performance loss is caused by using of write barriers in the ext3 code. The SLES10 kernel turns barrier support on by default. The fix is to undo that change for ldiskfs.  
Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=13196 13196]


Severity: normal
Description: Sometimes precreate code can triger create object on wrong ost


Frequency: when ptlrpc is under heavy use and runs out of request buffer
Details: Wrong protected or not not restored variables aftre precreate loop can produce creation object on wrong ost.


Bugzilla: 11318


Description: In lnet_match_blocked_msg(), md can be used without holding a ref on it.
*Severity: normal


Severity: normal
Frequency: oss recovery


Frequency: only in configurations with LNET routers
Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=10800 10800]


Bugzilla: 10316
Description: llog_commit_thread cleanup should sync with llog_commit_thread
start


Description: routes automatically marked down and recovered
Details: llog_commit_thread_count should be synced between llog_commit start and cleanup, so new llog_commit thread should not be started when llog_commit threads being stopped to avoid accessing some freed stuff.


Details: In configurations with LNET routers if a router fails routers now actively try to recover routes that are down, unless they are marked down by an administrator.


Severity: normal
*Severity: minor


Frequency: occasionally with multiple writers to a single file
Frequency: only with 10000 clients or more


Bugzilla: 11081
Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=12364 12364]


Description: shared writes to file may result in wrong size reported by stat()
Description: poor connect scaling with increasing client count


Details: Allow growing of kms when extent lock is cancelled
Details: Don't run filter_grant_sanity_check for more than 100 exports to improve scaling for large numbers of clients.


Severity: normal


Frequency: rare, only if OST filesystem is inconsistent with MDS filesystem
*Severity: minor


Bugzilla: 11211
Frequency: nfs export on patchless client


Description: writes to a missing object would leak memory on the OST
Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=11970 11970]


Details: If there is an inconsistency between the MDS and OST filesystems, such that the MDS references an object that doesn't exist, writes to that object will leak memory due to incorrect cleanup in the error handling path, eventually running out of memory on the OST.
Description: connectathon hang when test nfs export over patchless client


Severity: normal
Details: Disconnected dentry cannot be found with lookup, so we do not need to unhash it or make it invalid


Frequency: only if flock is enabled (not on by default)


Bugzilla: 11415
*Severity: minor


Description: posix locks not released on fd closure on 2.6.9+
Frequency: rare


Details: We failed to add posix locks to list of inode locks on 2.6.9+ kernels, this caused such locks not to be released on fd close and then assertions on fs unmount about still used locks.  
Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=11546 11546]


Severity: normal
Description: open req refcounting wrong on reconnect


Frequency: NFS re-export or patchless client
Details: If reconnect happened between getting open reply from server and call to mdc_set_replay_data in ll_file_open, we will schedule replay for unreferenced request that we are about to free. Subsequent close will crash in variety of ways. Check that request is still eligible for replay in mdc_set_replay_data().


Bugzilla: 11179, 10796


Description: Crash on NFS re-export node (__d_move)
*Severity: minor


Details: We do not want to hash the dentry is we don't have a lock. But if this dentry is later used in d_move, we'd hit uninitialised list head d_hash, so we just do this to init d_hash field but leave dentry unhashed.
Frequency: rare


Severity: normal
Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=11512 11512]


Frequency: NFS re-export or patchless client
Description: disable writes to filesystem when reading health_check file


Bugzilla: 11135
Details: the default for reading the health_check proc file has changed to NOT do a journal transaction and write to disk, because this can cause reads of the /proc file to hang and block HA state checking on a healthy but otherwise heavily loaded system. It is possible to return to the previous behaviour during configure with --enable-health-write.


Description: NFS exports has problem with symbolic link


Details: lustre client don`t propertly install dentry when re-exported to nfs or run patchless client.
*Severity: minor


Severity: normal
Frequency: rare


Frequency: NFS re-export or patchless client
Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=11658 11658 ]


Bugzilla: 10796
Description: log_commit_thread vs filter_destroy race leads to crash


Description: Various nfs/patchless fixes.
Details: Take import reference before releasing llog record semaphore


Details: fixes reuse disconected alias for lookup process - this fixes warning "find_exported_dentry: npd != pd", fix permission error with open files at nfs. fix apply umask when do revalidate.


Severity: normal
*Severity: minor


Frequency: occasional
Frequency: only with huge numbers of clients


Bugzilla: 11191
Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=11817 11817]


Description: Crash on NFS re-export node
Description: Prevents from taking the superblock lock in llap_from_page for a soon died page.


Details: calling clear_page on the wrong pointer triggered oops in generic_mapping_read().  
Details: using LL_ORIGIN_REMOVEPAGE origin flag instead of LL_ORIGIN_UNKNOW for llap_from_page call in ll_removepage() prevents from taking the superblock lock for a soon died page.  


Severity: normal


Frequency: rarely, using O_DIRECT IO
*Severity: minor


Bugzilla: 10903
Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=11706 11706]


Description: unaligned directio crashes client with LASSERT
Description: service threads may hog cpus when there are a lot of requests


Details: check for unaligned buffers before trying any requests.
Details: Insert cond_resched to give other threads a chance to use some CPU


=Changes from v1.4.7.1 to v1.4.8=


Support for kernels: 2.6.9-42.0.3EL (RHEL 4) 2.6.5-7.276 (SLES 9) 2.4.21-47.0.1.EL (RHEL 3) 2.6.12.6 vanilla (kernel.org)
*Severity: minor


Severity: enhancement
Frequency: always


Bugzilla: 10452
Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=12747 12747]


Description: Allow recovery/failover for liblustre clients.
Description: fix mal-formatted messages


Details: liblustre clients were unaware of failover configurations until now.
Details: fix some mal-formatted DEBUG_REQ and LCONSOLE_ERROR_MSG messages




Severity: enhancement
*Severity: minor


Bugzilla: 10743
Frequency: always in liblustre


Description: user file locks should fail when not mounting with flock option
Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=11737 11737]


Details: Set up an error-returning stub in ll_file_operations.lock field to
Description: wrong IS_ERR implementation in liblustre.h
prevent incorrect behaviour when client is mounted without flock option. Also, set up properly f_op->flock field for RHEL4 kernels.  


Details: fix IS_ERR implementation in liblustre.h for right detect errors.


Severity: enhancement


Bugzilla: 4900
*Severity: minor


Description: Async OSC create to avoid the blocking unnecessarily.
Frequency: always


Details: If a OST has no remain object, system will block on the creating when need to create a new object on this OST. Now, ways use pre-created objects when available, instead of blocking on an empty osc while others are not empty. If we must block, we block for the shortest possible period of time.  
Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=10419 10419]


Description: Correct condition for output debug message.


Severity: enhancement
Details: inode i_nlink equal zero is not enough for output message about disk corruption, i_ctime and i_mode should be also checked.


Bugzilla: 10889


Description: Checksum enhancements
*Severity: minor


Details: New checksum enhancements allow for resending RPCs that failed checksum checks.
Frequency: always in patchless client


Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=12415 12415]


Severity: enhancement
Description: add configure check for truncate_complete_page


Bugzilla: 7376
Details: improve checks for exported symbols. This allow run check without
sources, but with Module.symvers shipped with kernel distribution. add check for truncate_complete_page used by patchless client.


Description: Tunables on number of dirty pages in cacche


Details: Allow to set limit on number of dirty pages cached.
*Severity: minor


Frequency: only run on patchless client.


Severity: major
Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=12858 12858]


Frequency: quota enabled and large files being deleted
Description: use do_facet on sanity.sh for test handling recoverables errors


Bugzilla: 10707
Details: use do_facet instead of direct use sysctl for set fail_loc on OST


Description: releasing more than 4GB of quota at once hangs OST


Details: If a user deletes more than 4GB of files on a single OST it will cause the OST to spin in an infinite loop. Release quota in < 4GB chunks, or use a 64-bit value for 1.4.7.1+.
*Severity: minor


Frequency: only at startup


Severity: major
Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=11778 11778]


Frequency: rarely (truncate to non-zero file size after write under load)
Description: Delay client connections to MDT until fist MDT->OST connect


Bugzilla: 10730, 10687
Details: If a client tried to create a new file before the MDT had connected to any OSTs, the create would return EIO. Now the client will simply block until the MDT connects to the first OST and the create can succeed.


Description: Files padded with zeros to next 4K multiple


Details: With filesystems mounted using the "extents" option (2.6 kernels) it is possible that files that are truncated to a non-zero size immediately after being written are filled with zero bytes beyond the truncated size. No file data is lost.
*Severity: minor


Frequency: at statup only


Severity: major
Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=12860 12860]


Frequency: extremely rare except on liblustre-based clients
Description: mds_lov_synchronize race leads to various problems


Bugzilla: 10480
Details: simultaneous MDT->OST connections at startup can cause the sync to abort, leaving the OSC in a bad state.


Description: Lustre space not freed when files are deleted
=Changes from v1.6.0 to v1.6.0.1=


Details: Clean up open-unlinked files after client eviction. Previously the unlink was skipped and the files remained as orphans.
*Severity: normal


Frequency: on some architectures


Severity: major
Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=12404 12404]


Frequency: always
Description: 1.6 client sometimes fails to mount from a 1.4 MDT


Bugzilla: 11103
Details: Uninitialized flags sometimes cause configuration commands to be skipped.


Description: Broke core dumps to lustre


Details: Negative dentry may be unhashed if parent does not have UPDATE lock, but some callers, e.g. do_coredump, expect dentry to be hashed after successful create, hash it in ll_create_it.
*Severity: normal


Frequency: patchless clients only


Severity: minor
Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=12391 12391]


Frequency: rare
Description: missing __iget() symbol export


Bugzilla: 10845
Details: The __iget() symbol export is missing. To avoid the need for this on patchless clients the deathrow inode reaper is turned off, and we depend on the VM to clean up old inodes. This dependency was during via the fix for bug 12181.


Description: statfs data retrieved from /proc may be stale or zero


Details: When reading per-device statfs data from /proc, in the {kbytes,files}_{total,free,avail} files, it may appear as zero or be out of date.
*Severity: normal


Frequency: always


Severity: minor
Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=12848 12848]


Frequency: systems with MD RAID1 external journal devices
Description: sanity.sh fail: test_52b


Bugzilla: 10832
Details: The ll_inode_to_ext_flags() has a glitch which makes MDS return incorrect inode's flags to client.


Description: lconf's call to blkid is confused by RAID1 journal devices


Details: Use the "blkid -l" flag to locate the MD RAID device instead of returning all block devices that match the journal UUID.  
=Changes from v1.4.10 to v1.6.0=


Severity: minor
CONFIGURATION CHANGE. This version of Lustre WILL NOT INTEROPERATE with older versions automatically. In many cases a special upgrade step is needed. Please read the user documentation before upgrading any part of a 1.4.x system.


Frequency: always if "lfs find" used on a local file/directory
WARNING: Lustre configuration and startup changes are required with this release. See [[Mount Conf]] for details.


Bugzilla: 10864
Support for kernels: 2.4.21-47.0.1.EL (RHEL 3), 2.6.5-7.283 (SLES 9), 2.6.9-42.0.10.EL (RHEL 4), 2.6.12.6 vanilla (kernel.org), 2.6.16.27-0.9 (SLES10)


Description: "lfs find" segfaults if used on a local file/directory
Client support for unpatched kernels: (see [[Patchless Client]]) 2.6.16 - 2.6.19 vanilla (kernel.org), 2.6.9-42.0.8EL (RHEL 4)


Details: The case where a directory component was not specified wasn't handled correctly. Handle this properly.  
Recommended e2fsprogs version: 1.39.cfs6


Severity: minor
Note that reiserfs quotas are disabled on SLES 10 in this kernel


Frequency: always on ia64
*Severity: enhancement


Bugzilla: 10905
Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=4900 4900]


Description: "lfs df" loops on printing out MDS statfs information
Description: Async OSC create to avoid the blocking unnecessarily.


Details: The obd_ioctl_data was not initialized and in some systems this caused a failure during the ioctl that did not return an error. Initialize the struct and return an error on failure.  
Details: If a OST has no remain object, system will block on the creating when need to create a new object on this OST. Now, ways use pre-created objects when available, instead of blocking on an empty osc while others are not empty. If we must block, we block for the shortest possible period of time.  


Severity: minor


Frequency: SLES 9 only
*Severity: enhancement


Bugzilla: 10667
Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=8007 8007]


Description: Error of copying files with lustre special EAs as root
Description: MountConf


Details: Client side always return success for setxattr call for lustre special xattr (currently only "trusted.lov").  
Details: Lustre configuration is now managed via mkfs and mount commands instead of lmc and lconf. New obd types (MGS, MGC) are added for dynamic configuration management. See [[Mount Conf]] for details.  




Severity: minor
*Severity: enhancement


Frequency: liblustre clients only
Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=4482 4482]


Bugzilla: 10883
Description: dynamic OST addition


Description: Race in 'instant cancel' lock handling could lead to such locks never to be granted in case of SMP MDS
Details: OSTs can now be added to a live filesystem


Details: Do not destroy not yet granted but cbpending locks in handle_enqueue


*Severity: enhancement


Severity: minor
Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=9851 9851]


Frequency: replay/resend of open
Description: startup order invariance


Bugzilla: 10991
Details: MDTs and OSTs can be started in any order. Clients only require the MDT to complete startup.


Description: non null lock assetion failure in mds_intent_policy


Details: Trying to replay/resend lockless open requests resulted in mds_open() returning 0 with no lock. Now it sets a flag if a lock is going to be returned.
*Severity: enhancement


Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=4899 4899]


Severity: normal
Description: parallel, asynchronous orphan cleanup


Frequency: always, for aggregate stripe size over 4GB
Details: orphan cleanup is now performed in separate threads for each OST, allowing parallel non-blocking operation.


Bugzilla: 10725


Description: "lfs setstripe" fails assertion when setting 4GB+ stripe width
*Severity: enhancement


Details: Using "lfs setstripe" to set stripe size * stripe count over 4GB will fail the kernel with "ASSERTION(lsm->lsm_xfersize != 0)"
Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=9862 9862]


Description: optimized stripe assignment


Severity: normal
Details: stripe assignments are now made based on ost space available, ost previous usage, and OSS previous usage, in order to try to optimize storage space and networking resources.


Frequency: always on ppc64


Bugzilla: 10634
*Severity: enhancement


Description: the write to an ext3 filesystem mounted with mballoc got stuck
Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=4226 4226]


Details: ext3_mb_generate_buddy() uses find_next_bit() which does not perform endianness conversion.
Description: Permanently set tunables


Details: All writable /proc/fs/lustre tunables can now be permanently set on a per-server basis, at mkfs time or on a live system.


Severity: normal


Frequency: rarely on clusters with both ia64+i386 clients
*Severity: enhancement


Bugzilla: 10672
Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=10547 10547]


Description: ia64+i686 clients doing shared IO on the same file may LBUG
Description: Lustre message v2


Details: In rare cases when both ia64+i686 (or other mixed-PAGE_SIZE) clients are doing concurrent writes to the same file it is possible that the ia64 clients may LASSERT because the OST extent locks are not PAGE_SIZE aligned. Ensure that grown locks are always aligned on the request boundary.  
Details: Add lustre message format v2.  




Severity: normal
*Severity: enhancement


Frequency: always
Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=9866 9866]


Bugzilla: 7040
Description: client OST exclusion list


Description: Overwriting in use executable truncates on-disk binary image
Details: Clients can be started with a list of OSTs that should be declared "inactive" for known non-responsive OSTs.


Details: If one node attempts to overwrite an executable in use by another node, we now correctly return ETXTBSY instead of truncating the file.


*Severity: enhancement


Severity: normal
Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=10088 10088]


Frequency: always
Description: fine-grained SMP locking inside DLM


Bugzilla: 2707
Details: Improve DLM performance on SMP systems by removing the single per-namespace lock and replace it with per-resource locks.


Description: chmod on Lustre root is propagated to other clients


Details: Re-validate root's dentry in ll_lookup_it to avoid having it invalid by the follow_mount time.
*Severity: enhancement


Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=9332 9332]


Severity: normal
Description: don't hold multiple extent locks at one time


Frequency: rare
Details: To avoid client eviction during large writes, locks are not held on multiple stripes at one time or for very large writes. Otherwise, clients can block waiting for a lock on a failed OST while holding locks on other OSTs and be evicted.


Bugzilla: 10643


Description: client crash on unmount - lock still has references
*Severity: enhancement


Details: In some error handling cases it was possible to leak a lock reference on a client while accessing a file. This was not harmful to the client during operation, but would cause the client to crash when the filesystem is unmounted.  
Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=9293 9293]


Description: Multiple MD RPCs in flight.


Severity: normal
Details: Further unserialise some read-only MDT RPCs - learn about intents. To avoid overly-overloading MDT, introduce a limit on number of MDT RPCs in flight for a single client and add /proc controls to adjust this limit.


Frequency: always


Bugzilla: 10921
*Severity: enhancement


Description: ETXTBSY on mds though file not in use by client
Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=22484 22484]


Details: ETXTBSY is no longer incorrectly returned when attempting to chmod or chown a directory that the user previously tried to execute or a currently-executing binary.
Description: client read/write statistics


Details: Add client read/write call usage stats for performance analysis of user processes. /proc/fs/lustre/llite/*/offset_stats shows non-sequential file access. extents_stats shows chunk size distribution. extents_stats_per_process show chunk size distribution per user process.


Severity: normal


Frequency: rare
*Severity: enhancement


Bugzilla: 10999
Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=22485 22485]


Description: OST failure "would be an LBUG" in waiting_locks_callback()
Description: per-client statistics on server


Details: In some cases it was possible to send a blocking callback to a client doing a glimpse, even though that client didn't get a lock granted. When the glimpse lock is cancelled on the OST the freed lock is left on the waiting list and corrupted the list.
Details: Add ldlm and operations statistics for each client in /proc/fs/lustre/mds|obdfilter/*/exports/


=Changes from v1.4.7 to v1.4.7.1=


Support for kernels: 2.6.9-42.0.2.EL (RHEL 4) 2.6.5-7.276 (SLES 9) 2.4.21-40.EL (RHEL 3) 2.6.12.6 vanilla (kernel.org)
*Severity: enhancement
bug fix


Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=22486 22486]


Severity: major
Description: improved MDT statistics


Frequency: always on RHEL 3
Details: Add detailed MDT operations statistics in /proc/fs/lustre/mds/*/stats


Bugzilla: 10867


Description: Number of open files grows over time
*Severity: enhancement


Details: The number of open files grows over time, whether or not Lustre is started. This was due to a filp leak introduced by one of our kernel patches.  
Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=10968 10968]


=Changes from v1.4.6 to v1.4.7=
Description: VFS operations stats


Support for kernels: 2.6.9-42.EL (RHEL 4) 2.6.5-7.267 (SLES 9) 2.4.21-40.EL (RHEL 3) 2.6.12.6 vanilla (kernel.org)
Details: Add client VFS call stats, trackable by pid, ppid, or gid /proc/fs/lustre/llite/*/stats_track_[pid|ppid|gid]


Severity: enhancement


Bugzilla: 3627
*Severity: enhancement


Description: add TCP zero-copy support to kernel
Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=2258 2258]


Details: Add support to the kernel TCP stack to allow zero-copy bulk sends if the hardware supports scatter-gather and checksumming. This allows socklnd to do client-write and server-read more efficiently and reduce CPU utilization from skbuf copying.
Description: Dynamic service threads


Details: Within a small range, start extra service threads automatically when the request queue builds up.


Severity: enhancement


Bugzilla: 9340
*Severity: enhancement


Description: allow number of MDS service threads to be changed at module load
Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=11229 11229]


Details: It is now possible to change the number of MDS service threads running. Adding "options mds mds_num_threads={N}" to the MDS's /etc/modprobe.conf will set the number of threads for the next time Lustre is restarted (assuming the "mds" module is also reloaded at that time). The default number of threads will stay the same, 32 for most systems.
Description: Easy OST removal


Details: OSTs can be permanently deactivated with e.g. 'lctl conf_param lustre-OST0001.osc.active=0'


Severity: enhancement


Bugzilla: 10193 (patchless)
*Severity: enhancement


Description: Remove dependency on various unexported kernel interfaces.
Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=11335 11335]


Details: No longer need reparent_to_init, exit_mm, exit_files, sock_getsockopt, filemap_populate, FMODE_EXEC, put_filp.
Description: MGS proc entries


Details: Added basic proc entries for the MGS showing what filesystems are served.


Severity: enhancement


Bugzilla: 10420
*Severity: enhancement


Description: Support NFS exporting on 2.6 kernels.
Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=10998 10998]


Details: Implement non-rawops metadata methods for NFS server to use without changing NFS server code.
Description: provide MGS failover


Details: Added config lock reacquisition after MGS server failover.


Severity: enhancement


Bugzilla: 9293, 9385
*Severity: enhancement


Description: MDS RPCs are serialised on client. This is unnecessary for some.
Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=11461 11461]


Details: Do not serialize getattr (non-intent version) and statfs.  
Description: add Linux 2.4 support


Details: Added support for RHEL 2.4.21 kernel for 1.6 servers and clients


Severity: Enhancement


Bugzilla: 10482
*Severity: enhancement


Description: Cache open file handles on client.
Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=10902 10902]


Details: MDS now will return special lock along with openhandle, if requested and client is allowed to hold openhandle, even if unused, until such a lock is revoked. Helps NFS a lot, since NFS is opening closing files for every read/write openration.
Description: plain/inodebits lock performance improvement


Details: Grouping plain/inodebits in granted list by their request modes and bits policy, thus improving the performance of search through the granted list.


Severity: Enhancement


Bugzilla: 9291
*Severity: enhancement


Description: Cache open negative dentries on client when possible.
Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=11667 11667]


Details: Guard negative dentries with UPDATE lock on parent dir, drop negative dentries on lock revocation.
Description: Add "/proc/sys/lustre/debug_peer_on_timeout"


Details: liblustre envirable: LIBLUSTRE_DEBUG_PEER_ON_TIMEOUT boolean to control whether to print peer debug info when a client's RPC times out.


Severity: enhancement


Description: Include MPICH 1.2.6 Lustre ADIO interface patch
*Severity: enhancement


Details: In lustre/contrib/ or /usr/share/lustre in RPM a patch for MPICH is included to add Lustre-specific ADIO interfaces. This is based closely on the UFS ADIO layer and only differs in file creation, in order to allow the OST striping to be set. This is user-contributed code and not supported by CFS.  
Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=11264 11264]


Description: Add uninit_groups feature to ldiskfs2 to speed up e2fsck


Severity: enhancement
Details: The uninit_groups feature works in conjunction with the kernel filesystem code (ldiskfs2 only) and e2fsprogs-1.39-cfs6 to speed up the pass1 processing of e2fsck. This is a read-only feature in ldiskfs2 only, so older kernels and current ldiskfs cannot mount filesystems that have had this feature enabled.


Frequency: Always


Bugzilla: 10248
*Severity: enhancement


Description: Allow fractional MB tunings for lustre in /proc/ filesystem.
Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=10816 10816]


Details: Many of the /proc/ tunables can only be tuned at a megabyte granularity. Now, Fractional MB granularity is be supported, this is very useful for low memory system.
Description: Improve multi-block allocation algorithm to avoid fragmentation


Details: The mballoc3 code (ldiskfs2 only) adds new mechanisms to improve allocation locality and avoid filesystem fragmentation.


Severity: enhancement


Bugzilla: 9292
*Severity: major


Description: Getattr by fid
Frequency: mixed-endian client/server environments


Details: Getting a file attributes by its fid, obtaining UPDATE|LOOKUP locks, avoids extra getattr rpc requests to MDS, allows '/' to have locks and avoids getattr rpc requests for it on every stat.  
Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=11214 11214]


Description: mixed-endian crashes


Severity: enhancement
Details: The new msg_v2 system had some failures in mixed-endian environments.


Bugzilla: 10462


Description: add client O_DIRECT support for 2.6 kernels
*Severity: major


Details: It is now possible to do O_DIRECT reads and writes to files in the Lustre client mountpoint on 2.6 kernel clients.
Frequency: when an incorrect nid is specified during startup


Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=10734 10734]


Severity: enhancement
Description: ptlrpc connect to non-existant node causes kernel crash


Bugzilla: 10446
Details: LNET can't be re-entered from an event callback, which happened when we expire a message after the export has been cleaned up. Instead, hand the zombie cleanup off to another thread.


Description: parallel glimpse, setattr, statfs, punch, destroy requests


Details: Sends glimpse, setattr, statfs, punch, destroy requests to OSTs in parallel, not waiting for response from every OST before sending a rpc to the next OST.
*Severity: major


Frequency: only if OST filesystem is corrupted


Severity: enhancement
Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=9829 9829]


Bugzilla: 10318
Description: client incorrectly hits assertion in ptlrpc_replay_req()


Description: Bring 'lfs find' closer in line with regular Linux find.
Details: for a short time RPCs with bulk IO are in the replay list, but replay of bulk IOs is unimplemented. If the OST filesystem is corrupted due to disk cache incoherency and then replay is started it is possible to trip an assertion. Avoid putting committed RPCs into the replay list at all to avoid this issue.  


Details: lfs find util supports -atime, -mtime, -ctime, -maxdepth, -print, -print0 options and obtains all the needed info through the lustre ioctls.


*Severity: major


Severity: enhancement
Frequency: liblustre (e.g. catamount) on a large cluster with >= 8 OSTs/OSS


Bugzilla: 6221
Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=11684 11684]


Description: support up to 1024 configured devices on one node
Description: System hang on startup


Details: change obd_dev array from statically allocated to dynamically allocated structs as they are first used to reduce memory usage
Details: This bug allowed the liblustre (e.g. catamount) client to return to the app before handling all startup RPCs. This could leave the node unresponsive to lustre network traffic and manifested as a server ptllnd timeout.




Severity: enhancement
*Severity: major


Bugzilla: 2259
Frequency: only for devices with external journals


Description: clear OBD RPC statistics by writing to them
Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=10719 10719]


Details: It is now possible to clear the OBD RPC statistics by writing to the "stats" file.
Description: Set external device read-only also


Details: During a commanded failover stop, we set the disk device read-only while the server shuts down. We now also set any external journal device read-only at the same time.


Severity: critical


Frequency: Always, for 32-bit kernel without CONFIG_LBD and filesystem > 2TB
*Severity: major
Bugzilla: 6191


Description: filesystem corruption for non-standard kernels and very large OSTs
Frequency: when setting specific ost indicies
Details: If a 32-bit kernel is compiled without CONFIG_LBD enabled and a filesystems larger than 2TB is mounted then the kernel will silently corrupt the start of the filesystem. CONFIG_LBD is enabled for all CFS-supported kernels, but the possibility of this happening with a modified kernel config exists.


Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=11149 11149]


Severity: major
Description: QOS code breaks on skipped indicies


Frequency: rare
Details: Add checks for missing OST indicies in the QOS code, so OSTs created with --index need not be sequential.


Bugzilla: 5719, 9635, 9792, 9684


Description: OST (or MDS) trips assertions in (re)connection under heavy load
*Severity: normal


Details: If a server is under heavy load and cannot reply to new connection requests before the client resends the (re)connect, the connection handling code can behave badly if two service threads are concurrently handing separate (re)connections from the same client. Add better locking to the connection handling code, and ensure that only a single connection will be processed for a given client UUID, even if the lock is dropped.  
Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=12123 12123]


Description: ENOENT returned for valid filehandle during dbench.


Severity: major
Details: Check if a directory has children when invalidating dentries associated with an inode during lock cancellation. This fixes an incorrect ENOENT sometimes seen for valid filehandles during testing with dbench.


Frequency: rare


Bugzilla: 9326, 10402, 10897
*Severity: normal


Description: client crash in ptlrpcd_wake() thread when sending async RPC
Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=11330 11330]


Details: It is possible that ptlrpcd_wake() dereferences a freed async RPC. In rare cases the ptlrpcd thread alread processed the RPC before ptlrpcd_wake() was called and the request was freed.  
Description: a large application tries to do I/O to the same resource and dies in the middle of it.  


Details: Check the req->rq_arrival time after the call to ost_brw_lock_get(), but before we do anything about processing it & sending the BULK transfer request. This should help move old stale pending locks off the queue as quickly as obd_timeout.


Severity: major


Frequency: rare
*Severity: minor


Bugzilla: 10300
Frequency: SFS test only (otherwise harmless)


Description: OST crash if filesystem is unformatted or corrupt
Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=6062 6062]


Details: If an OST is started on a device that has never been formatted or if the filesystem is corrupt and cannot even mount then the error handling cleanup routines would dereference a NULL pointer.  
Description: SPEC SFS validation failure on NFS v2 over lustre.  


Details: Changes the blocksize for regular files to be 2x RPC size, and not depend on stripe size.


Severity: major


Frequency: rare (only with non-default dump_on_timeout debug enabled)
*Severity: minor


Bugzilla: 10397
Frequency: always


Description: waiting_locks_callback trips kernel BUG if client is evicted
Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=6380 6380]


Details: Running with the dump_on_timeout debug flag turned on makes it possible that the waiting_locks_callback() can try to dump the Lustre kernel debug logs from an interrupt handler. Defer this log dumping to the expired_lock_main() thread.
Description: Fix client-side osc byte counters


Details: The osc read/write byte counters in /proc/fs/lustre/osc/*/stats are now working


Severity: major


Frequency: only very large systems with liblustre clients
*Severity: minor


Bugzilla: 7304
Frequency: always as root on SLES


Description: slow eviction of liblustre clients with the "evict_by_nid" RPC
Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=10667 10667]


Details: Use asynchronous set_info RPCs to send the "evict_by_nid" to all OSTs in parallel. This allows the eviction of stale liblustre clients to proceed much faster than if they were done in series, and also offers similar improvements for other set_info RPCs.  
Description: Failure of copying files with lustre special EAs.  


Details: Client side always return success for setxattr call for lustre special xattr (currently only "trusted.lov").


Severity: major


Frequency: Always, for filesystems larger than 2TB
*Severity: minor


Bugzilla: 6191
Frequency: always


Description: ldiskfs crash at mount for filesystem larger than 2TB with mballoc
Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=10345 10345]


Details: Kenrel kmalloc limits allocations to 128kB and this prevents filesystems larger than 2TB to be mounted with mballoc enabled.
Description: Refcount LNET uuids


Details: The global LNET uuid list grew linearly with every startup; refcount repeated list entries instead of always adding to the list.


Severity: major


Frequency: during server recovery
*Severity: minor


Bugzilla: 10479
Frequency: only for kernels with patches from Lustre below 1.4.3


Description: crash after server is denying duplicate export
Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=11248 11248]


Details: If clients are resending connect requests to the server, the server refuses to allow a client to connect multiple times. Fixed a bug in the handling of this case.
Description: Remove old rdonly API


Details: Remove old rdonly API which unused from at least lustre 1.4.3


Severity: minor


Frequency: only if NFS exporting from client
*Severity: minor


Bugzilla: 10258
Frequency: when upgrading from 1.4 while trying to change parameters


Description: NULL pointer deref in ll_iocontrol() if chattr mknod file
Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=11692 11692]


Details: If setting attributes on a file created under NFS that had never been opened it would be possible to oops the client if the file had no objects.  
Description: The wrong (new) MDC name was used when setting parameters for upgraded MDT's. Also allows changing of OSC (and MDC) parameters if --writeconf is specified at tunefs upgrade time.


=Changes from v1.6.0 to v1.4.11=


Severity: minor
Support for networks: socklnd - kernels up to 2.6.16, qswlnd - Qsnet kernel modules 5.20 and later, openiblnd - IbGold 1.8.2, o2iblnd - OFED 1.1 viblnd - Voltaire ibhost 3.4.5 and later, ciblnd - Topspin 3.2.0, iiblnd - Infiniserv 3.3 + PathBits patch, gmlnd - GM 2.1.22 and later, mxlnd - MX 1.2.1 or later, ptllnd - Portals 3.3 / UNICOS/lc 1.5.x, 2.0.x


Frequency: always for liblustre
*Severity: major


Bugzilla: 10290
Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=12014 12014]


Description: liblustre client does MDS+OSTs setattr RPC for each write
Description: ASSERTION failures when upgrading to the patchless zero-copy socklnd


Details: When doing a write from a liblustre client, the client incorrectly issued an RPC to the MDS and each OST the file was striped over in order to update the timestamps. When writing with small chunks and many clients this could overwhelm the MDS with RPCs. In all cases it would slow down the write because these RPCs are unnecessary.  
Details: This bug affects "rolling upgrades", causing an inconsistent protocol version negotiation and subsequent assertion failure during rolling upgrades after the first wave of upgrades.  




Severity: minor
*Severity: major


Frequency: Sometimes when using sys_sendfile
Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=10916 10916]


Bugzilla: 7020
Description: added LNET self test


Description: "page not covered by a lock" warnings from ll_readpage
Details: landing b_self_test


Details: sendfile called ll_readpage without right page locks present. Now we introduced ll_file_sendfile that does necessary locking around call to generic_file_sendfile() much like we do in ll_file_read().


*Severity: major


Severity: minor
Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=12316 12316]


Frequency: rare (only users of deprecated and unsupported LDAP config)
Description: Add OFED1.2 support to o2iblnd


Bugzilla: 9337
Details: o2iblnd depends on OFED's modules, if out-tree OFED's modules are installed (other than kernel's in-tree infiniband), there could be some problem while insmod o2iblnd (mismatch CRC of ib_* symbols). If extra Module.symvers is supported in kernel (i.e, 2.6.17), this link provides solution: https://bugs.openfabrics.org/show_bug.cgi?id=355 if extra Module.symvers is not supported in kernel, we will have to run the script in bug 12316 to update $LINUX/module.symvers before building o2iblnd. More details about this are in bug 12316.


Description: write_conf for zeroconf mount queried LDAP incorrectly for client


Details: LDAP apparently contains 'lustreName' attributes instead of 'name'. A
*Severity: normal
simple remapping of the name is sufficient.


Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=11680 11680]


Severity: minor
Description: make panic on lbug configurable


Frequency: common


Bugzilla: 10265


Description: excessive CPU usage during initial read phase on client
*Severity: minor


Details: During the initial read phase on a client, it would agressively retry readahead on the file, consuming too much CPU and impacting performance (since 1.4.5.8). Improve the readahead algorithm to avoid this, and also improve some other common cases (read of small files in particular, where "small" is files smaller than /proc/fs/lustre/llite/*/max_read_ahead_whole_mb, 2MB by default).  
Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=13288 13288]


Description: Initialize cpumask before use


Severity: minor


Frequency: rare
*Severity: minor


Bugzilla: 10450
Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=11223 11223]


Description: MDS crash when receiving packet with unknown intent.
Details: Change "dropped message" CERRORs to D_NETERROR so they are logged instead of creating "console chatter" when a lustre timeout races with normal RPC completion.  


Details: Do not LBUG in unknown intent case, just return -EFAULT


*Severity: minor


Severity: minor
Details: lnet_clear_peer_table can wait forever if user forgets to clear a lazy portal.


Frequency: occasional, when OST network is overloaded/intermittent


Bugzilla: 10416
*Severity: minor


Description: client evicted by OST after bulk IO timeout
Details: libcfs_id2str should check pid against LNET_PID_ANY.


Details: If a client sends a bulk IO request (read or write) the OST may evict the client if it is unresposive to its data GET/PUT request. This is incorrect if the network is overloaded (takes too long to transfer the RPC data) or dropped the OST GET/PUT request. There is no need to evict the client at all, since the pinger and/or lock callbacks will handle this, and the client can restart the bulk request.


*Severity: minor


Severity: minor
Frequency: rare


Frequency: Always when mmapping file with no objects
Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=12227 12227]


Bugzilla: 10438
Description: cfs_duration_{u,n}sec() wrongly calculate nanosecond part of struct timeval.


Description: client crashes when mmapping file with no objects
Details: do_div() macro is used incorrectly.


Details: Check that we actually have objects in a file before doing any operations on objects in ll_vm_open, ll_vm_close and ll_glimpse_size.  
=Changes from v1.4.9 to v1.6.0=


Support for networks: socklnd - kernels up to 2.6.16, qswlnd - Qsnet kernel modules 5.20 and later, openiblnd - IbGold 1.8.2, o2iblnd - OFED 1.1, viblnd - Voltaire ibhost 3.4.5 and later, ciblnd - Topspin 3.2.0, iiblnd - Infiniserv 3.3 + PathBits patch, gmlnd - GM 2.1.22 and later, mxlnd - MX 1.2.1 or later, ptllnd - Portals 3.3 / UNICOS/lc 1.5.x, 2.0.x


Severity: minor
*Severity: enhancement


Frequency: Rare
Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=10316 10316]


Bugzilla: 10484
Description: Fixed console chatter in case of -ETIMEDOUT.


Description: Request leak when working with deleted CWD


Details: Introduce advanced request refcount tracking for requests referenced from lustre intent.
*Severity: enhancement


Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=11684 11684]


Severity: minor
Description: Added D_NETTRACE for recording network packet history (initially only for ptllnd). Also a separate userspace ptllnd facility to gather history which should really be covered by D_NETTRACE too, if only CDEBUG recorded history in userspace.


Frequency: Always


Bugzilla: 10510
*Severity: enhancement


Description: Remounting a client read-only wasn't possible with a zconf mount
Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=11094 11094]


Details: It wasn't possible to remount a client read-only with llmount.
Description: Multiple instances for o2iblnd


Details: Allow multiple instances of o2iblnd to enable networking over multiple HCAs and routing between them.


Severity: minor


Frequency: Always
*Severity: major


Bugzilla: 9486
Frequency: rare


Description: extended inode attributes (immutable, append-only) work
Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=12458 12458]
improperly when 2.4 and 2.6 kernels are used on client/server or vice versa


Details: Introduce kernel-independent values for these flags.  
Description: Assertion failure in kernel ptllnd caused by posting passive bulk buffers before connection establishment complete.  




Severity: minor
*Severity: major


Frequency: rare
Frequency: rare


Bugzilla: 10150
Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=12455 12455]


Description: setattr vs write race when updating file timestamps
Description: A race in kernel ptllnd between deleting a peer and posting new communications for it could hang communications - manifesting as "Unexpectedly long timeout" messages.


Details: Client processes that update a file timestamp into the past right after writing to the file (e.g. tar) it is possible that the updated file modification time can be reset to the current time due to a race between processing the setattr and write RPC.


 
*Severity: major
Severity: minor


Frequency: rare
Frequency: rare


Bugzilla: 10437
Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=12432 12432]


Description: Flush dirty partially truncated pages during truncate
Description: Kernel ptllnd lock ordering issue could hang a node.


Details: Immediatelly flush partially truncated pages in filter_setattr, this way we completely avoid having any pages in page cache on OST and can retire ugly workarounds during writes to flush such pages.


 
*Severity: major
Severity: minor


Frequency: rare
Frequency: rare


Bugzilla: 10409
Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=12016 12016]


Description: i_sem vs transaction deadlock in mds_obd_destroy during unlink.
Description: node crash on socket teardown race


Details: protect inode from truncation within vfs_unlink() context just take a reference before calling vfs_unlink() and release it when parent's i_sem is free.


*Severity: major


Severity: minor
Frequency: after Ptllnd timeouts and portals congestion


Frequency: always, if extents are used on OSTs
Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=11659 11659]


Bugzilla: 10703
Description: Credit overflows


Description: index ei_leaf_hi (48-bit extension) is not zeroed in extent index
Details: This was a bug in ptllnd connection establishment. The fix implements better peer stamps to disambiguate connection establishment and ensure both peers enter the credit flow state machine consistently.


Details: OSTs using the extents format would not zero the high 16 bits of the index physical block number. This is not a problem for any OST filesystems smaller than 16TB, and no kernels support ext3 filesystems larger than 16TB yet. This is fixed in 1.4.7 (all new/modified files) and can be fixed for existing filesystems with e2fsprogs-1.39-cfs1.


*Severity: major


Severity: minor
Frequency: rare


Frequency: rare
Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=11394 11394]


Bugzilla: 9387
Description: kptllnd didn't propagate some network errors up to LNET


Description: import connection selection may be incorrect if timer wraps
Details: This bug was spotted while investigating 11394. The fix ensures network errors on sends and bulk transfers are propagated to LNET/lustre correctly.


Details: Using a 32-bit jiffies timer with HZ=1000 may cause backup import connections to be ignored if the 32-bit jiffies counter wraps. Use a 64-bit jiffies counter.


*Severity: major


Severity: minor
Frequency: rare


Frequency: very large clusters immediately after boot
Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=11616 11616]
Bugzilla: 10083


Description: LNET request buffers exhausted under heavy short-term load
Description: o2iblnd handle early RDMA_CM_EVENT_DISCONNECTED.


Details: If a large number of client requests are generated on a service that has previously never seen so many requests it is possible that the request buffer growth cannot keep up with the spike in demand. Instead of dropping incoming requests, they are held in the LND until the RPC service can accept more requests.  
Details: If the fabric is lossy, an RDMA_CM_EVENT_DISCONNECTED callback can occur before a connection has actually been established. This caused an assertion failure previously.  




Severity: minor
*Severity: major


Frequency: Sometimes during replay
Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=11201 11201]


Bugzilla: 9314
Description: lnet deadlock in router_checker


Description: Assertion failure in ll_local_open after replay.
Details: turned ksnd_connd_lock, ksnd_reaper_lock, and ksock_net_t:ksnd_lock into BH locks to eliminate potential deadlock caused by ksocknal_data_ready() preempting code holding these locks.  


Details: If replay happened on an open request reply before we were able to set replay handler, reply will become not swabbed tripping the assertion in ll_local_open. Now we set the handler right after recognising of open request


*Severity: major


Severity: minor
Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=11126 11126]


Frequency: very rare
Description: Millions of failed socklnd connection attempts cause a very slow FS


Bugzilla: 10584
Details: added a new route flag ksnr_scheduled to distinguish from ksnr_connecting, so that a peer connection request is only turned down for race concerns when an active connection to the same peer is under progress (instead of just being scheduled).


Description: kernel reports "badness in vsnprintf"


Details: Reading from the "recovery_status" /proc file in small chunks may cause a negative length in lprocfs_obd_rd_recovery_status() call to vsnprintf() (which is otherwise harmless). Exit early if there is no more space in the output buffer.
*Severity: normal
 
 
Severity: minor


Frequency: rare
Frequency: rare


Bugzilla: 10641
Description: gmlnd ignored some transmit errors when finalizing lnet messages.


Description: Client mtime is not the same on different clients after utimes


Details: In some cases, the client was using the utimes() syscall on a file cached on another node. The clients now validate the ctime from the MDS + OSTs to determine which one is right.
*Severity: normal


Frequency: rare


Severity: minor
Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=11472 11472]


Frequency: always
Description: Changed the default kqswlnd ntxmsg=512


Bugzilla: 10611


Description: Inability to activate failout mode
*Severity: minor


Details: lconf script incorrectly assumed that in pythong string's numeric value is used in comparisons.
Frequency: rare


Description: Ptllnd didn't init kptllnd_data.kptl_idle_txs before it could be possibly accessed in kptllnd_shutdown. Ptllnd should init kptllnd_data.kptl_ptlid2str_lock before calling kptllnd_ptlid2str.


Severity: minor
Frequency: always with multiple stripes per file
Bugzilla: 10671
Description: Inefficient object allocation for mutli-stripe files
Details: When selecting which OSTs to stripe files over, for files with a stripe count that divides evenly into the number of OSTs, the MDS is always picking the same starting OST for each file. Return the OST selection heuristic to the original design.


 
*Severity: minor
Severity: minor


Frequency: rare
Frequency: rare


Bugzilla: 10673
Description: ptllnd logs a piece of incorrect debug info in kptllnd_peer_handle_hello.


Description: mount failures may take full timeout to return an error


Details: Under some heavy load conditions it is possible that a failed mount can wait for the full obd_timeout interval, possibly several minutes, before reporting an error. Instead return an error as soon as the status is known.
*Severity: minor
 
 
Severity: normal


Frequency: rare
Frequency: rare


Bugzilla: 10047
Description: the_lnet.ln_finalizing was not set when the current thread is about to complete messages. It only affects multi-threaded user space LNet.


Description: NULL pointer deref in llap_from_page.


Details: get_cache_page_nowait can return a page with NULL (or otherwise incorrect) mapping if the page was truncated/reclaimed while it was searched for. Check for this condition and skip such pages when doing readahead. Introduce extra check to llap_from_page() to verify page->mapping->host is non-NULL (so page is not anonymous).
*Severity: minor


Frequency: 'lctl peer_list' issued on a mx net


Severity: normal
Bugzilla: [https://bugzilla.lustre.org/show_bug.cgi?id=12237 12237]  
 
Frequency: with certain MDS communication failures at client mount time
 
Bugzilla: 10268
 
Description: NULL pointer deref after failed client mount
 
Details: a client connection request may delayed by the network layer and not be sent until after the PTLRPC layer has timed out the request. If the client fails the mount immediately it will try to clean up before the network times out the request. Add a reference from the request import to the obd device and delay the cleanup until the network drops the request.
 
 
Severity: normal
 
Frequency: occasionally during client (re)connect
 
Bugzilla: 9387
 
Description: assertion failure during client (re)connect
 
Details: processing a client connection request may be delayed by the client or server longer than the client connect timeout. This causes the client to resend the connection request. If the original connection request is replied in this interval, the client may trip an assertion failure in ptlrpc_connect_interpret() which thought it would be the only running connect process.
 
 
Severity: normal
 
Frequency: only with obd_echo servers and clients that are rebooted
 
Bugzilla: 10140
 
Description: kernel BUG accessing uninitialized data structure
 
Details: When running an obd_echo server it did not start the ping_evictor thread, and when a client was evicted an uninitialized data structure was accessed. Start the ping_evictor in the RPC service startup instead of the OBD startup.
 
 
Severity: normal
 
Frequency: very rare (synthetic metadata workload only)
 
Bugzilla: 9974
 
Description: two racing renames might cause an MDS thread to deadlock
 
Details: Running the "racer" program may cause one MDS thread to rename a file from being the source of a rename to being the target of a rename at exactly the same time that another thread is doing so, and the second thread has already enqueued these locks after doing a lookup of the target and is trying to relock them in order. Ensure that we don't try to re-lock the same resource.
 
=Changes from v1.4.5 to v1.4.6=
 
WIRE PROTOCOL CHANGE. This version of Lustre networking WILL NOT INTEROPERATE with older versions automatically. Please read the user documentation before upgrading any part of a live system.
 
WARNING: Lustre networking configuration changes are required with this release. See https://bugzilla.clusterfs.com/show_bug.cgi?id=10052 for details.
 
Support for kernels: 2.6.9-22.0.2.EL (RHEL 4) 2.6.5-7.244 (SLES 9) 2.6.12.6 vanilla (kernel.org)
 
Severity: enhancement
 
Bugzilla: 7981/8208
 
Description: Introduced Lustre Networking (LNET)
 
Details: LNET is new networking infrastructure for Lustre, it includes a reorganized network configuration mode (see the user documentation for full details) as well as support for routing between different network fabrics. Lustre Networking Devices (LNDs) for the supported network fabrics have also been created for this new infrastructure.
 
 
Severity: enhancement
 
Description: Introduced Access control lists
 
Details: clients can set ACLs on files and directories in order to have more
fine-grained permissions than the standard Unix UGO+RWX. The MDS must be started with the "-o acl" mount option.
 
 
Severity: enhancement
 
Description: Introduced filesystem quotas
 
Details: Administrators may now establish per-user quotas on the filesystem.
 
 
Severity: enhancement
 
Bugzilla: 7982
 
Description: Configuration change for the XT3 The PTLLND is now used to run
Lustre over Portals on the XT3 The configure option(s) --with-cray-portals are no longer used. Rather --with-portals=<path-to-portals-includes> is used to enable building on the XT3. In addition to enable XT3 specific features the option --enable-cray-xt3 must be used.
 
 
Severity: enhancement
 
Bugzilla: 7116
 
Description: 2.6 OST async journal commit and locking fix to improve performance
 
Details: The filter_direct_io()+filter_commitrw_write() journal commits for 2.6 kernels are now async as they already were in 2.4 kernels so that they can commit concurrently with the network bulk transfer. For block-allocated files the filter allocation semaphore is held to avoid filesystem fragmentation during allocation. BKL lock removed for 2.6 xattr operations where it is no longer needed.
 
 
Severity: enhancement
 
Bugzilla: 7328
 
Description: specifying an (invalid) directory default stripe_size of -1 would reset the directory default striping
 
Details: stripe_size -1 was used internally to signal directory stripe removal, now use "all default" to signal dir stripe removal as a directory striping of "all default" is not useful
 
 
Severity: enhancement
 
Bugzilla: 7198
 
Description: doing an ls at the same time as file IO can be slow
 
Details: enqueue and other "small" requests can be blocked behind many large IO requests. Create a new OST IO portal for non-IO requests so they can be processed faster.
 
 
Severity: enhancement
 
Bugzilla: 6252
 
Description: Improve read-ahead algorithm to avoid excessive IO for random reads
 
Details: Existing read-ahead algorithm is tuned for the case of streamlined sequential reads and behaves badly with applications doing random reads. Improve it by reading ahead at least read region, and avoiding excessive large RPC for small reads.
 
 
Severity: enhancement
 
Bugzilla: 8330
 
Description: Creating more than 1000 files for a single job may cause a load imbalance on the OSTs if there are also a large number of OSTs.
 
Details: qos_prep_create() uses an OST index reseed value that is an even multiple of the number of available OSTs so that if the reseed happens in the middle of the object allocation it will still utilize the OSTs as uniformly as possible.
 
 
Severity: enhancement
 
Bugzilla: 7304
 
Description: improve by-nid export eviction on the MDS and OST
 
Details: allow multiple exports with the same NID to be evicted at one time without re-searching the exports list.
 
 
Severity: enhancement
 
Bugzilla: 7342
 
Description: bind OST threads to NUMA nodes to improve performance
 
Details: all OST threads are uniformly bound to CPUs on a single NUMA node and do their allocations there to localize memory access
 
 
Severity: enhancement
 
Bugzilla: 7979
 
Description: llmount can determine client NID directly from Myrinet (GM)
 
Details: the client NID code from gmnalnid was moved directly into llmount, removing the need to use this or specifying the client NID explicitly when mounting GM clients with zeroconf
 
 
Severity: enhancement
 
Bugzilla: 9445
 
Description: remove cleanup logs
 
Details: replace lconf-generated cleanup logs with lustre internal cleanup routines. Eliminates the need for client-cleanup and mds-cleanup logs.
 
 
Severity: enhancement
 
Bugzilla: 8592
 
Description: add support for EAs (user and system) on lustre filesystems
 
Details: it is now possible to store extended attributes in the Lustre client filesystem, and with the user_xattr mount option it is possible to allow users to store EAs on their files also
 
 
Severity: enhancement
 
Bugzilla: 7293
 
Description: Add possibility (config option) to show minimal available OST free space.
 
Details: When compiled with --enable-mindf configure option, statfs(2) (and so, df) will return least minimal free space available from all OSTs as amount of free space on FS, instead of summary of free spaces of all OSTs.
 
 
Severity: enhancement
 
Bugzilla: 7311
 
Description: do not expand extent locks acquired on OST-side
 
Details: Modify ldlm_extent_policy() to not expand local locks, acquired by
server: they are not cached anyway.
 
 
 
Severity: enhancement
 
Frequency: if MDS is started with down OST
 
Bugzilla: 9439,5706
 
Description: Allow startup/shutdown of an MDS without depending on the availability of the OSTs.
 
Details: Asynchronously call mds_lov_synchronize during MDS startup. Add appropriate locking and lov-osc refcounts for safe cleaning. Add osc abort_inflight calls in case the synchronize never started.
 
 
Severity: enhancement
 
Bugzilla: 7417
 
Description: Ability to exchange lustre version between client and servers and issue warnings at client side if client is too old. Also for liblustre clients there is ability to refuse connection of too old clients.
 
Details: New 'version' field is added to connect data structure that is filled with version info. That info is later checked by server and by client.
 
Severity: enhancement
 
Bugzilla: 9528
 
Description: allow liblustre clients to delegate truncate locking to OST
 
Details: To avoid overhead of locking, liblustre client instructs OST to take
extent lock in ost_punch() on client's behalf. New connection flag is added to handle backward compatibility.
 
 
Severity: enhancement
 
Bugzilla: 4928, 7341, 9758
 
Description: allow number of OST service threads to be specified
 
Details: a module parameter allows the number of OST service threads to be specified via "options ost ost_num_threads={N}" in the OSS's /etc/modules.conf or /etc/modprobe.conf.
 
 
Severity: enhancement
 
Frequency: if client is started with failover MDS
 
Bugzilla: 9818
 
Description: Allow multiple MDS hostnames in the mount command
 
Details: Try to read the configuration from all specified MDS hostnames during a client mount in case the "primary" MDS is down.
 
 
Severity: enhancement
 
Bugzilla: 9297
 
Description: Stop sending data to evicted clients as soon as possible.
 
Details: Check if the client we are about to send or are sending data to was evicted already. (Check is done every second of waiting, for which l_wait_event interface was extended to allow checking of exit condition at specified intervals).
 
 
Severity: enhancement
 
Bugzilla: 9477, 9557, 9870
 
Description: Verify that the MDS configuration logs are updated when xml is
 
Details: Check if the .xml configuration logs are newer than the config logs stored on the MDS and report an error if this is the case. Request --write-conf, or allow starting with --old_conf.
 
 
Severity: enhancement
 
Bugzilla: 6034
 
Description: Handle symlinks in the path when checking if Lustre is mounted.
 
Details: Resolve intermediate symlinks when checking if a client has mounted a filesystem to avoid duplicate client mounts.
 
 
Severity: enhancement
 
Bugzilla: 9578
 
Description: Support for specifying external journal device at mount
 
Details: If an OST or MDS device is formatted with an external journal device, this device major/minor is stored in the ext3 superblock and may not be valid for failover. Allow detecting and specifying the external journal at mount time.
 
 
Severity: enhancement
 
Bugzilla: 9461
 
Description: Implement 'lfs df' to report actual free space on per-OST basis
 
Details: Add sub-command 'df' on 'lfs' to report the disk space usage of MDS/OSDs. Usage: lfs df [-i][-h]. Command Options: '-i' to report usage of objects; '-h' to report in human readable format.
 
 
Severity: major
 
Frequency: rare
 
Bugzilla: 7407
 
Description: Running on many-way SMP OSTs can trigger oops in llcd_send()
 
Details: A race between allocating a new llcd and re-getting the llcd_lock allowed another thread to grab newly-allocated llcd.
 
 
Severity: major
 
Frequency: rare
 
Bugzilla: 7359
 
Description: Fix for potential infinite loop processing records in an llog.
 
Details: If an llog record is corrupted/zeroed, it is possible to loop forever in llog_process(). Validate the llog record length and skip the remainder of the block on error.
 
 
Severity: major
 
Frequency: rare
 
Bugzilla: 8322
 
Description: OST or MDS may oops in ping_evictor_main()
Details: ping_evictor_main() drops obd_dev_lock if deleting a stale export but doesn't restart at beginning of obd_exports_timed list afterward.
 
 
Severity: major
 
Frequency: rare, only with supplementary groups enabled on SMP 2.6 kernels
 
Bugzilla: 7273
 
Description: MDS may oops in groups_free()
 
Details: in rare race conditions a newly allocated group_info struct is freed again, and this can be NULL. The 2.4 compatibility code for groups_free() checked for a NULL pointer, but 2.6 did not.
 
 
Severity: major
 
Frequency: rare
 
Bugzilla: 5047
 
Description: data loss during non-page-aligned writes to a single file from both multiple nodes and multiple threads on one node at same time
 
Details: updates to KMS and lsm weren't protected by common lock. Resulting inconsistency led to false short-reads, that were cached and later used by ->prepare_write() to fill in partially written page, leading to data loss.
 
 
Severity: major
 
Frequency: when mmap is used/binaries executed from Lustre
 
Bugzilla: 9482
 
Description: Unmmap pages before throwing them away from read cache.
 
Details: llap_shrink cache now attempts to unmap pages before discarding them (if unmapping failed - do not discard). SLES9 kernel has extra checks that trigger if this unmapping is not done first.
 
 
Severity: major
 
Frequency: rare
 
Bugzilla: 6146, 9635, 9895
 
Description: servers crash with bad pointer in target_handle_connect()
 
Details: In rare cases when a client is reconnecting it was possible that the connection request was the last reference for that export. We would temporarily drop the export reference and get a new one, but this may have been the last reference and the export was just destroyed. Get new reference before dropping old one.
 
 
Severity: major
 
Frequency: rare, unless heavy write-truncate concurrency is continuous
 
Bugzilla: 4180, 6984, 7171, 9963, 9331
 
Description: OST becomes very slow and/or deadlocked during object unlink
 
Details: filter_destroy() was holding onto the parent directory lock while truncating+unlinking objects. For very large objects this may block other threads for a long time and slow overall OST responsiveness. It may also be possible to get a lock ordering deadlock in this case, or run out of journal credits because of the combined truncate+unlink. Solution is to do object truncate first in one transaction without parent lock, and then do the final unlink in a new transaction with the parent lock. This reduces the lock hold time dramatically.
 
 
Severity: major
 
Frequency: rare, 2.4 kernels only
 
Bugzilla: 9967
 
Description: MDS or OST cleanup may trip kernel BUG when dropping kernel lock
 
Details: mds_cleanup() and filter_cleanup() need to drop the kernel lock before unmounting their filesystem in order to avoid deadlock. The kernel_locked() function in 2.4 kernels only checks whether the kernel lock is held, not whether it is this process that is holding it as 2.6 kernels do.
 
 
Severity: major
 
Frequency: rare
 
Bugzilla: 9635
 
Description: MDS or OST may oops/LBUG if a client is connecting multiple times
Details: The client ptlrpc code may be trying to reconnect to a down server before a previous connection attempt has timed out. Increase the reconnect interval to be longer than the connection timeout interval to avoid sending duplicate connections to servers.
 
 
Severity: major
 
Frequency: rare, 2.6 OSTs only
 
Bugzilla: 10076
 
Description: OST may deadlock under high load on fragmented files
Details: If there was a heavy load and highly-fragmented OST filesystems it was possible to have all the OST threads deadlock waiting on allocation of biovecs, because the biovecs were not released until the entire RPC IO was completed. Instead, release biovecs as soon as they are complete to ensure forward IO progress.
 
 
Severity: major
 
Frequency: rare
 
Bugzilla: 10235
 
Description: Mounting an MDS with pending unlinked files may cause oops
 
Details: target_finish_recovery() calls mds_postrecov() which returned the number of orphans unlinked. mds_lov_connect->mds_postsetup() considers this an error and immediately begins cleaning up the lov, just after starting the mds_lov process
 
 
Severity: minor
 
Frequency: rare
 
Bugzilla: 8320
 
Description: lconf incorrectly determined whether two IP networks could talk
 
Details: In some more complicated routing and multiple-network configurations, lconf will avoid trying to make a network connection to a disjoint part of the IP space. It was doing the math incorrectly for one set of cases.
 
 
Severity: minor
 
Frequency: occasional (liblustre only)
 
Bugzilla: 6363
 
Description: liblustre could not open files whose last component is a symlink
 
Details: sysio_path_walk() would incorrectly pass the open intent to intermediate path components.
 
 
Severity: minor
 
Frequency: rare (liblustre only with non-standard tuning)
 
Bugzilla: 7201 (7350)
 
Description: Tuning the MDC DLM LRU size to zero triggers client LASSERT
 
Details: llu_lookup_finish_locks() tries to set lock data on a lock after it has been released, only do this for referenced locks
 
 
Severity: minor
 
Frequency: common for large clusters running liblustre clients
 
Bugzilla: 7198
 
Description: doing an ls when liblustre clients are running is slow
 
Details: sending a glimpse AST to a liblustre client waits for every AST to time out, as liblustre clients will not respond. Since they cannot cache data we refresh the OST lock LVB from disk instead.
 
 
Severity: minor
 
Frequency: rare (only HPUX clients mounting unsupported re-exported NFS vol)
 
Bugzilla: 5781
 
Description: an HPUX NFS client would get -EACCESS when ftruncate()ing a newly created file with mode 000
 
Details: the Linux NFS server relies on an MDS_OPEN_OWNEROVERRIDE hack to allow an ftruncate() as a non-root user to a file with mode 000. Lustre now respects this flag to disable mode checks when truncating a file owned by the user
 
 
Severity: minor
 
Frequency: liblustre-only, when liblustre client dies unexpectedly or becomes busy
 
Bugzilla: 7313
 
Description: Revoking locks from clients that went dead or catatonic might take a lot of time.
 
Details: New lock flags FL_CANCEL_ON_BLOCK used by liblustre makes cancellation of such locks instant on servers without waiting for any reply from clients. Clients drops these locks when cancel notification from server is received without replying.
 
 
Severity: minor
 
Frequency: liblustre-only, when liblustre client dies or becomes busy
 
Bugzilla: 7311
 
Description: Doing ls on Linux clients can take a long time with active liblustre clients
 
Details: Liblustre client cannot handle ASTs in timely manner, so avoid granting such locks to it in the first place if possible. Locks are taken by proxy on the OST during the read or write and dropped immediately afterward. Add connect flags handling, do not grant locks to liblustre clients for glimpse ASTs.
 
 
Severity: minor
 
Frequency: common for liblustre clients doing little filesystem IO
 
Bugzilla: 9352, 7313
 
Description: server may evict liblustre clients accessing contended locks
 
Details: if a client is granted a lock or receives a completion AST with a blocking AST already set it would not reply to the AST for LDLM_FL_CANCEL_ON_BLOCK locks. It now replies to such ASTs.
 
 
Severity: minor
 
Frequency: lfs setstripe, only systems with more than 160 OSTs
 
Bugzilla: 9440
 
Description: unable to set striping with a starting offset beyond OST 160
 
Details: llapi_create_file() incorrectly limited the starting stripe index to the maximum single-file stripe count.
 
Severity: minor
 
Frequency: LDAP users only
 
Bugzilla: 6163
 
Description: lconf did not handle in-kernel recovery with LDAP properly
 
Details: lconf/LustreDB get_refs() is searching the wrong namespace
 
 
Severity: minor
 
Frequency: if client is started with down MDS
 
Bugzilla: 7184
 
Description: if client is started with down MDS mount hangs in ptlrpc_queue_wait
 
Details: Having an LWI_INTR() wait event (interruptible, but no timeout) will wait indefinitely in ptlrpc_queue_wait->l_wait_event() after ptlrpc_import_delayed_req() because we didn't check if the request was interrupted, and we also didn't break out of the event loop if there was no timeout
 
 
Severity: minor
 
Frequency: always, if lconf --abort_recovery used
 
Bugzilla: 7047
 
Description: lconf --abort_recovery fails with 'Operation not supported'
 
Details: lconf was attempting to abort recovery on the MDT device and not the MDS device
 
 
Severity: minor
 
Frequency: rare
 
Bugzilla: 6034
 
Description: lconf didn't resolve symlinks before checking to see whether a given mountpoint was already in use
 
 
Severity: minor
 
Frequency: when migrating failover services
 
Bugzilla: 6395, 9514
 
Description: When migrating a subset of services from a node (e.g. failback from a failover service node) the remaining services would time out and evict clients.
 
Details: lconf --force (implied by --failover) sets the global obd_timeout to
5 seconds in order to quickly disconnect, but this caused other RPCs to time out too quickly. Do not change the global obd_timeout for force cleanup, only set it for DISCONNECT RPCs.
 
 
Severity: minor
 
Frequency: occasional (Cray XT3 only)
 
Bugzilla: 7305
 
Description: root not authorized to access files in CRAY_PORTALS environment
 
Details: The client process capabilities were not honoured on the MDS in a CRAY_PORTALS/CRAY_XT3 environment. If the file had previously been accessed by an authorized user then root was able to access the file on the local client also. The root user capabilities are now allowed on the MDS, as this environment has secure UID.
 
 
Severity: minor
 
Frequency: occasional
 
Bugzilla: 6449
 
Description: ldiskfs "too long searching" message happens too often
 
Details: A debugging message (otherwise harmless) prints too often on the OST console. This has been reduced to only happen when there are fragmentation problems on the filesystem.
 
 
Severity: minor
 
Frequency: rare
 
Bugzilla: 9598
 
Description: Division by zero in statfs when all OSCs are inactive
 
Details: lov_get_stripecnt() returns zero due to incorrect order of checks, lov_statfs divides by value returned by lov_get_stripecnt().
 
 
Severity: minor
 
Frequency: common
 
Bugzilla: 9489, 3273
 
Description: First write from each client to each OST was only 4kB in size, to
initialize client writeback cache, which caused sub-optimal RPCs and poor layout on disk for the first writen file.
 
Details: Clients now request an initial cache grant at (re)connect time and so that they can start streaming writes to the cache right away and always do full-sized RPCs if there is enough data. If the OST is rebooted the client also re-establishes its grant so that client cached writes will be honoured under the grant.
 
 
Severity: minor
 
Frequency: common
 
Bugzilla: 7198
 
Description: Slow ls (and stat(2) syscall) on files residing on IO-loaded OSTs
 
Details: Now I/O RPCs go to different portal number and (presumably) fast lock requests (and glimses) and other RPCs get their own service threads pool that should be able to service those RPCs immediatelly.
 
 
Severity: minor
 
Frequency: rare, liblustre only.
 
Bugzilla: 9296, 9581
 
Description: Two simultaneous writes from liblustre at offset within same page might proceed at the same time overwriting eachother with stale data.
 
Details: I/O lock withing llu_file_prwv was released too early, before data actually was hitting the wire. Extended lock-holding time until server acknowledges receiving data.
 
 
Severity: minor
 
Frequency: extremely rare. Never observed in practice.
 
Bugzilla: 9652
 
Description: avoid generating lustre_handle cookie of 0.
 
Details: class_handle_hash() generates handle cookies by incrementing global counter, and can hit 0 occasionaly (this is unlikely, but not impossible, because initial value of cookie counter is selected randonly). Value of 0 is used as a sentinel meaning "unassigned handle" --- avoid it. Also coalesce two critical sections in this function into one.
 
 
Severity: minor
 
Frequency: rare, normally only when NFS exporting is done from client
 
Bugzilla: 9301
 
Description: 'bad disk LOV MAGIC: 0x00000000' error when chown'ing files without objects
 
Details: Make mds_get_md() recognise empty md case and set lmm size to 0.
 
 
Severity: minor
 
Frequency: always, if srand() is called before liblustre initialization
 
Bugzilla: 9794
 
Description: Liblustre uses system PRNG disturbing its usage by user application
 
Details: Introduce internal to lustre fast and high-quality PRNG for lustre usage and make liblustre and some other places in generic lustre code to use it.
 
 
Severity: minor
 
Frequency: rare
 
Bugzilla: 9309
 
Description: lconf can hit an error exception but still return success.
 
Details: The lconf command catches the Command error exception at the top level script context and will exit with the associated exit status, but doesn't ensure that this exit status is non-zero.
 
 
Severity: minor
 
Frequency: rare
 
Bugzilla: 9493
 
Description: failure of ptlrpc thread startup can cause oops
 
Details: Starting a ptlrpc service thread can fail if there are a large number of threads or the server memory is very fragmented. Handle this without oopsing.
 
 
Severity: minor
 
Frequency: always, only if liblustre and non-default acceptor port was used
 
Bugzilla: 9933
 
Description: liblustre cannot connect to servers with non-default acceptor port
 
Details: tcpnal_set_default_params() was not called and was therefore ignoring the environment varaible TCPNAL_PORT, as well as other TCPNAL_ environment variables
 
 
Severity: minor
 
Frequency: rare
 
Bugzilla: 9923
 
Description: two objects could be created on the same OST for a single file
 
Details: If an OST is down, in some cases it was possible to create two objects on a single OST for a single file. No problems other than potential performance impact and spurious error messages.
 
 
Severity: minor
 
Frequency: rare
 
Bugzilla: 5681, 9562
 
Description: Client may oops in ll_unhash_aliases
 
Details: Client dcache may become inconsistent in race condition. In some cases "getcwd" can fail if the current directory is modified.
 
 
Severity: minor
 
Frequency: always
 
Bugzilla: 9942
 
Description: Inode refcounting problems in NFS export code
 
Details: link_raw functions used to call d_instantiate without obtaining extra inode reference first.
 
 
Severity: minor
 
Frequency: rare
 
Bugzilla: 9942, 9903
 
Description: Referencing freed requests leading to crash, memleaks with NFS.
 
Details: We used to require that call to ll_revalidate_it was always followed by ll_lookup_it. Also with revalidate_special() it is possible to call ll_revalidate_it() twice for the same dentry even if first occurence returned success. This fix changes semantic between DISP_ENQ_COMPLETE disposition flag to mean there is extra reference on a request referred from the intent. ll_intent_release() then releases such a request.
 
 
Severity: minor
 
Frequency: rare, normally benchmark loads only
 
Bugzilla: 1443
 
Description: unlinked inodes were kept in memory on the client
 
Details: If a client is repeatedly creating and unlinking files it can
accumulate a lot of stale inodes in the inode slab cache. If there is no other client load running this can cause the client node to run out of memory. Instead flush old inodes from client cache that have the same inode number as a new inode.
 
 
Severity: minor
 
Frequency: SLES9 2.6.5 kernel and long filenames only
 
Bugzilla: 9969, 10379
 
Description: utime reports stale NFS file handle
 
Details: SLES9 uses out-of-dentry names in some cases, which confused the lustre dentry revalidation. Change it to always use the in-dentry qstr.
 
 
Severity: minor
 
Frequency: echo_client brw_test command
 
Bugzilla: 9919
 
Description: fix echo_client to work with OST preallocated code
Details: OST preallocation code (5137) didn't take echo_client IO path into account: echo_client calls filter methods outside of any OST thread and, hence, there is no per-thread preallocated pages and buffers to use. Solution: hijack pga pages for IO. As a byproduct, this avoids unnecessary data copying.
 
 
Severity: minor
 
Frequency: rare
 
Bugzilla: 3555, 5962, 6025, 6155, 6296, 9574
 
Description: Client can oops in mdc_commit_close() after open replay
 
Details: It was possible for the MDS to return an open request with no transaction number in mds_finish_transno() if the client was evicted, but without actually returning an error. Clients would later try to replay that open and may trip an assertion Simplify the client close codepath, and always return an error from the MDS in case the open is not successful.
 
 
=Changes from v1.4.4 to v1.4.5=
 
Severity: enhancement
 
Frequency: occasional, if non-standard max_dirty_mb used
 
Bugzilla: 7138
 
Description: Client will block write RPCs if not enough grant
 
Details: If a client has max_dirty_mb smaller than max_rpcs_in_flight, then the client will block writes while waiting for another RPC to complete instead of consuming its dirty limit. With change we get improved performance when max_dirty_mb is small.
 
 
Severity: enhancement
 
Bugzilla: 3389, 6253
 
Description: Add support for supplementary groups on the MDS.
 
Details: The MDS has an upcall /proc/fs/lustre/mds/{mds}/group_upcall (set to /usr/sbin/l_getgroups if enabled) which will do MDS-side lookups for user supplementary groups into a cache.
 
 
Severity: enhancement
 
Bugzilla: 6902
 
Description: Add ability to evict clients by NID from MDS.
 
Details: By echoing "nid:$NID" string into /proc/fs/lustre/mds/.../evict_client client with nid that equals to $NID would be instantly evicted from this MDS and from all active OSTs connected to it.
 
 
Severity: major
 
Frequency: rare
 
Bugzilla: 7264
 
Description: Mounting an ldiskfs file system with mballoc may crash OST node.
 
Details: ldiskfs mballoc code may reference an uninitialized buddy struct at startup during orphan unlinking. Instead, skip buddy update before setup, as it will be regenerated after recovery is complete.
 
 
Severity: minor
 
Frequency: rare
 
Bugzilla: 7039
 
Description: If an OST is inactive, its locks might reference stale inodes.
 
Details: lov_change_cbdata() must iterate over all namespaces, even if they are inactive to clear inode references from the lock.
 
 
Severity: minor
 
Bugzilla: 7278
 
Description: O_CREAT|O_EXCL open flags in liblustre always return -EEXIST
 
Details: Make libsysio to not enforce O_EXCL by clearing the flag, for liblustre O_EXCL is enforced by MDS.
 
 
Severity: minor
 
Bugzilla: 6455
 
Description: readdir never returns NULL in liblustre.
 
Details: Corrected llu_iop_getdirentries logic, to return offset of next dentry in struct dirent.
 
 
Severity: minor
 
Bugzilla: 7137
 
Frequency: liblustre only, depends on application IO pattern
 
Description: liblustre clients evicted if not contacting servers
 
Details: Don't put liblustre clients into the ping_evictor list, so they will not be evicted by the pinger ever.
 
 
Severity: minor
 
Bugzilla: 7198
 
Description: Do not query file size twice, somewhat slowing stat(2) calls.
 
Details: lookup_it_finish() used to query file size from OSTs that was not needed.
 
 
Severity: minor
 
Bugzilla: 6237
 
Description: service threads change working directory to that of init
 
Details: Starting lustre service threads may pin the working directory of the parent thread, making that filesystem busy. Threads now change to the working directory of init to avoid this.
 
 
Severity: minor
 
Bugzilla: 6827
 
Frequency: during shutdown only
 
Description: shutdown with a failed MDS or OST can cause unmount to hang
 
Details: Don't resend DISCONNECT messages in ptlrpc_disconnect_import() if server is down.
 
 
Severity: minor
 
Bugzilla: 7331
 
Frequency: 2.6 only
 
Description: chmod/chown may include an extra supplementary group
 
Details: ll{,u}_mdc_pack_op_data() does not properly initialize the supplementary group and if none is specified this is used.
 
 
Severity: minor
 
Bugzilla: 5479 (6816)
 
Frequency: rare
 
Description: Racing open + rm can assert client in mdc_set_open_replay_data()
 
Details: If lookup is in progress on a file that is unlinked we might try to revalidate the inode and fail in revalidate after lookup is complete and ll_file_open() enqueues the open again but it_open_error() was not checking DISP_OPEN_OPEN errors correctly.
 
 
Severity: minor
 
Frequency: always, if lconf --abort_recovery used
 
Bugzilla: 7047
 
Description: lconf --abort_recovery fails with 'Operation not supported'
 
Details: lconf was attempting to abort recovery on the MDT device and not the MDS device
 
=Changes from v1.4.3 to v1.4.4=
 
Severity: enhancement
 
Bugzilla: 7015
 
Description: Addition of lconf --service command line option
 
Details: lconf now accepts a '--service <arg>' option, which is shorthand for 'lconf --group <arg> --select <arg>=<hostname>'
 
Severity: enhancement
 
Bugzilla: 6101
 
Description: Failover mode is now the default for OSTs.
 
Details: By default, OSTs will now run in failover mode. To return to the old behaviour, add '--failout' to the lmc line for OSTs.
 
Severity: enhancement
 
Bugzilla: 1693
 
Description: Health checks are now provided for MDS and OSTs
 
Details: Additional detailed health check information on MSD and OSTs is now provided through the procfs health_check value.
 
 
Severity: critical
 
Bugzilla: 6866
 
Frequency: rare, only 2.6 kernels
 
Description: Unusual file access patterns on the MDS may result in inode data being lost in very rare circumstances.
 
Details: Bad interaction between the ea-in-inode patch and the "no-read" code in the 2.6 kernel caused the inode and/or EA data not to be read from disk, causing single-file corruption.
 
 
Severity: critical
 
Bugzilla: 6998
 
Frequency: rare, only 2.6 filesystems using extents
 
Description: Heavy concurrent write and delete load may cause data corruption.
 
Details: It was possible under high-load situations to have an extent metadata block in the block device cache from a just-unlinked file overwrite a newly-allocated data block. We now unmap any metadata buffers that alias just-allocated data blocks.
 
 
Severity: major
 
Frequency: rare (only unsupported configurations with a node running as an OST
and a client)
 
Bugzilla: 6514, 5137
 
Description: Mounting a Lustre file system on a node running as an OST could lead to deadlocks
 
Details: OSTs now preallocates memory needed to write out data at startup, instead of when needed, to avoid having to allocate memory in possibly low memory situations. Specifically, if the file system is mounted on on OST, memory pressure could force it to try to write out data, which it needed to allocate memory to do. Due to the low memory, it would be unable to do so and the node would become unresponsive.
 
 
Severity: major
 
Bugzilla: 6302
 
Frequency: rare
 
Description: Network or server problems during mount may cause partially mounted clients instead of returning an error.
 
Details: The config llog parsing code may overwrite the error return code during mount error handling, returning success instead of an error.
 
 
Severity: minor
 
Frequency: occasional, depends on IO load
 
Bugzilla: 4466
 
Description: Disk fragmentation on the OSTs could eventually cause slowdowns after numerous create/delete cycles
 
Details: The ext3 inode allocation policy would not allocate new inodes very well on the OSTs because there are no new directories being created. Instead we look for groups with free space if the parent directories are nearly full.
 
 
Severity: minor
 
Bugzilla: 6422
 
Frequency: rare
 
Description: MDS can fail to allocate large reply buffers
 
Details: After long uptimes the MDS can fail to allocate large reply buffers (e.g. zconf client mount config records) due to memory fragmentation or consumption by the buffer cache. Preallocate some large reply buffers so that these replies can be sent even under memory pressure.
 
 
Severity: minor
 
Bugzilla: 6266
 
Frequency: rare (liblustre)
 
Description: fsx running with liblustre complained that using truncate() to extend the file doesn't work. This patch corrects that issue.
 
Details: This is the liblustre equivalent of the fix for bug 6196. Fixes ATTR_SIZE and lsm use in llu_setattr_raw.
 
 
Severity: minor
 
Bugzilla: 7241
 
Frequency: filesystems with default stripe_count larger than 77
 
Description: lconf+mke2fs fail when formatting filesystem with > 77 stripes
 
Details: lconf specifies an inode size of 4096 bytes when the default stripe_count is larger than 77. This conflicts with the default inode density of 1 per 4096 bytes. Allocate smaller inodes in this case to avoid pinning too much memory for large EAs.
 
=Changes from v1.4.2 to v1.4.3=
 
Severity: enhancement
 
Bugzilla: 5902
 
Description: New debugging infrastructure for tracking down data corruption
 
Details: The I/O checksum code was replaced to: (a) control it at runtime, (b) cover more of the client-side code path, and (c) try to narrow down where problems occurred
 
 
Severity: enhancement
 
Bugzilla: 6296
 
Description: Default groups are now added by lconf
 
Details: You can now run lconf --group <servicename> without having to manually add groups with lmc.
 
 
Severity: enhancement
 
Description: The default stripe count has been changed to 1
 
Details: The interpretation of the default stripe count (0, to lfs or lmc) has been changed to mean striping across a single OST, rather than all available. For general usage we have found a stripe count of 1 or 2 works best.
 
 
Severity: enhancement
 
Description: Add support for compiling against Cray portals.
 
Details: Conditional compiling for some areas that are different on Cray Portals.
 
 
Severity: enhancement
 
Bugzilla: 6931
 
Description: Initial enabling of flock support for clients
 
Details: Implements fcntl advisory locking and file status functions. This feature is provided as an optional mount flag (default off), and is NOT CURRENTLY SUPPORTED. Not all types of record locking are implemented yet, and those that are are not guaranteed to be completely correct in production environments. mount -t lustre -o [flock|noflock] ...
 
 
Severity: major
 
Frequency: occasional during --force or --failover shutdown under load
 
Bugzilla: 5949, 4834
 
Description: Server oops/LBUG if stopped with --force or --failover under load
 
Details: a collection of import/export refcount and cleanup ordering issues fixed for safer force cleanup
 
 
Severity: major
 
Frequency: only filesystems larger than 120 OSTs
 
Bugzilla: 5990, 6223
 
Description: lfs getstripe would oops on a very large filesystem
 
Details: lov_getconfig used kfree on vmalloc'd memory
 
 
Severity: major
 
Frequency: rare
 
Bugzilla: 6200
 
Description: A bug in MDS/OSS recovery could cause the OSS to fail an assertion
 
Details: There's little harm in aborting MDS/OSS recovery and letting it try again, so I removed the LASSERT and return an error instead.
 
 
Severity: major
 
Frequency: rare
 
Bugzilla: 3819, 4364, 4397, 6313
 
Description: Racing close and eviction MDS could cause assertion in mds_close
 
Details: It was possible to get multiple mfd references during close and client eviction, leading to one thread referencing a freed mfd. Severity:: enhancement
 
Bugzilla: 3262, 6359
 
Description: Attempts to reconnect to servers are now more aggressive.
 
Details: This builds on the enhanced upcall-less recovery that was added in
1.4.2. When trying to reconnect to servers, clients will now try each server in the failover group every 10 seconds. By default, clients would previously try one server every 25 seconds.
 
 
Severity: major
 
Frequency: rare
 
Bugzilla: 6371
 
Description: After recovery, certain operations trigger a failed assertion on a client.
 
Details: Failing over an mds, using lconf -d --failover, while a client was doing a readdir() call would cause the client to LBUG after recovery completed and the readdir() was resent.
 
 
Severity: major
 
Frequency: occasional
 
Bugzilla: 6412
 
Description: Nodes with an elan id of 0 trigger a failed assertion
 
 
Severity: major
 
Frequency: Only if a default stripe is set on the filesystem root.
 
Bugzilla: 6367
 
Description: Setting a default stripe on the filesystem root prevented the filesystem from being remounted.
 
Details: The client was sending extra request flags in the root getattr
request and did not allocate a reply buffer for the dir EA.
 
 
Severity: major
 
Frequency: occasional, higher if lots of files are accessed by one client
 
Bugzilla: 6159, 6097
 
Description: Client trips assertion regarding lsm mismatch/magic
 
Details: While revalidating inodes the VFS looks up inodes with ifind() and in rare cases can find an inode that is being freed. The ll_test_inode() code will free the lsm during ifind() when it finds an existing inode and then the VFS later attaches this free lsm to a new inode.
 
 
Severity: major
 
Frequency: rare
 
Bugzilla: 6422, 7030
 
Description: MDS deadlock between mkdir and client eviction
 
Details: Creating a new file via mkdir or mknod (starting a transaction and getting the ns lock) can deadlock with client eviction (gets ns lock and trying to finish a synchronous transaction).
 
 
Severity: major
 
Frequency: occasional
 
Bugzilla: 6409, 6834
 
Description: Creating files with an explicit stripe count may lead to a failed assertion on the MDS
 
Details: If some OSTs are full or unavailable, creating files may trigger a failed assertion on the MDS. Now, Lustre will try to use other servers or return an error to the client.
 
 
Severity: major
 
Frequency: occasional
 
Bugzilla: 6198
 
Description: OSTs running 2.4 kernels but with extents enabled might trip an assertion in the ext3 JBD (journaling) layer.
 
Details: The b_committed_data struct is protected by the big kernel lock in 2.4 kernels, serializing journal_commit_transaction() and ext3_get_block_handle->ext3_new_block->find_next_usable_block() access to this struct. In 2.6 kernels there is finer grained locking to improve SMP performance of the JBD layer.
 
 
Severity: minor
 
Frequency: rare (extremely heavy IO load with hundreds of clients)
 
Bugzilla: 6172
 
Description: Client is evicted, gets IO error writing to file
 
Details: lock ordering changes for bug 5492 reintroduced bug 3267 and caused clients to be evicted for AST timeouts. The fixes in bug 5192 mean we no longer need to have such short AST timeouts so ldlm_timeout has been increased.
 
 
Severity: minor
 
Frequency: only filesystems exporting via NFS to Solaris 10 clients
 
Bugzilla: 6242, 6243
 
Description: reading from files that had been truncated to a non-zero size but never opened returned no data
 
Details: ll_file_read() reads zeros from no-object files to EOF
 
 
Severity: minor
 
Frequency: always when accessing e.g. tty/console device nodes
 
Bugzilla: 3790
 
Description: tty and some other devices nodes cannot be used on lustre
 
Details: file's private_data field is used by device data and lustre values in there got lost. New field was added to struct file to store fs-specific private data.
 
 
Severity: minor
 
Frequency: when exporting Lustre via NFS
 
Bugzilla: 5275
 
Description: NFSD failed occasionally when looking up a path component
 
Details: NFSD is looking up ".." which was broken in ext3 directories that had grown large enough to become hashed.
 
 
Severity: minor
 
Frequency: Clusters with multiple interfaces not on the same subnet
 
Bugzilla: 5541
 
Description: Nodes will repeatedly try to reconnect to an interface which it
cannot reach and report an error to the log.
 
Details: Extra peer list entries will be created by lconf with some peers unreachable. lconf now validates the peer before adding it.
 
 
Severity: minor
 
Frequency: occasional
 
Description: While starting a server, the fsfilt_ext3 module could not be loaded.
 
Details: CFS's improved ext3 filesystem is named ldiskfs for 2.6 kernels. Previously, lconf would still use the ext3 name when trying to load modules. Now, it will correctly use ext3 on 2.4 and ldiskfs on 2.6.
 
 
Severity: minor
 
Frequency: occasional
 
Bugzilla: 6469
 
Description: Multiple concurrent overlapping read+write on multiple SMP nodes caused lock timeout during readahead (since 1.4.2).
 
Details: Processes doing readahead might match a lock that hasn't been granted yet if there are overlapping and conflicting lock requests. The readahead process waits on ungranted lock (original lock is CBPENDING), while OST waits for that process to cancel CBPENDING read lock and eventually evicts client.
 
 
Severity: minor
 
Bugzilla: 6147
 
Description: Changes the "SCSI I/O Stats" kernel patch to default to "enabled"
 
=Changes from v1.4.1 to v1.4.2=
 
Note: Lustre 1.4.2 uses a network protocol incompatible with previous versions of Lustre.
Please update all servers and clients to version 1.4.2 or later at the same time. You must also update the configuration logs.
 
If you get AttributeErrors when running lconf, see the Knowledge Base.
 
 
Severity: Enhancement
 
Description: Upcalls are no longer needed for clients to recover to failover
servers. (3262)
 
 
Severity: Enhancement
 
Description: When creating new directories, inherit the parent's custom striping settings if present. (3048)
 
 
Severity: Enhancement
 
Description: Servers are now more enthusiastic about evicting unresponsive clients, which increases the likliness of successful recovery. (5921)
 
 
Severity: Enhancement
 
Description: Quadrics Elan drivers are now included in our kernel for the RHEL 3 2.4 and SLES 9 2.6 kernels.
 
 
Severity: Enhancement
 
Description: Changes to the network protocols were made to increase interoperability with future versions of Lustre. This reduces the need to upgrade whole clusters at a time. (6007)
 
 
Severity: Enhancement
 
Description: Protocol changes to support quota were added in this release. Actual quota functionality will be present in a future release.
 
 
Severity: Enhancement
 
Description: Mixed endian and word size environments are now supported.
 
 
Severity: Enhancement
 
Description: Change the default MDS formatting parameters to create more inodes (1 per 4 kB, instead of 1 per 8 kB).
 
 
Severity: Enhancement
 
Description: If you know recovery will not succeed, you can now run "lconf --abort-recovery <config.xml>" instead of waiting for recovery to timeout. (6017)
 
 
Severity: Enhancement
 
Description: Another limit on the number of OSTs was removed. (3026)
 
 
Severity: Enhancement
 
Description: Improved lustre status init script.
 
 
Severity: Enhancement
 
Description: With large configurations, lconf performance is much improved. (6204)
 
 
Severity: Enhancement
 
Description: Increased the maximum number of obd devices to 520. (6242)
 
 
Severity: Major
 
Frequency: Only on clients using zconf mounting and the unsupported SLES 2.4 kernel
 
Description: The zero-copy TCP patch was causing data corruption, and has been removed. (5902)
 
 
Severity: Major
 
Frequency: Occasional
 
Description: Under load, incorrect locking could lead to client hangs and watchdog timeouts on servers. (6077)
 
 
Severity: Major
 
Frequency: Rare
 
Description: A race condition could lead to failed assertions on a client. (5666)
 
 
Severity: Major
 
Frequency: Rare
 
Description: Disk I/O errors in 2.6 would usually lead to a server panic. (6046)
 
 
Severity: Major
 
Frequency: Occasional
 
Description: The fix for 4908 (in 1.4.1 RC1) was not quite complete, and could lead to a failed assertion requiring a reboot. (5653)
 
 
Severity: Major
 
Frequency: Occasional
 
Description: Avoid lock ordering deadlock issue with write/truncate. (6203,5654)
 
 
Severity: Major
 
Frequency: Rare
 
Description: Some setattr calls on striped files could lead to a server panic. (4554)
 
 
Severity: Major
 
Frequency: Rare
 
Description: A locking error path could lead to a failed assertion. (6149, 6148)
 
 
Severity: Major
 
Frequency: Rare (Only on clusters with ~200 servers) Description: Clients on filesystems with a large number of servers are unable to create files. (5707)
 
 
Severity: Major
 
Frequency: Rare (Only on big-endian clients with a large number of servers)
 
Description: Big-endian clients on filesystems with a large number of servers could oops when mounting. (5861)
 
 
Severity: Minor
 
Frequency: Rare (Only when exporting Lustre over NFS to HP-UX clients)
 
Description: HP-UX clients would get an error opening a file with O_TRUNC. (5781)
 
 
Severity: Minor
 
Frequency: Occasional
 
Description: In certain cases the Lustre software watchdog could be easily triggered, causing an unnecessary number of messages to be printed to the log files. (5515)
 
 
Severity: Minor
 
Frequency: Occasional
 
Description: Renaming one directory over another would leak an inode, causing errors if e2fsck was run. (5953)
 
 
Severity: Major
 
Frequency: Occasional (only on 2.6 systems)
 
Description: A subtle change from Linux 2.4 to 2.6 could lead to client threads hanging indefinitely. It would only happen if a timeout occurred in just the right place, but would affect all threads attempting to do I/O -- to any file system -- until the node was rebooted. (5981)
 
 
Severity: Minor
 
Frequency: Occasional
 
Description: Display the correct file size in create+truncate+fstat case. (6196)
 
 
Severity: Minor
 
Frequency: Rare
 
Description: Correctly handle dentries for mountpoints. (5907)
 
 
Severity: Minor
 
Frequency: Rare
 
Description: A race condition could lead to extraneous error messages about lvbo_update. (6170)
 
 
Severity: Minor
 
Frequency: Rare (Solaris 10 NFS clients)
 
Description: Correctly handle reads of files with no objects. (6243, 6264)
 
 
Severity: Minor
 
Frequency: Rare (only after administrative deactivation of a client/server connection)
 
Description: lctl recover will also mark a device active if deactivate was used. (5933)
 
 
Severity: Minor
 
Frequency: Rare
 
Description: Configurations for clients with different nettypes are now properly stored on the MDS. (5619)
 
 
Severity: Minor
 
Frequency: Rare
 
Description: Configurations for filesystems not available from an MDS are no longer stored on that MDS. This speeds up the reformat/write_conf process. (5617)
 
 
Severity: Minor
 
Frequency: Rare
 
Description: lconf now creates multiple connections when routed OSTs are used. (5201)
 
 
Severity: Minor
 
Description: Init scripts are now turned off by default; run chkconfig --on lustre and chkconfig --on lustrefs to turn them on.
 
 
Severity: Minor
 
Frequency: Occasional
 
Description: Some modules that were autoloaded are now removed when Lustre is shut down using lconf.
 
 
Severity: Minor
 
Frequency: Rare
 
Description: Limit stripes per file to 160 (the maximum EA size). (6093)
 
=Changes from v1.4.1 RC1 to v1.4.1 Final=
 
==(If you are upgrading from v1.4.0, please also read the changes for v1.4.0 to v1.4.1 RC1)==
 
Severity: Enhancement
 
Description: Support has been added for the RHEL 4 kernel on i686. (5773)
 
 
Severity: Enhancement
 
Description: Improved error messages have been added in some situations, including at service startup, during recovery, for socket errors, and when incompatible (Lustre 1.4.2+) configuration logs are encountered. (5898, 5864)
 
 
Severity: Enhancement
 
Description: mount.lustre now accepts common mount arguments that the client VFS handles for us, such as nodev, nosuid, and noexec. (5637)
 
 
Severity: Major
 
Frequency: Common, when serving NFS from a lustre client
 
Description: When serving NFS from a Lustre client, heavy NFS operations could cause a failed assertion on the Lustre client. Note that although we have not yet made significant improvements to NFS performance, some people do it anyway. (4655, 5760)
 
 
Severity: Major
 
Frequency: Rare
 
Description: A 2.6-specific race condition could produce crashes (in "ll_unhash_aliases") under load (5687, 5210)
 
 
Severity: Major
 
Frequency: Rare
 
Description: If a client tries to mount when some OSTs are down, the OST may think it is already connected, and the client will be unable to mount. (5317)
 
 
Severity: Major
 
Frequency: Rare
 
Description: A number of client deadlocks have been fixed; these were most often on 2.6, but could in some rare cases affect 2.4. (5492, 5624, 5654, 5672)
 
 
Severity: Major
 
Frequency: Rare
 
Description: An incorrect error path in the lock manager could lead to out-of-sync clients, and long delays while waiting on invalid locks. These delays would affect only certain files, and would never go away until the node was rebooted. (5779)
 
 
Severity: Major
 
Frequency: Rare
 
Description: Occasionally the MDS would grant locks to clients that had been evicted, eventually causing the MDS to lock up. (5683)
 
 
Severity: Major
 
Frequency: Rare
 
Description: Creating a file whose name begins with . in an unlinked directory could cause an oops. (5548)
 
 
Severity: Major
 
Frequency: Rare, only on 2.6
 
Description: There was a tiny window in the I/O path where, if a thread doing I/O received an interrupt from the disk subsystem to complete a previous I/O, the OSSwould deadlock. (5811)
 
 
Severity: Major
 
Frequency: Rare, only on servers with extents enabled
 
Description: When corruption is encountered on an ext3 filesystem using extents, errors are now returned instead of causing a panic. (5733)
 
 
Severity: Major
 
Frequency: Only on servers with extents enabled
 
Description: Directories are no longer created using extents to ensure
compatibility with all versions of e2fsck. (5909, 5936)
 
 
Severity: Major
 
Frequency: Common, only on 64-bit servers with mballoc enabled
 
Description: Fixed 64-bit alignment access, and other mballoc fixes. The code will automatically repair the file system. (5733, 5638)
 
 
Severity: Minor in 2.4, Major in 2.6
 
Frequency: Rare
 
Description: SUID bug (5695) kernel version 43: fix remove_suid bugs in both 2.4 and 2.6. In 2.4 it would cause a minor loss of functionality; in 2.6 it would ASSERT. (5695)
 
 
Severity: Minor
 
Frequency: Common, only on SuSE
 
Description: The init scripts now work on SuSE Linux. (5702)
 
 
Severity: Minor
 
Frequency: Common, only on 64 bit systems
 
Description: lconf and lmc will now look in /usr/lib64 for Python libraries. (5800)
 
 
Severity: Minor
 
Frequency: Common if you tried to fail-back, rare otherwise
 
Description: Many fixes when running lconf --force or lconf --failover were made. (3607, 3651, 4797, 5203, 4834)
 
 
Severity: Minor
 
Frequency: Rare
 
Description: Files occasionally have mtime in the future. (4829, 5669)
 
 
Severity: Minor
 
Frequency: Rare
 
Description: Some internal timers did not handle wrapping time values leading to stalled recovery. (5882)
 
 
Severity: Minor
 
Frequency: Rare
 
Description: When trying to open a file whose parent directory doesn't exist, fix a memory leak and add a negative lookup. (5154)
 
 
=Changes from v1.4.0 to v1.4.1 RC1 (release candidate; not certified for production use)=
 
Severity: enhancement
 
Description: proper mmap locking has been landed again, with considerable
improvements from the initial attempt in v1.2.7. This will correct a class of errors which could normally manifest themselves in two ways:
 
#running a binary on node A, then overwriting it on node B, would not cause node A to download a fresh copy. At best, subsequent executions would run the old binary; at worst, the executable would crash, likely with "bus error"
 
#if the binary had a stripe count greater than 1, and was large enough that it would be spread across multiple OSTs, then a "bus error" crash was common
 
 
Although we have made every effort to thoroughly test this new version, because there were serious problems with the previous mmap code, we are releasing this 1.4.1 release candidate in the hopes that users with test systems can thoroughly stress-test this build before we certify it for production use.
 
Severity: major
 
Frequency: rare
 
Description: after a backend disk failure which caused some objects to be lost, it was possible to crash an OSS while trying to read data from that object. (5265)
 
 
Severity: major
 
Frequency: rare
 
Description: some confusion with lists and locks could lead to an unfortunate list corruption, with the effect of making a server evict the same client, for the same lock, in an infinite loop. (4908)
 
 
Severity: minor
 
Frequency: rare
 
Description: an unlikely error at just the right time could leak a Lustre DLM lock on the client, and cause an assertion at shutdown. This was fixed by cleaning up the lock properly after the server indicates an error. (4238)
 
 
Severity: major
 
Frequency: common
 
Description: we have received many reports of the VM failing to do its job of discarding unused pages from the page cache, under memory pressure. As a workaround, we try to alleviate this pressure by setting a maximum amount of memory that Lustre will allow to be used by pages in the page cache under Lustre's control. (4699)
 
 
Severity: major
 
Frequency: very rare
 
Description: an unlikely error at just the right time could leave a page dirty and locked; this page would never be unlocked, and could cause a deadlock or failure to unmount the file system. (3677)
 
 
Severity: major
 
Frequency: common
 
Description: if a user attempted to open() a symlink, that request would be incorrectly saved for later replay during recovery. This replayed request would cause an assertion on the MDS. (3440)
 
 
Severity: major
 
Frequency: very rare
 
Description: if an Elan server disappeared from the network fabric in the middle of a zero-copy bulk read, the client would cleanup improperly, and trigger an assertion in the Elan driver. (4012)
 
 
Severity: minor
 
Frequency: common
 
Description: fix some small memory leaks in the RPC handling error paths.(5406)
 
 
Severity: major
 
Frequency: very rare
 
Description: if some Lustre threads start, but others fail, then a list could be left corrupted. (5160)
 
 
Severity: major
 
Frequency: common
 
Description: an off-by-one error in the readahead code could cause it to readahead an extra page, not covered by a lock, which would then stick around in the page cache for a long time. (5388)
 
 
Severity: minor
 
Frequency: very rare
 
Description: if multiple processes attempt to manipulate OBD objects (like running multiple "lconf" instances at once), incorrect locking could cause a crash on that node. (5260)
 
 
Severity: major
 
Frequency: very rare
 
Description: a race condition in the sync() path left the MDs open to a theoretical crash. (5458)
 
 
Severity: major
 
Frequency: common
 
Description: the new multi-block ext3 allocator (mballoc) would try to allocate too many contiguous pages, which could often fail on systems with fragmented memory. Poor error checking in this case would cause a crash. Both have been fixed. (5504)
 
 
Severity: major
 
Frequency: always
 
Description: patches were added to the SLES9 2.6 series to address problems in the block device and scsi disk layers. Both had I/O size limits which were too low, and caused serious performance degradation. (5482)
 
 
Severity: major
 
Frequency: common
 
Description: the ordering of two inode semaphores changed between Linux 2.4 and 2.6, but it was not documented anywhere. As a result, Lustre still unconditionally took them in the wrong order, which could cause a deadlock if two processes on the same node tried to simultaneously truncate the same file. (5654)
 
 
Severity: minor
 
Frequency: common
 
Description: configurations including multiple TCP devices would cause lconf to try to start multiple acceptors, unless you specified different ports for each. (5277)
 
 
Severity: major
 
Frequency: very rare
 
Description: a lookup failure in MDS getattr could cause an MDS crash by not handing the error correctly. (5635)
 
 
Severity: minor
 
Frequency: common
 
Description: now we return the same kinds of errors that mount(8) does, at least, from our lustre mount handler. Better errors are coming. (5168)
 
 
Severity: minor
 
Frequency: common
 
Description: the ppc64/x86_64 spec files were fixed to use %{_libdir} instead of /usr/lib (5389)
 
 
Severity: major
 
Frequency: common
 
Description: some kernels would block for memory during readahead in low-memory situations, instead of just failing. This was fixed with a kernel patch to expose a different allocation API. (5383)
 
 
Severity: enhancement
 
Description: at some point we lost the ability to do a Lustre ping from userspace; this has been replaced as liblustreapi:llapi_ping, which uses a /proc file on the backend. This has the side effect of fixing "lfs check" to return an error instead of block when the MDS is down. (5628)
 
=Changes from v1.2.8 to v1.4.0=
 
Severity: Enhancement
 
Description: prototype InfiniBand NALs were added to the tree
 
 
Severity: Enhancement
 
Description: support for ext3 disk extents and the optimized multi-block allocator were added, to improve I/O performance
 
 
Severity: Enhancement
 
Description: the OSS now performes direct I/O reads, as it has always done for writes, bypassing the poorly-performing page cache (4048)
 
 
Severity: Enhancement
 
Description: the logical object volume (LOV) was rewritten more sensibly; many bugs were fixed in the process, and the subsystem will be easier to maintain and extend.
 
 
Severity: minor
 
Frequency: small, temporary memory leak is guaranteed; crash is extremely rare
 
Description: OST read/write RPC replies did not contain a "last committed" transaction number, so they were being pinned in memory on the client side for longer than necessary. In one extreme case, consisting of an I/O pattern with absolutely no other RPCs, many thousands were pinned in this way until memory was exhausted. (4966)
 
 
Severity: minor
 
Frequency: always
 
Description: the kernel primitive that we used in the software watchdog thread caused it to run as uninterruptible, thus artificially increasing the load on the system to a minimum of 1.00 at all times. (5246)
 
 
Severity: minor
 
Frequency: rare
 
Description: an acute memory shortage at startup could cause an assertion in at least one place, which we now handle gracefully. (5176)
 
 
Severity: minor
 
Frequency: rare
 
Description: failing to allocate memory in one particular spot in the RPC transmit path would cause an assertion (5119)
 
 
Severity: minor
 
Frequency: rare
 
Description: on Portals router nodes, dumping the internal state via /proc/sys/portals/routes could cause the system to oops if the routing table was changing at that instant (4827)
 
 
Severity: Enhancement
 
Description: Some fixes were made to the flock/lockf code, but it's still disabled (pending 5135)
 
=Changes from v1.2.7 to v1.2.8=
 
Severity: major
 
Frequency: very common
 
Description: a defect in the 1.2.7 networking code caused small messages (stat, create, etc.) to move very slowly over TCP/IP.
 
 
Severity: minor
 
Frequency: common
 
Description: users should notice a more accurate "mtime" during and after file writes
 
 
Severity: minor
 
Frequency: rare
 
Description: an issue was fixed in which the signals sent by "strace" could cause a Lustre RPC to abort too soon
 
 
Severity: minor
 
Frequency: rare
 
Description: if an asynchronous write fails (because a server disk has failed, for example), we now do our best to tell the application that issued the write (although it may not always be possible)
 
 
Severity: major
 
Frequency: common
 
Description: Lustre 1.2.7 contained a partial fix for problems which, in certain cases, prevented binaries from being executed properly when stored in Lustre. This introduced different problems, so this code has been removed from 1.2.8 -- mmap support has reverted to the same state as in 1.2.6. A proper fix will appear in an early 1.4.x release.
 
 
Severity: severe
 
Frequency: rare
 
Description: An issue was fixed which could cause a page to be incorrectly partially zeroed on the server (resulting in data loss of between 1 and PAGE_SIZE-1 bytes). This was extremely rare, and most likely when using large-page (IA64) clients to write to small-page (IA32, x86-64) servers.
 
 
Severity: minor
 
Frequency: common
 
Description: Mounting Lustre could result in significantly-degraded NFS read performance on the same node, because Lustre disables kernel readahead in favour of its own. We now do this in a way that does not impact other file systems.
 
*allocate qswnal tx descriptors singly to avoid fragmentation (4504)
 
*don't LBUG on obdo_alloc() failure, use OBD_SLAB_ALLOC() (4800)
 
*fix NULL dereference in /proc/sys/portals/routes (4827)
 
*allow failed mdc_close() operations to be interrupted (4561)
 
*stop precreate on OST before MDS would time out on it (4778)
 
*discard client grant for sub-page writes on large-page clients (4520)
 
*don't free dentries not owned by NFS code, check generation (4806)
 
*fix lsm leak if mds_create_objects() fails (4801)
 
*limit debug_daemon file size, always print CERROR messages (4789)
 
*use transno after validating reply (3892)
 
*process timed out requests if import state changes (3754)
 
*update mtime on OST during writes, return in glimpse (4829)
 
*add mkfsoptions to LDAP (4679)
 
*fix socknal refcount leak preventing cleanup on failed socket (4805)
 
*add software watchdogs to catch hung threads quickly (4941)
 
*make lustrefs init script start after nfs is mounted
 
*fix CWARN/ERROR duplication (4930)
 
*support for sles 9 %post scripts
 
*support for building 2.6 kernel-source packages
 
*support for sles km_* packages
 
=Changes from v1.2.6 to v1.2.7=
avoid deadlock during client->OST recovery handling
 
avoid allocating new objects on OSTs that are full
 
use privileged source ports for client->{MDS,OST} connections
deny non-priviledged connections at server by default
 
Note: Because the servers will reject connections from non-privileged ports by default, it is necessary to update the clients before, or at the same time as the servers. It is not possible to update only the servers unless you specifically disable this security feature.
 
rate-limit console error and warning messages
 
handle mmap()ed regions coherently, by using the Lustre DLM. This will correct the "Bus error" symptom occasionally seen when running modified binaries from Lustre.


ignore -ENOENT errors in osc_destroy (3639)
Description: Enable lctl's peer_list for MXLND
notify osc create thread that OSC is being cleaned up (4600)
add nettype argument for llmount in #5d in conf-sanity.sh (3936)
reconstruct ost_handle() like mds_handle() (4657)
create a new thread to do import eviction to avoid deadlock (3969)
let lconf resolve symlinked-to devices (4629)
allow more than 32,000 subdirectories in a single directory (3244)
fix i_blocks count for O_DIRECT writes (3751)
OST returns ENOSPC from object create when no space left (4539)
don't send truncate RPC if file size isn't changing (4410)
limit OSC precreate to 1/2 of value OST considers bogus (4778)
rate limit CERROR/CWARN console message to avoid overload (4519)
GETFILEINFO dir ioctl returns LOV EA + MDS stat in 1 call (3327)
Changes from v1.2.5 to v1.2.6
avoid crash during MDS cleanup with OST shut down (2775)
fix loi_list_lock/oig_lock inversion on interrupted IO (4136)
don't use bad inodes on the MDS (3744)
dynamic object preallocation to improve recovery speed (4236)
don't hold spinlock over lock dumping or change debug flags (4401)
don't zero obd_dev when it is force cleaned (3651)
print grants to console if they go negative (4431)
"lctl deactivate" will stop automatic recovery attempts (3406)
look for existing locks in ldlm_handle_enqueue() (3764)
don't resolve lock handle twice in recovery avoiding race (4401)
Changes from v1.2.4 to v1.2.5
MDS->OST orphan recovery fixes
reduce lock hold times that may have caused timeouts under load
VFS fixes to avoid using invalid dentries
don't close LustreDB during write_conf until it is done (3860)
fix typo in lconf for_each_profile (3821)
allow dumping logs from multiple threads at one time (3820)
don't allow multiple threads in OSC recovery(3812)
fix debug_size parameters (3864)
fix mds_postrecov to initialize import for llog ctxt (3121)
replace config semaphore with spinlock (3306)
be sure to send a reply for a CANCEL rpc with bad export (3863)
don't allow enqueue to complete on a destroyed export (3822)
down write_lock before checking llog header bitmap (3825)
recover from lock replay timeout (3764)
up llog sem before sending rpc (3652)
reduce ns lock hold times when setting kms (3267)
change a dlm LBUG to LASSERTF, to maybe learn something (4228)
fix NULL deref and obd_dev leak on setup error (3312)
replace some LBUG about llog ops with error handling (3841)
don't match INVALID dentries from d_lookup and spin (3784)
hold dcache_lock while marking dentries INVALID and hashing (4255)
miscellania
add libwrap support for the TCP acceptor (3996)
add /proc/sys/portals/routes for non-root route listing (3994)
allow setting MDS UUID in .xml (2580)
print the stack of a process that LBUGs (4228)
Changes from v1.2.3 to v1.2.4
improved IO performance
client recovery fixes
lower overhead for Lustre debugging logs
init scripts for starting Lustre
don't cleanup request in ll_file_open() on failed MDS open (3430)
make sure to unset replay flag from failed open requests (3440)
if default stripe count is 0, use OST count for inode size (3636)
update parent mtime/ctime on client for create/unlink (2611)
drop dentry ref in ext3_add_link from open_connect_dentry (3266)
free recovery state on server during a forced cleanup (3571)
unregister_reply for resent reqs (3063)
loop back devices mounting and status check on 2.6 (3563)
fix resource-creation race that can provoke i_size == 0 (3513)
don't try to use bad inodes returned from MDS/OST fs lookup (3688)
more debugging for page-accounting assertion (3746)
return -ENOENT instead of asserting if ost getattr+unlink race (3558)
avoid deadlock after precreation failure (3758)
fix race and lock order deadlock in orphan handling (3450, 3750)
add validity checks when grabbing inodes from l_ast_data (3599)
miscellania
add /proc/.../recovery_status to obdfilter (3428)
lightweight CDEBUG infrastructure, debug daemon (3668)
change default OSC RPC parameters to be better on small clusters
turn off OST read cache for files smaller than 32MB
install man pages and include them in rpms (3100)
add new init script for (un)mounting lustre filesystems (2593)
run chkconfig in %post for init scripts (3701)
drop scimac NAL (unmaintained)
Changes from v1.2.2 to v1.2.3
recoverable OST fixes
other recovery fixes
scheduling hang in newer kernels fixed
clean kiobufs before and after use (3485)
strip trailing '/'s before comparing paths with /proc/mounts (3486)
remove assertions to work around "in-flight rpcs" recovery bug (3063)
change init script to fail more clearly if not run as root (1528)
allow clients to reconnect during replay (1742)
fix ns_lock/i_sem lock ordering deadlock for kms update (3477)
don't do DNS lookups on NIDs too small for IP addresses (3442)
re-awaken ptlrpcd if new requests arrive during check_set (3554)
fix cond_resched (3554)
only evict unfinished clients after recovery (3515)
allow bulk resend, prevent data loss (3570)
dynamic ptlrpc request buffer allocation (2102)
don't allow unlinking open directory if it isn't empty (2904)
set MDS/OST threads to umask 0 to not clobber client modes (3359)
remove extraneous obd dereference causing LASSERT failure (3334)
don't use get_cycles() when creating temp. files on the mds (3156)
hold i_sem when setting i_size in ll_extent_lock() (3564)
miscellania
servers can dump a log evicting a client - lustre.dump_on_timeout=1
fix ksocknal_fmb_callback() error messages (2918)
Changes from v1.2.1 to v1.2.2
Linux 2.6 SuSE kernel support is significantly improved
More recovery fixes
don't copy lvb into (possibly NULL) reply on error (2983)
don't deref dentry after dput, don't free lvb on error (2922)
use the kms to determine writeback rpc length (2947)
increment oti_logcookies when osc is inactive (2948)
update client's i_blocks count via lvb messages (2543)
handle intent open/close of special files properly (1557)
mount MDS with errors=remount-ro, like obdfilter (2009)
initialize lock handle to avoid ASSERT on error cleanup (3057)
don't use cancelling-locks' kms values (2947)
use highest lock extent for kms, not last one (2925)
don't dereference ERR_PTR() dentry in error handling path (3107)
fix thread race in portals_debug_dumplog() (3122)
create lprocfs device entries at setup instead of at attach (1519)
common AST error handler, don't evict client on completion race (3145)
zero nameidata in detach_mnt in 2.6 (3118)
verify d_inode after revalidate_special is valid in 2.6 (3116)
use lustre_put_super() to handle zconf unmounts in 2.6 (3064)
initialize RPC timeout timer earlier for 2.6 (3219)
don't dereference NULL reply buffer if mdc_close was never sent (2410)
print nal/nid for unknown nid (3258)
additional checks for oscc recovery before doing precreate (3284)
fix ll_extent_lock() error return code for 64-bit systems (3043)
don't crash in mdc_close for bad permissions on open (3285)
zero i_rdev for non-device files (3147)
clear page->private before handing to FS, better assertion (3119)
fix incorrect decref of invalidated dentry (2350)
don't hold journal transaction open across create RPC (3313)
update atime on MDS at close time (3265)
close LDAP connection when recovering to avoid server load (3315)
update iopen-2.6 patch with fixes from 2399,2517,2904 (3301)
don't leak open file on MDS after open resend (3325)
serialize filter_precreate and filter_destroy_precreated (3329)
loop device shouldn't call sync_dev() for nul device (3092)
clear page cache after eviction (2766)
resynchronize MDS->OST in background (2824)
refuse to mount the same filesystem twice on same mountpoint (3394)
allow llmount to create routes for mounting behind routers (3320)
push lock cancellation to blocking thread for glimpse ASTs (3409)
don't call osc_set_data_with_check() for TEST_LOCK matches (3159)
fix rare problem with rename on htree directories (3417)
miscellania
allow default OST striping configuration per directory (1414)
fix compilation for qswnal for 2.6 kernels (3125)
increase maximum number of MDS request buffers for large systems
change liblustreapi to be useful for external progs like lfsck (3098)
increase local configuration timeout for slow disks (3353)
allow configuring ldlm AST timeout - lustre.ldlm_timeout=<seconds>
Changes from v1.2 to v1.2.1
improved support for Linux 2.6.x
fixes for glimpse AST timeouts / incorrectly 0-sized files (2818)
don't overwrite extent policy data in reply if lock was blocked (2901)
drop filter export grants atomically with removal from device (2663)
del obd_self_export from work_list in class_disconnect_exports (2908)
don't LBUG if MDS recovery times out during orphan cleanup (2530)
swab reply message in mdc_close, other PPC fixes (2464)
fix destroying of named logs (2325)
overwrite old logs when running lconf --write_conf (2264)
bump LLOG_CHUNKSIZE to 8k to allow for more OSTs (2306)
fix race in target_handle_connect (2898)
mds_reint_create() should take same inode create lock (2926)
correct journal credits calculated for CANCEL_UNLINK_LOG (2931)
don't close files for self_export to avoid uninitialized obd (2936)
allow MDS with the same name as client node (2939)
hold dentry reference for closed log files for unlink (2325)
reserve space for all logs during transactions (2059)
don't evict page beyond end of stripe extent (2925)
don't oops on a deleted current working directory (2399)
handle hard links to targets without a parent properly (2517)
don't dereference NULL lock when racing during eviction (2867)
don't grow lock extents when there are lots of conflicting locks (2919)
Changes from v1.0.4 to v1.2
ENOSPC is properly handled, to avoid data loss when disks become full (974)
protocol optimizations allow for faster stat() calls while other nodes are writing to a file (1021)
reads no longer exclude all writes from the same file (1021)
orphan handling to avoid leaking space on client/server crashes
fewer journal credits needed for writes, to improve parallelism (2370)
fixes for running a small-page-size MDS with large-page-size clients (2777)
dozes of less user-visible bugs, detailed below
lfsck support in lustre kernel code (2349)
ptlrpcd can be blocked, stopping all progress (2477)
takes i_sem instead of DLM locks internally on obdfilter (2720)
recovery for initial connections (2355)
fixes for mds_cleanup_orphans (1934)
abort_recovery crashes MDS in b_eq (mds_unlink_orphan) (2584)
block all file creations until orphan recovery completes (1901)
client remove rq_connection from request struct (2423)
conf-sanity test_5, proper cleanup in umount log not availale (2640)
recovery timer race (2670)
mdc_close recovey bug (2532)
ptlrpc cleanup bug (2710)
mds timeout on local locks (2588)
namespace lock held during RPCs (2431)
handle interrupted sync write properly (2503)
don't try to handle a message that hasn't been replied to (2699)
client assert failure during cleanup after abort recovery (2701)
leak mdc device after failed mount (2712)
ptlrpc_check_set allows timedout requests to complete (2714)
wait for inflight reqs when ptlrpcd finishes (2710)
make sure unregistered services are removed from the srv_list
reset bulk XID's when resending them (caught by 1138 test)
unregister_bulk after timeout
handle write after unfinished setstripe, stripe-only getstripe (2388)
readahead locks pages, leaves pending causing memory pressure (2673)
increase OST request buffers to 4096 on large machines (2729)
fix up permission of existing directories in simple_mkdir (2661)
init deleted item, add assertions ptlrpc_abort_inflight() (2725)
don't assign transno to errored transactions (2742)
don't delete objects on OST if given a bogus objid from MDS (2751)
if rq_no_resend, then timeout request after recovery (2432)
fix MDS llog_logid record size, 64-bit array alignment (2733)
don't call usermode_helper from ptlrpcd, DEFAULT upcall (2773)
put magic in mount.lustre data, check for bad/NULL mount data (2529)
MDS recovery shouldn't delete objects that it has given out (2730)
don't unlock pages twice when trigger_group_io returns error (2814)
don't deref NULL rq_repmsg if ldlm_handle_enqueue failed (2822)
don't write pages to disk if there was an error (1450)
don't ping imports that have recovery disabled (2676)
take buffered bytes into account when balancing socknal conn (2817)
hold a DLM lock over readdir always, use truncate_inode_pages (2706)
reconnect unlink llog connection after MDS reconnects to OST (2816)
remove little-endian swabbing of llog records (1987)
set/limit i_blksize to LL_MAX_BLKSIZE on client (2884)
retry reposting request buffers if they fail (1191)
grow extent at grant time to avoid granting a revoked lock (2809)
lock revoke doesn't evict page if covered by a second lock (2765)
disable VM readahead to avoid reading outside lock extents (2805)
return LL_SUPER_MAGIC from statfs for the filesystem type (1972)
updated kernel patches for hp-2.4.20 kernel (2681)
Changes from v1.0.3 to v1.0.4
fix truncated write corruption (2366)
zero end of page at obdfilter for partial page writes (2648)
fix for failed assertion in iopen_connect_dentry (1792, 2517)
don't flag the ptlrpcd thread with PF_MEMALLOC (2636)
ensure len(uuid) < 37 in lmc (1171)
don't leave stale dentries around after renames (bug 2428)
fix timeouts when evicting a client with a single lock held (2642)
set deadline for the initial HELLO message to drain (2634)
print out dotted-quad IP addresses in the socknal (2302)
additional debugging for MDS client eviction problem (2443)
fix mkfsoptions support for osts (2603, 2604)
Changes from v1.0.2 to v1.0.3
added kernel patch series for vanilla 2.6.0 and vanilla 2.4.24
fix object leak when renaming a file to itself (2429)
fix "lfs find --obd" (2510)
add a /proc tunable to disable the obdfilter's read cache (2591)
disable nagle in the socknal under 0conf to improve MDS performance (2578)
fix several bugs in the kernel-source RPM (2516)
add --disable-doc to avoid PDF generation (2421)
add --ptldebug and --subsystem to lmc (1719)
don't take the new-inode lock after a failed creation (2362)
allocate memory with _NOFS in the DLM to avoid deadlock (1933)
when a client is evicted, wake threads waiting for locks (2460)
recalculate the rpcd timeout after resend (2494)
call vfs_rmdir when removing "pending" directories in recovery (2368)
lmc now creates a default one-stripe lov (2454)
expand procfs space to handle large clusters (2326)
stop LDAP rpm packages from altering slapd.conf (2301)
choose MDS inode size based on stripe count (2572)
avoid format warnings on ia64
updated documentation
Changes from v1.0.1 to v1.0.2
change default debug level to reasonable production setting
reduce client side cache size to reduce cache flush time
reduce max RPCs in flight to avoid unnecessary file fragmentation
make TCP zerocopy and pinger support enabled by default (2476)
sync writes completed after process exits caused crashes (2319)
better file I/O statistics gathering in /proc
don't take unnecessary, deadlock-inducing bug in readpage (2383)
another kernel patch to fix zero-copy TCP function export
don't take duplicate lock when processing re-sent getattr (2420)
MDS/OST recovery case which requires object creation asserted (2425)
move lfs from /usr/sbin to /usr/bin in packages
fix race between mds_client_add and mds_client_free (2417)
use kmalloc instead of slabs in portals (2430)
don't create duplicate records when a failover MDS is present (2442)
remove unnecessary mount age check (2332)
don't remove directory inodes from locks prematurely (2451)
don't break if MDS service name is the same as hostname (2103)
fix races in client write RPC generation when cache full (2482)
Changes from v1.0 to v1.0.1
some users reported problems building the kernel or Lustre, with an error about "UTS_RELEASE". This problem was caused by building an SMP kernel with a non-SMP /boot/kernel.h, or vice versa. The kernel source RPM supplied with v1.0.1 should correct this issue.
many changes which reduce the likelihood of memory allocation failures
fix a category of lock inversions in the MDS getattr/reint paths
fix three other rare lock inversion or i_sem/journal inversion bugs
fix NULL dereference crash in certain OST startup failure cases
fix a race condition in the lock manager which could allow delinquent clients to avoid eviction
protect MDS inode fsdata with stronger locking, to prevent an assertion during MDS_CLOSE operations
avoid cancelling a lock which was never granted, which causes an assertion, after a lock match failure
fix two rare exit paths which could leak an internal lock reference
fencepost error in MDS/OST orphan recovery
lstripe now fails when the requested offset > OST count
ensure that all kernel patch series have a complete list.h
better error messages when a client is rejected during recovery
changes to the log format, to allow zero-conf configurations with more than 100 OSTs
fix gcc 2.96 compilation problem in xattr kernel patch
x86-64 compile warning fixes
small update to the lfs documentation

Latest revision as of 06:38, 22 February 2010

(Updated: Jun 2009)

Changes from v1.6.7.1 to v1.6.7.2

Support for networks:

  • socklnd - any kernel supported by Lustre™
  • qswlnd - Qsnet kernel modules 5.20 and later
  • openiblnd - IbGold 1.8.2
  • o2iblnd - OFED 1.1, 1.2.0, 1.2.5, and 1.3.1
  • viblnd - Voltaire ibhost 3.4.5 and later
  • ciblnd - Topspin 3.2.0
  • iiblnd - Infiniserv 3.3 + PathBits patch
  • gmlnd - GM 2.1.22 and later
  • mxlnd - MX 1.2.1 or later
  • ptllnd - Portals 3.3 / UNICOS/lc 1.5.x, 2.0.x

Support for kernels:

  • 2.6.5-7.314 (SLES 9)
  • 2.6.9-78.0.22.EL (RHEL 4)
  • 2.6.16.60-0.37 (SLES 10)
  • 2.6.18-92.1.26.el5 (RHEL 5)
  • 2.6.22.14 vanilla (kernel.org)

Client support for unpatched kernels: (see Patchless Client)

  • 2.6.16 - 2.6.22 vanilla (kernel.org)

Client support for unpatched kernels:

  • We do not recommend using patchless RHEL4 clients with kernels prior to 2.6.9-55EL (RHEL4U5).

Recommended e2fsprogs version: 1.40.11-sun1

RHEL 4 and RHEL 5/SLES 10 clients behaves differently on cd ./ to a removed current working directory (refer to bugzilla 14399.

A new quota file format was introduced in 1.6.6 (for 2.6.16+ kernels). The format conversion from prior releases is handled transparently, but releases older than 1.6.6/1.8.0 don't understand this new format. The automatic format conversion can be avoided by running the following commands on the MDS and OSS servers (for pre 1.4.12-1.6.5 quota files):

tunefs.lustre --param="mdt.quota_type=ug1" $MDTDEV
tunefs.lustre --param="ost.quota_type=ug1" $MDTDEV

or (for 1.4.12/1.6.5 quota files)

tunefs.lustre --param="mdt.quota_type=ug2" $MDTDEV
tunefs.lustre --param="ost.quota_type=ug2" $MDTDEV

For more information, please refer to bugzilla 13904.


Output of lfs quota has been made less detailed by default, old (verbose) output can be obtained by using -v option.

File join has been disabled in this release. Refer to bugzilla 16929.

A new Lustre ADIO driver is available for MPICH2-1.0.7.

NFS export disabled when stack size < 8192. Since the NFSv4 export of Lustre file system with 4K stack may cause a stack overflow. For more information, please refer to bugzilla 17630

Severity: enhancement
Description: Update kernel to RHEL5.2 2.6.18-92.1.26.

Severity: critical, only with RHEL4/SLES9 MDS
Description: user xattr corruption
Details: setting extended attributes can corrupt other attributes stored in the inode body. Both user & lustre internal (LOV EA) attributes are concerned. In the latter case, the lustre filesystem can be damaged.

Severity: enhancement
Description: Update kernel to RHEL4.7 2.6.9-78.0.22.

Severity: enhancement
Description: allow the use of the kernel provided OFED stack
Details: This patch allows for lbuild to use the OFED stack provided by the kernel vendor. For the RHEL4 and RHEL5 kernels, we enable the kernel supplied OFED stack.

Severity: enhancement
Description: improve lctl set/get_param
Details: handle the bad options, support more than one arguments, add '-F' option to append the indicator to the parameters.

Severity: enhancement
Description: Update kernel to SLES10 SP2 2.6.16.60-0.37.

Severity: major
Frequency: rare
Description: fix lqs' reference which won't be put in some situations.
Details: This patch fixes:

  • In quota_check_common(), this function will check quota for user and group, but only send one return via "pending". In most cases, the pendings should be same. But that is not always the case.
  • If quotaoff runs between lquota_chkquota() and lquota_pending_commit(), the same thing will happen too. That is why it comes:
if (!ll_sb_any_quota_active(qctxt->lqc_sb))
       RETURN(0);

Changes from v1.6.7 to v1.6.7.1

Support for networks:

  • socklnd - any kernel supported by Lustre
  • qswlnd - Qsnet kernel modules 5.20 and later
  • openiblnd - IbGold 1.8.2
  • o2iblnd - OFED 1.1, 1.2.0, 1.2.5, and 1.3.1
  • viblnd - Voltaire ibhost 3.4.5 and later
  • ciblnd - Topspin 3.2.0
  • iiblnd - Infiniserv 3.3 + PathBits patch
  • gmlnd - GM 2.1.22 and later
  • mxlnd - MX 1.2.1 or later
  • ptllnd - Portals 3.3 / UNICOS/lc 1.5.x, 2.0.x

Support for kernels:

  • 2.6.5-7.314 (SLES 9)
  • 2.6.9-67.0.22.EL (RHEL 4)
  • 2.6.16.60-0.31 (SLES 10)
  • 2.6.18-92.1.17.el5 (RHEL 5)
  • 2.6.22.14 vanilla (kernel.org)

Client support for unpatched kernels: (see Patchless Client)

  • 2.6.16 - 2.6.22 vanilla (kernel.org)

Client support for unpatched kernels:

  • We do not recommend using patchless RHEL4 clients with kernels prior to 2.6.9-55EL (RHEL4U5).

Recommended e2fsprogs version: 1.40.11-sun1

Note that reiserfs quotas are disabled on SLES 10 in this kernel.

RHEL 4 and RHEL 5/SLES 10 clients behaves differently on cd ./ to a removed current working directory (refer to bugzilla 14399.

A new quota file format has been introduced in 1.6.5. The format conversion from prior releases is handled transparently, but releases older than 1.4.12/1.6.5 will not understand this new format. The automatic format conversion can be avoided by running the following command on the MDS before upgrading:

tunefs.lustre --param="mdt.quota_type=ug1" $MDTDEV

For more information, please refer to bugzilla 13904.

A new quota file format was introduced in 1.6.6 (for 2.6.16+ kernels). The format conversion from prior releases is handled transparently, but releases older than 1.6.6/1.8.0 don't understand this new format. The automatic format conversion can be avoided by running the following commands on the MDS and OSS servers (for pre 1.4.12-1.6.5 quota files):

tunefs.lustre --param="mdt.quota_type=ug1" $MDTDEV
tunefs.lustre --param="ost.quota_type=ug1" $MDTDEV

or (for 1.4.12/1.6.5 quota files)

tunefs.lustre --param="mdt.quota_type=ug2" $MDTDEV
tunefs.lustre --param="ost.quota_type=ug2" $MDTDEV

For more information, please refer to bugzilla 13904.

Output of lfs quota has been made less detailed by default, old (verbose) output can be obtained by using -v option.

File join has been disabled in this release, refer to bugzilla 16929.

A new Lustre ADIO driver is available for MPICH2-1.0.7.

NFS export disabled when stack size < 8192. Since the NFSv4 export of Lustre filesystem with 4K stack may cause a stack overflow. For more information, please refer to bugzilla 17630.

Severity: major
Frequency  : rare
Description: fix racy locking of mballoc block bitmaps causing BUG
Details: The locking of the mballoc buddy bitmap and the in-memory block bitmap was using two different spin locks in some cases. This made it possible to incorrectly access the mballoc bitmap while another process was modifying it, causing a sanity assertion to fail. While no on-disk corruption was reported, there was some risk of this happening.

Frequency: common
Description: correct count of recoverable clients
Details: if recovery failed for client for some reasons (goal inode or something else) server can wait failed clients for finish recovery.

Severity: critical
Frequency: when directories had atime set in past (e.g. untar)
Descriptoin: Lustre detected file system corruption with inode out of bounds
Details: don't update i_size on MDS_CLOSE for directories. This causes directory corruptions on the MDT.

Severity: normal
Frequency: on failed service startup
Description: replay-single test_61d: LustreError: 17392:0:(lprocfs_status.c:859:lprocfs_obd_cleanup()) ASSERTION(obd->obd_proc_exports_entry->subdir == NULL) failed
Details: cleanup lprocfs entries on error.

Severity: normal
Frequency: rare
Description: llmount.sh: BUG: spinlock wrong owner on CPU#0, mount.lustre/8180
Details: fix typo in import_set_conn() causing spinlock corruption.

Severity: normal
Frequency: rare, only when using group lock on client
Description: Group Lock in Lustre: write call is blocking
Details: fix wrong return code of ll_is_file_contended() causing processes to be blocked indefinitely.

Severity: normal
Frequency: rare
Description: ASSERTION(new_lock != NULL) failed:op 0x1 lockh 0x0
Details: DISP_OPEN_LOCK is not cleared properly in reconstruct_open() since intent_disposition() is used instead of intent_set_disposition().

Severity: major
Frequency: occasional when using software RAID5
Description: raid5 panics
Details: fix panic in raid5_end_read_request().

Changes from v1.6.6 to v1.6.7

Support for networks:

  • socklnd - any kernel supported by Lustre
  • qswlnd - Qsnet kernel modules 5.20 and later
  • openiblnd - IbGold 1.8.2
  • o2iblnd - OFED 1.1, 1.2.0, 1.2.5, and 1.3.1
  • viblnd - Voltaire ibhost 3.4.5 and later
  • ciblnd - Topspin 3.2.0
  • iiblnd - Infiniserv 3.3 + PathBits patch
  • gmlnd - GM 2.1.22 and later
  • mxlnd - MX 1.2.1 or later
  • ptllnd - Portals 3.3 / UNICOS/lc 1.5.x, 2.0.x

Support for kernels:

  • 2.6.5-7.314 (SLES 9)
  • 2.6.9-67.0.22.EL (RHEL 4)
  • 2.6.16.60-0.31 (SLES 10)
  • 2.6.18-92.1.17.el5 (RHEL 5)
  • 2.6.22.14 vanilla (kernel.org)

Client support for unpatched kernels: (see Patchless_Client)

  • 2.6.16 - 2.6.22 vanilla (kernel.org)

Client support for unpatched kernels:

  • We do not recommend using patchless RHEL4 clients with kernels prior to 2.6.9-55EL (RHEL4U5).

Recommended e2fsprogs version: 1.40.11-sun1

Note that reiserfs quotas are disabled on SLES 10 in this kernel.

RHEL 4 and RHEL 5/SLES 10 clients behaves differently on cd ./ to a removed current working directory (refer to bugzilla 14399.

A new quota file format has been introduced in 1.6.5. The format conversion from prior releases is handled transparently, but releases older than 1.4.12/1.6.5 will not understand this new format. The automatic format conversion can be avoided by running the following command on the MDS before upgrading:

tunefs.lustre --param="mdt.quota_type=ug1" $MDTDEV

For more information, please refer to bugzilla 13904.

A new quota file format was introduced in 1.6.6 (for 2.6.16+ kernels). The format conversion from prior releases is handled transparently, but releases older than 1.6.6/1.8.0 don't understand this new format. The automatic format conversion can be avoided by running the following commands on the MDS and OSS servers (for pre 1.4.12-1.6.5 quota files):

tunefs.lustre --param="mdt.quota_type=ug1" $MDTDEV
tunefs.lustre --param="ost.quota_type=ug1" $MDTDEV

or (for 1.4.12/1.6.5 quota files)

tunefs.lustre --param="mdt.quota_type=ug2" $MDTDEV
tunefs.lustre --param="ost.quota_type=ug2" $MDTDEV

For more information, please refer to bugzilla 13904.

Severity: normal
Description: Get RAID stripe size from superblock
Details: RAID striping parameters are now saved in the superblock itself, so we should use these parameters instead of having to specify a mount option each time.

Severity: major
Description: Disable big-endian ldiskfs server support.
Details: The ldiskfs code is not tested on big-endian machines, and there are known compatibility problems in the extents code when running for most of the kernels. Print an error message and refuse to mount, in case anyone tests this. For existing file systems that might have been created in this way it is possible to mount with the "bigendian_extents" option to force the mount.


Severity: major
Description: workaround for OOM from o2iblnd
Details: OFED needs allocate big chunk of memory for QP while creating connection for o2iblnd, OOM can happen if no such a contiguous memory chunk. QP size is decided by concurrent_sends and max_fragments of o2iblnd, now we permit user to specify smaller value for concurrent_sends of o2iblnd(i.e: concurrent_sends=7), which will decrease memory block size required by creating QP.

Severity: major
Description: Support Zerocopy receive of Chelsio device
Details: Chelsio driver can support zerocopy for iov[1] if it's contiguous and large enough.

Severity: normal
Description: fix credit flow deadlock in uptllnd

Severity: normal
Description: finalize network operation in reasonable time
Details: conf-sanity test_32a couldn't stop ost and mds because it tried to access non-existent peer and tcp connect took quite long before timing out.

Severity: major
Description: Continuous recovery on 33 of 413 nodes after lustre oss failure
Details: Lost reference on conn prevents peer from being destroyed, which could prevent new peer creation if peer count has reached upper limit.

Severity: normal
Description: LNET Selftest results in Soft lockup on OSS CPU
Details: only hits when 8 or more o2ib clients involved and a session is torn down with 'lst end_session' without preceeding 'lst stop'.

Severity: minor
Description: concurrent_sends in IB LNDs should not be changeable at run time Details: concurrent_sends in IB LNDs should not be changeable at run time

Severity: normal
Frequency: rare
Description: panic in mds_open
Details: don't confuse mds_finish_transno() with PTR_ERR(-ENOENT)

Severity: normal
Frequency: rare
Description: stuck in cache_remove_extent() or panic with accessing to already freed look.
Details: release lock refernce only after add page to pages list.

Severity: normal
Frequency: always with long access acl
Descriptoin: mds can't pack reply with long acl.
Details: mds don't control size of acl but they limited by reint/getattr reply buffer.

Severity: normal
Frequency: start MDS on uncleanly shutdowned MDS device
Description: aborting recovery hang on MDS
Details: don't throttle destroy RPCs for the MDT.

Severity: major
Frequency: on remount
Description: external journal device not working after the remount
Details: clear dev_rdonly flag for external journal devices in blkdev_put()

Severity: minor
Frequency: rare
Description: shutdown vs evict race
Details: client_disconnect_export vs connect request race. if client will evicted at this time - we start invalidate thread without referece to import and import can be freed at same time.

Severity: minor
Frequency: always
Description: shrink LOV EAs before replying
Details: correctly adjust LOV EA buffer for reply.

Severity: normal
Frequency: rare
Description: don't skip ost target if they assigned to file
Details: Drop slow OSCs if we can, but not for requested start idx. This means "if OSC is slow and it is not the requested start OST, then it can be skipped, otherwise skip it only if it is inactive/recovering/out-of-space.

Severity: enhancement
Description: Update to RHEL5 kernel-2.6.18-92.1.17.el5.

Severity: normal
Frequency: rare, need ACLs on inode.
Description: client can't handle ost additional correctly
Details: if ost was added after client connected to mds client can have hit lnet_try_match_md ... to big messages to wide striped files. in this case need teach client to handle config events about add lov target and update client max ea size at that event.

Severity: enhancement
Description: Update to sles9 kernel-2.6.5-7.314.

Severity: enhancement
Description: Update to SLES10 SP2 kernel-2.6.16.60-0.31.

Severity: normal
Frequency: Create a symlink file with a very long name
Description: ldlm_cancel_pack()) ASSERTION(max >= dlm->lock_count + count)
Details: If there is no extra space in the request for early cancels, ldlm_req_handles_avail() returns 0 instead of a negative value.

Severity: major
Frequency: rare, during racing unlink and create in same directory
Description: mds is deadlocked
Details: in rare cases, inode in directory can have inode number lower than parent inode number. This produces wrong locking order during open and parallel unlink. Teach mds_open to grab locks in inode number order, not parent -> child order.

Severity: enhancement
Description: Add /proc entry for import status
Details: The mdc, osc, and mgc import directories now have an import directory that contains useful import data for debugging connection problems.

Severity: enhancement
Description: Re-disable certain /proc logging
Details: Enable and disable client's offset_stats, extents_stats and extents_stats_per_process stats logging on the fly.

Severity: enhancement
Description: Generic /proc file permissions
Details: Set /Proc file permissions in a more generic way to enable non-root users operate on some /proc files.

Severity: major
Description: Hitting mdc_commit_close() ASSERTION
Details: Properly handle request reference release in ll_release_openhandle().

Severity: normal
Description: Prevent import from entering FULL state when server in recovery

Severity: normal
Frequency: only with devices that have a ':' in the name
Description: service mount cannot take device name with ':'
Details: Only when device name contains ":/" will mount treat it as client mount.

Severity: normal
Frequency: rare
Description: replace ptlrpcd with the statahead thread to interpret the async statahead RPC callback

Severity: normal
Frequency: on recovery
Description: I/O failures after umount during fail back
Details: if client reconnected to restarted server we need join to recovery instead of find server handler is changed and process self eviction with cancel all locks.

Severity: enhancement
Description: Update to RHEL5 kernel-2.6.18-92.1.10.el5.

Severity: enhancement
Description: Update to SLES10 SP2 kernel-2.6.16.60-0.27.

Severity: enhancement
Description: Upcall on Lustre log has been dumped
Details: Allow for a user mode script to be called once a Lustre log has been dumped. It passes the filename of the dumped log to the script, the location of the script can be specified via /proc/sys/lnet/debug_log_upcall.

Severity: minor
Frequency: rare
Description: avoid messages about idr_remove called for unallocated id.
Details: Move s_dev assigment for clustered NFS to end of initialization, to avoid problem with error handling.

Severity: minor
Frequency: rare
Description: avoid Already found the key in hash [CONN_UNUSED_HASH] messages
Details: When connection is reused this not moved from CONN_UNUSED_HASH into CONN_USED_HASH and this prodice warning when put connection again in unused hash.

Severity: enhancement
Description: Export bytes_read/bytes_write count on OSC/OST.

Severity: normal
Description: Early reply size mismatch, MGC loses connection
Details: Apply the MGS_CONNECT_SUPPORTED mask at reconnect time so the connect flags are properly negotiated.

Severity: major
Description: quota recovery deadlock during mds failover
Details: This patch includes att18982, att18236, att18237 in bz14840.
Problems solved:

  • Fix osts hang when mds does failover with quotaon
  • Prevent watchdog storm when osts threads wait for the recovery of mds

Severity: enhancement
Description: Add lustre_start utility to start or stop multiple Lustre servers from a CSV file.

Severity: normal
Description: kptllnd_peer_check_sends() ASSERTION(!in_interrupt()) failed
Details: fix stack overflow in distributed lock manager by defering export eviction after a failed callback to the ELT thread instead of handling it in the DLM interpret routine.

Severity: enhancement
Description: More exported tunables for mballoc
Details: Add support for tunable preallocation window and new tunables for large/small requests

Severity: normal
Description: Detect corruption of block bitmap and checking for preallocations
Details: Checks validity of on-disk block bitmap. Also it does better checking of number of applied preallocations. When corruption is found, it turns file system read-only to prevent further corruptions.

Severity: normal
Description: ll_read_ahead_pages()) ASSERTION(page_idx > ria->ria_stoff) failed
Details: Once the unmatched stride IO mode is detected, shrink the stride-ahead window to 0. If it does hit cache miss, and read pattern is still stride-io mode, does not reset the stride window, but also does not increase the stride window length in this case.

Severity: normal
Frequency: only for big-endian servers
Description: Check if system is big-endian while mounting fs with extents
Details: Mounting a file system with extents feature will fail on big-endian systems since ext3-based ldiskfs is not supported on big-endian systems. Can be bypassed with "bigendian_extents" mount option.

Severity: normal
Description: Excessive recovery window
Details: With AT enabled, the recovery window can be excessively long (6000+ seconds). To address this problem, we no longer use OBD_RECOVERY_FACTOR when extending the recovery window (the connect timeout no longer depends on the service time, it is set to INITIAL_CONNECT_TIMEOUT now) and clients report the old service time via pb_service_time.

Severity: normal
Description: Watchdog triggered on MDS failover
Details: enable OBD_CONNECT_MDT flag when connecting from the MDS so that the OSTs know that the MDS "UUID" can be reused for the same export from a different NID, so we do not need to wait for the export to be evicted.

Severity: normal
Frequency: start MDS on uncleanly shutdowned MDS device
Description: ll_sync thread stay in waiting mds<>ost recovery finished
Details: fix race due to two ll_sync threads processing the same lov target causing random failures in various tests. The solution is to send ACTIVATE event only if connect already finished and import is in FULL state.

Severity: major
Frequency: rare, only if using MMP with Linux RAID
Description: MMP doesn't work with Linux RAID
Details: While using HA for Lustre servers with Linux RAID, it is possible that MMP will not detect multiple mounts. To make this work we need to unplug the device queue in RAID when the MMP block is being written. Also while reading the MMP block, we should read it from disk and not the cached one.

Changes from v1.6.5.1 to v1.6.6

Support for networks:
socklnd - any kernel supported by Lustre
qswlnd - Qsnet kernel modules 5.20 and later
openiblnd - IbGold 1.8.2
o2iblnd - OFED 1.1, 1.2.0, 1.2.5, and 1.3.1
viblnd - Voltaire ibhost 3.4.5 and later
ciblnd - Topspin 3.2.0
iiblnd - Infiniserv 3.3 + PathBits patch
gmlnd - GM 2.1.22 and later
mxlnd - MX 1.2.1 or later
ptllnd - Portals 3.3 / UNICOS/lc 1.5.x, 2.0.x

Support for kernels:
2.6.5-7.312 (SLES 9)
2.6.9-67.0.22.EL (RHEL 4)
2.6.16.60-0.27 (SLES 10)
2.6.18-92.1.10.el5 (RHEL 5)
2.6.22.14 vanilla (kernel.org)

Client support for unpatched kernels: (see Patchless Client)
2.6.16 - 2.6.22 vanilla (kernel.org)

Recommended e2fsprogs version: 1.40.11-sun1

Note that reiserfs quotas are disabled on SLES 10 in this kernel.

RHEL 4 and RHEL 5/SLES 10 clients behaves differently on 'cd ./' to a removed current working directory (refer to bugzilla 14399

A new quota file format has been introduced in 1.6.5. The format conversion from prior releases is handled transparently, but releases older than 1.4.12/1.6.5 will not understand this new format. The automatic format conversion can be avoided by running the following command on the MDS before upgrading:

    'tunefs.lustre --param="mdt.quota_type=ug1" $MDTDEV'.

For more information, please refer to bugzilla 13904

Severity: normal
Description: ptl_send_rpc hits LASSERT when ptl_send_buf fails
Details: only hits under out-of-memory situations

Severity: enhancement
Description: Add support for downgrading pools-striped files
Details: The MDS can understand the new LOV magic from pool striped files and will automatically convert them to the standard striping format for clients (pools will be available in a future release).

Severity: normal
Frequency: occasionally, only on patchless client
Description: add workaround for race between add/remove dentry from hash

Severity: minor
Frequency: only during testing
Description: LBUG when llog conf file is full
Details: When llog bitmap is full, ENOSPC should be returned for plain log.

Severity: normal
Frequency: occasionally, during recovery
Description: Prevent import from entering FULL state when server in recovery

Severity: normal
Frequency: rare
Description: replace ptlrpcd with the statahead thread to interpret the async statahead RPC callback

Severity: normal
Frequency: on recovery
Description: I/O failures after umount during fail back
Details: if client reconnected to restarted server we need join to recovery instead of find server handler is changed and process self eviction with cancel all locks.

Severity: enhancement
Description: Update to RHEL5 kernel-2.6.18-92.1.10.el5.

Severity: enhancement
Description: Update to SLES10 SP2 kernel-2.6.16.60-0.27.

Severity: normal
Frequency: rare
Description: avoid ASSERTION(client_stat->nid_exp_ref_count == 0) failed
Details: release reference to stats when client disconnected, not when export destroyed for avoid races when client destroyed after main ost export.

Severity: normal
Frequency: when adding OSTs to a running filesystem
Description: more cleanup in mds_lov
Details: add workaround for get valid ost count for avoid warnings about drop too big messages, not init llog cat under semphore which can be blocked on reconnect and break normal replay, fix access to wrong pointer.

Severity: normal
Frequency: only when connecting 1.6.5 clients to 1.6.4 or earlier servers
Description: Early reply size mismatch, MGC loses connection
Details: Apply the MGS_CONNECT_SUPPORTED mask at reconnect time so the connect flags are properly negotiated.

Severity: normal
Frequency: rare
Description: statfs sometimes returns stale values on the client
Details: restore missing copy oi_flags to lov requests.

Severity: enhancement
Description: Update to SLES9 kernel-2.6.5-7.312.

Severity: enhancement
Description: Update to RHEL4 kernel-2.6.9-67.0.22.EL.

Severity: minor
Frequency: when clients reconnect to server
Description: per-export statistics in /proc are broken
Details: recreate /proc entries for clients when they reconnect.

Severity: normal
Frequency: when adding OSTs to a mounted filesystem
Description: don't fail open with -ERANGE
Details: if client connected until mds will be know about real ost count get LOV EA can be fail because mds not allocate enougth buffer for LOV EA.

Severity: normal
Frequency: only for filesystems larger than 8TB
Description: ldiskfs BUG ldiskfs_mb_use_best_found()
Details: The ldiskfs mballoc3 code was using a __u16 to store the group number, but with 8TB+ filesystems there are more than 65536 groups, causing an oops.

Severity: normal
Frequency: rare
Description: Resolve device initialization race
Details: Prevent proc handler from accessing devices added to the obd_devs array but yet be intialized.

Severity: enhancement
Description: Update to SLES10 SP2 kernel-2.6.16.60-0.23.

Severity: enhancement
Description: Update to RHEL5 kernel-2.6.18-92.1.6.el5.

Severity: normal
Frequency: rare, on PPC clients
Description: don't swab ost objects in response about directory, because this not exist.
Details: bug similar bug 14856, but in different function.

Severity: enhancement
Description: lfs quota tool enhancements
Details: added units specifiers support for setquota, default to current uid/gid for quota report, short quota stats by default, nonpositional parameters for setquota, added llapi_quotactl manual page.

Severity: normal
Frequency: only on 32-bit clients with more than 1GB of RAM
Description: Client runs out of low memory
Details: Consider only lowmem when counting initial number of llap pages

Severity: enhancement
Description: optional service tags registration
Details: if the "service tags" package is installed on a Lustre node When the filesystem is mounted, a local-node service tag will be created. See http://inventory.sun.com/ for more information about the Service Tags asset management system.

Severity: normal
Frequency: only if client is mounted with "-o flock"
Description: Kernel BUG tries to release flock
Details: Lustre does not destroy flock lock before last reference goes away. So always drop flock locks when client is evicted and perform unlock regardless of successfulness of speaking to MDS.

Severity: enhancement
Description: Update to RHEL4 kernel-2.6.9-67.0.20.

Severity: normal
Frequency: rare, only during unmount
Description: add refcount for osc callbacks, so avoid panic on shutdown

Severity: normal
Frequency: only if OSTs have been removed or non-sequential OST index used
Description: Kernel panic with find ost index.
Details: lov_obd have panic if some OST's have sparse indexes.

Severity: enhancement
Description: Update to RHEL5 kernel-2.6.18-53.1.21.el5.

Severity: major
Frequency: only if client is mounted with "-o flock"
Description: do not process already freed flock
Details: flock can possibly be freed by another thread before it reaches to ldlm_flock_completion_ast.

Severity: normal
Frequency: only if client is mounted with "-o flock"
Description: LBUG during stress test
Details: Need properly lock accesses the flock deadlock detection list.

Severity: minor
Frequency: rare
Description: oops in page fault handler
Details: kernel page fault handler can return two special 'pages' in error case, don't try dereference NOPAGE_SIGBUS and NOPAGE_OMM.

Severity: minor
Frequency: rare, during recovery
Description: timeout with invalidate import.
Details: ptlrpcd_check call obd_zombie_impexp_cull and wait request which should be handled by ptlrpcd. This produce long age waiting and -ETIMEOUT ptlrpc_invalidate_import and as result LASSERT.

Severity: normal
Frequency: rare
Description: ASSERTION(CheckWriteback(page,cmd)) failed
Details: badly clear PG_Writeback bit in ll_ap_completion can produce false positive assertion.

Severity: normal
Frequency: only with broken builds/installations
Description: no LBUG if lquota.ko and fsfilt_ldiskfs.ko are different versions
Details: just return an error to a user, put a console error message

Severity: enhancement
Description: Update to RHEL5 kernel-2.6.18-53.1.19.el5.

Severity: enhancement
Description: Update to RHEL4 kernel-2.6.9-67.0.15.

Severity: enhancement
Description: enable MGS and MDT services start separately
Details: add a 'nomgs' option in mount.lustre to enable start a MDT with a co-located MGS without starting the MGS, which is a complement to 'nosvc' mount option.

Severity: normal
Frequency: always, on big-endian systems
Description: cleanup in ptlrpc code, related to PPC platform
Details: store magic in native order avoid panic's in recovery on PPC node and forbid from this error in future. Also fix posibily of twice swab data. Fix get lov striping to userpace.

Severity: normal
Frequency: rare, replay get lost on server
Description: server incorrectly drop resent replays lead to recovery failure.
Details: do not drop replay according to msg flags, instead we check the per-export recovery request queue for duplication of transno.

Severity: normal
Frequency: after recovery
Description: precreate to many object's after del orphan.
Details: del orphan st in oscc last_id == next_id and this triger growing count of precreated objects. Set flag LOW to skip increase count OF precreated objects.

Severity: normal
Frequency: rare, on clear nid stats
Description: ASSERTION(client_stat->nid_exp_ref_count == 0)
Details: when clean nid stats sometimes try destroy live entry, and this produce panic in free.

Severity: major
Frequency: occasionally since 1.6.4
Description: Stack overflow during MDS log replay
Details: ease stack pressure by using a thread dealing llog_process.

Severity: minor
Frequency: very rare
Description: MDT cannot be unmounted, reporting "Mount still busy"
Details: Mountpoint references were being leaked during open reply reconstruction after an MDS restart. Drop mountpoint reference in reconstruct_open() and free dentry reference also.

Severity: normal
Frequency: rare
Description: wait until IO finished before start new when do lock cancel.
Details: VM protocol want old IO finished before start new, in this case need wait until PG_writeback is cleared until check dirty flag and call writepages in lock cancel callback.

Severity: normal
Frequency: rare
Description: mds_mfd_close() ASSERTION(rc == 0)
Details: In mds_mfd_close(), we need protect inode's writecount change within its orphan write semaphore to prevent possible races.

Severity: minor
Frequency: rare, on shutdown ost
Description: don't hit live lock with umount ost.
Details: shrink_dcache_parent can be in long loop with destroy dentries, use shrink_dcache_sb instead.

Severity: minor
Frequency: only when echo_client is used
Description: don't panic with use echo_client
Details: echo client pass NULL as client nid pointer and this produce NULL pointer dereference.

Severity: normal
Frequency: Always on 32-bit PowerPC systems
Description: fix build on PPC32
Details: compile code with -m64 flag produce wrong object file for PPC32.

Severity: normal
Frequency: rare
Description: MDS LBUG: ASSERTION(!IS_ERR(dchild))
Details: In reconstruct_* functions, LASSERTs on both the data supplied by a client, and the data on disk are dangerous and incorrect. Change them with client eviction.

Severity: enhancement
Description: skiplist implementation simplification
Details: skiplists are used to group compatible locks on granted list that was implemented as tracking first and last lock of each lock group the patch changes that to using doubly linked lists

Severity: normal
Frequency: only with administrator action
Description: mount failure if config log has invalid conf_param setting
Details: If administrator specified an incorrect configuration parameter with "lctl conf_param" this would cause an error during future client mounts. Instead, ignore the bad configuration parameter.

Severity: normal
Frequency: blocks per group < blocksize*8 and uninit_groups is enabled
Description: ldiskfs error: XXX blocks in bitmap, YYY in gd
Details: If blocks per group is less than blocksize*8, set rest of the bitmap to 1.

Severity: major
Frequency: Application do stride read on lustre
Description: The read performance will drop a lot if the application does stride read.
Details: Because the stride_start_offset are missing in stride read-ahead, it will cause clients read a lot of unused pages in read-ahead, then the read-performance drops.

Severity: normal
Description: more ldlm soft lockups
Details: In ldlm_resource_add_lock(), call to ldlm_resource_dump() starve other threads from the resource lock for a long time in case of long waiting queue, so change the debug level from D_OTHER to the less frequently used D_INFO.

Severity: enhancement
Description: add -gid, -group, -uid, -user options to lfs find

Severity: enhancement
Description: tool to recover objects put in lost+found by e2fsck
Details: OST crashes and subsequent e2fsck can lead to objects being moved to lost+found directory. Using the "ll_recover_lost_found_objs" tool, these objects can be retrieved and data can be salvaged by using the object ID saved in the fid.

Severity: minor
Frequency: rare
Description: this bug _only_ happens when inode quota limitation is very low (less than 12), so that inode quota unit is 1 at initialization.
Details: if remaining quota equates 1, it is a sign to demonstate that quota is effective now. So least quota qunit should be 2.

Severity: normal
Frequency: rare, using O_DIRECT only
Description: Hung threads in invalidate_inode_pages2_range
Details: The direct IO path doesn't call check_rpcs to submit a new RPC once one is completed. As a result, some RPCs are stuck in the queue and are never sent.

Severity: normal
Frequency: rare, during shutdown
Description: Procfs and llog threads access destoryed import sometimes.
Details: Sync the import destoryed process with procfs and llog threads by the import refcount and semaphore.

Severity: major
Description: mds fails to respond, threads stuck in ldlm_completion_ast
Details: Sort source/child resource pair after updating child resource.

Severity: major
Frequency: rare
Description: kernel BUG at ldiskfs2_ext_new_extent_cb
Details: If insertion of an extent fails, then discard the inode preallocation and free data blocks else it can lead to duplicate blocks.

Severity: normal
Description: don't always update ctime in ext3_xattr_set_handle()
In some cases the ctime should not be updated, for example for 2.0->1.8 compatibility it is necessary to delete an xattr and it should not update the ctime.

Severity: normal
Description: add quota statistics
Details: 1. sort out quota proc entries and proc code. 2. add quota statistics

Severity: normal
Frequency: often
Description: quotas are not honored with O_DIRECT
Details: all writes with the flag O_DIRECT will use grants which leads to this problem. Now using OBD_BRW_SYNC to guard this.

Severity: major
Frequency: rare
Description: Assertion in iopen_connect_dentry in 1.6.3
Details: looking up an inode via iopen with the wrong generation number can populate the dcache with a disconneced dentry while the inode number is in the process of being reallocated. This causes an assertion failure in iopen since the inode's dentry list contains both a connected and disconnected dentry.

Severity: normal
Description: assertion failure in ldlm_handle2lock()
Details: fix a race between class_handle_unhash() and class_handle2object() introduced in lustre 1.6.5 by bug 13622.

Severity: minor
Frequency: rare
Description: Pools downgrade compatibility
Details: Files striped across pools in future (1.8) releases will be properly understood if the server is downgraded to this version.

Severity: minor
Frequency: rare
Description: Kernel BUG: sd_iostats_bump: unexpected disk index
Details: remove the limit of 256 scsi disks in the sd_iostat patch

Severity: minor
Frequency: rare
Description: oops in sd_iostats_seq_show()
Details: unloading/reloading the scsi low level driver triggers a kernel bug when trying to access the sd iostat file.

Severity: major
Frequency: rare
Description: Kernel panics during QLogic driver reload
Details: REQ_BLOCK_PC requests are not handled properly in the sd iostat patch, causing memory corruption.

Severity: minor
Description: journal_dev option does not work in b1_6
Details: pass mount option during pre-mount.

Severity: enhancement
Description: Add a FIEMAP (FIle Extent MAP) ioctl for ldiskfs
Details: FIEMAP ioctl will allow an application to efficiently fetch the extent information of a file. It can be used to map logical blocks in a file to physical blocks in the block device.

Severity: normal
Frequency: only with adaptive timeout enabled
Description: DEBUG_REQ() bad paging request
Details: ptlrpc_at_recv_early_reply() should not modify req->rq_repmsg because it can be accessed by reply_in_callback() without the rq_lock held.

Severity: normal
Frequency: only on Cray X2
Description: X2 build failures
Details: fix build failures on Cray X2.

Severity: major
Frequency: Only on FC kernels 2.6.22+
Description: oops in statahead
Details: Do not drop reference count for the dentry from VFS when lookup, VFS will do that by itself.

Severity: major
Description: Lustre oops in {:ptlrpc:ptlrpc_server_free_request+373}
Details: In case of memory pressure, list_del() can be called twice on req->rq_history_list, causing a kernel oops.

Changes from v1.6.5 to v1.6.5.1

Support for networks:

  • socklnd - any kernel supported by Lustre
  • qswlnd - Qsnet kernel modules 5.20 and later
  • openiblnd - IbGold 1.8.2
  • o2iblnd - OFED 1.1, 1.2.0, 1.2.5, and 1.3
  • viblnd - Voltaire ibhost 3.4.5 and later
  • ciblnd - Topspin 3.2.0
  • iiblnd - Infiniserv 3.3 + PathBits patch
  • gmlnd - GM 2.1.22 and later
  • mxlnd - MX 1.2.1 or later
  • ptllnd - Portals 3.3 / UNICOS/lc 1.5.x, 2.0.x

Support for kernels:

  • 2.6.5-7.311 (SLES 9)
  • 2.6.9-67.0.7.EL (RHEL 4)
  • 2.6.16.54-0.2.5 (SLES 10)
  • 2.6.18-53.1.14.el5 (RHEL 5)
  • 2.6.22.14 vanilla (kernel.org)

Client support for unpatched kernels: (see Patchless Client)

  • 2.6.16 - 2.6.22 vanilla (kernel.org)

Due to problems with nested symlinks and FMODE_EXEC (bug 12652), we do not recommend using patchless RHEL4 clients with kernels prior to 2.6.9-55EL (RHEL4U5).

Recommended e2fsprogs version: 1.40.7-sun1

Note that reiserfs quotas are disabled on SLES 10 in this kernel.

RHEL 4 and RHEL 5/SLES 10 clients behaves differently on cd ./ to a removed current working directory (refer to bugzilla 14399.

A new quota file format has been introduced in 1.6.5. The format conversion from prior releases is handled transparently, but releases older than 1.4.12/1.6.5 will not understand this new format. The automatic format conversion can be avoided by running the following command on the MDS before upgrading:

tunefs.lustre --param="mdt.quota_type=ug1" $MDTDEV

For more information, please refer to bugzilla 13904.


Severity: normal
Description: RPM packages did not include InfinBand support
Details: The Lustre 1.6.5 did not include InfiniBand RPM packages.

Severity: normal
Frequency: only with administrator action
Description: mount failure if config log has invalid conf_param setting
Details: If administrator specified an incorrect configuration parameter with "lctl conf_param" this would cause an error during future client mounts. Instead, ignore the bad configuration parameter.

Severity: major
Frequency: Application do stride read on lustre
Description: The read performance will drop a lot if the application does stride read.
Details: Because the stride_start_offset are missing in stride read-ahead, it will cause clients read a lot of unused pages in read-ahead, then the read-performance drops.

Changes from v1.6.4.3 to v1.6.5

Support for networks:

  • socklnd - any kernel supported by Lustre
  • qswlnd - Qsnet kernel modules 5.20 and later
  • openiblnd - IbGold 1.8.2
  • o2iblnd - OFED 1.1, 1.2.0, 1.2.5, and 1.3
  • viblnd - Voltaire ibhost 3.4.5 and later
  • ciblnd - Topspin 3.2.0
  • iiblnd - Infiniserv 3.3 + PathBits patch
  • gmlnd - GM 2.1.22 and later
  • mxlnd - MX 1.2.1 or later
  • ptllnd - Portals 3.3 / UNICOS/lc 1.5.x, 2.0.x

Support for kernels:

  • 2.6.5-7.311 (SLES 9)
  • 2.6.9-67.0.7.EL (RHEL 4)
  • 2.6.16.54-0.2.5 (SLES 10)
  • 2.6.18-53.1.14.el5 (RHEL 5)
  • 2.6.22.14 vanilla (kernel.org)

Client support for unpatched kernels: (see Patchless Client)

  • 2.6.16 - 2.6.22 vanilla (kernel.org)

Due to problems with nested symlinks and FMODE_EXEC (bug 12652), we do not recommend using patchless RHEL4 clients with kernels prior to 2.6.9-55EL (RHEL4U5).

Recommended e2fsprogs version: 1.40.7-sun1

Note that reiserfs quotas are disabled on SLES 10 in this kernel.

RHEL 4 and RHEL 5/SLES 10 clients behaves differently on cd ./ to a removed current working directory (refer to bugzilla 14399.

A new quota file format has been introduced in 1.6.5. The format conversion from prior releases is handled transparently, but releases older than 1.4.12/1.6.5 will not understand this new format. The automatic format conversion can be avoided by running the following command on the MDS before upgrading:

tunefs.lustre --param="mdt.quota_type=ug1" $MDTDEV

For more information, please refer to bugzilla 13904.

  • Severity: critical

Frequency: very rare, if additional xattrs are used on kernels >= 2.6.12

Bugzilla: 15777

Description: MDS may lose file striping (and hence file data) in some cases

Details: If there are additional extended attributes stored on the MDS, in particular ACLs, SELinux, or user attributes (if user_xattr is specified for the client mount options) then there is a risk of attribute loss. Additionally, the Lustre file striping needs to be larger than default (e.g. striped over all OSTs), and an additional attribute must be stored initially in the inode and then increase in size enough to be moved to the external attribute block (e.g. ACL growing in size) for file data to be lost.

  • Severity: enhancement

Bugzilla: 12191

Description: add message levels for liblustreapi

  • Severity: minor

Frequency: rare, only if {mds,oss}_num_threads is specified

Bugzilla : 15759

Description: MDS or OSS service threads fail startup with -24 (-EMFILE)

Details: During startup under recovery, it is possible for service thread startup to fail in ptlrpc_start_threads() if one of the threads begins processing a request and then starts an additional thread. This causes ptlrpc_start_threads() to try and start 1 too many threads and get an error.

  • Severity: normal

Frequency: rare

Bugzilla  : 13380

Description: MDT cannot be unmounted, reporting "Mount still busy"

Details: Mountpoint references were being leaked during open reply reconstruction after an MDS restart. Drop mountpoint reference in reconstruct_open() and free dentry reference also.

  • Severity: minor

Frequency: rare

Bugzilla: 13380

Description: fix for occasional failure case of -ENOSPC in recovery-small tests

Details: Move the 'good_osts' check before the 'total_bavail' check. This will result in an -EAGAIN and in the exit call path we call alloc_rr() which will with increasing aggressiveness attempt to aquire precreated objects on the minimum number of required OSCs.

  • Severity: major

Bugzilla: 14326

Description: Use old size assignment to avoid deadlock

Details: This reverts the changes in bugs 2369 and bug 14138 that introduced the scheduling while holding a spinlock. We do not need locking for size in ll_update_inode() because size is only updated from the MDS for directories or files without objects, so there is no other place to do the update, and concurrent access to such inodes are protected by the inode lock.

  • Severity: normal

Bugzilla: 14655

Description: Use __u64 instead of int for valid bits

  • Severity: normal

Bugzilla: 14746

Description: resolve "_IOWR redefined" build error on SLES10

  • Severity: normal

Bugzilla: 14763

Description: dump the memory debugging after all modules are unloaded to suppress false negative in conf_sanity test 39

  • Severity: normal

Bugzilla: 14872

Description: the recovery timer never expires

Details: for new client connect request, the recovery timer should not be reset, otherwise recovery timer will never expired, if the old client never come. Only old client connect and first connection req should trigger recovery timer reset.

  • Severity: normal

Bugzilla: 15521

Description: the min numbers of lproc stats are wrong

Details: adding a new constant LC_MIN_INIT and use it for initialization of lc_min.

  • Severity: normal

Frequency: always with interactive lfs

Bugzilla: 15212

Description: Reinitialize optind to 0 so that interactive lfs works in all cases

  • Severity: normal

Frequency: with multiple concurrent readdir processes in same directory

Bugzilla: 15406 15169 15175

Description: misc fixes for directory readahead.

Details: prevent previous statahead async RPC callback from processing the current "statahead_info", race condition between async RPC callback add dentry into dentry hash table and "ls" thread revalidate such dentry, statahead his/miss control for hidden items, and so on.

  • Severity: enhancement

Bugzilla: 15316

Description: build kernel-ib packages for OFED 1.3 in our release cycle

  • Severity: normal

Bugzilla: 15036

Description: incore types cleaning in quota code (with respect to 64-bit limits)

Details: several u32 variables declarations are replaced with u64 declarations

  • Severity: minor

Frequency: always

Bugzilla: 13969

Description: fix SLES kernel versioning

Details: the kernel version for our SLES 10 kernel did not include a "-" before the "smp" at the end. while this was not a problem in general, it did mean that software trying to use the kernel version to try to detect a vendor specific kernel would fail. this was most evident by the OFED build scripts.

  • Severity: normal

Frequency: rare

Bugzilla: 14803

Description: Don't update lov_desc members until making sure they are valid

Details: When updating lov_desc members via proc fs, need fix their validities before doing the real update.

  • Severity: normal

Frequency: very rare

Bugzilla: 15069

Description: don't put request into delay list while invalidate in flight.

Details: ptlrpc_delay_request sometimes put in delay list while invalidate import in flight. this produce timeout for invalidate and sometimes can cause stale data.

  • Severity: enhancement

Bugzilla: 15416

Description: Update kernel to SLES9 2.6.5-7.311.

  • Severity: enhancement

Bugzilla: 15240

Description: Update kernel to RHEL4 2.6.9-67.0.7.

  • Severity: normal

Frequency: always

Bugzilla: 14856

Frequency: on PPC only

Description: not convert ost objects for directory because it's not exist.

Details: ll_dir_getstripe assume directory has ost objects but this wrong.

  • Severity: enhancement

Bugzilla: 15517

Description: Fix warnings with compile liblustre at sles10/rhel5 which have __u64 as usingied long long type.

  • Severity: minor

Frequency: rare, on shutdown

Bugzilla: 15210

Description: race process AST vs remove callback

Details: removing callback before disconnect import open race with processing callback.

  • Severity: enhancement

Bugzilla: 15416

Description: Update kernel to SLES9 2.6.5-7.311.

  • Severity: enhancement

Bugzilla: 12652

Description: Files open for execute are not marked busy on SLES10

Details: Add FMODE_EXEC to SLES10 SP1 server kernel series.

  • Severity: enhancement

Bugzilla: 13397

Description: Add server support for vanilla-2.6.22.14.

  • Severity: normal

Frequency: occasional

Bugzilla: 13375

Description: Avoid lov_create() getting stuck in obd_statfs_rqset()

Details: If an OST is down the MDS will hang indefinitely in obd_statfs_rqset() waiting for the statfs data. While for MDS QOS usage of statfs, it should not stuck in waiting.

  • Severity: enhancement

Bugzilla: 3055

Description: Disable adaptive timeouts by default

  • Severity: major

Frequency: on network error

Bugzilla: 15027

Description: panic with double free request if network error

Details: mdc_finish_enqueue is finish request if any network error occuring, but it's true only for synchronus enqueue, for async enqueue (via ptlrpcd) this incorrect and ptlrpcd want finish request himself.

  • Severity: normal

Frequency: rare, on recovery

Bugzilla: 14533

Description: read procfs can produce deadlock in some situation

Details: Holding lprocfs lock with send rpc can produce block for destroy obd objects and this also block reconnect with -EALREADY. This isn't fix all lprocfs bugs - but make it rare.

  • Severity: enhancement

Bugzilla: 15152

Description: Update kernel to RHEL5 2.6.18-53.1.14.el5.

  • Severity: major

Frequency: frequent on X2 node

Bugzilla: 15010

Description: mdc_set_open_replay_data LBUG

Details: Set replay data for requests that are eligible for replay.

  • Severity: normal

Frequency: common

Bugzilla: 14321

Description: lustre_mgs: operation 101 on unconnected MGS

Details: When MGC is disconnected from MGS long enough, MGS will evict the MGC, and late on MGC cannot successfully connect to MGS and a lot of the error messages complaining that MGS is not connected.

  • Severity: major

Frequency: rare, depends on device drivers and load

Bugzilla: 14529

Description: MDS or OSS nodes crash due to stack overflow

Details: Code changes in 1.6.4 increased the stack usage of some functions. In some cases, in conjunction with device drivers that use a lot of stack, the MDS (or possibly OSS) service threads could overflow the stack. One change which was identified to consume additional stack has been reworked to avoid the extra stack usage.

  • Severity: enhancement

Bugzilla: 14876

Description: Update to RHEL5 latest kernel-2.6.18-53.1.13.el5.

  • Severity: enhancement

Bugzilla: 14858

Description: Update to SLES10 SP1 latest kernel-2.6.16.54-0.2.5.

  • Severity: enhancement

Bugzilla: 14720

Description: Update to RHEL5 latest kernel-2.6.18-53.1.6.el5.

  • Serverity: enhancement

Bugzilla: 14793

Description: Update RHEL4 kernel to 2.6.9-67.0.4.

  • Severity: minor

Frequency: rare on shutdown OST

Bugzilla: 13196

Description: Don't allow skipping OSTs if index has been specified.

Details: Don't allow skipping OSTs if index has been specified, make locking in internal create lots better.

  • Severity: normal

Frequency: rare

Bugzilla: 14421

Description: ASSERTION(!PageDirty(page)) failed

Details: Wrong check could lead to an assertion failure under specific load patterns.

  • Severity: normal

Frequency: rare

Bugzilla: 12228

Description: LBUG in ptlrpc_check_set() bad phase ebc0de00

Details: access to bitfield in structure is always rounded to long and this produce problem with not atomic change any bit.

  • Severity: normal

Frequency: always

Bugzilla: 13647

Description: Lustre 'make rpms' failed.

Details: Remove ldiskfs spec file to avoids rpmbuild be confused when builds Lustre rpms from tarball.

  • Severity: enhancement

Bugzilla: 14498

Description: Update to SLES9 SP4 kernel-2.6.5-7.308.

  • Severity: normal

Frequency: rare on shutdown OST

Bugzilla: 14608

Description: If llog cancel was not send before clean_exports phase, this can produce deadlock in llog code.

Details: If llog thread has last reference to obd and call class_import_put this produce deadlock because llog_cleanup_commit_master wait when last llog_commit_thread exited, but this never success because was called from llog_commit_thread.

  • Severity: normal

Frequency: only if OST index is skipped

Bugzilla: 14607

Description: NULL lov_tgts causing MDS oops

Details: more safe checks for NULL lov_tgts for avoid oops.

  • Severity: enhancement

Bugzilla: 14531

Description: Update to RHEL4 latest kernel-2.6.9-67.0.1.EL.

  • Severity: enhancement

Bugzilla: 14368

Description: Update to RHEL5 latest kernel-2.6.18-53.1.4.el5.

  • Severity: normal

Frequency: always

Bugzilla: 14136

Description: make mgs_setparam() handle fsname containing dash

Details: fsname containing a dash does not work with lctl conf_param

  • Severity: enhancement

Bugzilla: 14288

Description: Update to RHEL4 Update-6 kernel-2.6.9-67.EL.

  • Severity: normal

Frequency: rare, in recovery and (or) destroy lovobjid file.

Bugzilla: 12702

Description: rewrite lov_objid code.

Details: Cleanup for lov_objid code, remove scability problems and wrong locking. Fix sending last_id into OST.

  • Severity: enhancement

Bugzilla: 14388

Description: Update to SLES10 SP1 latest kernel-2.6.16.54-0.2.3.

  • Severity: enhancement

Bugzilla: 14289

Description: Update to RHEL5 Update-1 kernel 2.6.18-53.el5.

Details: Use d_move_locked instead of __d_move.

  • Severity: major

Frequency: rare, at shutdown

Bugzilla: 14260

Description: access already free / zero obd_namespace.

Details: if client_disconnect_export was called without force flag set, and exist connect request in flight, this can produce access to NULL pointer (or already free pointer) when connect_interpret store ocd flags in obd_namespace.

  • Severity: minor

Frequency: only at startup

Bugzilla: 14418

Description: not alloc memory with spinlock held.

Details: allocation memory with GFP_KERNEL can produce sleep deadlock, if any spinlock held.

  • Severity: normal

Frequency: always

Bugzilla: 14270

Description: lfs find does not continue on file error

Details: Continue other files processing when a file/dir is absent.

  • Severity: normal

Bugzilla: 11791

Description: Inconsistent usage of lustre_pack_reply()

Details: Standardize the usage of lustre_pack_reply() such that it always generate a CERROR on failure.

  • Severity: normal

Frequency: very rare

Bugzilla: 3462

Description: Fix replay if there is an un-replied request and open

Details: In some cases, older replay request will revert the mcd->mcd_last_xid on MDS which is used to record the client's latest sent request.

  • Severity: enhancement

Bugzilla: 13969

Description: Update to RHEL5 kernel 2.6.18-8.1.15.el5.

  • Severity: enhancement

Bugzilla: 13874

Description: Update to SLES10 SP1 kernel 2.6.16.53-0.16

  • Severity: enhancement

Bugzilla: 13889

Description: Update to SLES9 kernel-2.6.5-7.287.3.

  • Severity: enhancement

Bugzilla: 14041

Description: Update to RHEL4 kernel-2.6.9-55.0.12.EL.

  • Severity: enhancement

Bugzilla: 13690

Description: Build SLES10 patchless client fails

Details: The configure was broken by run ./configure with --with-linux-obj=.... argument for patchless client. When the configure use --with-linux-obj, the LINUXINCLUDE= -Iinclude can't search header adequately. Use absolute path such as -I($LINUX)/include instead.

  • Severity: enhancement

Bugzilla: 11622

Description: Lustre Page Accounting

Details: New macros for page alloc and free which enable accounting of page allocation of Lustre. Use percpu counters to store memory and page statistics.

  • Severity: normal

Frequency: only if debugging is disabled

Bugzilla: 13497

Description: LASSERT_{REQ,REP}SWAB macros are buggy

Details: If SWAB_PARANOIA is disabled, the LASSERT_REQSWAB and LASSERT_REPSWAB macros become no-ops, which is incorrect. Drop these macros and replace them with their definitions instead.

  • Severity: normal

Frequency: rare

Bugzilla: 13888

Description: interrupt oig_wait produce painc on resend.

Details: brw_redo_request can be used for resend requests from ptlrpcd and private set, and this produce situation when rq_ptlrpcd_data not copyed to new allocated request and triggered LBUG on assert req->rq_ptlrpcd_data != NULL. But this member used only for wakeup ptlrpcd set if request is changed and can be safety changed to use rq_set directly.

  • Severity: enhancement

Bugzilla: 11089

Description: organize the server-side client stats on per-nid basis

Details: Change the structure of stats under obdfilter and mds to

        New structure:
           +- exports
                   +- nid#1
                   |   + stats
                   |   + uuids
                   +- nid#2...
                   +- clear

The "uuid"s file would list the uuids of _active_ exports. And the clear entry is to clear all stats and stale nids.

  • Severity: normal

Frequency: rare

Bugzilla: 12266

Description: Processes looping in ll_readdir() on Lustre clients finally causing a full node pseudo-hang

Details: Concurrent access to the same directory from multiple clients with intensive file creation/removal can cause a client node to spin in ll_readdir(). i_version must be increased every time the lock is cancelled to ensure a revalidate is done.

  • Severity: normal

Frequency: always

Bugzilla: 13976

Description: touch file failed when fs is not full

Details: OST in recovery should not be discarded by MDS in alloc_qos(), otherwise we can get ENOSP while fs is not full.

  • Severity: normal

Frequency: only for Cray XT3

Bugzilla: 12829 13455

Description: Changing primary group doesn't change the group lustre assigns to a file

Details: When CRAY_XT3 is defined, the fsgid supplied by the client is overridden with the primary group provided by the group upcall, whereas the supplied fsgid can be trusted if it is in the list of supplementary groups returned by the group upcall.

  • Severity: enhancement

Bugzilla: 12749

Description: Root Squash Functionality

Details: Implementation of NFS-like root squash capability. Specifically, don't allow someone with root access on a client node to be able to manipulate files owned by root on a server node.

  • Severity: enhancement

Bugzilla: 10718

Description: Slow trucate/writes to huge files at high offsets.

Details: Directly associate cached pages to lock that protect those pages, this allows us to quickly find what pages to write and remove once lock callback is received.

  • Severity: normal

Frequency: common

Bugzilla: 14379

Description: Too many locks accumulating on client during NFS usage

Details: mds_open improperly used accmode to find out access mode to a file. Also mdc_intent_lock logic to find out if we already have lock similar to just received was flawed since introduction of skiplists - locks are now added to the front of the granted queue.

  • Severity: normal

Bugzilla: 14477

Description: Hit ASSERTION(obd->obd_stopping == 1) failed in some setup failed situation.

Details: In obd setup failure handler, obd_stopping will not necessarily to be 1, and obd_set_up should also be checked to make sure whether obd is completely setup.

  • Severity: enhancement

Bugzilla: 14398

Description: Allow masking D_WARNING, D_ERROR messages from console

Details: Console messages can now be disabled via lnet.printk.

  • Severity: normal

Frequency: always

Bugzilla: 14614

Description: User code with malformed file open parameter crashes client node

Details: Before packing join_file req, all the related reference should be checked carefully in case some malformed flags cause fake join_file req on client.

  • Severity: normal

Frequency: always

Bugzilla: 10600

Description: shrink/enlarge qunit size when needed; fix the problem of coarse grain of quota doing harm to quota's accuracy

Details: qunit size will be changed when quota limitation is too low/high; record the pending quota write in order to get more accureate quota; delete the patch for bug12588, which is unnecessary when this patch is landed. This bug also contains fixes for bug 14526, 14299, 14601 and 13794.

  • Severity: normal

Bugzilla: 14225

Description: LDLM_ENQUEUE races with LDLM_CP_CALLBACK

Details: ldlm_completion_ast() assumes that a lock is granted when the req mode is equal to the granted mode. However, it should also check that LDLM_FL_CP_REQD is not set.

  • Severity: normal

Bugzilla: 14360

Description: Heavy nfs access might result in deadlocks

Details: After ELC code landed, it is now improper to enqueue any mds locks under och_sem, because enqueue might want to decide to cancel open locks for same inode we are holding och_sem for.

  • Severity: normal

Bugzilla: 14443

Description: 35% write performance drop with ldiskfs2 when quotas are on

Details: Enable ext3 journalled quota by default to improve performance when quotas are turned on.

  • Severity: normal

Bugzilla: 13843

Description: Client eviction while running blogbench

Details: A lot of unlink operations with concurrent I/O can lead to a deadlock causing evictions. To address the problem, the number of oustanding OST_DESTROY requests is now throttled to max_rpcs_in_flight per OSC and LDLM_FL_DISCARD_DATA blocking callbacks are processed in priority.

  • Severity: normal

Frequency: RHEL4 only

Bugzilla: 14618

Description: mkfs is very slow on IA64/RHEL4

Details: A performance regression has been discovered in the MPT Fusion driver between versions 3.02.73rh and 3.02.99.00rh. As a consequence, we have downgraded the MPT Fusion driver in the RHEL4

  • Severity: normal

Frequency: PPC/PPC64 only

Bugzilla: 14845

Description: conflicts between asm-ppc64/types.h and lustre_types.h

Details: fix duplicated definitions between asm-ppc64/types.h and lustre_types.h on PPC.

  • Severity: normal

Frequency: PPC/PPC64 only

Bugzilla: 14844

Description: asm-ppc/segment.h does not exist

Details: fix compile issue on PPC.

  • Severity: normal

Bugzilla: 13805

Description: data checksumming impacts single node performance

Details: add support for several checksum algorithms. Currently, CRC32 and Adler-32 are supported. The checksum type can be changed on the fly through /proc/fs/lustre/osc/*/checksum_type.

  • Severity: normal

Bugzilla: 14648

Description: use adler32 for page checksums

Details: when available, use the Adler-32 algorithm instead of CRC32 for page checksums.

  • Severity: normal

Bugzilla: 14864

Description: better handle error messages in extents code

  • Severity: enhancement

Bugzilla: 14729

Description: SNMP support enhancement

Details: Adding total number of sampled request for an MDS node in snmp support.

  • Severity: enhancement

Bugzilla: 14748

Description: Optimize ldlm waiting list processing for PR extent locks

Details: When processing waiting list for read extent lock and meeting read lock that is same or wider to it that is not contended, skip processing rest of the list and immediatelly return current status of conflictness, since we are guaranteed there are no conflicting locks in the rest of the list.

  • Severity: normal

Bugzilla: 14774

Description: Time out and refuse to reconnect

Details: When the failover node is the primary node, it is possible to have two identical connections in imp_conn_list. We must compare not conn's pointers but NIDs, otherwise we can defeat connection throttling.

  • Severity: major

Bugzilla: 14775

Description: Client not clear own cache if answer to reconnect is lost.

Details: Client gets evicted from server. Now client also thinks it is disconnected (or gets ENOTCONN on its operation) and decides to reconnect. Server receives reconnect message, but cannot find export. New export is created that is fully valid (new cookie!), but reply is lost and not reported to client. Client reconnects again and gets back a just-created connection, but it is not new so client thinks it was not evicted and does not do recovery.

  • Severity: normal

Bugzilla: 14483

Description: Detect stride IO mode in read-ahead

Details: When a client does stride read, read-ahead should detect that and read-ahead pages according to the detected stride pattern.

  • Severity: normal

Bugzilla: 15033

Description: build for X2 fails

Details: fix compile issue on Cray systems.

  • Severity: enhancement

Bugzilla: 13371

Description: implement readv/writev APIs(aio_read/aio_writes in newer kernels)

Details: This greatly improves speed of NFS writes on 2.6 kernels.

  • Severity: normal

Frequency: only on PPC/SLES10

Bugzilla: 14855

Description: "BITS_PER_LONG is not 32 or 64" in linux/idr.h

Details: On SLES10/PPC, fs.h includes idr.h which requires BITS_PER_LONG to be defined. Add a hack in mkfs_lustre.c to work around this compile issue.

  • Severity: normal

Bugzilla: 14257

Description: LASSERT on MDS when client holding flock lock dies

Details: ldlm pool logic depends on number of granted locks equal to number of released locks which is not true for flock locks, so just exclude such locks from consideration.

  • Severity: normal

Bugzilla: 15188

Description: MDS deadlock with many ll_sync_lov threads and I/O stalled

Details: Use fsfilt_sync() for both the whole filesystem sync and individual file sync to eliminate dangerous inode locking with I_LOCK that can lead to a deadlock.

  • Severity: minor

Bugzilla: 15566

Description: Update an obsolete wirecheck.c generator

Details: Update wirecheck.c/wirehdr.c and regenerate wiretest.c

  • Severity: normal

Bugzilla: 14712

Description: Client can panic on open sometimes

Details: It is possible that we try to free already freed request in ll_file_open in some error cases when we send request from ll_file_open

  • Severity: normal

Bugzilla: 14410

Description: performance in 1.6.3

Details: Force q->max_phys_segments to MAX_PHYS_SEGMENTS on SLES10 to be sure that 1MB requests are not fragmented by the block layer.

  • Severity: normal

Bugzilla: 15198

Description: LDLM soft lockups - improvement

Details: It is be possible to send the lock handle along with each read or write request because the client is already doing a lock match itself so there isn't any reason the OST should have to re-do that search.

  • Severity: normal

Frequency: rare

Bugzilla: 14036

Description: lfs quota fails with deactivated OSTS

Details: With this patch, three improvements are included:

    1. detete the softlimit in mds and osts when use "lfs quota".
    2. display the inaccurate data in the output of "lfs quota".
    3. try to get quota info when "lfs quota" is executed.
  • Severity: normal

Frequency: rare

Bugzilla: 15776

Description: Extent locks not granted with no conflicts sometimes.

Details: When race occurs in glimpse handler and nothing is returned, we do not reprocess the queue after lock cancel, and that leads to a stall until next activity on a resource

Severity: major

Bugzilla: 15712

Description: ksocknal_create_conn() hit ASSERTION during connection race

Details: ksocknal_create_conn() hit ASSERTION during connection race

Severity: major

Bugzilla: 13983

Description: ksocknal_send_hello() hit ASSERTION while connecting race

Details: ksocknal_send_hello() hit ASSERTION while connecting race

Severity: major

Bugzilla: 14425

Description: o2iblnd/ptllnd credit deadlock in a routed config.

Details: o2iblnd/ptllnd credit deadlock in a routed config.

Severity: normal

Bugzilla: 14956

Description: High load after starting lnet

Details: gmlnd should sleep in rx thread in interruptible way. Otherwise, uptime utility reports high load that looks confusingly.

Severity: normal

Bugzilla: 14838

Description: ksocklnd fails to establish connection if accept_port is high

Details: PID remapping must not be done for active (outgoing) connections

Changes from v1.6.4.2 to v1.6.4.3

Support for kernels: 2.6.5-7.286 (SLES 9), 2.6.9-67.0.4.EL (RHEL 4), 2.6.16.54-0.2.5 (SLES 10), 2.6.18-53.1.13.el5 (RHEL 5), 2.6.18.8 vanilla (kernel.org)

Client support for unpatched kernels: (see Patchless Client) 2.6.16 - 2.6.22 vanilla (kernel.org)

Due to problems with nested symlinks and FMODE_EXEC (bug 12652), we do not recommend using patchless RHEL4 clients with kernels prior to 2.6.9-55EL (RHEL4U5).

Recommended e2fsprogs version: 1.40.4-cfs1

Note that reiserfs quotas are disabled on SLES 10 in this kernel.

RHEL 4 (patched) and RHEL 5/SLES 10 (patchless) clients behave differently on 'cd' to a removed cwd "./" (refer to Bugzilla 14399).

  • Severity: critical

Bugzilla: 14793

Description: Update to the latest RHEL4 kernel (i.e. 2.6.9-67.0.4.EL) to fix the vulnerabilities described in CVE-2008-0001, CVE-2007-5500 and CVE-2007-4130.


  • Severity: critical

Bugzilla: 14858

Description: Update to the latest SLES10 kernel (i.e. 2.6.16.54-0.2.5) to fix the security problems described in CVE-2008-0007, CVE-2008-0001, CVE-2007-5966 and CVE-2007-6417.


  • Severity: critical

Bugzilla: 14876

Description: Update to the latest RHEL5 kernel (i.e. 2.6.18-53.1.13.el5) to fix the vulnerability described in CVE-2008-0600. This problem could allow local user to gain root privileges.


  • Severity: normal

Frequency: RHEL4 only

Bugzilla: 14618

Description: mkfs is very slow on IA64/RHEL4

Details: A performance regression has been discovered in the MPT Fusion driver between versions 3.02.73rh and 3.02.99.00rh. As a consequence, we have downgraded the MPT Fusion driver in the RHEL4 kernel from 3.02.99.00 to 3.02.73 until this problem is fixed.


  • Severity: major

Bugzilla: 14775

Description: Client not clear own cache if answer to reconnect is lost.

Details: client gets evicted from server. Now client also thinks it is disconnected (ot gets enotconn on its operation) and decides to reconnect. Server receives reconnect message, but cannot find export. New export is created that is fully valid (new cookie!), but client gets a reply that the export is new, and so no recovery should be performed.

Changes from v1.6.4.1 to v1.6.4.2

Support for kernels: 2.6.5-7.286 (SLES 9), 2.6.9-55.0.9.EL (RHEL 4), 2.6.16.53-0.8 (SLES 10), 2.6.18-8.1.14.el5 (RHEL 5), 2.6.18.8 vanilla (kernel.org)

Client support for unpatched kernels: (see Patchless Client) 2.6.16 - 2.6.22 vanilla (kernel.org)

Due to problems with nested symlinks and FMODE_EXEC (bug 12652), we do not recommend using patchless RHEL4 clients with kernels prior to 2.6.9-55EL (RHEL4U5).

Recommended e2fsprogs version: 1.40.4-cfs1

Note that reiserfs quotas are disabled on SLES 10 in this kernel.

RHEL 4 (patched) and RHEL 5/SLES 10 (patchless) clients behave differently on 'cd' to a removed cwd "./" (refer to Bugzilla 14399).

  • Severity: critical

Frequency: only for relatively new filesystems, when OSTs are in recovery

Bugzilla: 14631

Description: OST objects below id 20000 are deleted, causing data loss

Details: For relatively newly formatted OST filesystem(s), where there have not been at least 20000 objects created on an OST a bug in MDS->OST orphan recovery could cause those objects to be deleted if the OST was in recovery, but the MDS was not. Safety checks in the orphan recovery prevent this if more than 20000 objects were ever created on an OST. If the MDS was also in recovery the problem was not hit. Only in 1.6.4.1.


  • Severity: major

Frequency: rare, depends on device drivers and load

Bugzilla: 14529

Description: MDS or OSS nodes crash due to stack overflow

Details: Code changes in 1.6.4 increased the stack usage of some functions. In some cases, in conjunction with device drivers that use a lot of stack the MDS (or possibly OSS) service threads could overflow the stack. One change which was identified to consume additional stack has been reworked to avoid the extra stack usage.

Changes from v1.6.4 to v1.6.4.1

Support for networks: socklnd - any kernel supported by Lustre, qswlnd - Qsnet kernel modules 5.20 and later, openiblnd - IbGold 1.8.2, o2iblnd - OFED 1.1 and 1.2, viblnd - Voltaire ibhost 3.4.5 and later, ciblnd - Topspin 3.2.0, iiblnd - Infiniserv 3.3 + PathBits patch, gmlnd - GM 2.1.22 and later, mxlnd - MX 1.2.1 or later, ptllnd - Portals 3.3 / UNICOS/lc 1.5.x, 2.0.x

Support for kernels: 2.6.5-7.286 (SLES 9), 2.6.9-55.0.9.EL (RHEL 4), 2.6.16.53-0.8 (SLES 10), 2.6.18-8.1.14.el5 (RHEL 5), 2.6.18.8 vanilla (kernel.org)

Client support for unpatched kernels: (see Patchless Client) 2.6.16 - 2.6.22 vanilla (kernel.org)

Due to recently discovered recovery problems, we do not recommend using patchless RHEL 4 clients with this or any earlier release.

Recommended e2fsprogs version: 1.40.2-cfs1

Note that reiserfs quotas are disabled on SLES 10 in this kernel.

  • Severity: major

Bugzilla: 14433

Description: Oops on connection from 1.6.3 client

Frequency: always, on connection from 1.6.3 client

Details: Enable and accept the OBD_CONNECT_LRU_RESIZE flag only if LRU resizing is enabled at configure time. This fixes an oops caused by incorrectly accepting the LRU_RESIZE feature even if --enable-lru-resize is not specified.

Changes from v1.6.3 to v1.6.4

Support for networks: socklnd - any kernel supported by Lustre, qswlnd - Qsnet kernel modules 5.20 and later, openiblnd - IbGold 1.8.2, o2iblnd - OFED 1.1 and 1.2, viblnd - Voltaire ibhost 3.4.5 and later, ciblnd - Topspin 3.2.0, iiblnd - Infiniserv 3.3 + PathBits patch, gmlnd - GM 2.1.22 and later, mxlnd - MX 1.2.1 or later, ptllnd - Portals 3.3 / UNICOS/lc 1.5.x, 2.0.x

Support for kernels: 2.6.5-7.286 (SLES 9), 2.6.9-55.0.9.EL (RHEL 4), 2.6.16.53-0.8 (SLES 10), 2.6.18-8.1.14.el5 (RHEL 5), 2.6.18.8 vanilla (kernel.org)

Client support for unpatched kernels: (see Patchless Client) 2.6.16 - 2.6.22 vanilla (kernel.org)

Due to recently discovered recovery problems, we do not recommend using patchless RHEL 4 clients with this or any earlier release.

Recommended e2fsprogs version: 1.40.2-cfs1

Note that reiserfs quotas are disabled on SLES 10 in this kernel.

  • Severity: enhancement

Bugzilla: 11686

Description: Console message flood

Details: Make cdls ratelimiting more tunable by adding several tunable in procfs /proc/sys/lnet/console_{min,max}_delay_centisecs and /proc/sys/lnet/console_backoff.


  • Severity: enhancement

Bugzilla: 13521

Description: Update kernel patches for SLES10 2.6.16.53-0.8.

Details: Update which_patch & target file for SLES10 latest kernel.


  • Severity: enhancement

Bugzilla: 13128

Description: add --type and --size parameters to lfs find

Details: Enhance lfs find by adding filetype and filesize parameters. Also multiple OBDs can now be specified for the --obd option.


  • Severity: enhancement

Bugzilla: 11270

Description: eliminate client locks in face of contention

Details: file contention detection and lockless i/o implementation for contended files.


  • Severity: enhancement

Bugzilla: 12411

Description: Remove client patches from SLES 10 kernel.

Details: This causes SLES 10 clients to behave as patchless clients even on a Lustre-patched (server) kernel.


  • Severity: enhancement

Bugzilla: 2369

Description: use i_size_read and i_size_write in 2.6 port

Details: replace inode->i_size access with i_size_read/write()


  • Severity: enhancement

Bugzilla: 13454

Description: Add jbd statistics patch for RHEL5 and 2.6.18-vanilla.


  • Severity: enhancement

Bugzilla: 13518

Description: Kernel patches update for RHEL4 2.6.9-55.0.6.

Details: Modify vm-tunables-rhel4.patch.


  • Severity: enhancement

Bugzilla: 13452

Description: Kernel config for 2.6.18-vanilla.

Details: Modify targets/2.6-vanilla.target.in. Add config file kernel-2.6.18-2.6-vanilla-i686.config. Add config file kernel-2.6.18-2.6-vanilla-i686-smp.config. Add config file kernel-2.6.18-2.6-vanilla-x86_64.config. Add config file kernel-2.6.18-2.6-vanilla-x86_64-smp.config.


  • Severity: enhancement

Bugzilla: 13207

Description: adapt the lustre_config script to support the upgrade case

Details: Add "-u" option for lustre_config script to support upgrading 1.4 server targets to 1.6 in parallel.


  • Severity: critical

Frequency: always

Bugzilla: 13751

Description: Kernel patches update for RHEL5 2.6.18-8.1.14.el5.

Details: Modify target file & which_patch. A flaw was found in the IA32 system call emulation provided on AMD64 and Intel 64 platforms. An improperly validated 64-bit value could be stored in the %RAX register, which could trigger an out-of-bounds system call table access. An untrusted local user could exploit this flaw to run code in the kernel (ie a root privilege escalation). (CVE-2007-4573).


  • Severity: critical

Frequency: always

Bugzilla: 13748

Description: Update RHEL 4 kernel to fix local root privilege escalation.

Details: Update to the latest RHEL 4 kernel to fix the vulnerability described in CVE-2007-4573. This problem could allow untrusted local users to gain root access.


  • Severity: major

Frequency: occasional

Bugzilla: 14353

Description: excessive CPU consumption on client reduces IO performance

Details: in some cases the ldlm_poold thread is spending too much time trying to cancel locks, and is cancelling them too aggressively and this can severely impact IO performance. Disable the dynamic LRU resize code at build time. It can be re-enabled with configure --enable-lru-resize at build time.


  • Severity: major

Frequency: occasional

Bugzilla: 13917

Description: MDS hang or stay in waiting lock

Details: If client receive lock with CBPENDING flag ldlm need send lock cancel as separate rpc, to avoid situation when cancel request can't processed due all i/o threads stay in wait lock.


  • Severity: major

Frequency: occasional

Bugzilla: 11710

Description: improve handling recoverable errors Details: If request processed with error which can be recoverable on server request should be resend, otherwise page released from cache and marked as error.


  • Severity: normal

Bugzilla: 12302

Description: new userspace socklnd

Details: Old userspace tcpnal that resided in lnet/ulnds/socklnd replaced with new one - usocklnd.


  • Severity: normal

Frequency: occasional

Bugzilla: 13730

Description: Do not fail import if osc_interpret_create gets -EAGAIN

Details: If osc_interpret_create got -EAGAIN it immediately exits and wakeup oscc_waitq. After wakeup oscc_wait_for_objects call oscc_has_objects and see OSC has no objests and call oscc_internal_create to resend create request.


  • Severity: normal

Frequency: when removing large files

Bugzilla: 13181

Description: scheduling issue during removal of large Lustre files

Details: Don't take the BKL in fsfilt_ext3_setattr() for 2.6 kernels. It causes scheduling issues when removing large files (17TB in the present case).


  • Severity: normal

Frequency: always

Bugzilla: 13358

Description: 1.4.11 Can't handle directories with stripe set and extended ACLs

Details: Impossible (EPROTO is returned) to access a directory that has a non-default striping and ACLs.


  • Severity: normal

Frequency: only on ppc

Bugzilla: 12234

Description: /proc/fs/lustre/devices broken on ppc

Details: The patch as applied to 1.6.2 doesn't look correct for all arches. We should make sure the type of 'index' is loff_t and then cast explicitly as needed below. Do not assign an explicitly cast loff_t to an int.


  • Severity: normal

Frequency: only for rhel5

Bugzilla: 13616

Description: Kernel patches update for RHEL5 2.6.18-8.1.10.el5.

Details: Modify the target file & which_kernel.


  • Severity: normal

Frequency: if the uninit_groups feature is enabled on ldiskfs

Bugzilla: 13706

Description: e2fsck reports "invalid unused inodes count"

Details: If a new ldiskfs filesystem is created with the "uninit_groups" feature and only a single inode is created in a group then the "bg_unused_inodes" count is incorrectly updated. Creating a second inode in that group would update it correctly.


  • Severity: normal

Frequency: only if filesystem is inconsistent

Bugzilla: 11673

Description: handle "serious error: objid * already exists" more gracefully

Details: If LAST_ID value on disk is smaller than the objects existing in the O/0/d* directories, it indicates disk corruption and causes an LBUG(). If the object is 0-length, then we should use the existing object. This will help to avoid a full fsck in most cases.


  • Severity: normal

Frequency: rarely

Bugzilla: 13570

Description: To avoid grant space > avaible space when the disk is almost full. Without this patch you might see the error "grant XXXX > available" or some LBUG about grant, when the disk is almost full.

Details: In filter_check_grant, for non_grant cache write, we should check the left space by if (*left > ungranted + bytes), instead of (*left > ungranted), because only we are sure the left space is enough for another "bytes", then the ungrant space should be increase. In client, we should update cl_avail_grant only there is OBD_MD_FLGRANT in the reply.


  • Severity: normal

Frequency: when using O_DIRECT and quotas

Bugzilla: 13930

Description: Incorrect file ownership on O_DIRECT output files

Details: block usage reported by 'lfs quota' does not take into account files that have been written with O_DIRECT.


  • Severity: normal

Frequency: always

Bugzilla: 13976

Description: touch file failed when fs is not full

Details: OST in recovery should not be discarded by MDS in alloc_qos(), otherwise we can get ENOSP while fs is not full.


  • Severity: normal

Frequency: always

Bugzilla: 13805

Description: data checksumming impacts single node performance

Details: disable checksums by default since it impacts single node performance. It is still possible to enable checksums by default via "configure --enable-checksum", or at runtime via procfs.


  • Severity: minor

Frequency: when lov objid is destroyed

Bugzilla: 14222

Description: mds can't recreate lov objid file.

Details: if lov objid file is destroyed and ost with highest index connected first mds not get last objid number from ost. Also if mds get last id from ost his not tell osc about this and it's produce warning about wrong del orphan request.


  • Severity: minor

Frequency: rarely

Bugzilla: 12948

Description: buffer overruns could theoretically occur

Details: llapi_semantic_traverse() modifies the "path" argument by appending values to the end of the origin string, and a buffer overrun may occur. Adding buffer overrun check in liblustreapi.


  • Severity: minor

Bugzilla: 13732

Description: change order of libsysio includes

Details: '#include sysio.h' should always come before '#include xtio.h'

Changes from v1.6.2 to v1.6.3

Support for networks: socklnd - any kernel supported by Lustre, qswlnd - Qsnet kernel modules 5.20 and later, openiblnd - IbGold 1.8.2, o2iblnd - OFED 1.1 and 1.2, viblnd - Voltaire ibhost 3.4.5 and later, ciblnd - Topspin 3.2.0, iiblnd - Infiniserv 3.3 + PathBits patch, gmlnd - GM 2.1.22 and later, mxlnd - MX 1.2.1 or later, ptllnd - Portals 3.3 / UNICOS/lc 1.5.x, 2.0.x

Support for kernels: 2.6.5-7.286 (SLES 9), 2.6.9-55.0.2.EL (RHEL 4), 2.6.16.46-0.14 (SLES 10), 2.6.18-8.1.8.el5 (RHEL 5), 2.6.18.8 vanilla (kernel.org)

Client support for unpatched kernels: (see http://wiki.lustre.org/index.php?title=Patchless_Client) 2.6.16 - 2.6.22 vanilla (kernel.org)

Due to recently discovered recovery problems, we do not recommend using patchless RHEL 4 clients with this or any earlier release.

Recommended e2fsprogs version: 1.40.2-cfs1

Note that reiserfs quotas are disabled on SLES 10 in this kernel.

  • Severity: enhancement

Bugzilla: 12192

Description: llapi_file_create() does not allow some changes

Details: add llapi_file_open() that allows specifying the file creation mode and open flags, and also returns an open file handle.


  • Severity: enhancement

Bugzilla: 12743

Description: df doesn't work properly if diskfs blocksize != 4K

Details: Choose biggest blocksize of OST's as the LOV's blocksize.


  • Severity: enhancement

Bugzilla: 11248

Description: merge and cleanup kernel patches.

Details: Remove mnt_lustre_list in vfs_intent-2.6-rhel4.patch.


  • Severity: enhancement

Bugzilla: 13039

Description: RedHat Update kernel for RHEL5

Details: Kernel config file for RHEL5.


  • Severity: enhancement

Bugzilla: 12446

Description: OSS needs mutliple precreate threads

Details: Add ability to start more than one create thread per OSS.


  • Severity: enhancement

Bugzilla: 13039

Description: RedHat Update kernel for RHEL5

Details: Modify the kernel config file more closer RHEL5.


  • Severity: enhancement

Bugzilla: 13360

Description: Build failure against Centos5 (RHEL5)

Details: Define PAGE_SIZE when it isn't present.


  • Severity: enhancement

Bugzilla: 11401

Description: client-side metadata stat-ahead during readdir(directory readahead)

Details: perform client-side metadata stat-ahead when the client detects readdir and sequential stat of dir entries therein


  • Severity: enhancement

Bugzilla: 11230

Description: Tune the kernel for good SCSI performance.

Details: Set the value of /sys/block/{dev}/queue/max_sectors_kb to the value of /sys/block/{dev}/queue/max_hw_sectors_kb in mount_lustre.


  • Severity: critical

Frequency: Always for filesystems larger than 2TB on 32-bit systems.

Bugzilla: 13547 , 13627

Description: Data corruption for OSTs that are formatted larger than 2TB on 32-bit servers.

Details: When generating the bio request for lustre file writes the sector number would overflow a temporary variable before being used for the IO. The data reads correctly from Lustre (which will overflow in a similar manner) but other file data or filesystem metadata may be corrupted in some cases.


  • Severity: major

Bugzilla: 13236

Description: TOE Kernel panic by ksocklnd

Details: offloaded sockets provide their own implementation of sendpage, can't call tcp_sendpage() directly


  • Severity: major

Bugzilla: 13482

Description: build error

Details: fix typos in gmlnd, ptllnd and viblnd


  • Severity: major

Bugzilla: 12932

Description: obd_health_check_timeout too short

Details: set obd_health_check_timeout as 1.5x of obd_timeout


  • Severity: major

Frequency: only with quota on the root user

Bugzilla: 12223

Description: mds_obd_create error creating tmp object

Details: When the user sets quota on root, llog will be affected and can't create files and write files.


  • Severity: normal

Bugzilla: 12782

Description: /proc/sys/lnet has non-sysctl entries

Details: Updating dump_kernel/daemon_file/debug_mb to use sysctl variables


  • Severity: normal

Bugzilla: 10778

Description: kibnal_shutdown() doesn't finish; lconf --cleanup hangs

Details: races between lnd_shutdown and peer creation prevent lnd_shutdown from finishing.


  • Severity: normal

Bugzilla: 13279

Description: open files rlimit 1024 reached while liblustre testing

Details: ulnds/socklnd must close open socket after unsuccessful 'say hello' attempt.


  • Severity: normal

Frequency: always on directories with default striping set

Bugzilla: 12836

Description: lfs find on -1 stripe looping in lsm_lmm_verify_common()

Details: Avoid lov_verify_lmm_common() on directory with -1 stripe count.


  • Severity: normal

Frequency: Always on ia64 patchless client, and possibly others.

Bugzilla: 12826

Description: Add EXPORT_SYMBOL check for node_to_cpumask symbol.

Details: This allows the patchless client to be loaded on architectures without this export.


  • Severity: normal

Frequency: rare

Bugzilla: 13142

Description: disorder of journal start and llog_add cause deadlock.

Details: in llog_origin_connect, journal start should happen before llog_add keep the same order as other functions to avoid the deadlock.


  • Severity: normal

Frequency: occasionally when using NFS

Bugzilla: 13030

Description: "ll_intent_file_open()) lock enqueue: err: -13" with nfs

Details: with NFS, the anon dentry's parent was set to itself in d_alloc_anon(), so in MDS, we use rec->ur_fid1 to find the corresponding dentry other than use rec->ur_name.


  • Severity: normal

Frequency: Occasionally with failover

Bugzilla: 12459

Description: Client eviction due to failover config

Details: after a connection loss, the lustre client should attempt to reconnect to the last active server first before trying the other potential connections.


  • Severity: normal

Frequency: only with liblustre clients on XT3

Bugzilla: 12418

Description: evictions taking too long

Details: allow llrd to evict clients directly on OSTs


  • Severity: normal

Bugzilla: 13125

Description: osts not allocated evenly to files

Details: change the condition to increase offset_idx


  • Severity: normal

Bugzilla: 13436

Description: Only those disconnect error should be returned by rq_status.

Details: In open/enqueue processs, Some errors, which will cause client disconnected, should be returned by rq_status, while other errors should still be returned by intent, then mdc or llite will detect them.


  • Severity: normal

Bugzilla: 13600

Description: "lfs find -obd UUID" prints directories

Details: "lfs find -obd UUID" will return all directory names instead of just file names. It is incorrect because the directories do not reside on the OSTs.


  • Severity: normal

Bugzilla: 13596

Description: MDS hang after unclean shutdown of lots of clients

Details: Never resend AST requests.


  • Severity: normal

Frequency: Always, for kernels after 2.6.16

Bugzilla: 13304

Description: Fix warning idr_remove called for id=.. which is not allocated. Details: Last kernels save old s_dev before kill super and not allow to restore from callback - restore it before call kill_anon_super.


  • Severity: minor

Bugzilla: 12186

Description: Fix errors in lfs documentation

Details: Fixes man pages


  • Severity: minor

Frequency: rare

Bugzilla: 12588

Description: when mds and osts use different quota unit(32bit and 64bit), quota will be released repeatly.

Details: void sending multiple quota reqs to mds, which will keep the status between the reqs.


  • Severity: cleanup

Bugzilla: 13532

Description: rewrite ext2-derived code in llite/dir.c and obdclass/uuid.c

Details: rewrite inherited code (uuid parsing code from ext2 utils and readdir code from ext3) from scratch preserving functionality.

Changes from v1.6.1 to v1.6.2

Support for kernels: 2.6.5-7.286 (SLES 9), 2.6.9-55.0.2.EL (RHEL 4), 2.6.16.46-0.14 (SLES 10), 2.6.18-8.1.8.el5 (RHEL 5), 2.6.18.8 vanilla (kernel.org)

Client support for unpatched kernels: (see Patchless Client) 2.6.16 - 2.6.22 vanilla (kernel.org)

Due to recently discovered recovery problems, we do not recommend using patchless RHEL 4 clients with this or any earlier release.

Recommended e2fsprogs version: 1.39.cfs8

Note that reiserfs quotas are disabled on SLES 10 in this kernel.

  • Severity: enhancement

Bugzilla: 12786

Description: lfs setstripe enhancement

Details: Make lfs setstripe understand 'k', 'm' and 'g' for stripe size.


  • Severity: enhancement

Bugzilla: 12211

Description: randomly memory allocation failure util

Details: Make lustre randomly failed allocating memory for testing purpose.


  • Severity: enhancement

Bugzilla: 10786

Description: omit set fsid for export NFS

Details: fix set/restore device id for avoid EMFILE error and mark lustre fs as FS_REQUIRES_DEV for avoid problems with generate fsid.


  • Severity: enhancement

Bugzilla: 10595

Description: Error message improvement.

Details: Merging of two LCONSOLE_ERROR_MSG into one.


  • Severity: enhancement

Bugzilla: 12606

Description: don't use GFP_* in generic Lustre code.

Details: Use cfs_alloc_* functions and CFS_* flags for code portability.


  • Severity: enhancement

Bugzilla: 12333

Description: obdclass is limited by single OBD_ALLOC(idarray)

Details: replace OBD_ALLOC/OBD_FREE with OBD_VMALLOC/OBD_VFREE


  • Severity: enhancement

Bugzilla: 12415

Description: updated patchess for new RHEL4 kernel

Details: Fixed ext3-unlink-race.patch per Kalpak's comment.


  • Severity: enhancement

Bugzilla: 13006

Description: warnings with build patchless client with vanila 2.6.19 and up

Details: change old ctl_table style and replace ctl_table/ctl_table_header with cfs_sysctl_table_t/cfs_sysctl_table_header_t


  • Severity: enhancement

Bugzilla: 13093

Description: O_DIRECT bypasses client statistics.

Details: When running with O_DIRECT I/O, neither the client rpc_stats nor read_ahead_stats were updated. Copied stats section from osc_send_oap_rpc() into async_internal().


  • Severity: enhancement

Bugzilla: 13249

Description: Kernel patches for SLES9 2.6.5-7.286 kernel

Details: Update target/ChangeLog/which_patch .


  • Severity: enhancement

Bugzilla: 12955

Description: jbd statistics

Details: Port older jbd statistics patch for sles10


  • Severity: enhancement

Bugzilla: 13360

Description: Build failure against Centos5 (RHEL5)

Details: Use getpagesize() instead of PAGE_SIZE.


  • Severity: major

Frequency: after network failures

Bugzilla: 12769

Description: Add sync option to mount_lustre.c

Details: Client loses data written to lustre after a network interruption.


  • Severity: normal

Frequency: mds/oss recovery

Bugzilla: 10800

Description: llog ctxt is refrenced after it has been freed.

Details: llog ctxt refcount was added to avoide the race between ctxt free and llog recovery process. Each llog user must hold ctxt refcount before it access the llog. And the llog ctxt can only be freed when its refcount is zero.


  • Severity: normal

Frequency: only for SLES10

Bugzilla: 12771

Description: Update kernel patch for SLES10 SP1

Details: Add patch blkdev_tunables-2.6-sles10.patch to 2.6-sles10.series.


  • Severity: normal

Bugzilla: 11802

Description: lustre support for RHEL5

Details: Add support for RHEL5.


  • Severity: normal

Frequency: rare

Bugzilla: 11756

Description: umount blocks forever on error

Details: In result of wrong using obd_no_recov and obd_force flags client can hand if cancel or some other requests is lost.


  • Severity: normal

Frequency: Only for SLES

Bugzilla: 13177

Description: sanity_quota fail test_1

Details: There are multiple occurences of $TSTUSR in SLES's /etc/group file, which makes TSTID[2] inunique.


  • Severity: normal

Frequency: rare

Bugzilla: 9977

Description: lvbo_init failed for resource with missing objects.

Details: Fix returning error if we do stat for file with missing/corrupted objects and i_size set to all sum of size of all avaible objects. if we to truncate/write to missing object - it is recreated.


  • Severity: normal

Frequency: When flocks are used.

Bugzilla: 13103

Description: assertion failure in ldlm_cli_enquque_fini for non NULL lock.

Details: Flock locks might destroy just granted lock if it could be merged with another existing flock, this is done in completion handler, so teach ldlm_cli_enquque_fini that this is a valid case for flock locks.


  • Severity: normal

Frequency: Rare

Bugzilla: 11974

Description: reply_lock_interpret crash due to race with it and lock cancel.

Details: Do not replay locks that are being cancelled. Do not reference locks by their address during replay, just by their handle.


  • Severity: normal

Frequency: only with deactivated OSTs

Bugzilla: 11679

Description: lstripe command fails for valid OST index

Details: The stripe offset is compared to 'lov->desc.ld_tgt_count' instead of lov->desc.ld_active_tgt_count.


  • Severity: minor

Frequency: rare

Bugzilla: 13147

Description: block reactivating mgc import until all deactivates complete

Details: Fix race when failing back MDT/MGS to itself (testing)


  • Severity: minor

Frequency: only for Cray XT3

Bugzilla: 11706

Description: peer credits not enough on many OST per OSS systems.

Details: Use new lnet way to add credits as we need those for pings and ASTs


  • Severity: minor

Frequency: only with liblustre

Bugzilla: 12790

Description: Liblustre is not releasing flock locks on file close.

Details: Release flock locks on file close.


  • Severity: minor

Frequency: only for RHEL4

Bugzilla: 12839

Description: Update kernel patches for kernel-2.6.9-55.0.2.EL

Details: Remove inode-nr_unused-2.6.9-rhel4.patch from 2.6-rhel4.series Update target file and kernel config.


  • Severity: minor

Frequency: rare

Bugzilla: 11327

Description: ASSERTION(export != NULL) failed in target_handle_connect

Details: Assetion hit is result of rare race between disconnect and connet to same nid. target_handle_connect found old connect cockie and tried to reconnect, but can't find export for this cockie.


  • Severity: minor

Frequency: rare

Bugzilla: 13276

Description: Oops in read and write path when failing to allocate lock.

Details: Check if lock allocation failed and return error back.

Changes from v1.6.0.1 to v1.6.1

Support for networks: socklnd - kernels up to 2.6.16, qswlnd - Qsnet kernel modules 5.20 and later, openiblnd - IbGold 1.8.2, o2iblnd - OFED 1.1 and 1.2 viblnd - Voltaire ibhost 3.4.5 and later, ciblnd - Topspin 3.2.0, iiblnd - Infiniserv 3.3 + PathBits patch, gmlnd - GM 2.1.22 and later, mxlnd - MX 1.2.1 or later, ptllnd - Portals 3.3 / UNICOS/lc 1.5.x, 2.0.x

Support for kernels: 2.6.5-7.283 (SLES 9), 2.6.9-55.EL (RHEL 4), 2.6.16.46-0.14 (SLES 10), 2.6.18.8 vanilla (kernel.org)

Client support for unpatched kernels: (see Patchless Client) 2.6.16 - 2.6.22 vanilla (kernel.org)

Due to recently discovered recovery problems, we do not recommend using patchless RHEL 4 clients with this or any earlier release.

Recommended e2fsprogs version: 1.39.cfs8

Note that reiserfs quotas are disabled on SLES 10 in this kernel. Starting with this release, the ldiskfs backing filesystem required by Lustre is now in its own package, lustre-ldiskfs. This package should be installed. It is versioned separately from Lustre and may be released separately in future.

  • Severity: enhancement

Bugzilla: 12194

Description: add optional extra BUILD_VERSION info

Details: add a new environment variable (namely LUSTRE_VERS) which allows to override the lustre version.


  • Severity: enhancement

Bugzilla: 11548

Description: Add LNET router traceability for debug purposes

Details: If a checksum failure occurs with a router as part of the IO path, the NID of the last router that forwarded the bulk data is printed so it can be identified.


  • Severity: enhancement

Bugzilla: 10997

Description: lfs setstripe use optional parameters instead of postional parameters.


  • Severity: enhancement

Bugzilla: 10651

Description: Nanosecond timestamp support for ldiskfs

Details: The on-disk ldiskfs filesystem has added support for nanosecond resolution timestamps. There is not yet support for this at the Lustre filesystem level.


  • Severity: enhancement

Bugzilla: 10768

Description: 64-bit inode version

Details: : Add a on-disk 64-bit inode version for ext3 to track changes made to the inode. This will be required for version-based recovery.


  • Severity: enhancement

Bugzilla: 11563

Description: Add -o localflock option to simulate old noflock behaviour.

Details: This will achieve local-only flock/fcntl locks coherentness.


  • Severity: enhancement

Bugzilla: 11647

Description: update patchless client

Details: Add support for patchless client with 2.6.20, 2.6.21 and RHEL 5


  • Severity: enhancement

Bugzilla: 10589

Description: metadata RPC reduction (e.g. for rm performance)

Details: decrease the amount of synchronous RPC between clients and servers by canceling conflicing lock before the operation on the client and packing thier handles into the main operation RPC to server.


  • Severity: enhancement

Bugzilla: 12605

Description: add #ifdef HAVE_KERNEL_CONFIG_H

Details: kernels from 2.6.19 not need include linux/config.h, but add include linux/autoconf.h in commpiler command line.


  • Severity: enhancement

Bugzilla: 12764

Description: patchless client support for 2.6.22 kernel

Details: 2.6.22 has only one visble change, SLAB_CTOR_* constants is removed. In this case we need drop using os depended interface to kmem_cache and use cfs_mem_cache API.


  • Severity: enhancement

Bugzilla: 10968

Description: VFS operations stats tool.

Details: Tool which collects stats by tracking value written in pid, ppid, gid and uses llstat to generate output to plot graph using plot-llstat Updated lustre/utils/Makefile.am Added lustre/utils/ltrack_stats.c


  • Severity: enhancement

Bugzilla: 11039

Description: 2.6.18 server support (lustre 1.6.1)

Details: Support for 2.6.18 kernels on the server side.


  • Severity: enhancement

Bugzilla: 12678

Description: remove fs_prep_san_write operation and related patches

Details: remove the ext3-san-jdike patches which are no longer useful.


  • Severity: enhancement

Bugzilla: 4900

Description: Async OSC create to avoid the blocking unnecessarily.

Details: If a OST has no remain object, system will block on the creating when need to create a new object on this OST. Now, ways use pre-created objects when available, instead of blocking on an empty osc while others are not empty. If we must block, we block for the shortest possible period of time.


  • Severity: enhancement

Bugzilla: 11721

Description: Add printing inode info into message about error in writepage.


  • Severity: major

Bugzilla: 11971

Description: Accessing a block bevice can re-enable I/O when Lustre is tearing down a device.

Details: dev_clear_rdonly(bdev) must be called in kill_bdev() instead of blkdev_put().


  • Severity: major

Frequency: only with mballoc3 code and deep extent trees

Bugzilla: 12861

Description: ldiskfs_ext_search_right: bad header in inode: unexpected eh_depth

Details: a wrong check of extent headers in ldiskfs_ext_search_right() can cause the filesystem to be remounted read-only.


  • Severity: normal

Frequency: rare

Bugzilla: 13129

Description: server LBUG when shutting down

Details: Block umount forever until the mount refcount is zero rather than giving up after an arbitrary timeout.


  • Severity: normal

Frequency: 2.6.18 servers only

Bugzilla: 12546

Description: ll_kern_mount() doesn't release the module reference

Details: The ldiskfs module reference count never drops down to 0 because ll_kern_mount() doesn't release the module reference.


  • Severity: normal

Frequency: rare

Bugzilla: 12470

Description: server LBUG when using old ost_num_threads parameter

Details: Accept the old ost_num_threads parameter but warn that it is deprecated, and fix an off-by-one error that caused an LBUG.


  • Severity: normal

Frequency: rare

Bugzilla: 11722

Description: Transient SCSI error results in persistent IO issue

Details: iobuf->dr_error is not reinitialized to 0 between two uses.


  • Severity: normal

Frequency: sometimes when underlying device returns I/O errors

Bugzilla: 11743

Description: OSTs not going read-only during write failures

Details: OSTs are not remounted read-only when the journal commit threads get I/O errors because fsfilt_ext3 calls journal_start/stop() instead of the ext3 wrappers.


  • Severity: normal

Frequency: SLES10 only

Bugzilla: 12538

Description: sanity-quota.sh quotacheck failed: rc = -22

Details: Quotas cannot be enabled on SLES10.


  • Severity: normal

Frequency: liblustre clients only

Bugzilla: 12229

Description: getdirentries does not give error when run on compute nodes

Details: getdirentries does not fail when the size specified as an argument is too small to contain at least one entry


  • Severity: normal

Frequency: rare

Bugzilla: 11315

Description: OST "spontaneously" evicts client; client has imp_pingable == 0

Details: Due to a race condition, liblustre clients were occasionally evicted incorrectly.


  • Severity: normal

Frequency: during server recovery

Bugzilla: 11203

Description: MDS failing to send precreate requests due to OSCC_FLAG_RECOVERING

Details: request with rq_no_resend flag not awake l_wait_event if they get a timeout.


  • Severity: normal

Frequency: rare

Bugzilla: 11818

Description: MDS fails to start if a duplicate client export is detected

Details: in some rare cases it was possible for a client to connect to an MDS multiple times. Upon recovery the MDS would detect this and fail during startup. Handle this more gracefully.


  • Severity: normal

Frequency: rare

Bugzilla: 12477

Description: Wrong request locking in request set processing

Details: ptlrpc_check_set wrongly uses req->rq_lock for proctect add to imp_delayed_list, in this place should be used imp_lock.


  • Severity: normal

Frequency: when reconnecting

Bugzilla: 11662

Description: Grant leak when OSC reconnect to OST

Details: When osc reconnect ost, OST(filter) should check whether it should grant more space to client by comparing fed_grant and cl_avail_grant, and return the granted space to client instead of "new granted" space, because client will call osc_init_grant to update the client grant space info.


  • Severity: normal

Frequency: when client reconnects to OST

Bugzilla: 11662

Description: Grant leak when OSC does a resend and replays bulk write

Details: When osc reconnect to OST, OST(filter) should clear grant info of bulk write request, because the grant info while be sync between OSC and OST when reconnect, and we should ignore the grant info these of resend/replay write req.


  • Severity: normal

Frequency: rare

Bugzilla: 11662

Description: Grant space more than avaiable space sometimes.

Details: When then OST is about to be full, if two bulk writing from different clients came to OST. Accord the avaliable space of the OST, the first req should be permitted, and the second one should be denied by ENOSPC. But if the seconde arrived before the first one is commited. The OST might wrongly permit second writing, which will cause grant space > avaiable space.


  • Severity: normal

Frequency: when client is evicted

Bugzilla: 12371

Description: Grant might be wrongly erased when osc is evicted by OST

Details: when the import is evicted by server, it will fork another thread ptlrpc_invalidate_import_thread to invalidate the import, where the grant will be set to 0. While the original thread will update the grant it got when connecting. So if the former happened latter, the grant will be wrongly errased because of this race.


  • Severity: normal

Frequency: rare

Bugzilla: 12401

Description: Checking Stale with correct fid

Details: ll_revalidate_it should uses de_inode instead of op_data.fid2 to check whether it is stale, because sometimes, we want the enqueue happened anyway, and op_data.fid2 will not be initialized.


  • Severity: normal

Frequency: only with 2.4 kernel

Bugzilla: 12134

Description: random memory corruption

Details: size of struct ll_inode_info is to big for union inode.u and this can be cause of random memory corruption.


  • Severity: normal

Frequency: rare

Bugzilla: 10818

Description: Memory leak in recovery

Details: Lov_mds_md was not free in an error handler in mds_create_object. It should also check obd_fail before fsfilt_start, otherwise if fsfilt_start return -EROFS,(failover mds during mds recovery). then the req will return with repmsg->transno = 0 and rc = EROFS. and we met hit the assert LASSERT(req->rq_reqmsg->transno == req->rq_repmsg->transno) in ptlrpc_replay_interpret. Fcc should be freed no matter whether fsfilt_commit success or not.


  • Severity: normal

Frequency: rare

Bugzilla: 11935

Description: Not check open intent error before release open handle

Details: in some rare cases, the open intent error is not checked before release open handle, which may cause ASSERTION(open_req->rq_transno != 0), because it tries to release the failed open handle.


  • Severity: normal

Frequency: rare

Bugzilla: 12556

Description: Set cat log bitmap only after create log success.

Details: in some rare cases, the cat log bitmap is set too early. and it should be set only after create log success.


  • Severity: normal

Frequency: rare

Bugzilla: 12086

Description: the cat log was not initialized in recovery

Details: When mds(mgs) do recovery, the tgt_count might be zero, so the unlink log on mds will not be initialized until mds post recovery. And also in mds post recovery, the unlink log will initialization will be done asynchronausly, so there will be race between add unlink log and unlink log initialization.


  • Severity: normal

Bugzilla: 12597

Description: brw_stats were being printed incorrectly

Details: brw_stats were being printed as log2 but all of them were not recorded as log2. Also remove some code duplication arising from filter_tally_{read,write}.


  • Severity: normal

Frequency: rare, only in recovery.

Bugzilla: 11674

Description: ASSERTION(req->rq_type != LI_POISON) failed

Details: imp_lock should be held while iterating over imp_sending_list for prevent destroy request after get timeout in ptlrpc_queue_wait.


  • Severity: normal

Bugzilla: 12689

Description: replay-single.sh test 52 fails

Details: A lock's skiplist need to be cleanup when it being unlinked from its resource list.


  • Severity: normal

Frequency: always

Bugzilla: 11737

Description: Short directio read returns full requested size rather than actual amount read.

Details: Direct I/O operations should return actual amount of bytes transferred rather than requested size.


  • Severity: normal

Bugzilla: 12646

Description: sanity.sh test_77h fails with "test_77h file compare failed"

Details: test_77h uses a file which was messed by other test case.


  • Severity: normal

Bugzilla: 12576

Description: Not Check whether lov_tgts is NULL in some lov functions

Details: Checking whether lov_tgts is NULL in some functions.


  • Severity: normal

Bugzilla: 11815

Description: replace obdo_alloc() with OBDO_ALLOC macro

Details: nothing special is done in obdo_alloc() function, and for debugging purpose, it needs to be replaced with macros.


  • Severity: normal

Bugzilla: 12784

Description: bad return value and errno from fcntl call

Details: In liblustre API, errno should be a negative value if error happens.


  • Severity: normal

Bugzilla: 11544

Description: ptlrpc_check_set() LBUG

Details: In case of positive reply from server and failed client bulk callback after bulk transfer shouldn't LBUG, but process this request as erroneous.


  • Severity: normal

Frequency: rare

Bugzilla: 12696

Description: ASSERTION(imp->imp_conn_current) failed

Details: an assertion failure is hit if a client node boots and attempts to mount a lustre filesystem faster than RECONNECT_INTERVAL seconds.


  • Severity: normal

Frequency: only for i686

Bugzilla: 12695

Description: 1.4.11 RC1 build fails for RHEL 4, i686

Details: Fixed config variable for build.


  • Severity: normal

Frequency: rare

Bugzilla: 12415

Description: Updated patchess for new RHEL4 kernel

Details: Updated patch inode-nr_unused-2.6.9-rhel4.patch Updated patch jbd-stats-2.6.9.patch Updated patch qsnet-rhel4-2.6.patch Updated patch quota-deadlock-on-pagelock-core.patch Updated patch vfs_intent-2.6-rhel4.patch Updated patch vfs_races-2.6-rhel4.patch Updated series file 2.6-rhel4-titech.series Updated series file 2.6-rhel4.series Updated kernel config files


  • Severity: normal

Frequency: rare

Bugzilla: 12374

Description: lquota slave complains LBUG when reconnecting with mds or failover in mds.

Details: quota slave depends qctxt->lqc_import to send its quota request. This pointer will be invalid if mds did failover or broke its connect to osts, which leads to LBUG.


  • Severity: normal

Frequency: when qunit size is too small(less than 20M)

Bugzilla: 12588

Description: write is stopped by improper -EDQUOT

Details: If the master is busy and qunit size is small enough(let's say 1M), the slave can not get quota from master on time, which will lead slave to trigger a -EQUOTA to client.


  • Severity: normal

Frequency: rare

Bugzilla: 12629

Description: Deadlock during metadata tests

Details: in prune_dir_dentries(), shrink_dcache_parent() should not be called with the per-dentry lock held.


  • Severity: normal

Frequency: SLES9 only

Bugzilla: 12744

Description: Lustre patched kernel for SLES9 SP3 has NR_CPUS set to 8

Details: set CONFIG_NR_CPUS to 128 instead of 8.


  • Severity: normal

Frequency: rare

Bugzilla: 11324

Description: LDISKFS-fs error (device sdc): ldiskfs_free_blocks

Details: a disk corruption can cause the mballoc code to assert on a double free or other extent corruptions. Handle these with ext3_error() instead of assertions.


  • Severity: normal

Frequency: rare

Bugzilla: 13063

Description: lfsck built against 1.4.x cannot run against 1.6.0 lustre

Details: the definition for OBD_IOC_GETNAME changed in 1.6.0. One of the few external users of this ioctl number is lfsck's call to llapi_lov_get_uuids() and this caused lfsck to fail at startup. Add the old ioctl number to the handler so both old and new lfsck can work.


  • Severity: normal

Bugzilla: 11301

Description: parallel lock callbacks

Details: Instead of sending blocking and completion callbacks as separated requests, adding them to a set and sending in parallel.


  • Severity: normal

Bugzilla: 12417

Description: Disable most debugging by default

Details: To improve performance, disable most logging (for debug purposes) by default. VFSTRACE, RPCTRACE, and DLMTRACE are now off by default, and HA includes fewer messages.


  • Severity: normal

Bugzilla: 11013

Description: hash tables for lists of nids, connections and uuids

Details: Hash tables noticeably help when a lot of clients connect to a server, to faster identify duplicate connections or reconnects, also to faster find export to evict in manual eviction case.


  • Severity: normal

Bugzilla: 11190

Description: Sometimes, when the server evict a client, and the client will not be evicted as soon as possible.

Details: In enqueue req, the error was returned by intent, instead of rq_status which make ptlrpc layer not detect this error, and does not evict the client. So enqueue error should be returned by rq_status.


  • Severity: normal

Frequency: only for SLES9

Bugzilla: 12543

Description: Routinely utilize latest Quadrics drivers in CFS releases

Details: Update patch qsnet-suse-2.6.patch.


  • Severity: normal

Frequency: only for sles10

Bugzilla: 12771

Description: Update patches for SLES 10 SP1 kernel.

Details: Update the patch vfs_intent-2.6-sles10.patch.


  • Severity: normal

Frequency: rare

Bugzilla: 12543

Description: Routinely utilize latest Quadrics drivers in CFS releases

Details: Update patch qsnet-rhel4-2.6.patch.


  • Severity: normal

Frequency: rare

Bugzilla: 12975

Description: Using wrong pointer in osc_brw_prep_request

Details: Access to array[-1] can produce panic if kernel compiled with CONFIG_PAGE_ALLOC enabled


  • Severity: normal

Frequency: only in recovery

Bugzilla: 13148

Description: Mark OST as early accessible if his start SYNC.

Details: osc_precreate return flag early accessible if oscc marked as OSCC_FLAG_SYNC_IN_PROGRESS.


  • Severity: normal

Frequency: rare

Bugzilla: 13196

Description: Sometimes precreate code can triger create object on wrong ost

Details: Wrong protected or not not restored variables aftre precreate loop can produce creation object on wrong ost.


  • Severity: normal

Frequency: oss recovery

Bugzilla: 10800

Description: llog_commit_thread cleanup should sync with llog_commit_thread start

Details: llog_commit_thread_count should be synced between llog_commit start and cleanup, so new llog_commit thread should not be started when llog_commit threads being stopped to avoid accessing some freed stuff.


  • Severity: minor

Frequency: only with 10000 clients or more

Bugzilla: 12364

Description: poor connect scaling with increasing client count

Details: Don't run filter_grant_sanity_check for more than 100 exports to improve scaling for large numbers of clients.


  • Severity: minor

Frequency: nfs export on patchless client

Bugzilla: 11970

Description: connectathon hang when test nfs export over patchless client

Details: Disconnected dentry cannot be found with lookup, so we do not need to unhash it or make it invalid


  • Severity: minor

Frequency: rare

Bugzilla: 11546

Description: open req refcounting wrong on reconnect

Details: If reconnect happened between getting open reply from server and call to mdc_set_replay_data in ll_file_open, we will schedule replay for unreferenced request that we are about to free. Subsequent close will crash in variety of ways. Check that request is still eligible for replay in mdc_set_replay_data().


  • Severity: minor

Frequency: rare

Bugzilla: 11512

Description: disable writes to filesystem when reading health_check file

Details: the default for reading the health_check proc file has changed to NOT do a journal transaction and write to disk, because this can cause reads of the /proc file to hang and block HA state checking on a healthy but otherwise heavily loaded system. It is possible to return to the previous behaviour during configure with --enable-health-write.


  • Severity: minor

Frequency: rare

Bugzilla: 11658

Description: log_commit_thread vs filter_destroy race leads to crash

Details: Take import reference before releasing llog record semaphore


  • Severity: minor

Frequency: only with huge numbers of clients

Bugzilla: 11817

Description: Prevents from taking the superblock lock in llap_from_page for a soon died page.

Details: using LL_ORIGIN_REMOVEPAGE origin flag instead of LL_ORIGIN_UNKNOW for llap_from_page call in ll_removepage() prevents from taking the superblock lock for a soon died page.


  • Severity: minor

Bugzilla: 11706

Description: service threads may hog cpus when there are a lot of requests

Details: Insert cond_resched to give other threads a chance to use some CPU


  • Severity: minor

Frequency: always

Bugzilla: 12747

Description: fix mal-formatted messages

Details: fix some mal-formatted DEBUG_REQ and LCONSOLE_ERROR_MSG messages


  • Severity: minor

Frequency: always in liblustre

Bugzilla: 11737

Description: wrong IS_ERR implementation in liblustre.h

Details: fix IS_ERR implementation in liblustre.h for right detect errors.


  • Severity: minor

Frequency: always

Bugzilla: 10419

Description: Correct condition for output debug message.

Details: inode i_nlink equal zero is not enough for output message about disk corruption, i_ctime and i_mode should be also checked.


  • Severity: minor

Frequency: always in patchless client

Bugzilla: 12415

Description: add configure check for truncate_complete_page

Details: improve checks for exported symbols. This allow run check without sources, but with Module.symvers shipped with kernel distribution. add check for truncate_complete_page used by patchless client.


  • Severity: minor

Frequency: only run on patchless client.

Bugzilla: 12858

Description: use do_facet on sanity.sh for test handling recoverables errors

Details: use do_facet instead of direct use sysctl for set fail_loc on OST


  • Severity: minor

Frequency: only at startup

Bugzilla: 11778

Description: Delay client connections to MDT until fist MDT->OST connect

Details: If a client tried to create a new file before the MDT had connected to any OSTs, the create would return EIO. Now the client will simply block until the MDT connects to the first OST and the create can succeed.


  • Severity: minor

Frequency: at statup only

Bugzilla: 12860

Description: mds_lov_synchronize race leads to various problems

Details: simultaneous MDT->OST connections at startup can cause the sync to abort, leaving the OSC in a bad state.

Changes from v1.6.0 to v1.6.0.1

  • Severity: normal

Frequency: on some architectures

Bugzilla: 12404

Description: 1.6 client sometimes fails to mount from a 1.4 MDT

Details: Uninitialized flags sometimes cause configuration commands to be skipped.


  • Severity: normal

Frequency: patchless clients only

Bugzilla: 12391

Description: missing __iget() symbol export

Details: The __iget() symbol export is missing. To avoid the need for this on patchless clients the deathrow inode reaper is turned off, and we depend on the VM to clean up old inodes. This dependency was during via the fix for bug 12181.


  • Severity: normal

Frequency: always

Bugzilla: 12848

Description: sanity.sh fail: test_52b

Details: The ll_inode_to_ext_flags() has a glitch which makes MDS return incorrect inode's flags to client.


Changes from v1.4.10 to v1.6.0

CONFIGURATION CHANGE. This version of Lustre WILL NOT INTEROPERATE with older versions automatically. In many cases a special upgrade step is needed. Please read the user documentation before upgrading any part of a 1.4.x system.

WARNING: Lustre configuration and startup changes are required with this release. See Mount Conf for details.

Support for kernels: 2.4.21-47.0.1.EL (RHEL 3), 2.6.5-7.283 (SLES 9), 2.6.9-42.0.10.EL (RHEL 4), 2.6.12.6 vanilla (kernel.org), 2.6.16.27-0.9 (SLES10)

Client support for unpatched kernels: (see Patchless Client) 2.6.16 - 2.6.19 vanilla (kernel.org), 2.6.9-42.0.8EL (RHEL 4)

Recommended e2fsprogs version: 1.39.cfs6

Note that reiserfs quotas are disabled on SLES 10 in this kernel

  • Severity: enhancement

Bugzilla: 4900

Description: Async OSC create to avoid the blocking unnecessarily.

Details: If a OST has no remain object, system will block on the creating when need to create a new object on this OST. Now, ways use pre-created objects when available, instead of blocking on an empty osc while others are not empty. If we must block, we block for the shortest possible period of time.


  • Severity: enhancement

Bugzilla: 8007

Description: MountConf

Details: Lustre configuration is now managed via mkfs and mount commands instead of lmc and lconf. New obd types (MGS, MGC) are added for dynamic configuration management. See Mount Conf for details.


  • Severity: enhancement

Bugzilla: 4482

Description: dynamic OST addition

Details: OSTs can now be added to a live filesystem


  • Severity: enhancement

Bugzilla: 9851

Description: startup order invariance

Details: MDTs and OSTs can be started in any order. Clients only require the MDT to complete startup.


  • Severity: enhancement

Bugzilla: 4899

Description: parallel, asynchronous orphan cleanup

Details: orphan cleanup is now performed in separate threads for each OST, allowing parallel non-blocking operation.


  • Severity: enhancement

Bugzilla: 9862

Description: optimized stripe assignment

Details: stripe assignments are now made based on ost space available, ost previous usage, and OSS previous usage, in order to try to optimize storage space and networking resources.


  • Severity: enhancement

Bugzilla: 4226

Description: Permanently set tunables

Details: All writable /proc/fs/lustre tunables can now be permanently set on a per-server basis, at mkfs time or on a live system.


  • Severity: enhancement

Bugzilla: 10547

Description: Lustre message v2

Details: Add lustre message format v2.


  • Severity: enhancement

Bugzilla: 9866

Description: client OST exclusion list

Details: Clients can be started with a list of OSTs that should be declared "inactive" for known non-responsive OSTs.


  • Severity: enhancement

Bugzilla: 10088

Description: fine-grained SMP locking inside DLM

Details: Improve DLM performance on SMP systems by removing the single per-namespace lock and replace it with per-resource locks.


  • Severity: enhancement

Bugzilla: 9332

Description: don't hold multiple extent locks at one time

Details: To avoid client eviction during large writes, locks are not held on multiple stripes at one time or for very large writes. Otherwise, clients can block waiting for a lock on a failed OST while holding locks on other OSTs and be evicted.


  • Severity: enhancement

Bugzilla: 9293

Description: Multiple MD RPCs in flight.

Details: Further unserialise some read-only MDT RPCs - learn about intents. To avoid overly-overloading MDT, introduce a limit on number of MDT RPCs in flight for a single client and add /proc controls to adjust this limit.


  • Severity: enhancement

Bugzilla: 22484

Description: client read/write statistics

Details: Add client read/write call usage stats for performance analysis of user processes. /proc/fs/lustre/llite/*/offset_stats shows non-sequential file access. extents_stats shows chunk size distribution. extents_stats_per_process show chunk size distribution per user process.


  • Severity: enhancement

Bugzilla: 22485

Description: per-client statistics on server

Details: Add ldlm and operations statistics for each client in /proc/fs/lustre/mds|obdfilter/*/exports/


  • Severity: enhancement

Bugzilla: 22486

Description: improved MDT statistics

Details: Add detailed MDT operations statistics in /proc/fs/lustre/mds/*/stats


  • Severity: enhancement

Bugzilla: 10968

Description: VFS operations stats

Details: Add client VFS call stats, trackable by pid, ppid, or gid /proc/fs/lustre/llite/*/stats_track_[pid|ppid|gid]


  • Severity: enhancement

Bugzilla: 2258

Description: Dynamic service threads

Details: Within a small range, start extra service threads automatically when the request queue builds up.


  • Severity: enhancement

Bugzilla: 11229

Description: Easy OST removal

Details: OSTs can be permanently deactivated with e.g. 'lctl conf_param lustre-OST0001.osc.active=0'


  • Severity: enhancement

Bugzilla: 11335

Description: MGS proc entries

Details: Added basic proc entries for the MGS showing what filesystems are served.


  • Severity: enhancement

Bugzilla: 10998

Description: provide MGS failover

Details: Added config lock reacquisition after MGS server failover.


  • Severity: enhancement

Bugzilla: 11461

Description: add Linux 2.4 support

Details: Added support for RHEL 2.4.21 kernel for 1.6 servers and clients


  • Severity: enhancement

Bugzilla: 10902

Description: plain/inodebits lock performance improvement

Details: Grouping plain/inodebits in granted list by their request modes and bits policy, thus improving the performance of search through the granted list.


  • Severity: enhancement

Bugzilla: 11667

Description: Add "/proc/sys/lustre/debug_peer_on_timeout"

Details: liblustre envirable: LIBLUSTRE_DEBUG_PEER_ON_TIMEOUT boolean to control whether to print peer debug info when a client's RPC times out.


  • Severity: enhancement

Bugzilla: 11264

Description: Add uninit_groups feature to ldiskfs2 to speed up e2fsck

Details: The uninit_groups feature works in conjunction with the kernel filesystem code (ldiskfs2 only) and e2fsprogs-1.39-cfs6 to speed up the pass1 processing of e2fsck. This is a read-only feature in ldiskfs2 only, so older kernels and current ldiskfs cannot mount filesystems that have had this feature enabled.


  • Severity: enhancement

Bugzilla: 10816

Description: Improve multi-block allocation algorithm to avoid fragmentation

Details: The mballoc3 code (ldiskfs2 only) adds new mechanisms to improve allocation locality and avoid filesystem fragmentation.


  • Severity: major

Frequency: mixed-endian client/server environments

Bugzilla: 11214

Description: mixed-endian crashes

Details: The new msg_v2 system had some failures in mixed-endian environments.


  • Severity: major

Frequency: when an incorrect nid is specified during startup

Bugzilla: 10734

Description: ptlrpc connect to non-existant node causes kernel crash

Details: LNET can't be re-entered from an event callback, which happened when we expire a message after the export has been cleaned up. Instead, hand the zombie cleanup off to another thread.


  • Severity: major

Frequency: only if OST filesystem is corrupted

Bugzilla: 9829

Description: client incorrectly hits assertion in ptlrpc_replay_req()

Details: for a short time RPCs with bulk IO are in the replay list, but replay of bulk IOs is unimplemented. If the OST filesystem is corrupted due to disk cache incoherency and then replay is started it is possible to trip an assertion. Avoid putting committed RPCs into the replay list at all to avoid this issue.


  • Severity: major

Frequency: liblustre (e.g. catamount) on a large cluster with >= 8 OSTs/OSS

Bugzilla: 11684

Description: System hang on startup

Details: This bug allowed the liblustre (e.g. catamount) client to return to the app before handling all startup RPCs. This could leave the node unresponsive to lustre network traffic and manifested as a server ptllnd timeout.


  • Severity: major

Frequency: only for devices with external journals

Bugzilla: 10719

Description: Set external device read-only also

Details: During a commanded failover stop, we set the disk device read-only while the server shuts down. We now also set any external journal device read-only at the same time.


  • Severity: major

Frequency: when setting specific ost indicies

Bugzilla: 11149

Description: QOS code breaks on skipped indicies

Details: Add checks for missing OST indicies in the QOS code, so OSTs created with --index need not be sequential.


  • Severity: normal

Bugzilla: 12123

Description: ENOENT returned for valid filehandle during dbench.

Details: Check if a directory has children when invalidating dentries associated with an inode during lock cancellation. This fixes an incorrect ENOENT sometimes seen for valid filehandles during testing with dbench.


  • Severity: normal

Bugzilla: 11330

Description: a large application tries to do I/O to the same resource and dies in the middle of it.

Details: Check the req->rq_arrival time after the call to ost_brw_lock_get(), but before we do anything about processing it & sending the BULK transfer request. This should help move old stale pending locks off the queue as quickly as obd_timeout.


  • Severity: minor

Frequency: SFS test only (otherwise harmless)

Bugzilla: 6062

Description: SPEC SFS validation failure on NFS v2 over lustre.

Details: Changes the blocksize for regular files to be 2x RPC size, and not depend on stripe size.


  • Severity: minor

Frequency: always

Bugzilla: 6380

Description: Fix client-side osc byte counters

Details: The osc read/write byte counters in /proc/fs/lustre/osc/*/stats are now working


  • Severity: minor

Frequency: always as root on SLES

Bugzilla: 10667

Description: Failure of copying files with lustre special EAs.

Details: Client side always return success for setxattr call for lustre special xattr (currently only "trusted.lov").


  • Severity: minor

Frequency: always

Bugzilla: 10345

Description: Refcount LNET uuids

Details: The global LNET uuid list grew linearly with every startup; refcount repeated list entries instead of always adding to the list.


  • Severity: minor

Frequency: only for kernels with patches from Lustre below 1.4.3

Bugzilla: 11248

Description: Remove old rdonly API

Details: Remove old rdonly API which unused from at least lustre 1.4.3


  • Severity: minor

Frequency: when upgrading from 1.4 while trying to change parameters

Bugzilla: 11692

Description: The wrong (new) MDC name was used when setting parameters for upgraded MDT's. Also allows changing of OSC (and MDC) parameters if --writeconf is specified at tunefs upgrade time.

Changes from v1.6.0 to v1.4.11

Support for networks: socklnd - kernels up to 2.6.16, qswlnd - Qsnet kernel modules 5.20 and later, openiblnd - IbGold 1.8.2, o2iblnd - OFED 1.1 viblnd - Voltaire ibhost 3.4.5 and later, ciblnd - Topspin 3.2.0, iiblnd - Infiniserv 3.3 + PathBits patch, gmlnd - GM 2.1.22 and later, mxlnd - MX 1.2.1 or later, ptllnd - Portals 3.3 / UNICOS/lc 1.5.x, 2.0.x

  • Severity: major

Bugzilla: 12014

Description: ASSERTION failures when upgrading to the patchless zero-copy socklnd

Details: This bug affects "rolling upgrades", causing an inconsistent protocol version negotiation and subsequent assertion failure during rolling upgrades after the first wave of upgrades.


  • Severity: major

Bugzilla: 10916

Description: added LNET self test

Details: landing b_self_test


  • Severity: major

Bugzilla: 12316

Description: Add OFED1.2 support to o2iblnd

Details: o2iblnd depends on OFED's modules, if out-tree OFED's modules are installed (other than kernel's in-tree infiniband), there could be some problem while insmod o2iblnd (mismatch CRC of ib_* symbols). If extra Module.symvers is supported in kernel (i.e, 2.6.17), this link provides solution: https://bugs.openfabrics.org/show_bug.cgi?id=355 if extra Module.symvers is not supported in kernel, we will have to run the script in bug 12316 to update $LINUX/module.symvers before building o2iblnd. More details about this are in bug 12316.


  • Severity: normal

Bugzilla: 11680

Description: make panic on lbug configurable


  • Severity: minor

Bugzilla: 13288

Description: Initialize cpumask before use


  • Severity: minor

Bugzilla: 11223

Details: Change "dropped message" CERRORs to D_NETERROR so they are logged instead of creating "console chatter" when a lustre timeout races with normal RPC completion.


  • Severity: minor

Details: lnet_clear_peer_table can wait forever if user forgets to clear a lazy portal.


  • Severity: minor

Details: libcfs_id2str should check pid against LNET_PID_ANY.


  • Severity: minor

Frequency: rare

Bugzilla: 12227

Description: cfs_duration_{u,n}sec() wrongly calculate nanosecond part of struct timeval.

Details: do_div() macro is used incorrectly.

Changes from v1.4.9 to v1.6.0

Support for networks: socklnd - kernels up to 2.6.16, qswlnd - Qsnet kernel modules 5.20 and later, openiblnd - IbGold 1.8.2, o2iblnd - OFED 1.1, viblnd - Voltaire ibhost 3.4.5 and later, ciblnd - Topspin 3.2.0, iiblnd - Infiniserv 3.3 + PathBits patch, gmlnd - GM 2.1.22 and later, mxlnd - MX 1.2.1 or later, ptllnd - Portals 3.3 / UNICOS/lc 1.5.x, 2.0.x

  • Severity: enhancement

Bugzilla: 10316

Description: Fixed console chatter in case of -ETIMEDOUT.


  • Severity: enhancement

Bugzilla: 11684

Description: Added D_NETTRACE for recording network packet history (initially only for ptllnd). Also a separate userspace ptllnd facility to gather history which should really be covered by D_NETTRACE too, if only CDEBUG recorded history in userspace.


  • Severity: enhancement

Bugzilla: 11094

Description: Multiple instances for o2iblnd

Details: Allow multiple instances of o2iblnd to enable networking over multiple HCAs and routing between them.


  • Severity: major

Frequency: rare

Bugzilla: 12458

Description: Assertion failure in kernel ptllnd caused by posting passive bulk buffers before connection establishment complete.


  • Severity: major

Frequency: rare

Bugzilla: 12455

Description: A race in kernel ptllnd between deleting a peer and posting new communications for it could hang communications - manifesting as "Unexpectedly long timeout" messages.


  • Severity: major

Frequency: rare

Bugzilla: 12432

Description: Kernel ptllnd lock ordering issue could hang a node.


  • Severity: major

Frequency: rare

Bugzilla: 12016

Description: node crash on socket teardown race


  • Severity: major

Frequency: after Ptllnd timeouts and portals congestion

Bugzilla: 11659

Description: Credit overflows

Details: This was a bug in ptllnd connection establishment. The fix implements better peer stamps to disambiguate connection establishment and ensure both peers enter the credit flow state machine consistently.


  • Severity: major

Frequency: rare

Bugzilla: 11394

Description: kptllnd didn't propagate some network errors up to LNET

Details: This bug was spotted while investigating 11394. The fix ensures network errors on sends and bulk transfers are propagated to LNET/lustre correctly.


  • Severity: major

Frequency: rare

Bugzilla: 11616

Description: o2iblnd handle early RDMA_CM_EVENT_DISCONNECTED.

Details: If the fabric is lossy, an RDMA_CM_EVENT_DISCONNECTED callback can occur before a connection has actually been established. This caused an assertion failure previously.


  • Severity: major

Bugzilla: 11201

Description: lnet deadlock in router_checker

Details: turned ksnd_connd_lock, ksnd_reaper_lock, and ksock_net_t:ksnd_lock into BH locks to eliminate potential deadlock caused by ksocknal_data_ready() preempting code holding these locks.


  • Severity: major

Bugzilla: 11126

Description: Millions of failed socklnd connection attempts cause a very slow FS

Details: added a new route flag ksnr_scheduled to distinguish from ksnr_connecting, so that a peer connection request is only turned down for race concerns when an active connection to the same peer is under progress (instead of just being scheduled).


  • Severity: normal

Frequency: rare

Description: gmlnd ignored some transmit errors when finalizing lnet messages.


  • Severity: normal

Frequency: rare

Bugzilla: 11472

Description: Changed the default kqswlnd ntxmsg=512


  • Severity: minor

Frequency: rare

Description: Ptllnd didn't init kptllnd_data.kptl_idle_txs before it could be possibly accessed in kptllnd_shutdown. Ptllnd should init kptllnd_data.kptl_ptlid2str_lock before calling kptllnd_ptlid2str.


  • Severity: minor

Frequency: rare

Description: ptllnd logs a piece of incorrect debug info in kptllnd_peer_handle_hello.


  • Severity: minor

Frequency: rare

Description: the_lnet.ln_finalizing was not set when the current thread is about to complete messages. It only affects multi-threaded user space LNet.


  • Severity: minor

Frequency: 'lctl peer_list' issued on a mx net

Bugzilla: 12237

Description: Enable lctl's peer_list for MXLND