-
Notifications
You must be signed in to change notification settings - Fork 993
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
[bug] Assertion error self.binary == node.binary #14352
Comments
Hey @DoDoENT !
Do you mean multiple dependencies would be built or that there are multiple binaries in the package itself? Also, does this issue occur consistently or occasionally? |
Both.
Occasionally. |
I have been trying to reproduce this, without success so far. It would also be good to have more information like:
|
I don't know how to reproduce with open source project, but I can give you the log output from my internal project. First, if I issue this command:
This fails with
This is true, but I expected However, if I instead run like this:
It workarounds the "missing prebuilt" error above and actually starts building, but then fails with the stack trace I reported above. Here is the full output with
I'm still not using lockfiles here. I tried creating the lockfile for all required platforms involved (in this example, only android (target system) and mac (host system) are needed, but this results with the same behavior. |
That is very helpful, thanks, I got a extra hint for something new to check, I will investigate this new line. |
Ok, got some ideas:
If that is the case, it should be fixed by the latest fixes to the |
No, it doesn't. Basically all packages in the dependency graph have
Unfortunately, I could find a way to specify that some packages are "semi-private", i.e. should be propagated by dependencies only to some consuments, but not all, so I just propagated them to all. Here is more context about the packages (it's similar to numerous bug reports I've created during the conan v1 era 😛 ):
I've tried solving this problem in the following matter as well:
The assert above happens when I test the
Unfortunately, conan does not support test packages to depend on itself, so here I only test building parts of the "simulated The other thing I tried is to add option to the |
I tried installing both from
and
and for both versions:
Here is the full shell log:
Same thing if I use |
It seems there is something a bit off in the trace:
The assert in With |
Here is the trace from
|
But this is still not expected. The code in assert self.binary == node.binary, f"Binary for {node}: {self.binary}!={node.binary}" We should be able to see it if this is running the |
How can I test that? I installed using following command:
... but the version was still 2.0.9 |
OK, it appears that I had to first uninstall conan 2.0.9 and then install Now, the code is building (there are no asserts). Maybe non-release branches should have |
yes, we have tradionally have this |
Well, there are no asserts in the |
Yes, I think we can closed it as solved in next 2.0.10, I will mark the PR that fixes it too, and recover the Thanks very much for the testing and the feedback! |
Environment details
Steps to reproduce
Not completely sure, but happens sometimes when I
conan test
package with--build missing
where multiple binaries should be build by dependency.The usual workaround is to first
conan install --requires --build missing
those packages and thenconan test
. I didn't find a pattern or minimal reproducer. Hopefully the stack trace will help discovering the issue.Logs
Stack trace:
The text was updated successfully, but these errors were encountered: