Skip to content

Application segfault in 8.10.0 #14860

@carlocab

Description

@carlocab

I did this

We're upgrading Homebrew's version of curl to 8.10.0. When testing dependents, we found this error from julia:

Backtrace
  ==> /opt/homebrew/Cellar/julia/1.10.5/bin/julia --startup-file=no --history-file=no --project=/private/tmp/julia-test-20240911-23434-72ttcc --procs 3 --eval using Pkg; Pkg.add("Example")
    Installing known registries into `~/.julia`
         Added `General` registry to ~/.julia/registries
      Updating registry at `~/.julia/registries/General.toml`
     Resolving package versions...
     Installed Example ─ v0.5.3
      Updating `~/Project.toml`
    [7876af07] + Example v0.5.3
      Updating `~/Manifest.toml`
    [7876af07] + Example v0.5.3
  Precompiling project...
    ✓ Example
    1 dependency successfully precompiled in 1 seconds
  
  [23470] signal (11.2): Segmentation fault: 11
  in expression starting at none:0
  Curl_hash_pick at /opt/homebrew/Cellar/curl/8.10.0/lib/libcurl.4.dylib (unknown line)
  curl_multi_assign at /opt/homebrew/Cellar/curl/8.10.0/lib/libcurl.4.dylib (unknown line)
  julia_socket_callback_92891.1 at /opt/homebrew/Cellar/julia/1.10.5/lib/julia/sys.dylib (unknown line)
  jfptr_socket_callback_92892.1 at /opt/homebrew/Cellar/julia/1.10.5/lib/julia/sys.dylib (unknown line)
  ijl_apply_generic at /opt/homebrew/Cellar/julia/1.10.5/lib/julia/libjulia-internal.1.10.5.dylib (unknown line)
  jlcapi_socket_callback_92823.1 at /opt/homebrew/Cellar/julia/1.10.5/lib/julia/sys.dylib (unknown line)
  Curl_multi_pollset_ev at /opt/homebrew/Cellar/curl/8.10.0/lib/libcurl.4.dylib (unknown line)
  cpool_update_shutdown_ev at /opt/homebrew/Cellar/curl/8.10.0/lib/libcurl.4.dylib (unknown line)
  cpool_discard_conn at /opt/homebrew/Cellar/curl/8.10.0/lib/libcurl.4.dylib (unknown line)
  Curl_cpool_destroy at /opt/homebrew/Cellar/curl/8.10.0/lib/libcurl.4.dylib (unknown line)
  curl_multi_cleanup at /opt/homebrew/Cellar/curl/8.10.0/lib/libcurl.4.dylib (unknown line)
  jlplt_curl_multi_cleanup_67119.1 at /opt/homebrew/Cellar/julia/1.10.5/lib/julia/sys.dylib (unknown line)
  julia_YY.31_92837.1 at /opt/homebrew/Cellar/julia/1.10.5/lib/julia/sys.dylib (unknown line)
  jfptr_YY.31_92838.1 at /opt/homebrew/Cellar/julia/1.10.5/lib/julia/sys.dylib (unknown line)
  ijl_apply_generic at /opt/homebrew/Cellar/julia/1.10.5/lib/julia/libjulia-internal.1.10.5.dylib (unknown line)
  julia__atexit_79291.1 at /opt/homebrew/Cellar/julia/1.10.5/lib/julia/sys.dylib (unknown line)
  jfptr__atexit_79292.1 at /opt/homebrew/Cellar/julia/1.10.5/lib/julia/sys.dylib (unknown line)
  ijl_apply_generic at /opt/homebrew/Cellar/julia/1.10.5/lib/julia/libjulia-internal.1.10.5.dylib (unknown line)
  ijl_atexit_hook at /opt/homebrew/Cellar/julia/1.10.5/lib/julia/libjulia-internal.1.10.5.dylib (unknown line)
  jl_repl_entrypoint at /opt/homebrew/Cellar/julia/1.10.5/lib/julia/libjulia-internal.1.10.5.dylib (unknown line)
  Allocations: 11678659 (Pool: 11669911; Big: 8748); GC: 18

Complete logs are available here. The referenced error starts here on macOS 14 arm64.

I am unsure if the problem is in curl or in julia, but it seems like the segfault is happening inside Curl_hash_pick.

I expected the following

No segfault. The segfault doesn't occur with curl 8.9.1.

curl/libcurl version

curl 8.10.0 (aarch64-apple-darwin23.6.0) libcurl/8.10.0 OpenSSL/3.3.2 (SecureTransport) zlib/1.2.12 brotli/1.1.0 zstd/1.5.6 libidn2/2.3.7 libssh2/1.11.0 nghttp2/1.63.0 librtmp/2.3
Release-Date: 2024-09-11
Protocols: dict file ftp ftps gopher gophers http https imap imaps ipfs ipns ldap ldaps mqtt pop3 pop3s rtmp rtsp scp sftp smb smbs smtp smtps telnet tftp
Features: alt-svc AsynchDNS brotli GSS-API HSTS HTTP2 HTTPS-proxy IDN IPv6 Kerberos Largefile libz MultiSSL NTLM SPNEGO SSL threadsafe TLS-SRP UnixSockets zstd

operating system

Darwin Frontier.local 23.6.0 Darwin Kernel Version 23.6.0: Mon Jul 29 21:14:46 PDT 2024; root:xnu-10063.141.2~1/RELEASE_ARM64_T6031 arm64

But note that this occurs on multiple other versions of macOS (macOS 12, 13, and 14 on both Intel and ARM64). We haven't yet been able to verify that this happens on Linux, but I will check this later.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions