RSS

Archive for the ‘ Technical ’ Category

Building summary file for Inbox…

If…
* you receive the message Building summary file for Inbox… in your Thunderbird status bar (with any mail folder) and it takes forever or never finishes, or
* clicking Compact on any folder no longer does anything, or
* items show up in parenthesis as if they are unread but there are no unread messages in said folder
…then your mail folder index files need to be deleted. They will get recreated when you view the folder again. Note: you will lose the sort style for each folder for which you delete the index.

  1. Exit Thunderbird completely.
  2. Start > Run > %appdata%\Thunderbird\Profiles
  3. Double-click on the profile folder you are currently using (which usually ends in ".default").
  4. Double-click Mail.
  5. Press F3 (or click Search) to bring up the search sidebar (2000/XP only).
  6. Choose All files and folders if you are using the Standard search setting.
  7. Search for *.msf.
  8. Delete all *.msf files found.
  9. Open Thunderbird and click on each of your folders (Unsent, Sent, Drafts, Trash, etc) so that a new index can be created.

This happened to me because I've been using nightly builds for about a year, and the index files are getting confused across the various builds (I suspect they might have changed the format).

Old myths never die

Can we get a Snopes.com for technical urban legends?
I should totally do that on my wiki!

It's 2006, and somehow, people still apparently believe that Windows XP does not allow you to use all of your bandwidth because of a service called QoS (Quality of Service). This is patently false.

People also think that cleaning the Prefetch folder helps, or that not cleaning it will somehow lower your performance. I would have thought a site like "windowsnetworking.com" would have been a bit more professional about these things, but I can't have everything. They said, and I quote (emphasis theirs):

Prefetch when unattended can also slow down your system. This is because over time

* XP will retain a copy of a portion of a program in the prefetch folder even if you only use it one time, which is not good. Since you may not use the program again, you may impact the performance of your system by having portions of a program you do not use loaded in your system's memory.
* XP systems with very low hardware resources (such as memory and hard disk space) will definitely be affected by an over-bloated prefetch folder.

This is bull. Let's break it down:
* XP will retain an index of the locations of files needed by a process in the prefetch folder even if you only use it one time, which is not a big deal. Windows XP automatically prunes old entries after a 129th entry (or more) needs to be created. At worst, you're going to lose less than 20 MB of hard disk space (my prefetch is currently using 4MB).
* XP systems will very low hardware resources (such as memory and hard disk space) are already at a disadvantage, but without prefetching, it would be even worse. There is no advantage in deleting prefetch entries…. and the only time prefetch entries need to change are when the files they are prefetching have changed (such as being upgraded by a Windows Service Pack or hotfix). And as previously stated, they will automatically be pruned to just 128 entries. At least someone out there knows what they're talking about. If you delete all of the prefetch files, they have to be prefetched *again* (which comes at a performance loss), and doesn't that seem like a waste of time?
* Windows doesn't load things in the Prefetch folder unless you're actually attempting to run the program, so claiming that Windows erroneously loads files in there that no longer exist (and thus need to be cleaned) is also patently false.
* Ed Bott said: It doesn’t actually preload anything into RAM until you run the program, and when you do that, prefetching only works if you have RAM to spare.

Notes from Microsoft:
* Once every three days, by default, Windows XP will perform a partial defragmentation and adjust the layout of the disk based upon current use. The files to be moved are written in the file Layout.ini (found in the Prefetch directory under the System Root directory). [1]
(Dial-a-fix's "Process Idle Tasks" tool forces this to happen sooner than 3 days).
* Windows XP also uses prefetching when launching applications. The files and the contents of the files accessed by each new process are observed and recorded. No prefetching can be done for the first launch of an application, so first launches are often considerably slower than subsequent launches. About 85% to 90% of the improvement is realized after just one launch of an application, with the remaining speed improvement coming after the system has had an opportunity to adjust the disk layout with information specific to this application. [2]

Also, search for "prefetch" here.

Anyway, these technical myths are extremely annoying to technicians (such as myself), who constantly have to disprove these dubious claims to customers.

It's not a memory leak

If you're not a developer or don't know what a memory leak really is, then stop using that phrase when you're describing Firefox's memory usage/management. Stop it. Unless you are a developer or advanced technician and have actually identified a real memory leak, stop using that term.

First, you need to become familiar with the fact that the numbers reported by Task Manager ("Mem Usage" and "VM Size" to name a few) are not a realistic measurement of the memory being used by a process.

It is important to know that to improve disk performance and to lower disk thrashing and paging, Firefox no longer frees the memory used by previous site renders and opened tabs. This way, if you visit a site again or use a resource that was recently used, it is immediately ready. Also, by hanging on to a huge window of memory, it is available to Firefox on demand without Windows having to page out some other program to disk to make room for a newly opened tab. The result is visible performance. Tabs and windows open/close faster, etc, and disk thrashing is very minimal.

They fixed one "problem" of disk thrashing and paging to curb some users, and others see it as a huge drain on system resources (which it's not).

The memory that Firefox is holding onto is not going to be freed unless it is necessary. If you open Photoshop (or something similarly huge) and start doing filters on a 300 DPI 3000×3000 pixel image, you'll see Firefox get paged out immediately, and the memory it's holding onto will drain away. If you are not doing anything other than using Firefox, why /should/ Firefox free the memory? Your system doesn't have xy MB of RAM for not using, it's for using. The more memory you have, the more memory Firefox will allocate. To claim that the fact Firefox is using 200 to 500 MB of your system RAM when you're not doing anything else and have 1GB+ RAM is a memory leak is just out of control.

Why does it seem like Internet Explorer uses far less memory? IE uses Windows' default memory management method, which I'll call the "low performance/disk thrashing" model. It's also important to note that half of Internet Explorer's dependencies are already in memory due to the fact that they are also used by Explorer, and other parts of the shell.

You should also take a hard look at the extensions you have loaded in Firefox, as some of them can be downright buggy. Tabbrowser Extensions (not to be confused with Tabbrowser Preferences), for instance, is a pretty unstable memory hog, known to cause actual memory leaks. Replace an extension like this with a far superior one, such as Tab Mix Plus.

Dial-a-fix public beta update #1

* Download Dial-a-fix v0.58.0.69 (no, I didn't do that on purpose)

Changes since the first public beta:

* Added a list of files the "Reinstall/Repair IE" tool might request, and their common paths
* Added IE version to the log pane, to help me out
* Added a handler for registration error -2147467259 (0×80004005) ("Unspecified error") – currently suggests doing an SFC purge + SFC scan as there is not a known/common solution for this in most cases
* Fixed up the status bar's animation some more
* Added a "Reinstall Windows Firewall" tool which I've already had to use on a customer's PC (and it worked)

Almost there!

Any other suggestions, guys and gals?

Dial-a-fix v0.58 public beta

At last, I have released a beta that everyone can try out. I need feedback though, especially from Windows 2000 and Windows 98/Me users.

Note: DO NOT POST THIS BETA TO FILE DOWNLOADING SITES (such as Softpedia, Majorgeeks, FileForum, etc). This is just for personal use only, not distribution. I take no responsibility for anything that can go awry during the use of Dial-a-fix (whether it be a stable, or beta release). Please exercise care when using the program. Visit the Dial-a-fix wiki page for warnings, disclaimers, and suggestions (not updated for the beta version yet, but the warnings/license/etc still stand). Visit the Dial-a-fix_tips wiki page for scenarios where Dial-a-fix can come in handy.

Please email me if you run into any bugs, have improvement suggestions, or need assistance fixing your computer using Dial-a-fix. You can find the email address in the program itself, in the Contact box. Do not send email to my main address (in the footer of this page) regarding Dial-a-fix.

* * * Download Dial-a-fix v0.58 public beta
* * * Download secedit.exe (for the "Repair permissions" tool — place it in the same folder as Dial-a-fix's .exe)

Changelog:

* Fixed version.dll access violation
* New button icons and a new logging pane:
– (Tools and Help buttons were changed to just icon buttons with no text to make room for the new Log pane button and still stay within 640×480)
– Log pane can save to a .txt or .log file or copy to clipboard
* Cancel is now &Cancel and is quite smarter and faster
* Fixed several bugs regarding the %TEMP%/%TMP% variable checks and made it smarter
* "Flush SoftwareDistribution" button now asks you if you wish to preserve the update history, and it can be cancelled
* DLL registration is now native; no longer uses regsvr32.exe, and with that, it now properly reports Win32 error codes (and can sometimes give suggestions)
– Please report all error codes received to DjLizard so that more suggestions can be implemented.
* Disabled "Install VC6 runtime" checkmark in 2000/XP because it's really for 98/Me only (it didn't do anything in 2k/XP, it just exited)
* Added ForceActiveDesktop policy, removed a policy typo
* DLL registrations added: rpcrt4.dll, activeds.dll, oleacc.dll, credui.dll, cryptui.dll, mssign32.dll, certcli.dll, scecli.dll, userenv.dll, msi.dll, shsvcs.dll, olepro32.dll, sbe.dll, scardssp.dll, dmdskmgr.dll, dmloader.dll, dmstyle.dll, dmscript.dll, mmcndmgr.dll, clbcatq.dll, clbcatex.dll, ntmsmgr.dll, ntmssvc.dll, ntmsevt.dll, webvw.dll, shmedia.dll, es.dll, winhttp.dll, els.dll, query.dll, quartz.dll
* Reinstall Defrag tool (which can register dfrgsnap.dll, dfrgui.dll)
* "Unregister before Register" option is unsafe, and will not be returning; selective unregistrations will be enabled on DLLs that have been tested and found to require it:
– Box #3's "Register WUAU DLLs", box #4's "Register DLLs", and Box #5's stobject.dll (in the Explorer checkmark) are the first selective unregistrations; they will be performed without user intervention just before regular registration is performed.
* OLE section returns
* Fixed ole32.dll CLSID registry entry creation
* Added splitter bar in the Tools dialog for resizing the two panes
* Repair WMI/WBEM tool no longer deletes the repository; now rebuilds via wbemupgd.dll and links to pertinent articles
* No longer performs registration of the following files when IE 7 is installed: esetup.dll, pngfilt.dll, appwiz.cpl, imgutil.dll, inseng.dll, mshtml.dll, msrating.dll, msieftp.dll, themeui.dll, webcheck.dll
* New status bar animation pane that takes up less code space, and less physical space on the dialog
* Clicking the bold '5' in the bottom right box inverts the checkmark states for that box (so if none are checked, it checkmarks them all)

Apple Boot Camp

Apple, you kick ass!

They're actually embracing the ability to dual-boot to Windows XP!

http://www.apple.com/macosx/bootcamp/

Norton Internet Worm Protection protects users from getting on AOL

This isn't a timely post by any means, but I wanted to make sure everyone was aware of it. One of the Norton updates from 2006/03/15 causes AOL to disconnect immediately after connecting. The remedy is to temporarily disable Internet Worm Protection, get online, and run LiveUpdate to get the new version of Internet Worm Protection.

Source: Symantec.com KB

Symantec sucks.

Problem solved!

Well, it wasn't Dial-a-fix, it wasn't the "unregistration" option, and it wasn't even OLE — it was the new version of mshtml.dll (which comes from MSKB912945). There is a bug in its DllRegisterServer or DllInstallServer which causes it to write many invalid entries into the registry.

Among other errors, it changes the path of mshtml.dll in about 30+ CLSID entries to "%_SYS_MOD_PATH%". If you search your registry for %_SYS_MOD_PATH% and find several entries in HTML-related objects, you are affected. You will also not be able to use System Restore (blank window), Internet Explorer (tries to download the root of a website instead of opening it), Help and Support (hit F1 after clicking on your desktop once – it tries to Open/Save "context.htm"), possibly Event Viewer, and probably many more things that use embedded HTML objects. It also seems to affect reinstalling of Service Pack 2.

The fix is posted below.

The previous version of MSHTML.DLL (which is NOT affected) is 6.0.2900.2802.

6.0.2900.2838 is the version of mshtml.dll that IS affected.

  1. If you do not have a copy of the 6.0.2900.2802 version of MSHTML.DLL, you can download it here from this site (do not download this unless you have SP2 and all post-SP2 updates). It is approximately 3 megabytes.
  2. Copy it to your Windows\System32 directory and overwrite the previous version. If you are not able to do this, close all programs that use embedded HTML objects, including Internet Explorer, Help and Support, System Restore, etc. If you are still unable to overwrite the file, do it in Safe Mode.
  3. Run Dial-a-fix again, and checkmark everything in box #5 and hit GO.

The problem should be solved at this point.

At least I know now that it wasn't me!

"Thank you" to all those who have been patient with me and my software, and have allowed me to obtain system information and files from them.

Again, KB912945 is the update that causes this problem. You can install this update as long as you do not run the Explorer/Shell checkmark in box #5, which causes Dial-a-fix to register the broken file. If you do register the broken version, simply copy the old version over the newer one and register it using Dial-a-fix (or for the techies, regsvr32 mshtml.dll /i)

Dial-a-fix v0.57.6 released!

I have removed the OLE section and re-uploaded Dial-a-fix. It is now 100% safe to use again. I still have not determined which Microsoft OLE library is causing the issue (see the previous post). None of my 3 home machines are affected by this at all, so it is very hard for me to test. If anyone who was affected would like to help out, please submit a .zip file containing the DLLs from "C:\Program Files\Microsoft Shared\System\Ole DB" to the Dial-a-fix email address.

Dial-a-fix v0.57.6 changelog:
* Removed OLE registration section until further notice

Update: it wasn't OLE at all! Argh! See this post: http://djlizard.net/2006/03/14/139

OLE system breakage

There's a problem running around lately that is indirectly caused by Dial-a-fix. I was wrong about unregistration; it's not the unregistration option (which may come back in a future version after thorough testing), it's the OLE section in box #5.

The new OLE registration section, which was purported by technicians to fix various issues (and does, on most occasions) has the potential to break the OLE system in Windows, rendering System Restore, Help and Support, and Internet Explorer useless. I am working on a fix for affected systems, and I have already removed the OLE section from the current version of Dial-a-fix (but have not posted the download yet). I have also pulled the Dial-a-fix packages so that they cannot be downloaded until I resolve the issue completely. It seems that a certain file in the OLE subsystem ("%commonprogramfiles%\system\Ole DB\") contains a bug in DllRegisterServer().

If you have a previous version of Dial-a-fix, do not use the OLE section (in box #5). If you have already used it and have not had any problems (which is about 95% of the systems out there) you are lucky. For those other 5% who have been affected by this issue, I am working on a fix which should take care of all of the issues all at once.

The rest of Dial-a-fix is just fine, and this issue is really not directly Dial-a-fix's fault. It is a particular version of a particular file in the aforementioned "OLE DB" folder which has a bug in its DllRegisterServer() function. I will publish details on what file causes it (if I have time — fixing it is faster than finding the "why" sometimes) and how to fix it as soon as I know.