Windows 10 Store Won’t Start

I performed the update from Windows 7 to Windows 10 on my development computer. I did not perform the clean install and choose to preserve my existing applications and files. The reason I did this is, as will be important later, is the number of development tools and applications I have will take days to get back up and running. My documents are backed up, as is the system, but a clean install will require way to much time.

After the update, everything ran smoothly for a couple weeks, until one of my projects needed me to use a VMWare virtual machine. With hesitation I installed VMWare, and fired it up, and this started the problems. Hyper-V, which I have for several Linux VM’s, cannot co-exist with VMWare. Great. I uninstalled Hyper-V to use VMWare, which ran, and I immediately started having problems. This is where the Windows Store quite working and weeks of troubleshooting started.

First thing I did is get rid of VMWare. Then I reinstalled Hyper-V. On this reboot is when my boot time started taking nearly 30 minutes. However, once I logged in, everything other than the Windows Store, and Store apps, worked normally. Mail, Camera, Weather, Store, and all universal apps, simply wouldn’t start and said to run the Store and re-install. Running the Store it just exited immediately.

I hit the forums, tried all the power shell tweaks I could find with those having no effect. I then looked at my Windows Event Log and noticed in the System and Application logs there were lots and lots of errors and warnings.

Tried the SSL enables. Tried a new user account, and had the same problems. The only action I didn’t try was the re-install Windows 10, which would require me to re-install all my applications. As I said, too much time to and not willing to do that just to get the store working.

The long boot time I suspected was a result of the 20 or so applications related to the Store that failed to start, as shown in the Application log. I used power shell to uninstall many of those store applications, and as a result my boot time dropped from 30 minutes down to about 10 minutes. Progress.

Next I started going through the errors that happened during a system restart. Cleaned up task scheduler, which had lots of Windows 7 scheduled tasks, Media Center stuff, and driver failures for hardware I no longer had in the system. All this helped, boot time became faster, but was still over 5 minutes and the Store and related apps still failed to start.

One of the errors was for the Microsoft Cryptographic Provider failing to start. Looking deeper into this, I found this post.

http://answers.microsoft.com/en-us/windows/forum/windows8_1-hardware/cryptographic-services-failed-while-processing-the/c4274af3-79fb-4412-8ca5-cee721bda112

After going through this sequence, my boot time was back to normal, only a minute or two. Most of the errors in the Event log had been removed. However my Store was still not working.

About a week later, having made no further changes, the Store and other Apps started working.  Looking at the Windows Update history, no patches were pushed in the last week, other than the Windows Defender data file updates.

So what was the fix? I suspect, it was a little of everything, and probably the crypo fix more than any. It was preventing needed services from authenticating and causing those applications to get locked out. It just took time for resets to happen, just a guess.

Either VMWare or Hyper-V must have adjusted the permission on the driver access and caused the immediate failure.

My educated guess, given my experience with using and building crypto systems, is that when the crypto driver failed, an account associated with my machine had become locked out when trying to run apps. After I fixed the provider service and allowed sufficient time to pass for the lockout to clear (days perhaps) the authentication succeeded and the apps were again allowed to run.

If I learn any more I will update.

Posted in General | Leave a comment

WordPress Redirect Loop

That was interesting. For the last several months this blog has been about useless because of the “Redirect Loop” error that would show up when a user would attempt to view a posting. For a problem that seemed like it should be simple to correct, it was not. Many updates of WordPress, installs, reinstalls, following every forum post and trick I came across didn’t help solve this problem.

Everything I read about this seemed to point to an issue with the Permalinks, and in the end this was true. What wasn’t clear was how to fix them and how I created the problem in the first place. I tried again to fix this problem and started looking more closely at everything and eventually figured it out.

My troubles came when I decided to change the permalinks layout from the default to something different after a few posts already existed. This started the problems. What fixed it was going back through all the posts and doing an update which corrected the permalink for the post.

There might be an plugin to help solve this, but in my case I only had a few posts to look at them all.

So hopefully now that the blog is again working I will be more encouraged to post again.

Posted in General | Leave a comment

Google Test Framework – Large Library Organization

Using the gtest framework to support the development of a library has three primary goals. First the environment should be organized and maintainable. Second the execution of the tests must be inclusive and repeatable by any developer. Finally, the organization should be able to support multiple developers contributing during parallel development cycles.

I have seen two approaches that provide a solution to organization question. The first approach will create a new project for each class or class collection being tested. The main advantage with this is each developer on a team has their own unit test sandbox to build all the unit tests, isolated from all the others, which they require. Scripting and batch processing will allow execution of the entire library of test by the software lead and removes the need for individual developers to execute all unit tests. The project isolation allows for good organization and is easily maintained. This approach would be excellent for very large teams of developers.

The seconds approach is to have a single project that has the entire unit test suite for the library in it. All tests must be done using the test fixture subclass, thus allowing each test to simply be a single macro entry in the main file. This approach has the advantage that everything is encapsulated in a single project; one execution tests the entire library. For small and medium size teams, the concurrent development is simple enough to maintain, since most of it should be managed by the revision control system, and every developer is easily able to run all the tests. Test actions are always encapsulated in the fixture classes.

For my project I elected to use the second approach. Being only a single developer, creating and maintaining a multiple test projects is more overhead than I need. The code organization isn’t quite as clean as I would like, but it having a long list of the TEST_F() macro is still pretty readable. Since most IDE support tree collapse, it shrinks the code down.

Posted in General | Leave a comment

Google Test Framework – First thoughts.

I have started a personal project to rebuild some software libraries that to take advantage the knowledge I have gained over the years and one of the things I wanted to do this time around was incorporate a unit testing framework. I selected the Google Unit test framework, gtest, because of these primary factors:

  • C++
  • Free
  • Can compile on multiple platforms
  • Been around a while
  • Good user community.

So I started building my unit test project following the simple examples and everything does go pretty smoothly at first. For the simple classes in the library I could easily create the test cases and to fully exercise all the calls for this class. However, as I continued to add more class I quickly realized the first drawback to my approach. The main file, the one that contains all the testing macros, gets large and unreadable very quickly with only a few classes added of the 100 or so I have planned. So clearly this will take some investigation on how to organize better. I will write about how I will solve this in future posts.

The gmock library addition to gtest was a nice find to help in working with abstract classes and template designs.  I found this very helpful for dealing with factory patterns and chain of responsibility calls to make sure calls were getting to the intended implementations. These take a bit more design thought to create good unit test cases, but worth the effort.

The second problem I encountered is something many embedded developers I feel will struggle, that is testing classes that are tied to a real-time operating system and to hardware level interactions. Searches for solutions on this topic did not provide much insight for solving these.

FreeRTOS is my current RTOS of choice, so I figured I would try integrating that first. It didn’t go so well. My hope was I could take the demo project for my platform, using Visual Studio 2010 on Windows 7, and drop the gtest in the middle. I should have known better, the part that gets in the way is the run to completion requirements for the gtest framework doesn’t work with FreeRTOS scheduler. I am not without hope, I plan on writing posts in the future on how to tackle this and get it to work.

Generally I am happy with how using gtest is going and encourage embedded developers to give it a good look for their own projects.

Posted in General | 1 Comment

Number Converter 1.1.4 Released

I am pleased to announce the release of the Number Converter application. This is a simple utility for embedded developers to convert numbers from the integer, hexadecimal, and binary representations. There are also some other helpful binary operations and bit field tools built into the application as well.

The download page for this program can be found here.

http://www.commongroundss.com/Apps/NumberConverter.html

 

Posted in Applications | Leave a comment

Initial Thoughts

Over the years I have considered and rejected the idea of publishing small articles on topics that relate to my professional life. Finally the time has arrived that I decided to take the first steps to finally realizing and implementing it.

My goal is to capture and make available some of the opinions and ideas I have with respects to software development and engineering applications. I will always be open to ideas and topics if an interest exists.  Mainly I will be using this blog to capture my own publications, and replicate posts that I may contribute on other sites.

Chris Snyder

Posted in General, Uncategorized | Leave a comment