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

Package installation error for freshly installed Linux: wait(): IOError: FDWatcher: bad file descriptor #45661

Closed
cihga39871 opened this issue Jun 13, 2022 · 4 comments

Comments

@cihga39871
Copy link

cihga39871 commented Jun 13, 2022

Hi,

After a fresh installation of Ubuntu 22.04, I found Julia constantly throws an error related to downloads. It affects functionalities of numerous packages, including Plots. I intensively use Julia and Plots.jl, and hope it can fix soon.

I installed julia binary or build julia manually, the error still occurs.

I removed ~/.julia folder, and run the following commands:

               _
   _       _ _(_)_     |  Documentation: https://docs.julialang.org
  (_)     | (_) (_)    |
   _ _   _| |_  __ _   |  Type "?" for help, "]?" for Pkg help.
  | | | | | | |/ _` |  |
  | | |_| | | | (_| |  |  Version 1.7.3 (2022-05-06)
 _/ |\__'_|_|_|\__'_|  |  
|__/                   |

(@v1.7) pkg> add Plots
  Installing known registries into `~/.julia`
    Updating registry at `~/.julia/registries/General.toml`
   Resolving package versions...
   Installed Wayland_protocols_jll ──────── v1.25.0+0
   Installed Xorg_xcb_util_renderutil_jll ─ v0.3.9+1
   Installed JpegTurbo_jll ──────────────── v2.1.2+0
   Installed Pixman_jll ─────────────────── v0.40.1+0
   Installed XML2_jll ───────────────────── v2.9.14+0
   Installed GR_jll ─────────────────────── v0.64.4+0
   Installed Xorg_libXext_jll ───────────── v1.3.4+4
   Installed JSON ───────────────────────── v0.21.3
   Installed LERC_jll ───────────────────── v3.0.0+1
   Installed Latexify ───────────────────── v0.15.15
   Installed Gettext_jll ────────────────── v0.21.0+0
   Installed Preferences ────────────────── v1.3.0
   Installed TensorCore ─────────────────── v0.1.1
   Installed Wayland_jll ────────────────── v1.19.0+0
   Installed Zstd_jll ───────────────────── v1.5.2+0
   Installed TableTraits ────────────────── v1.0.1
   Installed IterTools ──────────────────── v1.4.0
   Installed Qt5Base_jll ────────────────── v5.15.3+1
   Installed Xorg_xtrans_jll ────────────── v1.4.0+3
   Installed Expat_jll ──────────────────── v2.4.8+0
   Installed OpenSSL_jll ────────────────── v1.1.14+0
   Installed Opus_jll ───────────────────── v1.3.2+0
   Installed SpecialFunctions ───────────── v2.1.6
   Installed Xorg_xkeyboard_config_jll ──── v2.27.0+4
Unhandled Task ERROR: IOError: FDWatcher: bad file descriptor (EBADF)
Stacktrace:
 [1] try_yieldto(undo::typeof(Base.ensure_rescheduled))
   @ Base ./task.jl:812
 [2] wait()
   @ Base ./task.jl:872
 [3] wait(c::Base.GenericCondition{Base.Threads.SpinLock})
   @ Base ./condition.jl:123
 [4] wait(fdw::FileWatching._FDWatcher; readable::Bool, writable::Bool)
   @ FileWatching /usr/software/julia-1.7.3/usr/share/julia/stdlib/v1.7/FileWatching/src/FileWatching.jl:533
 [5] wait
   @ /usr/software/julia-1.7.3/usr/share/julia/stdlib/v1.7/FileWatching/src/FileWatching.jl:504 [inlined]
 [6] macro expansion
   @ /usr/software/julia-1.7.3/usr/share/julia/stdlib/v1.7/Downloads/src/Curl/Multi.jl:166 [inlined]
   Installed Measures ───────────────────── v0.3.1
   Installed StaticArrays ───────────────── v1.4.7
   Installed RecipesBase ────────────────── v1.2.1
   Installed JLLWrappers ────────────────── v1.4.1
   Installed Xorg_libXfixes_jll ─────────── v5.0.3+4
   Installed EarCut_jll ─────────────────── v2.2.3+0
   Installed LAME_jll ───────────────────── v3.100.1+0
   Installed PCRE_jll ───────────────────── v8.44.0+0
   Installed Grisu ──────────────────────── v1.0.2
   Installed NaNMath ────────────────────── v1.0.0
   Installed IteratorInterfaceExtensions ── v1.0.0
   Installed Libiconv_jll ───────────────── v1.16.1+1
   Installed Formatting ─────────────────── v0.4.2
   Installed IniFile ────────────────────── v0.5.1
   Installed Xorg_xcb_util_wm_jll ───────── v0.4.1+1
   Installed Xorg_xcb_util_image_jll ────── v0.4.0+1
   Installed Reexport ───────────────────── v1.2.2
   Installed UnicodeFun ─────────────────── v0.4.1
   Installed MbedTLS ────────────────────── v1.0.3
   Installed Fontconfig_jll ─────────────── v2.13.93+0
   Installed GLFW_jll ───────────────────── v3.3.6+0
   Installed Libgpg_error_jll ───────────── v1.42.0+0
   Installed x264_jll ───────────────────── v2021.5.5+0
   Installed LogExpFunctions ────────────── v0.3.15
   Installed Colors ─────────────────────── v0.12.8
Unhandled Task ERROR: IOError: FDWatcher: bad file descriptor (EBADF)
Stacktrace:
 [1] try_yieldto(undo::typeof(Base.ensure_rescheduled))
   @ Base ./task.jl:812
 [2] wait()
   @ Base ./task.jl:872
 [3] wait(c::Base.GenericCondition{Base.Threads.SpinLock})
   @ Base ./condition.jl:123
 [4] wait(fdw::FileWatching._FDWatcher; readable::Bool, writable::Bool)
   @ FileWatching /usr/software/julia-1.7.3/usr/share/julia/stdlib/v1.7/FileWatching/src/FileWatching.jl:533
 [5] wait
   @ /usr/software/julia-1.7.3/usr/share/julia/stdlib/v1.7/FileWatching/src/FileWatching.jl:504 [inlined]
 [6] macro expansion
   @ /usr/software/julia-1.7.3/usr/share/julia/stdlib/v1.7/Downloads/src/Curl/Multi.jl:166 [inlined]
 [7] (::Downloads.Curl.var"#40#46"{Int32, FileWatching.FDWatcher, Downloads.Curl.Multi})()
   @ Downloads.Curl ./task.jl:429

The version info:

julia> versioninfo()
Julia Version 1.7.3
Commit 742b9abb4d* (2022-05-06 12:58 UTC)
Platform Info:
  OS: Linux (x86_64-linux-gnu)
  CPU: Intel(R) Core(TM) i9-9960X CPU @ 3.10GHz
  WORD_SIZE: 64
  LIBM: libopenlibm
  LLVM: libLLVM-12.0.1 (ORCJIT, skylake-avx512)

Curl version:

$ curl --version
curl 7.81.0 (x86_64-pc-linux-gnu) libcurl/7.81.0 OpenSSL/3.0.2 zlib/1.2.11 brotli/1.0.9 zstd/1.4.8 libidn2/2.3.2 libpsl/0.21.0 (+libidn2/2.3.2) libssh/0.9.6/openssl/zlib nghttp2/1.43.0 librtmp/2.3 OpenLDAP/2.5.11
Release-Date: 2022-01-05
Protocols: dict file ftp ftps gopher gophers http https imap imaps 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 NTLM NTLM_WB PSL SPNEGO SSL TLS-SRP UnixSockets zstd

Even with those errors, installation of Plots.jl will complete. However, Plots cannot pass its test (pkg> test Plots), showing the same error (FDWatcher: bad file descriptor)

@cihga39871 cihga39871 changed the title wait() throws IOError for freshly installed Linux: FDWatcher: bad file descriptor Package installation error for freshly installed Linux: wait(): IOError: FDWatcher: bad file descriptor Jun 13, 2022
@jpsamaroo
Copy link
Member

What filesystem are you using for ~/.julia? It might be that your filesystem doesn't support the inotify feature.

@cihga39871
Copy link
Author

The filesystem of ~/.julia is Ext4.

@cihga39871
Copy link
Author

Found why. Some file downloads not complete. Is it possible to hint incompete download? Or check shasum?

@albheim
Copy link
Contributor

albheim commented Jul 5, 2022

Seems like this is the same as JuliaLang/Downloads.jl#197?

@vtjnash vtjnash closed this as completed Jul 5, 2022
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

4 participants