bug-cvs
[Top][All Lists]
Advanced

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

Information on bug described in CVS manual (section F1)


From: Hendrik Krauß
Subject: Information on bug described in CVS manual (section F1)
Date: Fri, 03 Sep 2004 21:37:14 +0200
User-agent: Mozilla Thunderbird 0.6 (Windows/20040502)

Hello,

possibly we have some relevant information for the problem mentioned in the CVS manual, section F1 "Partial list of error messages" (https://www.cvshome.org/docs/manual/cvs-1.11.14/cvs_21.html#SEC184). From that section:

cvs [server aborted]: received broken pipe signal

This message seems to be caused by a hard-to-track-down bug in CVS or the systems it runs on (we don't know--we haven't tracked it down yet!). [...]


Our setup involves a statically linked CVS 1.11.1p1 running in a chroot jail. Today, I added entries to the CVSROOT/loginfo file for automatic post-commit processing, and persistently got the error message above. Even a very simple command in loginfo, like "echo hello > /tmp/somefile", wouldn't work and only produce that error.

The problem went away after copying a (statically linked) sh into the chroot jail, so that the CVS executable running in the jail would see it as "/bin/sh". My guess is of course that after finding a matching line in loginfo, CVS forks and does something like exec("/bin/sh", "-c", <line-from-loginfo>), which won't work due to a non-existant /bin/sh. Then the parent, unaware that the child died directly, starts writing into the child's stdin, which is a widowed pipe, which causes a SIGPIPE to the parent, which confuses it and makes it die with the above error. It was particularly annoying because once I had committed the problematic loginfo file, commits would consistently fail with the "broken pipe" error message--which also prevented committing a good version of loginfo. I had to edit loginfo directly via SSH. By checking in a malicious loginfo file, you can effectively make your repository read-only (bug? feature?) :-)

Let me know if this helps tracking down the bug, or part of it. I tried to describe everything relevant to the situation, but do contact me if you need more details about our setup.

Best regards,
Hendrik Krauss

--
"1 + 1 = 3, for large values of 1."





reply via email to

[Prev in Thread] Current Thread [Next in Thread]