tech-pkg archive

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

Re: xz 5.0.3 (i386/NetBSD 5.0) strange "Unexpected end of input"



  | On Wed, Jun 27, 2012 at 12:54:41AM +0200, Joerg Sonnenberger wrote:
  |  > If I may guess, you are hitting no corruption, just an optimisation.

The first half of that I had already concluded, when it gave different
results on different runs - it is clearly some kind of race condition.

  |  > pkg_info just reads enough from the package to get the meta data.

That makes sense.

  |  > When libarchive is *not* built against liblzma,

That's my case I believe, as it does seem to be running unxz.

  |  > Depending on how fast the extraction happens,

That could be the race, it did seem as if this problem never happened
if I checked just enough files that all the data could be living in the
buffer cache (or UBC or whatever) - that is, after the first run to
prime the cache.   With all 11000 files, that would never happen
(on my system anyway) of course.

  |  > unxz hits the closed stdout or closed stdin first.

I took a quick look at the code, and this error looks mostly related to
the input buffer, so a closed stdin would seem more likely the cause
(closed stdout might produce some different error).

  |  > I'm not aware of a clean way to signal this.

Given that, ...

    Date:        Wed, 27 Jun 2012 01:45:26 +0000
    From:        David Holland <dholland-pkgtech%NetBSD.org@localhost>
    Message-ID:  <20120627014526.GA16558%netbsd.org@localhost>

  | Um? Close its stdin, wait for it, then close its stdout?

this doesn't look like a productive strategy, but ...

  | Or signal it and not close either?

seems reasonable, simply kill -9 the thing (kill(pid,SIGKILL)),
and ignore a signal 9 exit status (don't treat that as an error - or
at least, not an error if libarchive has sent the signal).  If
you have all the data you want already, that's surely harmless.

In any case, now that I am convinced that this is puerly a cosmetic
issue, I'll continue with what I was doing, assuming that pkg_info
was truly getting everything it wanted (I was guessing that to be
true before, now I'm elevating the hypothesis to be a theory...)

I'll just ignore the error messagess, and assume that someone who
understands what is probably happening will eventually fix it (I'm
quite willing to test proposed fixes of course, I seem easily able
to generate the problem.)

kre


Home | Main Index | Thread Index | Old Index