LPREMOVE may cause repeating update installation hell

H

hannu.nyman

I recently installed a new HP 6830S laptop and ran into a strange
problem, which I later identifying being due to the LPREMOVE task...

Symptoms:

After selecting the installation language (Finnish) for the Vista
Business and installing updates from Windows update, everything seemed
ok for a while. Then the PC started to behave strangely on second day
after original install: an unscheduled update was released by
Microsoft, and when Windows update installed it, it requested reboot.
Then at reboot it said something about failed update and automatically
retrying the update. After "configuring updates" for some time, at the
subsequent automatic reboot there seemed suddenly to be many more
updates to install, and the process seemed to take ages. I wondered,
what is happening...

The PC seemed unstable. Although the PC worked normally, roughly on
every second boot it would again try to install dozens of updates.
Part of the update install process seemed to include a counter for
some 15000 files/registry keys rolling on screen, like with an larger
update. I also ran the system file checker and it started complaining
about errors.

Looking into Windows event log I found out dozens of event 4371, 4372,
4375, 4376 and 4386. The event texts seemed to be related to several
update packages, including SP1 (which was preinstalled in PC). The
update process seemed to mark the updates from permanent to installed
to absent, and then later reversing markings to other direction.

I decided to reinstall from scratch, just in case, and used HP's
recovery tool to really start again the whole install from disk image.
But again, after two days the same started happening, (as there was
the other unsceduled update from Microsoft in October). This time I
looked into all the possible event logs and log files, and finally
identified the culprit: LPREMOVE

There were long logs in TEMP directory regarding LPKSETUP (and
LPREMOVE) program. So, it might be related to language packs. There
was the task LPREMOVE which was setup to launch at every reboot and in
case in two days after the original installation. The longest log file
was over 600 KB long.

So, as the PC was again reinstalling various updates at boot, i
decided to start over third time, and to really analyze what is
happening with LPREMOVE.

LPREMOVE is not well documented, but I think that it removes the
unused Vista language packs, which are either not supported by the
specific Vista version, or are not used by the user. Searching the net
revealed some information, but not much.

LPREMOVE task is hidden in Task Scheduler in:
Task Scheduler Library / Microsoft / Windows / MUI

This time I disabled the LPREMOVE task right after first boot, and
prevented it from running automatically. After installing the normal
updates, I then manually started the task and monitored activity:
- the LPREMOVE process seemed to take 20-30 minutes
- the task seemed to progress one language pack at a time and then
move to next language
- for each language it first marks several updates uninstalled, then
removes the language from system (and those updates), and then marks
the same updates installed again.

After the task had been allowed to run into completion, there were no
problems.

Conclusion:

So, my reading of this is that Vista's LPREMOVE task starts
automatically, and may cause serious trouble if it is interrupted by a
reboot.

When interrupted by reboot (e.g. due to a reboot request by Windows
Update), the status of many updates may be left mixed, if LPREMOVE has
just changed their status. They can be left marked either uninstalled,
install in progress, installed or permanent. At the next reboot the
update system tries to reinstall all "half installed" updates, and
this may then break the things for good. As LPREMOVE did not ran into
end, it will then restart, and will again starts working language by
languagge the whole process.

So, when installing Vista, please be aware about LPREMOVE task and
that if it starts, you need to let it run into end before rebooting.
This can take 20-30 minutes, like it did for me.

I am not even sure if that task is really needed to be allowed to run
or not. It can also be manually removed by running the command:
lpremove /c
http://www.windowsvistauserguide.com/command_line/command_line_lpremove.htm
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Similar Threads


Top