Bug 56574 - bbolt выводит panic / непонятные ошибки в определенных случаях с неправильными аргументами
Summary: bbolt выводит panic / непонятные ошибки в определенных случаях с неправильным...
Status: NEW
Alias: None
Product: Sisyphus
Classification: Development
Component: bbolt (show other bugs)
Version: unstable
Hardware: x86_64 Linux
: P5 normal
Assignee: fl0pp5@altlinux.org
QA Contact: qa-sisyphus
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2025-10-23 13:27 MSK by Artem Varaksa
Modified: 2025-10-27 13:16 MSK (History)
1 user (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Artem Varaksa 2025-10-23 13:27:34 MSK
Данная ошибка создана из upstream-ошибки https://github.com/etcd-io/bbolt/issues/681 для отслеживания её статуса в bugzilla.altlinux.org. Версии пакетов могут быть устаревшими.

По крайней мере для нескольких команд CLI-утилита не справляется с отсутствующими аргументами, приводя к различным panic и ошибкам, а не к печати полезных сообщений об ошибках.

Например:

> $ bbolt get
> panic: runtime error: slice bounds out of range [:-1]
> 
> goroutine 1 [running]:
> main.(*getCommand).Run(0xc00006cdc8, {0xc000014070, 0x0, 0x0})
>         /usr/src/RPM/BUILD/bbolt-1.3.8/cmd/bbolt/main.go:996 +0x699
> main.(*Main).Run(0xc00006cf40, {0xc000014070?, 0x7f66b3c44108?, 0x60?})
>         /usr/src/RPM/BUILD/bbolt-1.3.8/cmd/bbolt/main.go:123 +0x10d
> main.main()
>         /usr/src/RPM/BUILD/bbolt-1.3.8/cmd/bbolt/main.go:67 +0xae

> $ bbolt page-item test.db 4
> strconv.ParseUint: parsing "": invalid syntax

Сама БД является корректной, и с правильными аргументами bbolt возвращает правильные результаты.

[p10] bbolt-1.3.8-alt1
Comment 1 Artem Varaksa 2025-10-23 13:30:37 MSK
Согласно upstream, должно быть исправлено в v1.4.0-alpha.1+ и v1.3.9+:

- https://github.com/etcd-io/bbolt/pull/682
- https://github.com/etcd-io/bbolt/pull/683
- https://github.com/etcd-io/bbolt/pull/686
Comment 2 Artem Varaksa 2025-10-27 13:08:01 MSK
Проверил поведение в p11 и sisyphus. Ошибка только частично исправлена в sisyphus:

Первый случай исправлен:

> $ bbolt get
> not enough arguments

Второй воспроизводится:

> $ etcd & etcdctl put foo bar; etcdctl put abc def; pkill etcd
> $ bbolt page-item default.etcd 4
> strconv.ParseUint: parsing "": invalid syntax

И полностью актуальна для p11 (воспроизводятся оба случая) - версия не обновлялась.

Написал в upstream о частичном исправлении: https://github.com/etcd-io/bbolt/issues/681#issuecomment-3450454500

[p11] bbolt-1.3.8-alt1.x86_64
[sisyphus] bbolt-1.4.2-alt1.x86_64
Comment 3 Artem Varaksa 2025-10-27 13:16:02 MSK
Исходя из https://github.com/etcd-io/bbolt/issues/681#issuecomment-3450499196, второй случай будет исправлен в версии 1.5.0, которая ещё не выпущена.