tarantool / tarantool/tt

Further enhancements for the tools for collecting crash artefacts

Open
#148 1 comment 5 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

feature
Dominant language
Go
Stars
113
Forks
18
Avg merge
4d 11h
Merged PRs (30d)
23

Description

As was proposed by @Totktonada in his review, I made a list for the required follow-up activity related to both tarabrt.sh and gdb.sh introduced in scope of tarantool/tarantool#5569. Major changes relate to the case when debug info is stripped from the Tarantool binary (e.g. in CentOS 8 binary packages until tarantool/tarantool#4611 is resolved). The following enhancements should to be done for the tools:

  • Provide long alternatives for the existing options (e.g. -h / --help)
  • Warn gdb.sh user whether Tarantool binary is stripped
  • Provide an instruction how to enable the ELF with debug symbols, so it can be loaded by gdb.sh automatically
  • Provide an URL from where debuginfo package may be downloaded and give advice how to unpack it (in gdb.shoutput, when we see the stripped executable)

    Examples:

    $ curl -LfsS https://download.tarantool.org/tarantool/release/2.8/el/8/x86_64/Packages/tarantool-debuginfo-2.8.0.0-1.el8.x86_64.rpm > tarantool-debuginfo-2.8.0.0-1.el8.x86_64.rpm
    $ mkdir tarantool-debuginfo-2.8.0.0-1.el8.x86_64.rpm.unpack
    $ cd tarantool-debuginfo-2.8.0.0-1.el8.x86_64.rpm.unpack
    $ rpm2cpio ../tarantool-debuginfo-2.8.0.0-1.el8.x86_64.rpm | cpio -idmv
    ./usr/lib/debug
    ./usr/lib/debug/.build-id
    ./usr/lib/debug/.build-id/a3
    ./usr/lib/debug/.build-id/a3/ad84db98a9b14e70d2915271904ddfe26b5f60
    ./usr/lib/debug/.build-id/a3/ad84db98a9b14e70d2915271904ddfe26b5f60.debug
    ./usr/lib/debug/usr
    ./usr/lib/debug/usr/bin
    ./usr/lib/debug/usr/bin/tarantool-2.8.0.0-1.el8.x86_64.debug
    64743 blocks
    (All are symlinks except tarantool-2.8.0.0-1.el8.x86_64.debug.)
    $ file usr/lib/debug/usr/bin/tarantool-2.8.0.0-1.el8.x86_64.debug
    usr/lib/debug/usr/bin/tarantool-2.8.0.0-1.el8.x86_64.debug: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, interpreter \004, for GNU/Linux 3.2.0, BuildID[sha1]=a3ad84db98a9b14e70d2915271904ddfe26b5f60, with debug_info, not stripped, too many notes (256)

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reading tools/tarabrt.sh and tools/gdb.sh, then review the linked proposal and existing option handling and stripped-binary behavior. Done means implementing the listed long options, stripped-binary warning, debug-symbol guidance, and debuginfo download and unpack instructions in gdb.sh output.

Written by the indexing model from the issue text.

Assessment

Tech stack
shell
Domain
cli, tooling
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.