Bug 51490 - Некорректная работа с orcc
Summary: Некорректная работа с orcc
Status: CLOSED NOTABUG
Alias: None
Product: Sisyphus
Classification: Development
Component: orc (show other bugs)
Version: unstable
Hardware: x86_64 Linux
: P5 normal
Assignee: Yuri N. Sedunov
QA Contact: qa-sisyphus
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2024-09-17 13:57 MSK by Tatyana Gagina
Modified: 2024-09-18 14:48 MSK (History)
3 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Tatyana Gagina 2024-09-17 13:57:44 MSK
Стенды, обновлённые до Sisyphus:
ALT Server x86-64
ALT Workstation x86-64

Версия: orc-0.4.40-alt1

Шаги: 
1) Установить пакеты: 
# apt-get install liborc liborc-test orc 

2) Создать тестовый файл example.orc с содержимым: 

define <int> factorial(int n) {
   if (n <= 1) {
       return 1;
   } else {
       return n * factorial(n - 1);
   }
}

3) Запустить утилиту с опцией --no-backup:
$ orcc --no-backup example.orc -o output.orc


Результат: 
*** stack smashing detected ***: terminated
Аварийный останов

Ожидаемый результат: получен файл output.orc, ошибок нет.

Детали: при выполнении других команд из списка (согласно orcc --help) проблемы с распознаванием: 
<source> @ 1: error: unknown opcode
(возможно, что для работы с orcc необходимы доп.преобразования, после которых не будет проблем при работе с кодом).
Comment 1 Yuri N. Sedunov 2024-09-17 14:38:56 MSK
В исходниках orc есть папка с примерами, -- потренируйтесь на них.
Comment 2 Tatyana Gagina 2024-09-17 15:37:07 MSK
Пробовала с некоторыми из них:
$ orcc --no-backup  TestOrcFile.testSnappy.orc -o output.orc
Ошибка сегментирования

$ orcc --no-backup  TestOrcFile.testMemoryManagementV12.orc -o output.orc
*** stack smashing detected ***: terminated
Аварийный останов

$ orcc --no-backup  TestOrcFile.testStringAndBinaryStatistics.orc -o output.orc
Ошибка сегментирования

$ orcc   missing_blob_stream_in_string_dict.orc -o output.orc
*** stack smashing detected ***: terminated
Аварийный останов
Comment 3 Yuri N. Sedunov 2024-09-17 16:36:00 MSK
$ ls orc-0.4.40/examples/
example1.c  example1orc.orc  example2.c  example2orc.orc  example3.c  example3orc.orc  meson.build  mt19937ar.c  mt19937arorc.orc  volscale.c
Comment 4 Tatyana Gagina 2024-09-17 17:38:46 MSK
(Ответ для Yuri N. Sedunov на комментарий #3)
> $ ls orc-0.4.40/examples/
> example1.c  example1orc.orc  example2.c  example2orc.orc  example3.c 
> example3orc.orc  meson.build  mt19937ar.c  mt19937arorc.orc  volscale.c

Проверила с примерами: 
$ cd orc-0.4.40/examples/
$ orcc --no-backup example1orc.orc -o output.orc
$
$ orcc example2orc.orc  -o output.orc
$
$ orcc example3orc.orc   -o output.orc
$
$ orcc mt19937arorc.orc   -o output.orc

Результат: при выполнении команд пустой вывод, на выходе получен файл output.orc. 
При открытии output.orc повреждений нет.