-
Notifications
You must be signed in to change notification settings - Fork 50
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
Undefined symbol: mbedtls_x509_crt_verify_restartable #193
Comments
I have the same issue (see travis log) based on Ubuntu Xenial (16.04) offered by Travis. |
I have the same error (full log) on Travis. This is the line with the error:
These are the lines immediately preceding:
Version information:
|
I noticed in my own testing that |
What do you mean by alleviate? I just tried this: JuliaWeb/HTTP.jl@342d9c2, and after a |
Not sure if this is related, but on 0.6.7 I appear to be getting:
I seem to be getting the
error from the HTTP (0.8.0) tests with on both MbedTLS (0.6.7) NOTE: I only seem to be getting this inside an amazon linux 2 docker container (macOS seems fine), but for now downgrading to 0.6.6 seems to work. |
My mistake, updating MbedTLS to v"0.6.7" fixed the issue my package was having with HTTP.request() but the tests themselves are still broken |
I believe I know what's wrong. The ## This file autogenerated by BinaryProvider.write_deps_file().
## Do not edit.
##
## Include this file within your main top-level source, and call
## `check_deps()` from within your module's `__init__()` method
if isdefined((@static VERSION < v"0.7.0-DEV.484" ? current_module() : @__MODULE__), :Compat)
import Compat.Libdl
elseif VERSION >= v"0.7.0-DEV.3382"
import Libdl
end
const libmbedcrypto = joinpath(dirname(@__FILE__), "usr/lib/libmbedcrypto.2.16.0.dylib")
const libmbedtls = joinpath(dirname(@__FILE__), "usr/lib/libmbedtls.12.dylib")
const libmbedx509 = joinpath(dirname(@__FILE__), "usr/lib/libmbedx509.0.dylib")
function check_deps()
global libmbedcrypto
if !isfile(libmbedcrypto)
error("$(libmbedcrypto) does not exist, Please re-run Pkg.build(\"MbedTLS\"), and restart Julia.")
end
if Libdl.dlopen_e(libmbedcrypto) in (C_NULL, nothing)
error("$(libmbedcrypto) cannot be opened, Please re-run Pkg.build(\"MbedTLS\"), and restart Julia.")
end
global libmbedtls
if !isfile(libmbedtls)
error("$(libmbedtls) does not exist, Please re-run Pkg.build(\"MbedTLS\"), and restart Julia.")
end
if Libdl.dlopen_e(libmbedtls) in (C_NULL, nothing)
error("$(libmbedtls) cannot be opened, Please re-run Pkg.build(\"MbedTLS\"), and restart Julia.")
end
global libmbedx509
if !isfile(libmbedx509)
error("$(libmbedx509) does not exist, Please re-run Pkg.build(\"MbedTLS\"), and restart Julia.")
end
if Libdl.dlopen_e(libmbedx509) in (C_NULL, nothing)
error("$(libmbedx509) cannot be opened, Please re-run Pkg.build(\"MbedTLS\"), and restart Julia.")
end
end
So it first opens
This seems plausible given that |
Unfortunately, HTTP.jl tests still fail for me after changing the order locally. Still I think it is a real issue. |
I thought that it was likely a version issue, since the problem did not occur on Travis/Debian, but Travis/Ubuntu. (I did not actually retry Debian recently, it's just that I remember it to work.) |
The latest release of MbedTLS upgraded to a new version. Julia ships with a |
This bug doesn't allow me to automatically setup Travis in |
Any update from a package maintainer?
@quinnj
…On Tue, Feb 5, 2019 at 19:24 Mosè Giordano ***@***.***> wrote:
This bug doesn't allow me to automatically setup Travis in
BinaryBuilder.jl. System used: Arch Linux. As a temporary workaround I
downgraded this package to v0.6.6.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
<#193 (comment)>,
or mute the thread
<https://github.com/notifications/unsubscribe-auth/AFXAraVo-L0GOcGtbcY8Riz90uzwcx3mks5vKiCegaJpZM4aUniZ>
.
|
Sorry for the slow response here, but I don't really have much to contribute; I haven't personally had any issues on OSX Julia 1.1, or Linux Julia 1.0/1.1; do we have a reliable reproduction somewhere where we could debug what's going on? |
Yep, it happens on my Travis builds. Here is an example.
https://travis-ci.com/UnofficialJuliaMirror/MirrorUpdater.jl/jobs/175298500
…On Wed, Feb 6, 2019 at 15:27 Jacob Quinn ***@***.***> wrote:
Sorry for the slow response here, but I don't really have much to
contribute; I haven't personally had any issues on OSX Julia 1.1, or Linux
Julia 1.0/1.1; do we have a reliable reproduction somewhere where we could
debug what's going on?
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
<#193 (comment)>,
or mute the thread
<https://github.com/notifications/unsubscribe-auth/AFXArcJDW3cH5NFsrsm0RXr-224dm5vjks5vKzrKgaJpZM4aUniZ>
.
|
Submitting coverage currently errors on Travis because of: JuliaLang/MbedTLS.jl#193 Skip this until this is fixed.
Just to verify: There are systems (Windows and macOS?) which are not affected by this issue? Otherwise we could bump the required Julia version of the latest MbedTLS to 1.2- in METADATA to prevent it from being installed on incompatible Julia versions. |
- If we use 0.6.7 then we get this error JuliaLang/MbedTLS.jl#193
bump. This is preventing us from getting information out of Coverage.jl: https://travis-ci.org/JuliaCI/CoverageBase.jl/jobs/501818500 |
This issue has been open for over a month, and apparently there is no fix in sight (at least looking in from the outside; I'd be happy to be wrong here!) Since this is breaking tests for dozens (hundreds?) of projects, wouldn't it be better to revert the breaking change for now, make a new release, and then work on fixing the issue properly, but with all the time you need? |
We must pin MbedTLS.jl for now to v0.6.6 as a workarround to bug: JuliaLang/MbedTLS.jl#193
I second that. I had to pin MbedTLS.jl to v0.6.6 to fix the issue for now. |
Alright, how about this: explicitly |
@fingolfin, @ronisbr, please read the other comments in this thread. There's no consensus that just "reverting" the latest release actually resolves the issue (see @tanmaykm's comment and my own). At this point, I suspect that we're getting a weird interaction with the Julia Base-shipped mbedtls shared libraries conflicting with the MbedTLS.jl-shipped ones and that's causing the issues. I've spent at least 3-4 days trying to track down various root causes, but shared-library loading/symbol resolving is far from my skillset. If someone can show concrete evidence of an mbedtls library version that works on Julia 1.0 and 1.1 without issues, I'm happy to make changes and merge PRs, but so far, AFAIU, we haven't seen that kind of 100% solution. @tkoolen, similarly, if we can show that your suggestions solve the issue here in all cases, then I'm happy to make changes. There just seems to be a lot of "hey, we should do this!" or "just revert!" comments here without anyone actually going thru the work of seeing if that solves everything. |
Here's a simple quick reproducer (from inside a Julia v1.0 build): julia> using Libdl
julia> using HTTP
julia> Libdl.dlopen("libmbedx509.so")
Ptr{Nothing} @0x000055f064544560
julia> HTTP.get("https://google.com")
./julia: symbol lookup error: /home/vtjnash/.julia/packages/MbedTLS/XkQiX/deps/usr/lib/libmbedtls.so: undefined symbol: mbedtls_x509_crt_verify_restartable ...and at this point the process is now killed also. |
Also, for a debugging trick, set julia> using Libdl
julia> Libdl.dlopen("libmbedtls.so")
Ptr{Nothing} @0x000055e22e1c1830
julia> Libdl.dlopen("/home/vtjnash/.julia/packages/MbedTLS/XkQiX/deps/usr/lib/libmbedtls.so")
ERROR: could not load library "/home/vtjnash/.julia/packages/MbedTLS/XkQiX/deps/usr/lib/libmbedtls.so"
/home/vtjnash/.julia/packages/MbedTLS/XkQiX/deps/usr/lib/libmbedtls.so: undefined symbol: mbedtls_x509_crt_verify_restartable
Stacktrace:
[1] dlopen(::String, ::UInt32) at /data/vtjnash/julia10/usr/share/julia/stdlib/v1.0/Libdl/src/Libdl.jl:97 (repeats 2 times)
[2] top-level scope at none:0 |
This bug was filled on the same day v0.6.7 was released and no one has reported that reverting back to v0.6.6 did not fix the issue. Hence, there is a strong correlation. Of course I cannot know if this fixes the issues for everyone, but it did fix in all repositories I tested so far. The previous version can still have problems but those seem at least more sparse than the current one. |
In particular, I read @tanmaykm's comment as saying that reverting did fix things for him. |
@staticfloat and I had a good debugging session today and have a pretty good handle on the root cause (julia-shipped mbedtls binaries interfering w/ MbedTLS.jl binaries). I'll try to get things cleaned up and get a new release out soon. |
…the mbedtls binaries shipped with julia 1.0/1.1. We also add a test to ensure MbedTLS.jl tests run properly in the presence of the julia-shipped mbedtls libraries loaded. Fixes #193
Works for me now in Coverage.jl -- thanks!!! |
* Update CURL, MbedTLS, and Zlib - CURL: 7.61.0 -> 7.64.0 - MbedTLS: 0.11.0 -> 0.17.0 - Zlib: 1.0.2 -> 1.0.3 - FreeBSD Doesn't seem to want to compile anymore * Need to use v0.6.6 of MbedTLS for BinaryBuilder - If we use 0.6.7 then we get this error JuliaLang/MbedTLS.jl#193 * Add certpath to configure. Add default LDFLAGS * Pin BinaryBuilder to 0.1.4 instead of using master * Need to jump to 1.0 for the build * add Cmment about MbedTLS, don't pin BinaryBuilder * Remove the --with-ca-bundle flag
This reverts commit c68ec83. should be fine with latest mbedtls 0.6.8, see JuliaLang/MbedTLS.jl#193
This reverts commit c68ec83. should be fine with latest mbedtls 0.6.8, see JuliaLang/MbedTLS.jl#193
I've been encountering the following on my GitLab CI while doing coverage submission on Julia 1.1:
Full log: https://gitlab.com/JuliaGPU/CUDAnative.jl/-/jobs/151716689 -- it has worked before on 1.1 though, see eg. https://gitlab.com/JuliaGPU/CUDAnative.jl/-/jobs/149248223, but quite some packages seem to have been upgraded since (HTTP.jl, Coverage.jl, etc).
This is on a very basic Ubuntu 18.04 image with Julia binaries installed: https://github.com/JuliaGPU/gitlab-ci/blob/master/images/base/v1.1/Dockerfile
The text was updated successfully, but these errors were encountered: