|  Login
share this page - email email | del.icio.us del.icio.us | digg digg | technorati technorati | reddit reddit | stumbleupon stumbleupon | newsvine newsvine | google bookmarks google bookmarks | yahoo bookmarks yahoo bookmarks | yahoo myweb yahoo myweb | slashdot slashdot | backflip backflip | live live | fark fark | blogmarks blogmarks | linkagogo linkagogo | wink wink
Upcoming Events
 
BriForum Chicago (7/21-7/23)
Tuesday, July 21, 2009

Hilton Hotel Chicago, IL


DefCon 17 (7/31-8/2)
Friday, July 31, 2009

Riviera Hotel in Las Vegas, NV



 
   
     
What's new on shawnbass.com
 
shawnbass.com - Server Based Computing blog

So I've got a client that I've been rolling out HRP04 for XenApp 4.5 in order to resolve a nasty conflict between Microsoft App-V and Citrix's Client Drive provider cdm.sys that results in BSODs in certain circumstances when users of App-V applications try to perform I/O to their client drives.  The system BSODs with a Stop 8E.  I've been cautious about rolling out HRP04 because we've found re-introduction of some multimonitor glitches that were quite stable with HRP02 (as long as Post-HRP02 3040/3044 wasn't deployed - can't remember which of those two the seamless problem came from).  Anyway, I've got HRP04 rolled out to about 80% of the farm, but we have one app that was bombing in Seamless mode because the application didn't think that the session had an 800x600 sized display.  What's strange about this issue is that I ran a utility as a published app that clearly demonstrated that the session believed it had a multimonitor config with the correct screen resolutions.

In situations like this in the past, I've simply disabled Citrix's DLL hooking for whatever feature I had issues with.  I've done this successfully with the multimonitor hook in the past by following CTX110301  But in testing this particular app, I found it only solved the issue about 50% of the time.  The other 50% of the time it threw up the same minimum monitor resolution message and exited.  Well, I was in the process of opening a support case with Citrix (which was taking FOREVER BTW) when I stumbled across this gem in the above mentioned KB:

"The name should include the extension, is case-sensitive, and should be semicolon-delimited."

Sure enough switching the process name to it's proper case as displayed in Task Manager and the app was properly skipping the multimonitor hooking 100% of the time and is running without incident now.

My question is now this:  Is this truely a limitation of how the process hooking works?  Or is it merely a case-sensitive string comparison issue?  I'm hoping it's the former.

Secondly, we've learned that reading really IS important.  Your teachers were just giving you crap back in grade school

 

 

7/2/2009 11:35:17 AM

shawnbass.com - Server Based Computing blog

I'll be giving a session a Pubforum 2009 in Dublin, Ireland on June 5-7 (yes Friday through Sunday, this is a geek conference after all).  I'll be presenting on VDI and where the industry in general is at now that XenDesktop 3.0 has been released.  Stop by and say hello!

5/9/2009 9:11:57 PM

shawnbass.com - Virtualization blog

Hoff tipped me off to this great audio recording of Larry Ellison speaking on "What the hell is the cloud?". It's an enlightening bit of audio that reflects some of my thoughts on the hype surrounding cloud computing.  Definitely an entertaining listen.

5/1/2009 11:19:58 AM

shawnbass.com - Random Things blog

Just stumbled upon this today.  Initially I though this was an extension of the April Fools day joke about Chrome automatically rendering web pages in 3D, but it seems legit.  Checkout the full blog entry here.

There's a pretty sick video demo shown in the blog entry.  Check it out.

 

4/24/2009 12:07:01 AM

shawnbass.com - Virtualization blog

There are two things that have slowed investigation of Windows 7 and 64-bit Terminal Services for many Enteprrises. Those two things are App-V not supporting Windows 7 (yes, I know Windows 7 isn't released yet) and the lack of support for 64-bit in App-V. Microsoft has released immediately (for MDOP customers) an App-V 4.5 CU1 release that works on Windows 7. In addition, they've announced that they'll be opening up the TAP for App-V 4.6 which will support 64-bit Windows (TS is the big use case here) in Q1 2009. I happen to have a customer that is running App-V 4.5 right now that is definitely looking forward to both of these things, so it's very exciting news.

 

Read more about these two exciting items at the MDOP blog item here.

2/27/2009 7:36:19 PM

shawnbass.com - Network Administration blog

A client of mine recently rolled out their upgrade from McAfee 8.0 Enterprise to 8.7 Enterprise.  On the Citrix server environment we had two major application failures that were the result of the McAfee upgrade uninstalling the MS XML 4.0 Parser on the servers.  There were two applications on the production Citrix environment that required the MS XML 4.0 Parser and they both stopped working following the upgrade.  Unfortunately, the issue was not caught in Lab/UAT testing and was only found after McAfee went out to production.  To make matters worse, something went wrong with the deployment mechanism and the McAfee upgrade went to all servers in one blast whereas the server team usually pushes in 2-3 separate sets of server groups.  All of that combined = FAIL

So McAfee is responsible for the outage, right?  WRONG!

What the Mcafee installer was doing was proper behavior.  It had incremented the shared component registry entry for MSXML4.dll when it was installed on the servers.  The shared DLL component dependency counters are stored in HKLM\Software\Microsoft\Windows\Current Version\SharedDLLS.  Here's an example listing 5 installed apps that depend on MSXML4.dll on my workstation PC (see the DWORD 5 next to MSXML4.DLL). 

Every time a program installs that depends on MSXML4.dll (or any other shared windows DLL), it's supposed to read the existing counter value, increment it, and then write it back out.  Upon uninstalling that program, the installer engine is supposed to read the counter, decrement it, and write it back out.  However, if the value of the counter is 1 and a program is uninstalling that has a shared dependency on that DLL, it's supposed to uninstall that component and remove the shared component counter from the registry.  See, everyone is supposed to tidy up after themselves.

Windows Shared DLLs + Dumb Developers = FAIL

So in my client's situation, they had two applications that apparently required MSXML 4.0 Parser, but those apps never bothered to increment the shared DLL counter in the registry when they were installed.  This is usually due to a dumb developer that doesn't realize that the component has to be registered with the installer engine in order to properly install and register the shared DLL component.  So when McAfee Enterprise 8.0i went to uninstall, the installer engine noticed that the value of the shared component registry entry was 1and subsequently ran a removal process for the MSXML 4.0 Parser.  This equals failure for the two apps that need MSXML.

So how do you know you've been affected?

1) If you're lucky, the application will complain about not being able to find the MSXML4.dll, or not being able to instantiate a object for the MSXML4 DOM.  If you're not that lucky, then...

2) FileMon / ProcessMonitor from SysInternals will pinpoint the issue.  Simply run it before launching your application and when you reach the place in code where the app is crashing or throwing an unexpected error, you'll see messages in the log where it was attempting to locate MSXML4.DLL in the search path and failing.

How do you fix it?

Download MSXML 4.0 SP2 Parser from Microsoft and install it.  You can do the install manually or push it with whatever ESD system you're using.  The MSI installs quite nicely with Citrix Installation Manager if you only have that.

Stay tuned for another entry from me regarding this issue with respect to application virtualization since it has some unique properties that make this particularly challenging...

11/26/2008 1:17:14 PM

shawnbass.com - Network Administration blog

I was recently running some Windows Update patches on one of my client's Server 2003 boxes (they aren't using a patch management solution) when I ran into a strange error that stated the Windows Update site could not be accessed and the error message listed was 0x80070020.  This message did not appear while trying to install the updates, it appeared right after the selection for Express vs Custom.  I chose Custom and it's supposed to query the available patches for the server, but instead I was greeted with error 0x80070020.  In doing some reason on this error I found that it's related to a file locking issue.  Some people on various forums reported issues with BitDefender AntiVirus on Windows XP and Vista as the source of the issue.  While they're not running BitDefender on their server (they run eTrust), it was worth looking into.  I also found KB883825 which also lists Anti-Virus as a potential source of issues for Windows Update.  So I temporarily stopped the Realtime A/V scanner and voila!  Windows Update website began working again.

11/26/2008 12:12:43 PM

shawnbass.com - Virtualization blog

I was recently installing VMWare Server 2.0 (the freely available VMware virtualization platform) and I found that after the installation initialized it threw this error message:

In doing a quick bit of research, I discovered that this is some type of an issue with Windows Installer engine with large MSIs.  Essentially Windows Installer is unable to allocate the necessary virtual memory to verify the integrity of the MSI.  The strange part about this issue for me is that this server has 6 GB of RAM and there's absolutely nothing else running on it....Strange eh?

Anyway, MS has a hotfix for this issue.  Download and install KB925336 and you'll be good to go.

 

11/26/2008 11:06:12 AM

shawnbass.com - Random Things blog

Ok, so it sounds like it would be something digusting or obscene, but it's not.

I'm currently in the middle of troubleshooting some MSI / MSP installation issues on a Citrix server and I've come across a very common MSI info message that always makes me chuckle.  Here it is:

MSI (s) (04:30) [11:09:24:439]: Found shell folder  by spelunking through the registry.

According to Wikipedia, spelunking is the recreational activity of exploring caves.  While exploring caves has nothing to do with traversing registry hives/keys, it does remind me that even those developers at Microsoft (that everyone loves to hate) have a sense of humor.

 

9/30/2008 5:31:24 PM

shawnbass.com - Virtualization blog

Helge Klein from sepago put up a blog entry today discussing the memory overcommit feature of VMware's flagship ESX product and how it has a very favorable impact in the VDI space since you're running lots of copies of MS Windows with the same (or similar) applications on them, etc. (this is likely the result of large amounts of transparent page sharing)  Helge also mentioned that Microsoft and Citrix both do not have this feature at this time and are downplaying the significance of it.  Helge believes it's this way because Microsoft simply doesn't have this feature now.  While I tend to agree that there probably is some level of wordplay to de-emphasize the competitors product that has a feature that your product doesn't have, but I also wonder if there isn't another reason why Microsoft wasn't so quick to implement this feature.  Keep in mind that both Vista and Server 2008 have implemented Address Space Layout Randomization (or ASLR) as a tactic to reduce the likeihood that OS exploits can compromise a host system.  I have not seen anyone comment on whether or not transparent page sharing works with ASLR or not.  I would assume that even if it did work, it probably wouldn't be as effective as it would otherwise normally be.  Assuming that's the case, perhaps Microsoft has pushed off this feature since it's not something that would greatly benefit Vista/2008.  Everyone knows that Microsoft always has higher level of focus on their newer operating systems than they do on the legacy stuff.  Perhaps because of this (and my theory on ASLR's impact to transparent page sharing) they haven't pushed this higher in their priority list for Hyper-V development.  Can anyone out there comment on the effectiveness of transparent page sharing with ASLR? Perhaps since's MS's ASLR implementation is rather limited you wouldn't get quite as penalized as a full blown ASLR implementation.  However, without having tested any of this I can only speculate.

9/25/2008 5:21:04 PM

Page:   of 5