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

异常持续高 CPU 占用 #1100

Closed
ClarkQAQ opened this issue Jul 26, 2024 · 3 comments
Closed

异常持续高 CPU 占用 #1100

ClarkQAQ opened this issue Jul 26, 2024 · 3 comments

Comments

@ClarkQAQ
Copy link

Summary

问题简述

在运行 fcitx5 后 10 分钟左右会占满一个核心的 CPU, 并且会一直持续没有要停下来的意思

图片

尝试分析

在 Arch Linux CN 群组依云的提议和帮助下抓取了 perf 并生成了火焰图

fcitx

这是 perf 原始数据和 stackcollapse-perf 的中间输出

fcitx-perf.tar.gz

以及通过 strace 抓取的大量 epoll_pwait2

strace.txt

Steps to Reproduce

运行 fcitx5 然后等待 10 分钟左右, 中间使用电报聊聊天或者就这样放着

Expected Behavior

正常运行

Output of fcitx5-diagnose command

System Info:

  1. uname -a:

    Linux ArchOwO 6.10.0-zen1-2-zen #1 ZEN SMP PREEMPT_DYNAMIC Mon, 22 Jul 2024 17:45:00 +0000 x86_64 GNU/Linux
    
  2. lsb_release -a:

    LSB Version:	n/a
    Distributor ID:	Arch
    Description:	Arch Linux
    Release:	rolling
    Codename:	n/a
    
  3. lsb_release -d:

    Description:	Arch Linux
    
  4. /etc/lsb-release:

    DISTRIB_ID="Arch"
    DISTRIB_RELEASE="rolling"
    DISTRIB_DESCRIPTION="Arch Linux"
    
  5. /etc/os-release:

    NAME="Arch Linux"
    PRETTY_NAME="Arch Linux"
    ID=arch
    BUILD_ID=rolling
    ANSI_COLOR="38;2;23;147;209"
    HOME_URL="https://archlinux.org/"
    DOCUMENTATION_URL="https://wiki.archlinux.org/"
    SUPPORT_URL="https://bbs.archlinux.org/"
    BUG_REPORT_URL="https://gitlab.archlinux.org/groups/archlinux/-/issues"
    PRIVACY_POLICY_URL="https://terms.archlinux.org/docs/privacy-policy/"
    LOGO=archlinux-logo
    
  6. Desktop Environment:

    Cannot determine desktop environment.

  7. XDG SESSION TYPE:

    XDG_SESSION_TYPE='wayland'
    
  8. Bash Version:

    BASH_VERSION='5.2.26(1)-release'
    

Environment:

  1. DISPLAY:

    DISPLAY=':0'
    
    
    WAYLAND_DISPLAY='wayland-1'
    
  2. Keyboard Layout:

    1. setxkbmap:

      WARNING: Running setxkbmap against an Xwayland server
      xkb_keymap {
      	xkb_keycodes  { include "evdev+aliases(qwerty)"	};
      	xkb_types     { include "complete"	};
      	xkb_compat    { include "complete"	};
      	xkb_symbols   { include "pc+us+inet(evdev)"	};
      	xkb_geometry  { include "pc(pc105)"	};
      };
      
    2. xprop:

      _XKB_RULES_NAMES(STRING) = "evdev", "pc105", "us", "", ""
      
  3. Locale:

    1. All locales:

      C
      C.utf8
      POSIX
      en_US.utf8
      zh_CN.utf8
      
    2. Current locale:

      LANG=zh_CN.UTF-8
      LC_CTYPE="C"
      LC_NUMERIC="C"
      LC_TIME="C"
      LC_COLLATE="C"
      LC_MONETARY="C"
      LC_MESSAGES="C"
      LC_PAPER="C"
      LC_NAME="C"
      LC_ADDRESS="C"
      LC_TELEPHONE="C"
      LC_MEASUREMENT="C"
      LC_IDENTIFICATION="C"
      LC_ALL=C
      
  4. Directories:

    1. Home:

      /home/clark
      
    2. ${XDG_CONFIG_HOME}:

      Environment variable XDG_CONFIG_HOME is set to /home/clark/.config/.

      Current value of XDG_CONFIG_HOME is ~/.config (/home/clark/.config/).

    3. Fcitx5 Settings Directory:

      Current fcitx5 settings directory is /data/Soft/Linux/apps/.config/fcitx5 (/home/clark/.config//fcitx5).

  5. Current user:

    The script is run as clark (1000).

Fcitx State:

  1. executable:

    Found fcitx5 at /usr/bin/fcitx5.

  2. version:

    Fcitx version: 5.1.10

  3. process:

    Found 1 fcitx5 process:

     392776 fcitx5
    
  4. fcitx5-remote:

    fcitx5-remote works properly.

  5. DBus interface:

    Using dbus-send to check dbus.

    Owner of DBus name org.fcitx.Fcitx5 is :1.2156.

    PID of DBus name org.fcitx.Fcitx5 owner is 392776.

    Debug information from dbus:

       Group [wayland:] has 12 InputContext(s)
      IC [a740282fb4df49e594f47dc91c2465a0] program: frontend:wayland_v2 cap:100000072 focus:0
      IC [106e2d0570044915b3336fc4f9ff70b5] program:kitty frontend:wayland_v2 cap:100000072 focus:1
      IC [29c79666e3df489fb74eacff24fccb45] program:wechat frontend:wayland_v2 cap:72 focus:0
      IC [cb4e5553d0df47aabc249e89575db86f] program:telegram-desktop frontend:dbus cap:e801800072 focus:0
      IC [5c7c31af766b4600831d1a5370cf36da] program:telegram-desktop frontend:dbus cap:1e001800072 focus:0
      IC [a6ade2fe68674560b86721ee14a17a85] program:firefox frontend:wayland_v2 cap:72 focus:0
      IC [c271c4d3bea94b6b8133e0b9e054eb5a] program:code-url-handler frontend:wayland_v2 cap:72 focus:0
      IC [9b9f4c63c50e41c591a28b08be5b52f4] program:code-url-handler frontend:wayland_v2 cap:72 focus:0
      IC [34c6bc31aa0841b199bde701b9dcba54] program:code-url-handler frontend:wayland_v2 cap:72 focus:0
      IC [7ba5bd39332145c7bfc8aef21a1439fd] program:nemo frontend:wayland_v2 cap:100000072 focus:0
      IC [ef5faf4c54824766804c185fbb9f7984] program:org.telegram.desktop frontend:wayland_v2 cap:72 focus:0
      IC [d3c4756ea8b348078ce4164617ba89c1] program:Bytedance-feishu frontend:wayland_v2 cap:72 focus:0
    Group [x11::0] has 4 InputContext(s)
      IC [06ae4daf996d484692b983041023ac9d] program:wechat frontend:fcitx4 cap:800072 focus:0
      IC [b4ffe7cc1ee44c8996ed8fe87bc72ff5] program:WeChatAppEx frontend:dbus cap:6000000032 focus:0
      IC [107980cc7cd94f84ba80cebda3ce69e0] program:feishu frontend:xim cap:4000000000 focus:0
      IC [412047283e1f48ff8bdeaba64291f9ee] program:wechat frontend:fcitx4 cap:800072 focus:0
    Input Context without group
    

Fcitx Configure UI:

  1. Config Tool Wrapper:

    Found fcitx5-configtool at /usr/bin/fcitx5-configtool.

  2. Config GUI for qt:

    Found fcitx5-config-qt at /usr/bin/fcitx5-config-qt.

  3. Config GUI for kde:

    kcmshell5 not found.

Frontends setup:

The environment variable checked by this script only shows the environment under current shell. It is still possible that you did not set the environment to the whole graphic desktop session. You may inspect the actual environment variable of a certain process by using xargs -0 -L1 /proc/$PID/environ for a certain process that you find not working.

Xim:

  1. ${XMODIFIERS}:

    Environment variable XMODIFIERS is set to "@im=fcitx" correctly.
    Xim Server Name from Environment variable is fcitx.

  2. XIM_SERVERS on root window:

    Xim server name is the same with that set in the environment variable.

  3. XIM encoding:

    Your LC_CTYPE is set to C whose encoding is not UTF-8. You may have trouble committing strings using XIM.

Qt:

  1. qt4 - ${QT4_IM_MODULE}:

    Environment variable QT_IM_MODULE is set to "fcitx" correctly.

    fcitx5-qt4-immodule-probing not found.

  2. qt5 - ${QT_IM_MODULE}:

    Environment variable QT_IM_MODULE is set to "fcitx" correctly.

    Using fcitx5-qt5-immodule-probing to check the actual im module to be used under current environment:

    QT_QPA_PLATFORM=wayland
    QT_IM_MODULE=fcitx
    IM_MODULE_CLASSNAME=fcitx::QFcitxPlatformInputContext
    
  3. qt6 - ${QT_IM_MODULE}:

    Environment variable QT_IM_MODULE is set to "fcitx" correctly.

    Using fcitx5-qt6-immodule-probing to check the actual im module to be used under current environment:

    QT_QPA_PLATFORM=wayland
    QT_IM_MODULE=fcitx
    IM_MODULE_CLASSNAME=fcitx::QFcitxPlatformInputContext
    
  4. Qt IM module files:

    Found fcitx5 im module for qt: /usr/lib/qt/plugins/platforminputcontexts/libfcitx5platforminputcontextplugin.so.
    Found fcitx5 im module for qt6: /usr/lib/qt6/plugins/platforminputcontexts/libfcitx5platforminputcontextplugin.so.
    Found unknown fcitx qt module: /usr/lib/qt6/plugins/plasma/kcms/systemsettings/kcm_fcitx5.so.
    Found fcitx5 qt6 module: /usr/lib/fcitx5/qt6/libfcitx-quickphrase-editor5.so.
    Found fcitx5 qt5 module: /usr/lib/fcitx5/qt5/libfcitx-quickphrase-editor5.so.

    Following error may not be accurate because guessing Qt version from path depends on how your distribution packages Qt. It is not a critical error if you do not use any Qt application with certain version of Qt or you are using text-input support by Qt under Wayland.
    Cannot find fcitx5 input method module for Qt4.

Gtk:

  1. gtk - ${GTK_IM_MODULE}:

    Please set environment variable GTK_IM_MODULE to "fcitx" using the tool your distribution provides or add export GTK_IM_MODULE=fcitx to your ~/.xprofile. See Input Method Related Environment Variables: GTK_IM_MODULE.

    It is OK to use gtk built-in Wayland im module if your compositor fully supports text-input protocol used by gtk.

    Using fcitx5-gtk2-immodule-probing to check the actual im module to be used under current environment:

    GTK_IM_MODULE=fcitx5
    

    Using fcitx5-gtk3-immodule-probing to check the actual im module to be used under current environment:

    GTK_IM_MODULE=wayland
    

    Using fcitx5-gtk4-immodule-probing to check the actual im module to be used under current environment:

    GTK_IM_MODULE=wayland
    
  2. gtk-query-immodules:

    1. gtk 2:

      Found gtk-query-immodules for gtk 2.24.33 at /usr/bin/gtk-query-immodules-2.0.
      Version Line:

      # Created by /usr/bin/gtk-query-immodules-2.0 from gtk+-2.24.33
      

      Found fcitx5 im modules for gtk 2.24.33.

      "/usr/lib/gtk-2.0/2.10.0/immodules/im-fcitx5.so" 
      "fcitx" "Fcitx5 (Flexible Input Method Framework5)" "fcitx5" "/usr/locale" "ja:ko:zh:*" 
      "fcitx5" "Fcitx5 (Flexible Input Method Framework5)" "fcitx5" "/usr/locale" "ja:ko:zh:*" 
      
    2. gtk 3:

      Found gtk-query-immodules for gtk 3.24.43 at /usr/bin/gtk-query-immodules-3.0.
      Version Line:

      # Created by /usr/bin/gtk-query-immodules-3.0 from gtk+-3.24.43
      

      Found fcitx5 im modules for gtk 3.24.43.

      "/usr/lib/gtk-3.0/3.0.0/immodules/im-fcitx5.so" 
      "fcitx" "Fcitx5 (Flexible Input Method Framework5)" "fcitx5" "/usr/locale" "ja:ko:zh:*" 
      "fcitx5" "Fcitx5 (Flexible Input Method Framework5)" "fcitx5" "/usr/locale" "ja:ko:zh:*" 
      
  3. Gtk IM module cache:

    1. gtk 2:

      Found immodules cache for gtk 2.24.33 at /usr/lib/gtk-2.0/2.10.0/immodules.cache.
      Version Line:

      # Created by /usr/bin/gtk-query-immodules-2.0 from gtk+-2.24.33
      

      Found fcitx5 im modules for gtk 2.24.33.

      "/usr/lib/gtk-2.0/2.10.0/immodules/im-fcitx5.so" 
      "fcitx" "Fcitx5 (Flexible Input Method Framework5)" "fcitx5" "/usr/locale" "ja:ko:zh:*" 
      "fcitx5" "Fcitx5 (Flexible Input Method Framework5)" "fcitx5" "/usr/locale" "ja:ko:zh:*" 
      
    2. gtk 3:

      Found immodules cache for gtk 3.24.43 at /usr/lib/gtk-3.0/3.0.0/immodules.cache.
      Version Line:

      # Created by /usr/bin/gtk-query-immodules-3.0 from gtk+-3.24.43
      

      Found fcitx5 im modules for gtk 3.24.43.

      "/usr/lib/gtk-3.0/3.0.0/immodules/im-fcitx5.so" 
      "fcitx" "Fcitx5 (Flexible Input Method Framework5)" "fcitx5" "/usr/locale" "ja:ko:zh:*" 
      "fcitx5" "Fcitx5 (Flexible Input Method Framework5)" "fcitx5" "/usr/locale" "ja:ko:zh:*" 
      
  4. Gtk IM module files:

    1. gtk 2:

      All found Gtk 2 immodule files exist.

    2. gtk 3:

      All found Gtk 3 immodule files exist.

    3. gtk 4:

      All found Gtk 4 immodule files exist.

Configuration:

Fcitx Addons:

  1. Addon Config Dir:

    Found fcitx5 addon config directory: /usr/share/fcitx5/addon.

  2. Addon List:

    1. Found 27 enabled addons:

      Simplified and Traditional Chinese Translation 5.1.6
      Classic User Interface 5.1.10
      Cloud Pinyin 5.1.6
      DBus 5.1.10
      DBus Frontend 5.1.10
      Emoji 5.1.10
      Fcitx4 Frontend 5.1.10
      Full width character 5.1.6
      IBus Frontend 5.1.10
      Lua IME API 5.0.13
      Input method selector 5.1.10
      Keyboard 5.1.10
      KDE Input Method Panel 5.1.10
      Lua Addon Loader 5.0.13
      Status Notifier 5.1.10
      Notification 5.1.10
      Pinyin 5.1.6
      Extra Pinyin functionality 5.1.6
      Punctuation 5.1.6
      Spell 5.1.10
      Table 5.1.6
      Unicode 5.1.10
      DBus Virtual Keyboard 5.1.10
      Wayland 5.1.10
      Wayland Input method frontend 5.1.10
      XCB 5.1.10
      X Input Method Frontend 5.1.10
      
    2. Found 2 disabled addons:

      Clipboard 5.1.10
      Quick Phrase 5.1.10
      
  3. Addon Libraries:

    All libraries for all addons are found.

  4. User Interface:

    Found 3 enabled user interface addons:

    Classic User Interface
    KDE Input Method Panel
    DBus Virtual Keyboard
    

Input Methods:

  1. /home/clark/.config//fcitx5/profile:

    [Groups/0]
    # Group Name
    Name=默认
    # Layout
    Default Layout=us
    # Default Input Method
    DefaultIM=pinyin
    
    [Groups/0/Items/0]
    # Name
    Name=keyboard-us
    # Layout
    Layout=
    
    [Groups/0/Items/1]
    # Name
    Name=pinyin
    # Layout
    Layout=
    
    [GroupOrder]
    0=默认
    

Log:

  1. date:

    Fri Jul 26 17:08:03 CST 2024
    
  2. /home/clark/.config//fcitx5/crash.log:

    /home/clark/.config//fcitx5/crash.log not found.

Warning: the output of fcitx5-diagnose contains sensitive information, including the distribution name, kernel version, name of currently running programs, etc.

Though such information can be helpful to developers for diagnostic purpose, please double check and remove as necessary before posting it online publicly.

@wengxt
Copy link
Member

wengxt commented Jul 27, 2024

应该是因为这个 bug curl/curl#14280 可以不用云拼音,或者降级 curl

@adam900710
Copy link

同样遇到这个bug,确认关闭云拼音之后没有再出现过100% CPU占用

@wengxt
Copy link
Member

wengxt commented Aug 2, 2024

@adam900710 升级curl 8.9.1 应该也可以修复

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

3 participants