|
|
Bug fixes (hotfixes) relating to Interix (SFU & SUA)
Below are various Microsoft (MS) white paper and Support (aka PSS) links.
The KB's (Knowledge Base) articles from PSS mostly relate to hot fixes.
There's a time lag between when PSS knows about a fix for a problem
and the KB article gets written (sometimes months). So searching the MS
support web site will often not yield anything even if a fix is available.
There is a link to an RSS for the hotfixes at the bottom of the page, but
it seems to often be broken (*groan*). For Interix 3.5 go for the hotfix
closest to the bottom of the page whenever you ask for it.
These hotfixes don't have a web page or public location at Microsoft for
downloading. It's one of the great MS mysteries as to why. For any of these
problems you need to go through PSS. It's faster by telephone than by e-mail.
You will likely be asked for a credit card for potential charges, but
likely (99.99%) you won't be charged if it's one of these fixes. There used to
be an e-mail based method that is described on the web page
Microsoft Help & Support.
But wouldn't you know it got mysteriously removed after a couple of months.
You still want to follow this link to try and contact MS Support (PSS).
This page doesn't require any credit card information. Please note that this
is a different web page than previously posted.
All of the hot fixes listed are cumulative. That is, the most recent hot fix
includes all of the previous hot fixes. The higher KB number is more recent.
Plus future releases should also get the same fixes.
There used to be an oddity that only Interix 2.2, 2.0 and 3.5 hotfixes were
list. Now Interix 5.2 and 6.0 are getting listed as well under the SUA moniker.
Here's an interesting bit of information: Microsoft will make updates to
the subsystem, libraries, etc. when they find a bug for the next general
release (the next version). No back-patch (hotfix) will be released for
existing versions "in the wild" unless someone registers the bug with PSS
and tells them they need the fix. So that's your incentive to actually
register the bug with PSS.
SPECIAL NOTE for Interix/SFU 3.5 Users:
I'm getting tired of answering this question about DEP on 3.5. Microsoft issued to hotfixes related to "fixing DEP": KB942312 and KB929141. The stupid part is
that they overlap for some of the (identical) content. This has created
confusion amongst the masses.
The hotfix that I list (KB942312) includes changes to several utilities.
The key change for DEP is in the "ld.so" files (there are 2 of them).
This hotfix includes changes for 'ar', 'gdb', 'nm', etc. too.
These utilities should be picked up to be updated correctly.
The other hotfix (KB929141) has the "ld.so" fixes and no utilities.
It does have a set of changes for "The Jewels" (subsystem, POSIX, PSXRUN,
PSXDLL) that apparently needed some changes for DEP too. However, don't install it yet, read on first.
You'll notice that both hotfixes have content listed as 03-Jul-2007. These
hotfixes overlap the "ld.so" files only. These are the exact same ld.so's.
Thus from an ld.so point it doesn't matter which hotfix you choose. However
you do need the other utilities from KB942312. You need to install KB942312.
But don't bother with 929141 which has Jewel updates because there have been
newer Jewel updates since then. The current Jewel (subsystem) hotfix is
KB953191 (or whatever I list in the table below). Jewel hotfixes accumulate
previous fixes. This means the latest and greatest Jewel hotfix has the DEP
changes plus what has been fixed since 03-Jul-2007.
WHich Hotfixes to Install Tables
Most recent subsystem (SS) updates are:
List of Hotfixes (Patches) for Interix SFU (Services for Unix) and SUA
(Subsystem for Unix-based Applications):
- KB182828 - For Interix 3.0
- KB245677 - Bad search hit for some reason.
- KB293333 - For Interix 2.2 (fix shift-tab).
- KB328684 - A shared memory fix (e.g. shmget()) to not unmap the shared memory space of a vfork()'d child because it's actually the parent's shared space.
- KB818067 - For Interix 3.0 to fix select on a writable socket.
- KB832169 - For Interix 3.0 when upgrading to 3.5. I'd recommend that you uninstall 3.0 first and then install 3.5
- KB835349 - For Interix 3.0. Why are you still running 3.0? Upgrade to 3.5 -- it's free.
- KB838250 - FIX: The POSIX subsystem for Interix does not start successfully after Windows Server 2003 Service Pack 1 (SP1) is installed. The title states it. Though at this point in time you will want to get 899522 instead.
- KB841066 - FIX: Allow Win32 processes access to serial ports are Interix uses them. There are other serial port fixes later. So you should install something more recent.
- KB841121 - FIX: When environment block is greater than 16KB a process won't run.
- KB841872 - Only for Interix 2.2. Pretty much ignore at this point in time.
- KB841898 - FIX: Win32 programs run from Interix remain in the process table as zombies. The system can eventually run out of process slots.
- KB872961 - FIX: Detect Carrier Detect (CD/DCD). The behavior of the serial drivers changed since this code was originally written on NT4.0 for Firebrand. This updates the code to match the driver behavior.
- KB885937 - FIX: C++ runtime programs get slower KEYWORDS: C++, slower binary, PSXDLL, output, floating point. This makes an update to one of the jewels (PSXDLL.DLL). It isincluded in more recent updates too.
- KB886655FIX: You receive a "matching COMDAT symbol name not found" error message when you are running Windows Services for UNIX 3.5. KEYWORDS: gcc, ld, g++, SEGV, memory fault, compile, link, signal 11, collect2.
- KB887531 - FIX: The "-t" option of the "ps" command does not accept some valid TTY values in Windows Services for UNIX. Not a critical update. This fix is already in versions 5.2 and later. You only need this if you use the '-t' option with ps.
- KB872962 - FIX: Interix process cannot be signalled when blocked on a system I/O call. An example would be when a process makes a write(2) call, blocks and a SIGKILL is sent to the process.
- KB889087 - FIX: The select( ) function and the write( ) function do not handle the non-blocking serial I/O correctly. KEYWORDS: select, write, non-blocking, serial port, terminal, tty. This fixes write() to a serial port file handle in non-blocking mode to return EAGAIN when the device isn't ready. Fixes select() when flow control for a terminal (tty) when after a call to API tcflow. You do not want to install this hot fix. Use hot fix 904781 instead.
- KB891503 -FIX: You may receive a "Permission Denied" error message when you try to use the ls or cd command from a Terminal Services session. KEYWORDS: TS, Terminal Server, Windows 2000, W2K, permissions, access. This only happens if you are running Terminal Server as a "common user" on W2K. It doesn't happen if you are a member of the group Administrators. Instead of using TS you can connect to the Interix system using telnet, ssh and rlogin when you have most Unix and non-GUI Win32 actions to perform.
- KB892093 - FIX: Files appear incorrectly as directories. A special case where a filesystem is mounted from a system running SMB/SAMBA. Something about the stat information was mixed up.
- KB896685 - The cpio utility incorrectly handles symbolic links. Better and easier you can down load a fix from the /Tools warehouse (plus a lot of other updates) instead of going through Microsoft. for it.
- KB899028 - FIX: A program using semaphores that fork()'s may return ENOMEM. A semaphore flag needed to get cleared.
- KB899522 - FIX: The POSIX subsystem process, Korn shell scripts, and Interix applications may crash after you install Windows Server 2003 Service Pack 1 on a computer that is running Windows Services for UNIX 3.5. This is the minimum hot fix for Windows 2003 users with SP1 installed. Run nothing less.
- KB902074 - FIX: The computer may slow down and the application may stop responding when you run a pthread-based application that uses the va_list variable on Microsoft Windows Services for UNIX 3.5. If you are running any pthread program, particularly if it use va_list then you should get this update to libc (both static and shared libraries).i Otherwise you may experience the system getting slow or just stopping altogether. Handle leakage apparently might be occurring too.
- KB904358 - FIX: difficulty running a CMD.EXE from a pseudo-terminal (pty). Not critical. There is a better solution available from Interop.
- KB904781 - FIX: The logon prompt and the data that you type in response to any shell script does not echo when you run Windows Services for UNIX 3.5 on a Windows Server 2003-based computer. This is a fix for the hot fix 889087. There was a bug in 889087.
- KB913001 - WORKAROUND: For Event ID 1013 when Interix 5.2 (SUA) and NFS installed. This is for 5.2 only. This is a workaround only. Personally, I'd just let the error message happen -- the server should get contacted later.
- KB913030 - FIX: Stability fixes for several items including NIS, passwrod sync and several Interix utilities (cron, daemons, subsystem, popper, sendmail. This is for 3.5 only. These changes include security updates.
- KB914680 - FIX: All Interix applications stop responding on a computer that is running Windows Services for UNIX 3.5 or Interix/SUA 5.2. KEYWORDS: crash, psxss, ntdll, ntdll.dll, shared memory. The Interix subsystem crashes when a shared memory section is closed by more than one user process. You cannot restart a subsystem on NT (this goes for CSRSS too - the Win32 subsystem). You will need to reboot your computer after it happens.
- KB917904 - FIX: For Interix 3.5 and 5.2. Fix a memory leak problem with programs using vfork(); notable with #! shell scripts & fine(1) KEYWORDS: crash, resource unavailable, out of memory, vfork, shell, ksh, csh, find, exec. Memory is slowly lost, by 1MB, with each call which causes a successive loss of available memory (the resource). Reboot after applying. Issued 12, July, 2007.
- KB917960 - FIX: The Korn shell (ksh) or the tcsh shell may unexpectedly exit when you run a script in Windows Services for UNIX 3.5 on a computer that uses symmetric multiprocessing. KEYWORDS: SMP, ksh, sh, csh, tcsh, Interix, CPU, MCPU, Multi-CPU, Xeon, forkwait, make. Issued 11/Apr/2006. KB appeared 2/Aug/2006. This problem often maifest itself for developers who are using multi-CPU systems when they are trying to build a large application that uses make. The build will be successful some times, but will often freeze at various points. The freeze point may be the same or different locations as viewed with ps. Essentially any program that calls fork() can be affected. Some expose the problem more by their nature.
- KB920908 - FIX: SVR5 version of find(1) not searching subdirectories KEYWORDS: find, subdirectories. Why are you running the SVR5 utilities? Geez. Issued June, 2006.
- KB921207 - FIX: The PSXRUN process may not stop when you try to stop a POSIX-based application that is running as a Windows service in Windows Services for UNIX 3.5 KEYWORDS: PSXRUN, PSXRUN.EXE, Interix, daemon, service. A minor update for people who are using PSXRUN to start Interix daemons through the Win32 Service Manager. You should not use PSXRUN for this anymore whenever possible. Start daemons as daemons via the /etc/init.d scripts. You will get better behavior running a daemon as a daemon.
- KB921604 - FIX: WMI corrupts the pool from which the Command Line buffer is allocated KEYWORDS: *47, PSXSS.EXE, Interix, ps, win32. A problem with an internal buffer being allocated when information about Win32 processes is gathered.
- KB923511 - FIX: PSXSS consumes 100% CPU. KEYWORDS: CPU, 100%, race, kernel. This is not an Interix/SUA problem per se. Installing Windows SP2 fixes the problem. Issued 24, April, 2007
- KB929713 - FIX: Interix 6.0 (Vista) apps stop responding KEYWORDS: hang, block. This tells you to correct things by (1) rebooting, or (2) install the SDK or (3) as Administrator run "posix /u /c /bin/loginenv". This seems to applly to only systems that are running an Interix program without the utilities and libraries installed. Issued 4, Jan., 2007.
- KB929140 - FIX: calloc() API corrupts memory heap KEYWORDS: calloc, malloc, memory, corruption, heap. The calloc() function in the library writes outside of the memory allocated for the call when zeroing the memory. You can do a workaround yourself by writing your own calloc() if you wish. Issued 31, Jan, 2007.
- KB929065 - FIX: select() API "bad address" when some args NULL KEYWORDS: *50, PSXSS, select, bad address, EFAULT. When one of the arguments supplied, validly, to select(2) the error EFAULT ("bad address") is returned. For Interix 3.5 and 5.2. Issued 4, Jan., 2007.
- KB929141 - FIX: DEP handling in subsystem KEYWORDS: DEP, NX, stack, SEGV, *57, PSXSS, PSXRUN, PSXDLL, POSIX. A confusing hotfixes because the content overlaps with KB942312 (see note at top of page). Do not bother to install; get a newer subsystem update. For Interix 3.5. Issued 3, Jul., 2007.
- KB931297 - FIX: System calls to serial devices failing. Interix 5.2 (32 and 64 bit) only. KEYWORDS: *.4035, PSXSS, PSXDLL, POSIX, serial port, serial device. Should have SP2 before installing this. Issued 5, March, 2007.
- KB932143 - FIX: Daylight savings date changes KEYWORDS: DST, time, date, daylight savings. The USA changed the dates that daylight savings starts and ends for it's timezones and a number of other locations followed suit. This is for 3.0, 3.5, 5.2 and 6.0 Issued 27, Feb., 2007.
- KB932701 - FIX: Fix BSOD, 0*C2, mutex allocation KEYWORDS: *.2901, *.4042, PSXDRV.SYS. The dreaded BSOD happens with a code of 000000C2. A mutex allocation pool is incorrectly access during a system cleanup of ionode handles. This is for 5.2 (32 & 64 bit). Install 936051 instead. Issued 16, March, 2007.
- KB932244 - NOTICE: Upgrading from 3.5 to 6.0 (Vista) is not supported. Recommends uninstall before upgrade to Vista. 3.5 not supported on Vista. Issued 31, Jan., 2007.
- KB933712 - FIX: Setuser() API failing. KEYWORDS: *.4051, setuser, su, sudo, setuid, setgid. A race condition in the subsystem blocks out successful calls. This applies to Interix 5.2 (SUA on 2003/R2) only (32 & 64 bit). Apply 936051 instead. Issued 30, March, 2007.
- KB934004 - FIX: Ksh utility not writting all Japanese characters to standard out. This fix is only needed if you are working in a multibyte (MB) environment. Issued 17, Apr., 2007.
- KB934111 - FIX: Fix 2007 Daylight savings changes, Interix 6.0 only. KEYWORDS: PSXSS, PSXDLL, POSIX, PSXDLLSVR.DLL. This is for Interix 6.0 only. Fixes daylight saving time switches started by the USA and adopted by some other zones. Fixes DST changes with the subsystem rather than the applications. Install the companion KB942878 fix too. Issued 1, November, 2007.
- KB934110 - FIX: For 5.2, fix DST changes. Apply 942894 instead. Issued 17, Apr., 2007.
- KB934747 - ADD: For 5.2 add Korean language support. Title says it all. Issued 31, July, 2007.
- KB936529 - FIX: W2K3/R2 SP2 clobbers Interix subsystem. You may experience Interix/SUA and/or password sync not working after installing SP2 on W2K3/R2. Issued 24, July, 2007.
- KB934322 - FIX: Shell script hangs after starting child shell script KEYWORDS: *53, W2K3, 2003, shell, script, child. This is reported to happen only with W2K3/SP1 systems. However apply it to other systems with 3.5 installed should be fine. This is for 3.5 only. Issued 31, July, 2007.
- KB936050 - FIX: W2K3/R2 bluescreen's (BSOD). KEYWORDS: W2K3, 2003, R2, PSXDRV.SYS. This is for 5.2 only and only on Windows 2003/R2 Server. The BSOD may happen when an open() and close() happens on the same file handle concurrently. Issued 2, Nov, 2007.
- KB936051 - FIX ROLLUP: Contains several fixes in one package. Contains updates for DST, setuser() usage, a subsystem SEGV (C0*2), an open/close race and temporary directory fillup. KEYWORDS: W2K3, 2003, R2, PSXDRV.SYS, PSXSS.EXE, POSIX,EXE, *.3015, *.4159. This is for 5.2 only and only on Windows 2003/R2 Server. There are different patches depending on if you have SP2 applied or not. Includes 934110, 933712, 932701. Issued 5, Nov, 2007.
- KB936529 - FIX: Cannot start a shell on Windows 2003 Server after applying SP2. KEYWORDS: W2K3, 2003, shell, PSXSS.EXE. The W2K3 SP2 incorrectly replaces the subsystem binary for Interix with a ancient version of Microsoft's POSIX subsystem. This is for 3.5 only and only on Windows 2003 Server. Issued 24, July, 2007.
***** Interix 3.5 DEP fix below:
- KB942312 - FIX: Fix gcc compiler tools on 3.5. KEYWORDS: gcc, 3.5, ar, as, gcov, gdb, ld, ld.so.1, libdl.so.3.5, nm, objcopy, objdump. This is for Interix 3.5 only. This deals with an alignment issue along 16bit boundaries. In theory this may also correct the DEP problem. Issued 26, October, 2007.
- KB942878 - FIX: Fix 2007 Daylight savings changes. KEYWORDS: date, time, calendar, time zones. This is for Interix 3.5, 5.2 and 6.0. There is a different patch file for each Interix version. Fixes daylight saving time switches started by the USA and adopted by some other zones. Updates the timezone files with Interix. Install the companion KB942894 fix too if using Interix 5.2 and KB934111 if using Interix 6.0 (Vista). Issued 6, November, 2007.
- KB943831 - FIX: Application using API's getpriority() or setpriority() no long respond. KEYWORDS: Interix, PSXSS, getpriority, setpriority, PRIO_PGRP, SUA. When the 'which' arg (#1) to the either API is PRIO_PGRP then the application will appear fozxen. This is for Interix 5.2. There is a different patch file for the 32-bit and 64-bit versions. (SS: 9.0.3790.3047, 9.0.3790.4192) Issued 12, December, 2007.
- KB943832 - FIX: Junk characters returned for users and groups on Interix 5.2 KEYWORDS: SUA, ID, users, groups. This is for Interix 5.2. There is a different patch file for the 32-bit and 64-bit versions. (SS: 9.0.3790.4192) Issued 28, December, 2007.
- KB942909 - FIX: Sleep when system clock changes. KEYWORDS: sleep, setitimer, PSXSS. This is for Interix 5.2 only. When a sleep (or itimer) is running and the system clock is changed the application issuing the API call may block forever. Patches for 32-bit and 64-bit with varients for R2 and R2/SP2. (SS: 9.0.3790.3031, 9.0.3790.4174). Issued 6, December, 2007.
- KB942894 - FIX: Fix 2007 Daylight savings changes. KEYWORDS: PSXSS, PSXDLL, POSIX, PSXDLLSVR.DLL. This is for Interix 5.2 only. Fixes daylight saving time switches started by the USA and adopted by some other zones. Fixes DST changes with the subsystem rather than the applications. Install the companion KB942878 fix too. Issued 6, November, 2007.
- KB943657 - FIX: Invalid NT PE file. KEYWORDS: PSXSS, shared library. This is for Interix 6.0 only. The error message "*.so not valid NT PE file" appear when you try to run a program. Some bad shared libraries where shipped from Microsoft. Affects most of the backward compatible Interix 3.5 shared libraries. No subsystem changes. Issued 26, December, 2007.
- KB943830 - FIX: Wrong principle domainname used. KEYWORDS: PSXSS, domainname, pdomain. This is for Interix 5.2 only. If the Interix/SUA subsystem has difficulty contacting the domain server at boot time then the wrong principle domainname may be set. There are patches for 32-bit and 64-bit Interix 5.2 with varients for R2 and R2/SP2. (SS: 9.0.3790.3047, 9.0.3790.4192). Issued 11, December, 2007.
- KB944250 - FIX: SEGV or core dump on Multiple CPU Interix 5.2. KEYWORDS: SEGV, Segmentation violation, core dump, SUA, Multiple CPU, MCPU. This is for Interix 5.2 only. On a Multiple CPU machine with Interix 5.2 (SUA) installed. You may experience a core dump when running some programs. Patches for 32-bit and 64-bit systems, plus varients for R2 and R2/SP2. (SS: 9.0.3790.3034 and 9.0.3790.4177). Issued 10, June, 2008.
- KB944412 - FIX: sort(1) utility for SEGV. KEYWORDS: sort, SEGV, Segmentation violation. This is for Interix 3.5 only. Fixes a bug with sort(1) that causes it crash when certain files are opened. Recommended to install the /Tools version instead which doesn't have the problem and has more functionality. Issued 6, December, 2007.
***** Interix 5.2 (no SP's) current below:
- KB945449 - FIX: Handling of shutdown(2) API. KEYWORDS: rsh, rshd, shutdown, sockets. This is for Interix 5.2. The issue is described as an rsh command not redirecting to a local file which misleads from the actual problem. The issue appears on the rshd (server) side not the rsh (client) side. (SS: 9.0.3790.3050 and 9.0.3790.4195). Issued 12, December, 2007.
***** Interix 5.2 with SP2 DEP fix below:
- KB948918 - FIX: SEGV (memory/segmention fault). KEYWORDS: dlopen, SEGV, memory, fault, SFU. This is for Interix 5.2. If a program using the API dlopen() was built/compiled on Interix 3.5 and is run on Interix 5.2 you may get a SEGV. This provides a fix to libdl.so.3.5 library. Separate patches for 32-bit and 64-bit machines. This is one of the very few patches that does not have a subsystem update with it and is not included with any other hotfix so you need to install it separately from any other hotfixes. Issued 6, March, 2008.
***** Interix 5.2 with SP2 current below:
- KB950098 - FIX: Socket send too large. KEYWORDS: socket, send, receive, EAGAIN, buffer SNDBUF. This reflects an underlying weakness with WinSock. When a socket send happens that is bigger than the SNDBUF the API returns -1 and sets errno==EAGAIN. The problem appears to be a side effect of installing W2K3/R2's SP2. Fixes for R2/SP2 for 32-bit and 64-bit systems. This is for Interix 5.2. No patch for systems before SP2 [hint-hint: time to apply W2K3's SP2]. (SS: 9.0.3790.4255). Issued 6, March, 2008.
- KB953698 - FIX: Inertix/SUA 6.0 (Vista/Server2008). KEYWORDS: PSXSS, PSXDLL, POSIX, PSXRUN, PSXDLLSVR.DLL, others. This is for Interix 6.0 only. There are different hotfixes for 32-bit, 64-bit (AMD) and 64-bit (IA). This hotfix should allow the "Run as Administrator" to work with Interix on Vista with SP1. See also KB953603. (SS: 6.0.6001.22190). Issued 6, June, 2008.
***** Interix 3.5 current below:
- KB953191 - FIX: Fix a memory leak. KEYWORDS: PSXSS, PSXDLL, POSIX, memory leak. This is for Interix 3.5 (SFU 3.5) only. The memory usage by the subsystem slowly increases over time as processes are started and exited. This includes all earlier subsystem fixes (regardless of what the description says). (SS: 8.0.1969.61) Issued 10, June, 2008.
***** Interix 6.0 current below:
- KB953603 - FIX: Fix for child processes wrongly being marked as zombies. KEYWORDS: PSXSS, PSXDLL, POSIX, child process, zombie, SIGCHILD, SIG_IGN. This is for Interix 6.0 (SUA). The child process gets marked as a zombie when it should have been just cleared because the parent had set SIGCHILD to SIG_IGN. Oddly the contents of the patch match KB953698 almost identically even though it was issued after. So which hotfix to choose? It looks like it doesn't really matter. (SS: 6.0.6001.22190). Issued 11, June, 2008.
RSS -- This is supposed to give the most recent list of hotfixes for SFU. But often it doesn't work and that's MS's fault not this site. Trying to find the RSS feed for SUA now.
|
|