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

Bug#637840: pu: package git/1:

Adam D. Barratt wrote:
> On Sun, 2011-08-14 at 19:33 -0500, Jonathan Nieder wrote:

>>  - fast-import: accept no-op "feature notes" command for frontends
>>    use to declare they require an importer able to write notes.
> I did think "hmmm" at this change, yeah.  Am I correct that the current
> behaviour is that the import simply fails, and leaves the tree in an
> indeterminate state?

Nah, the current behavior is even more benign than that.  The version
of git in squeeze already knows how to write notes but thinks it
doesn't know.  So if a frontend writes

	feature notes

at the beginning of a stream, then "git fast-import" from squeeze will
simply error out, no damage done.

I just looked over the other updates going into squeeze for the next
point release, and this change definitely looks out of place.  Let's
drop it.

>> 3. git-daemon-run.postrm purge: always terminate logging process more
>> aggressively so the logging user can be removed and the package
>> purged when a connection is active (also thanks to dkg, Bug#627314).
> What's the effect on the process using the connection when it's forcibly
> terminated?  Lost log data?

During an active connection the pipeline looks like this:

  helper (e.g., git upload-pack) --> git daemon --> svlogd

"git daemon" is responsible for prepending the process ID to each line
so concurrent connections can be distinguished in the log.

When git-daemon-run.postrm calls "sv force-shutdown .../git-daemon",
the logging process immediately closes its standard input.  The first
message the helper writes afterwards causes the git daemon process to
die with SIGPIPE and in particular to close its pipe to the helper.
The second message the helper logs causes it to die with SIGPIPE.  In
the normal case, the helper has already written everything it wanted
to, so it will just finish normally.

So errors after the "sv force-shutdown" call are already not being

What this patch does is to kill the logging process, too (so deluser
can delete the gitlog user later in postrm instead of erroring out).
But svlogd is not doing anything useful at that point anyway.

Thanks for a helpful review.


Reply to: