Monthly archives: January 2009
I'll keep this brief. You've likely read how I commonly use procmon to debug installer problems. Today I had a virgin (unpatched) XP SP2 machine. I reinstalled XP SP2 from the Dell OEM CD that came with it. I wanted to apply SP3 to it right away before anything else. About halfway through the install, I got an "Error: Access is Denied" message box, with no further information and no recourse to fix.
Long story short, the amazing procmon told me that the the culprit was a registry key at HKLM\Software\Microsoft\Windows NT\CurrentVersion\Winlogon. When examining the permissions in regedit, the Administrators group was missing. Only SYSTEM had full control and Authenticated Users had read access.
I really don't know how these sorts of things escape the beta testing phase. Did nobody with a virgin XP SP2 Dell image upgrade to SP3? Is my Dell something special? Seriously… What the heck?
I'm a big fan of the .Net Compact Framework. It's fast. It's versatile. And you have easy access to native API via P/Invoke when the framework is lacking something you need. Despite my overwhelming enthusiasm for the Compact Framework, I am concerned that it may have a memory leak and I have never seen anybody officially discuss it, provide a reasonable workaround, or find a way to confirm the existence of the leak (other than my circumstantial evidence outlined below).
Let me explain my experience. I have used three Windows Mobile devices that have the 3.5 Framework and have several applications that make heavy use of Image objects (such as Bitmap, etc.). After time, they will all eventually run into an Out Of Memory (OOM) exception, as long as I let them run long enough (anywhere from 8 hours to a few days).
In the development community, you will see authors explicitly releasing bug fixes that work around OOM exceptions by ignoring them.
I believe this might be a situation where the framework is either failing to properly dispose of allocated memory when the garbage collector is run after an object is no longer being referenced, or is not disposing of the objects in a timely manner (i.e., the object is not disposed of until much later after the object is set to NULL, its last reference is destroyed, or explicitly has its .Dispose() method called).
My one piece of evidence (other than apps that seem to "degrade" over time), is that gwes.exe will tend to increase its memory consumption the longer a graphics heavy .Net app runs up until this problem occurs. Then when the .Net app is terminated, it will decrease considerably.
As an aside, there is plenty of RAM available on the devices I have tested, so the OOM exception is likely due to heap space or window handles running out, not total RAM.
Anybody else have any clues? It may not be a bug, but the fact that it seems to span over multiple .Net applications is what is leading my nose in that direction. Is it maybe as simple as manually calling .Dispose() instead of leaving the clean-up to the garbage collector?
I've heard a lot in the news about how President Obama (feels so good to say that) could not give up his Blackberry. Obviously, as president, there are gigantic security concerns with somebody that important having a device like that on his person at all times. Mobile communication/computing devices have many vectors of attack and are not usually as hardened as desktop or laptop systems.
As a security professional, I can appreciate the White House IT staff's concerns! However, forcing him to stop using it would seriously degrade his productivity. Besides, it's just cool as anything to have a high tech president! I was pleased to hear how he received what was christened Blackberry One for his mobile email / phone / calendar / computing needs. Man, I would love to be on the president's IT staff. It would be a stressful and time consuming, but incredibly fun job!
What is particularly interesting is the choice of devices for his needs. Although Obama apparently has his (reinforced) Blackberry for personal communication only, he will also have another NSA certified device for secure communications. This device? The Sectera Edge. And what does this magical NSA device run as its core OS? Windows CE -- the foundation of Windows Mobile.
Apparently Apple and RIM (not to mention Symbian) have a long way to go to catch up to Microsoft's claim of security. Go Microsoft (and, of course, General Dynamics)! ;-)
h/t The Mobile Spoon, WMPowerUser.com, and ABC News
Sometimes I wonder if SQL 2008's installer was really put through the paces in its beta test. I have encountered more bugs with it than any other installer, with the possible exception of TFS.
Anyway, so I was trying to install 2008 Management Studio on a workstation this afternoon and ran into my old friend, the MsiGetProductInfo installation error. Having encountered it before, it was an easy fix.
However, a few steps later I ran into a new error...
The installer was telling me that it couldn't proceed because SQL Server 2005 Express Tools was installed. This was odd because this machine had never had any version of SQL Express or its tools installed. SQL 2005 Management Studio was installed, but this never prohibited me from installing SQL 2008 Management Studio before. I went to the Live Search, the Yahoo Search, and the Google, but could not find a satisfactory resolution. The only advice that seemed to solve the problem for anybody else required uninstalling everything SQL related. That's just silly!
I concluded the pre-req checker must be wrong. I decided it was time to analyze what the pre-req checker was doing and try to find a workaround for it. I fired up Process Monitor (aka ProcMon) and examined what setup was looking at when I clicked on Re-run. The installer's process name is setup100.exe, so I filtered by that name. There were a ton of entries, so I filtered by registry entries only since I speculated that a check that looks to see if an app is installed would be isolated to the registry. There were still a lot of entries. I began to exclude entries I knew it would not be and looked through the list line-by-line. I found a candidate.
SQL 2005 is technically version 9.0. The SQL team doesn't like decimal places, so folder paths and registry keys tend to use version numbers like 80, 90, and 100 (for 2000, 2005, and 2008, respectively). I found the following key: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\90 was being looked at in a few places. This was the only time I saw anything related to SQL 2005. I renamed that key in regedit to HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\90xx and re-ran the test.
Success! But we're not done yet.
SQL 2008 will write entries into HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\90 on its own. We need to merge the old key with the new key without breaking setup. It's pretty easy.
- Install SQL 2008 as normal from this point forward (leaving "90" renamed to "90xx").
- When it is finished, export the new "90" key to a file using regedit.
- Delete the new "90" key.
- Rename the "90xx" key back to "90."
- Import the file you exported earlier and overwrite the values in "90."
Well, at least I have one fan out there in the blogosphere! Apparently Ron Britton, in-between battling religious extremism with his mighty keyboard, has decided to meme-slap me and my lowly mostly-tech blog. Cool. I've never felt so included in the blogosphere before. So, without further ado, I now present you with the rules of this particular meme, my responses, and the frighteningly chain-letter-like conclusion of my slapping others. :-)
- Link to the person who tagged you.
- Post the rules.
- Write six random things about yourself.
- Tag six people.
- Inform the tagees and the person who tagged you.
Six Random Things About Me:
I am a college drop-out. Yes, kids, you too can grow up to be an aspiring musician in a tech career, and no degree is required! Well, that's not entirely true. I have an Associate of Arts degree -- I just never finished college. I do hold a few certifications, and in my position as a systems/network administrator/engineer (whatever my position title of the day is), that seems to make up for it. Now, I don't encourage anybody to not finish college (especially in this age of the Bush Economy Legacy), but at least for those of us that grew up in the care-free days of the tech bubble, no degree is required!
I am a HUGE anime fan (Sorry, Ron, Japanimation just sounds funny to me). I've always dug animated features. Of course, all kids do. But when Disney's stories didn't appeal to me anymore, I found out that Japan makes animated movies and shows for all age groups, even *gasp* adults! Currently, my favorite anime evah (movie or series) is Eureka Seven. It just so happens I'm trying to find other interested artists to work on a fan-made OVA in the E7 universe. So far, the interest has been sparse. Maybe this post will help?
I am child-free by choice. ZOMG who will take care of me when I'm old?! Well, I'm trying my hardest to train my flock of parrots to spoon feed me, but so far, it hasn't worked. They do try to share their pellets, which is sweet, but it doesn't taste too good. So I must hate kids, right? No. Well, not too much anyway. ;-) I just don't want my own. My wife and I are happy with our flock of birds.
I was present at one of Bo Diddley's final recording sessions. He was recording a song with his daughter and her band that was basically a pro-Iraq War song back when America was in the "let's bomb stuff to feel better" mode after 9/11. Well... Bo knows a lot of things, but I'm afraid he was wrong about Iraq. Aside from the content of that song, he was an amazing person with a lot of words of wisdom. And his guitars... My god, his guitars were so freaking awesome! Built-in drumb machines, effects processors, etc. Bo was quite an amazing dude. His family was super cool too. So what the heck was I doing there?? My buddy owns a recording studio near where Bo was living in his semi-retirement and it happens to be a top-notch studio. I was there to take photographs to record the event for my buddy. And, well, because it gave me an excuse to sit in on a session with a (then) living legend. I will never forget that day! Like many, he died too soon.
I'm a Microsoft fan-boy, evangelist, and apologist. I'm still waiting for Bill to send me a free XBox 360 or something. Windows 7 is going to rock my world!
I am incredibly lucky and privileged to have found two soulmates to share my life with. My first passed away when she was 26 and left a huge hole in my heart. Luckily, E-Harmony helped me find my second a few years later. Now, we are one big happy flock.
So... Now who do I pass this meme onto? I'm just an insignificant little tech blogger in the great big wide world of bloggers. Well, I'll give it a shot. I don't really expect any of them to do it. :-)
- Mark Russinovich
- The Watcher (because maybe if Ron and I both slap him, he'll come back to blogging)
- Sadly, No!
- John J. McKay
I'm a Gator so I'm in a great mood right now. The Gators just beat the Sooners in the BCS National Championship game. The Sooners put up a good fight, but in the end, the amazing Tim Tebow (aka Superman) led the Gators to a victory by pulling away in the fourth quarter!
This is the second BCS championship in three years. And, even more importantly, this is the third consecutive sports-year (2006, 2007, and now 2008) that the Gators have held either the football or basketball national championship (or both)!