镜像站点 · 本页由第三方 GitHub 只读镜像提供,非 GitHub 官方站点,不接受任何登录或凭据输入。前往 github.com
Skip to content

[question] emtpy result when read core file  #427

Description

@kevalin

I use docker container to run Node.js apps. Sometimes, I got many core files, like this core.33067 that It is about 650M size.
So I copy the core files to my pc DebianOS, has same node version v14.16.0.

root@bullseye:/vagrant_data/core-files# llnode node -c core.30066
(lldb) target create "node" --core "core.30066"
Core file '/vagrant_data/core-files/core.30066' (x86_64) was loaded.

(lldb) plugin load '/usr/local/share/.config/yarn/global/node_modules/llnode/llnode.so'
(lldb) settings set prompt '(llnode) '
(llnode) v8 bt
[llnode][LoadConstant ../src/constants.cc:88] Failed to load constant frametype_JavaScriptFrame, default to -1
[llnode][DoExecute ../src/llnode.cc:82] Failed to load pointer from v8 memory
 * thread #1: tid = 30066, 0x00007f44e26619f3, name = 'node', stop reason = signal SIGABRT
  * frame #0: 0x00007f44e26619f3
(llnode) exit

I don't know anyone step is wrong. Do I use same os env to read core file? I don't know.
Could u help me? Thanks.

Activity

  1. No9 commented on Jan 4, 2023

    @No9
    Member

    Hi @kevalin
    It seems like you are debugging a crashed docker process rather than the node.js process.
    Can you confirm how you are running the docker container to obtain the node.js core dump?

    I would expect to see something like the following.
    Note the explicit volume mount so that the guest container can save to shared storage:
    e.g. docker run --ulimit core=-1 --mount source=coredumps_volume,target=/cores ab3ca583c907 ./node command

    And how the the host kernel.core_pattern is configured.
    e.g. On the docker host run sysctl -n kernel.core_pattern

  2. kevalin commented on Jan 9, 2023

    @kevalin
    Author

    Hi @kevalin It seems like you are debugging a crashed docker process rather than the node.js process. Can you confirm how you are running the docker container to obtain the node.js core dump?

    I would expect to see something like the following. Note the explicit volume mount so that the guest container can save to shared storage: e.g. docker run --ulimit core=-1 --mount source=coredumps_volume,target=/cores ab3ca583c907 ./node command

    And how the the host kernel.core_pattern is configured. e.g. On the docker host run sysctl -n kernel.core_pattern

    Hello @No9

    This is my docker host config

    [root@xxx-0001 ~]# sysctl -n kernel.core_pattern
    core
    [root@xxx-0001 ~]# ulimit -a
    core file size          (blocks, -c) 0
    data seg size           (kbytes, -d) unlimited
    scheduling priority             (-e) 0
    file size               (blocks, -f) unlimited
    pending signals                 (-i) 63455
    max locked memory       (kbytes, -l) 64
    max memory size         (kbytes, -m) unlimited
    open files                      (-n) 65535
    pipe size            (512 bytes, -p) 8
    POSIX message queues     (bytes, -q) 819200
    real-time priority              (-r) 0
    stack size              (kbytes, -s) 8192
    cpu time               (seconds, -t) unlimited
    max user processes              (-u) 63455
    virtual memory          (kbytes, -v) unlimited
    file locks                      (-x) unlimited

    login in docker container

    /app # sysctl -a | grep core
    kernel.core_pattern = core
    kernel.core_pipe_limit = 0
    kernel.core_uses_pid = 1

    App directory of docker container has mounted to host volume, so I can read core file on my host.

  3. reopened this on Jan 9, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions