[wpkg-users] Behaviour of WPKG

Johannes.Brix at evidian.com Johannes.Brix at evidian.com
Wed Jul 15 09:46:48 CEST 2009


Hello Rainer,

I agree to most of your arguments.

But there are some circumstances which cause problems.
Most of my users are road warriors.

Although they have a VPN connection to our company network,
a software update over VPN is impossible (takes too long, blocks the 
line).

So, I added a check if a computer is locally attached to the network.
Which means, a road warrior must be in the office.

But when she comes, she has not much time. 
So any failed software update is anoying.

In this situation, there are always lot of packages to update.
And then, it happens that some installations keep hanging.
I have not yet found a reason.

Waiting for the timeout is also no solution, even I lower the timer value.

In this situation, the update is canceled -> not update of WPKG.xml
---
I agree to your thoughts about performance, but a good compromize
will be a switch which would allow the administrator to decide to
choose performance or to commit each successfull update.

br
Johannes






Rainer Meier <r.meier at wpkg.org>
14.07.2009 18:54

 
        To:     Johannes.Brix at evidian.com
        cc:     wpkg-users at lists.wpkg.org
        Subject:        Re: [wpkg-users] Behaviour of WPKG


Hi Johannes,

Johannes.Brix at evidian.com wrote:
> I have also a topic for the general behaviour:
>
> WPKG loads at start the local WPKG.xml into the memory.
> Then, it executes all pending tasks.
> At the end, it writes back WPKG.xml to the PC.
>
> And here is my problem.
> When the total job fails for any reason, the WPKG.xml is not updated,
> although some tasks have been executed successfully.

In which cases did you experience problems that wpkg.xml is not committed?
In fact this should happen only in the following cases (add more if you 
know
about more):
- WPKG encounters unrecoverable internal error (exception). This case is
supposed not to happen at all.

Well, that's it - I don't know about more cases where wpkg.xml is not 
updated.
The case where a package is not removed/added to wpkg.xml when there is a
pending reboot is intended. WPKG just adds a package after all commands
terminated properly without requesting reboot. Else it would be possible 
that a
command actually left some uninstall entries in the registry, WPKG would 
accept
it as successful but on next reboot the software is not there. But I guess 
we
are not talking about that case.


> A new run will do a lot of senseless actions, because WPKG.xml doesn't
> reflect the real status.

Well, i it crashes (the only case I could think about where wpkg.xml is 
not
written) then it might run through a couple of additional commands. In 
practice
it's unlikely that more than 10 packages are update din one shot. Actually 
on
all my systems it's usually just a single package which is
updated/changed/touched on each run. So this one might be re-run.

The current architecture of WPKG would allow to re-write wpkg.xml each 
time an
entry is added or remove (addSettingsNode() / removeSettingsNode()). 
However
this involves re-writing wpkg.xml as many times as there are packages 
assigned
to the host. Which means if you have 20 packages assigned wpkg.xml would 
be
written 20 times. Actually WPKG 0.9 did this and I removed it because I 
did not
experience problems when it is written just once on proper termination of 
WPKG
so I left this optimization in. My intention was to operate in memory as 
much as
possible because especially during bootup the system is already loaded by 
heavy
disk operations and accessing disk (writing in particular) is always 
something a
programmer should wisely plan. In general WPKG has been designed to be 
able to
start from any state and bring the system to the desired/defined state. So 
even
a crash (no matter in which state) should be recoverable by WPKG.

If it's causing severe problems to lots of you we can change it.


> What do you think about a "Commit" after each successful executed task
> so that WPKG.xml reflects the real status.

See above.


> This could be done automatical or by a flag.

Well, for such an internal thing I would recommend not to use a flag - 
it's more
confusing than helping - and enabling/disabling internal optimizations 
should
not be a flag. Either we decide to go for some optimization or we go for 
some
overhead - both should be reliable. So I would like to hear if and in 
which
cases people have problems with this feature.


br,
Rainer





More information about the wpkg-users mailing list