Today I received this error message when issuing a cvs import to the cvs repository
cvs [import failed]: received broken pipe signal
after googling a little bit I found this mail thread that led me to the following entry in the cvs manual about loginfo:
Note that the filter program must read all of the log information or CVS may fail with a broken pipe signal.
so I took a look to the CVSROOT/loginfo and the line there was
ALL /usr/local/viewvc-1.0.0/bin/loginfo-handler %{sVv}
so I figured out that loginfo-handler from viewvc must be causing the problem. I went to the viewvc repository and find out the following comment on Revision 1518 of loginfo-handler:
* bin/loginfo-handler
Add some more debugging, and consume stdin so CVS’s pipe doesn’t
back up (which causes an abort()).
I downloaded the latest version of loginfo-handler and tried to use it instead of the old one but I doesn’t work. You must upgrade to latest version of viewvc. So I tried another solution I modified a little bit the 1.0.0 loginfo-handler
1 2 3 4 5 6 7 8 9 10 11 12 13 | |
and now it seems to work.
UPDATE:: There is another way (easier) to solve this problem without editing loginfo-handler just change the line
ALL /usr/local/viewvc-1.0.0/bin/loginfo-handler %{sVv}
in your /CVSROOT/loginfo file with
ALL (/usr/local/viewvc-1.0.0/bin/loginfo-handler %{sVv};cat) >/dev/null
this also consumes all stdin data upon completion avoiding the received broken pipe signal.