Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Broken pipe (core dumped) #4

Closed
matwey opened this issue Jan 3, 2016 · 6 comments
Closed

Broken pipe (core dumped) #4

matwey opened this issue Jan 3, 2016 · 6 comments

Comments

@matwey
Copy link

matwey commented Jan 3, 2016

Here https://build.opensuse.org/package/live_build_log/devel:languages:go/golang-github-gogo-protobuf/openSUSE_13.2/x86_64

you may see the following:

[  133s] Finding  Requires: /usr/lib/rpm/golang.req
[  133s] Broken pipe (core dumped)

This happened after recent golang-packaging update, however I am not sure that it is related.

@marguerite
Copy link
Owner

golang(github.com/gogo/protobuf/vanity/test)
golang(github.com/gogo/protobuf/vanity/test/fast)
golang(github.com/gogo/protobuf/vanity/test/faster)
golang(github.com/gogo/protobuf/vanity/test/slick)

I think those "test" paths are useless too? Do they?

@marguerite
Copy link
Owner

I filtered "test" and "example" from provides.

the golang.req script actually runs fine, see:

https://build.opensuse.org/build/home:MargueriteSu:branches:devel:languages:go/openSUSE_Tumbleweed/x86_64/golang-github-gogo-protobuf/_log

[  124s] Source package created!
[  124s] + ruby /home/abuild/rpmbuild/SOURCES/golang.req
[  124s] golang(API) = 1.5

I added golang.req to Source1 of golang-github-gogo-protobuf

and use:

%gosrc
ruby %{S:1}

to test

since the script doesn't read from stdin like golang.prov do, it can be run anywhere, the result will be the same

I think the problem may locates in the stdin pipe of the -source sub-package because golang.req does the same job for all the sub-packages but x86_64 didn't fail.

@marguerite
Copy link
Owner

I found *.golden are added to -source package. seems my regex failed to filter them.

Now the error is much more readable: "fail to write all data to /usr/lib/rpm/golang.req

Which can be found here:

http://rpm.org/api/4.4.2.2/rpmfc_8c-source.html

But due to my poor understanding of C, I don't know what will trigger the error in design.

Can you look at it and explain to me?

@matwey
Copy link
Author

matwey commented Jan 4, 2016

It seems that RPM attempts to write to closed file descriptor (finished script). Even you don't use info from stdin, It seems that it should be read from the script anyway.

p.s. I don't think that filtering really required, sooner or later we will found that some package really "Requires: x/y/z/test"

@marguerite
Copy link
Owner

@matwey

ok, I'll see what happened if I just open stdin and close it right away.

and I'm testing the new golang.req which read stdin.

@marguerite
Copy link
Owner

release v13 with new implementation of golang.req should fix it

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants