tech-pkg archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: make replace



On Tue, Jul 06, 2010 at 09:43:11AM +0000, Jens Rehsack wrote:
> On 07/06/10 00:20, Joerg Sonnenberger wrote:
> >The more important problem is that due to the hierachical namespace ELF
> >has, this can create very strange bugs that are not directly visible
> >from the binaries. Consider libfoo, which links against libbar, and
> >re-exports a symbol that has changed in size or type in the last libbar
> >update. The program foobar links against libfoo, but not against libbar,
> >but uses this symbol. With the way pkg_rolling_replace works, foobar is
> >essentially broken until the time it is replaced. At the very least, the
> >code path that is using the symbol is.
> 
> 'pkg_add -u' has the same behavior, except that the time frame of
> the inconsistency is smaller. The only safe way to solve that issue
> is using
> a transactional file system:
> 
> BEGIN TRANSACTION
> DO UPDATE
> COMMIT

"pkg_add -u" has the same issue, but it is not related to whether the
system is transactional or not. It is not really specific to either
tool, but the point I wanted to raise is that just because a program
starts doesn't mean it will work correctly. The above scenario is one of
the most problematic ones.

Joerg


Home | Main Index | Thread Index | Old Index