NOVELL TECHNICAL INFORMATION DOCUMENT TITLE: NSS NLMs post SP6 TID #: 2966236 README FOR: nss5q.exe SUPERSEDES: nss5p.exe NOVELL PRODUCTS and VERSIONS: NetWare 5.1 ABSTRACT: This download file contains NSS NLMs past the release of NW51SP6. See the comments for a full list of fixes since Support Pack 5. Novell recommends that this patch be applied to NetWare 5.1 servers running SP3, SP4, SP5 or SP6. There has been limited to no testing done with support packs other than NetWare 5.1 SP5 and NetWare 5.1 SP6. This patch can be applied to a NetWare cluster; however that cluster MUST be running the clustering support pack 2. This is the minimum requirement. If it is not (using SP2 for clustering, or beyond), DO NOT do any type of volume operations (modify, create, etc.) or the possibilty for data loss is real. September 30, 2003: Rebuilt for public release. No files were changed. ----------------------------------------------------------------- DISCLAIMER THE ORIGIN OF THIS INFORMATION MAY BE INTERNAL OR EXTERNAL TO NOVELL. NOVELL MAKES ALL REASONABLE EFFORTS TO VERIFY THIS INFORMATION. HOWEVER, THE INFORMATION PROVIDED IN THIS DOCUMENT IS FOR YOUR INFORMATION ONLY. NOVELL MAKES NO EXPLICIT OR IMPLIED CLAIMS TO THE VALIDITY OF THIS INFORMATION. ----------------------------------------------------------------- INSTALLATION INSTRUCTIONS: A backup of your existing NSS files will be saved to the SYS:SYSTEM\!BACKUP.NSS directory. To go back to the previous version of the NSS files, simply copy the files in the !BACKUP.NSS directory to the SYS:\SYSTEM directory. INSTALLATION OPTIONS: Method #1 With NWCONFIG.NLM through "Product Options". Method #2 Manually copying the files to the server. INSTRUCTIONS: Method #1 1. Run NSS5Q.EXE, unzipping files into the appropriate directory. This executable will create a directory called NSS5Q at the root of the directory where the patch is extracted. 2. Copy unzipped file structure to floppy drive, workstation hard drives or server volume. 3. Load NWCONFIG.NLM on server to be updated. RCONSOLE can be used. 4. Go to "Product Options", "Install a product not listed", . 5. Select the drive. if installing from floppy on the file server or from a workstation using RCONSOLE. 6. Select the proper path containing the NSS5Q.EXE files. 7. Press to start the copy. Method #2 1. Flag old files to N. 2. Copy files to appropriate SYS:\SYSTEM. 3. Flag copied files to RO SH. ***** Note that the internal date displayed using the modules list on the server may not match the date of the actual physical file. This is normal and does not indicate a problem. ISSUE: Fixes included in this kit that are beyond NW51 Sp2a NSS code: 1. Fixed wild card reads to allow a NULL search pattern for the UNIX and MAC name spaces. 2. Added code to keep track of whether replica VLDB is loaded or not to avoid unnecessary network traffic & timeout on activate of repair DB. 3. Fixed UNIX name space to parse "." and ".." 4. Added code from NetWare 6 NSS to close a window in tossing and purging the same beast. 5. Multiple VLDB fixes and other database enhancments for debug purposes. 6. Users are now removed from the user tree when they no longer have any restrictions and are using no blocks. 7. Blocks assigned to snapshot beasts are now ignored. 8. Fixed a problem where the starting offset of a file was greater than the EOF. 9. The code corrects this issue and there is no longer an error writing blocks because of it. 10. Fixed a packet burst fix similar to the last fix for EOF. 11. Added a summary to the repair log file. 12. Fixed a command problem when turning off user space restrictions. 13. Fixed an abend when data streams were being created. The abend was seen mostly with customers using AFP when the authentication information (for NSS) wasn't contained in the request to access the beast information. 14. Clustering fix for a policy to deactivate the volume at load time. 15. If the beast tree has lost its "ZERO" zid entry, a binary search would never return. Code was added to "heal" the volume if this ever happened. 16. Fixed abend if NULL pointer is returned from CDROM read function. 17. Fixed directory space restriction problem where the space restriction was not acting like a legacy restriction if a global quota flag was set. 18. Fixed user space restriction problem where it returned the wrong amount allocated for a user restriction. 19. Cluster enabled NSS menu and the NSS part of NWConfig.nlm. 20. Fixed Copy on Write problem to move the cache buffers to the snapshot beast when moving the file map over. 21. Fixed problem in CD9660 when a volume name was invalid. 22. Changed calls to CMovFast to use memcpy instead. This mirrors the changes made in the OS to remove the possibility of the PIII problem with NDS databases. 23. Fixed problem where the NSS byte range locks for shared locks did not match those of the legacy file system. 24. Fixed directory quotas so they can be changed by a user that has supervisor rights on the root of the volume where the changes are being made. 25. More directory quota changes to compute the values correctly. 26. Removed a deadlock condition that happened when you tried to look at disk utilization from portal at the same time files in the area being looked at were being extended. 27. Fixed directory quotas so they can be changed if the parent to the object has supervisor rights. 28. Fixed a problem creating valid volume names. 29. Added support for NCP 87,44 (from NetWare 6 by customer request) 30. Fixed a deadlock condition associated with open files and beast latches. 31. Fixed a problem in NWSA where it was generating a zero for directory restrictions. 32. Fixed a problem where groups would be deleted if NSS was unloaded. 33. Fixed hangs or abends while rebuild was running if a virus scanner or other file system hook was being used. 34. Added support for extended character sets for DOS name space. 35. Fixed problem in directory restrictions where the available space was set to zero improperly. 36. Fixed problem where if user restrictions were enabled and the user had no entry, it was returning an error. 37. Added code enhancements to work better with clustering. 38. Reset the verify flag at the beginning of a rebuild ... fixes a rebuild problem where "orphan directories" message appears. 39. Fixed issues with clustering and NDS external references being deleted. 40. Fixed issue where an uninitialized variable with sparse files and backups with NSS would abend the server. 41. Added support for viewing device information specific to an NSS volume. Specifically the LUN is displayed. 42. Added code to display volume name on FreeTree abend. 43. Fixed problem where a file hole function was overflowing on a memory request and it did not count the bits for the sparse blocks. 44. Added multiple code enhancments to verify and rebuild. Fixes made since NSS5h or the SP3 release code base of NSS: 1. For Macintosh clients a fix was made that allowed nested folders and files to be dropped, allowing the drop box to work as it should. 2. Fixed an abend in the AFPTCP rebuilder process. Fixes made since the release of NSS5i: 1. Fixed clustering problem where a volume wouldn't mount on another node if it was expanded on the first one. 2. Fixed an abend in rebuild if the leaf count was found to be zero (0). 3. NetWare 6 port back to allow pools of less than 10 meg to come up. 4. Fixed a problem where a pool couldn't be renamed if it were part of a group. 5. Fixed an abend in cd9660.nss if this module is loaded and unloaded quickly. 6. Fixed a window in the beast tossing code that caused problems (abends, etc.) 7. Fixed an EMC abend issue. 8. Fixed NCP 87:7 and GenNSModifyInfo to work correctly with the rename inhibit bit. 9. Fixed a problem in the file mapping code where the length of the table was not returned correctly and this caused an index to be off. 10. Ignore white space in volume ID descriptor. 11. Added /restoreSP2 command to allow restoring of backups made in 5.1 SP2. 12. Ignore invalid characters when getting volume name from CD. 13. Have a pool come up even if MAL says there are less blocks that what is in the pool. This allows debugging and troubleshooting to occur. 14. Wait for 20 seconds when deactivating a CD volume if the beast use count is not zero. 15. Fixed an abend for when the fsm was being reused in the beast. (like a WTD abend). 16. Added /visibilityRebuild command to remove and regenerate the visibility list for a volume. 17. Fixed NCP 22:50 to map the error code to the legacy error code location. This allows NWAdmin to get effective rights on a file name that is a long name (not legal in DOS). 18. Added more code to enhance caching performance, file mapping information, and other general file system enhancements. Fixes made since NSS5j: 1. Added code to return correct physical file location. 2. DOS name space fix to return a file not found error when during a double byte search when the file is actually not there. 3. Volume snapshot fix ... guids are now taken into account. 4. File locking fix with an open file and DENY_WRITE/DENY_READ access rights. 5. Fixed abend if 2nd segment in a 2 segment group didn't come up. 6. Fixed ASCII to unicode translations issues. 7. Changed GSEG to do I/O to correct blocks when the I/O spans two or more segments. 8. Fixed problem in direct I/O that it would rarely do > 4k I/Os. 9. Fixed AFP abend when a filename is greater than 184 characters. 10. Fixed a volume size issue > 4 TB. 11. Fixed a problem where volumes would not dismount without an error when deactivating a device. 12. Fixed read ahead code. 13. Numerous additions to rebuild and verify code. 14. Added code to set the archive bit if a file is renamed to a different directory. 15. Ported NW6 changes to DOSFAT.NSS back to NW5. 16. Fixed abend when resource fork is created before data fork. 17. Fixed problem where file name wasn't being correctly converted to unicode. 18. Fixed problem with volume reinitialization under rare circumstances. 19. Fixed CPU Hog abend with the stacking up of multiple write requests (port back from NW6). 20. Fixed CPU Hog abend where the name tree overflow code had a problem calculating free space when processing multiple overflow entries. Fixes made since NSS5l.EXE: 1. Fixed dosfat.nss to determine the correct FAT table version (12-bit or 16-bit). This fixes a deadlock condition. 2. Synchronization of NSS console commands (port back from NW6). 3. Fixed deadlock conditions found in the reservation calls. 4. Fixed a deadlock condition within the purgelog. 5. Volumes will now cleanly deactivate when the device they reside on gets deactivated by the driver. 6. Fixed a problem where free memory was being written to. 7. Made a provide code function reentrant capable. 8. Three fixes were made to NSS to address a problem with CIFS clients: 1. Byte range lock set errors, 2. Memory leaks with ECBs, 3. Shutdown cleanup problems. Fixes made since NSS5m.EXE: 1. Ported a fix back from NetWare 6 NSS code to fix the improper removal of name objects from the Name Tree. 2. Added changes (more logic and fixes) to the rebuild and verify code. 3. Fixed problem where is an Extended Attribute (EA) was deleted it would incorrectly modify the time/date of the file. 4. Fixed some file locking issues. 5. Fixed issue in VCU.NLM where trustees at the root of a volume would not be migrated correctly. 6. Fixed issue in VCU.NLM where multiple IRFs and/or multiple trustee assignments migrated within a group would fail if one of the IRFs or trustees had a problem resolving the owner back to an existing name in NDS. 7. Fixed problem where an open file could be renamed by a user that didn't have the file open. The file can be renamed by the user that has opened it. (1629) Fixes made since NSS5n.EXE (fixes since the release of SP5): 1. Fixed a problem in the locking code where an invalid starting address was used for unlocking. 2. Fixed a problem where the volumes would not get initialized correctly. 3. Fixed DSOFAT.NSS to correctly recognize volume labels that have spaces in them. 4. Added new fixes to verify and rebuild. 5. Fixed a problem where a datastream was found off of a MAC directory. 6. Fixed a problem in the file snapshot code when truncating beasts and copying the whole filemap over. 7. Optimized the direct read and direct write paths to not toss buffers if there are no buffers in memory. 8. On volume deactivates, we now make sure that pool and volume data is flushed from memory in addition to the system blocks. 9. The buffer flush timer and beast flush timers were not getting set correctly if changed after startup. 10. Fixed a problem in the volume flush code to flush the data buffers. 11. Fixed a problem in locking code where once a lock has been timed out, it should be prevented from being granted or freed. 12. Fixed a problem where if a volume had user space restrictions and that volume then was expanded, sometimes this caused an issue where the volume would not activate again. 13. Fixed a problem in rebuild where the rebuild of a volume would hang at 99%. Fixes made since NSS5o.EXE: 1. Fixed problem where unicode to ascii translation would fail on an event and then the callback event would expect the translation to have succeeded; this caused the server to abend. 2. Implemented a feature to randomize disk writes to smooth them out after a burst of write requests hits the file system simultaneously. 3. Ported over some fixes from FSHooks code in legacy file system. 4. Fixed NCP 87,4 (file rename) to return the proper error code when attempting to rename a file from an NSS volume to a non-NSS volume. 5. Fixed packet burst code to not allow IP connections to attempt packet bursting incorrectly. This undefined condition caused an abend. 6. Fixed inherited rights so that if a user has supervisor rights being inherited down, they cannot be lost by a new assignment for the user. 7. Fixed a unicode to ASCII translation problem with the NWUX APIs. 8. Fixed a problem where 4k of zeros was being inserted in between blocks in the file when offsets did not match like we thought they should. This was a problem causing PKZIP to corrupt files on Win95/98 machines. 9. Fixed critical defect which caused files in the salvage system to be stranded and non-purgable. 10. Rebuild and verify updates/fixes. 11. Fixed a deadlock condition when adding ACL entries that lead to a latching issue in NSS. (1656) Fixes made since NSS5P.EXE (new for this release): 1. Switched unicode to ASCII conversion back to use the non-path version of the NWUX APIs. This solves the problem of certain characters in certain code pages improperly mapping to a "\". 2. Fixed rename to not allow moving a beast to a different directory if the "rename single name space" flag is set. 3. Fixed the name space rename move API to work correctly. 4. Fixed an issue with the NFS namepsace. The problem was that if a file is created in the DOS namespace and then renamed in the NFS namespace, then any new file created that matched the original name in the DOS namespace, NSS would fail the request saying the file already existed. (1661) Self-Extracting File Name: nss5q.exe Files Included Size Date Time ..\ NSS5Q.TXT (This file) ..\NSS5Q\ CD9660.NSS 16119 6-6-2003 2:05:40 pm CDHFS.NSS 23183 6-6-2003 2:06:06 pm DOSFAT.NSS 32427 6-6-2003 2:06:38 pm GSEG.NSS 14168 6-6-2003 2:03:56 pm MAL.NSS 14546 6-6-2003 2:03:36 pm MALHLP.NLM 5100 5-13-2002 10:53:34 am MALHLP9.NLM 5027 5-13-2002 10:53:48 am MBCOMN.NSS 180156 6-6-2003 2:01:36 pm MBMMPRV.NSS 21240 6-6-2003 2:03:12 pm MBNWSA.NSS 146481 6-6-2003 2:00:46 pm MENUCFG.NSS 25700 6-6-2003 2:05:12 pm MENUNSS.NSS 33429 6-6-2003 2:04:30 pm NSS.IPS 5617 6-16-2003 9:33:21 am NSS.NLM 49033 6-6-2003 2:00:22 pm NSSWIN.NLM 13747 5-13-2002 10:41:04 am NWPRV.NSS 7789 6-6-2003 2:02:42 pm SCAN.NLM 18787 6-6-2003 3:05:40 pm VCU.NLM 16311 6-6-2003 2:07:58 pm ZLSS.NSS 217998 6-6-2003 2:02:08 pm ----------------------------------------------------------------- Any trademarks referenced in this document are the property of their respective owners. Consult your product manuals for complete trademark information. -----------------------------------------------------------------