Astra linux segmentation fault

Смоленск 1.6 Команда COPY вызывает падение сервера

Собственно команда Copy с форматом вывода данных по запросу (COPY (select * from XXX) to ‘XXX’) причем на разном железе где установлена ASTRA 1.6
вызывает:

При выполнение команды с указание имени таблицы (COPY table to ‘XXX’) все нормально.
Копаясь в gdb выяснил что вылетает на функции pgac_chmac(), собственно как быть?

Техническая информация ниже.

copy (select * audit.aaa) to ‘/opt/123’ with delimiter ‘!’ null as » или просто : copy (select 1) to ‘/opt/12.dan’ with delimiter ‘!’ null as »

2019-08-26 15:09:46 MSK 18828 postgres@XXX 192.168.1.XXX ОТЛАДКА: StartTransactionCommand
2019-08-26 15:09:46 MSK 18828 postgres@XXX 192.168.1.XXX ОПЕРАТОР: copy (select * from audit.aaa) to ‘/opt/123’ with delimiter ‘!’ null as »
2019-08-26 15:09:46 MSK 18828 postgres@XXX 192.168.1.XXX ОТЛАДКА: StartTransaction
2019-08-26 15:09:46 MSK 18828 postgres@XXX 192.168.1.XXX ОПЕРАТОР: copy (select * from audit.aaa) to ‘/opt/123’ with delimiter ‘!’ null as »
2019-08-26 15:09:46 MSK 18828 postgres@XXX 192.168.1.XXX ОТЛАДКА: name: unnamed; blockState: DEFAULT; state: INPROGR, xid/subid/cid: 0/1/0, nestlvl: 1, children:
2019-08-26 15:09:46 MSK 18828 postgres@XXX 192.168.1.XXX ОПЕРАТОР: copy (select * from audit.aaa) to ‘/opt/123’ with delimiter ‘!’ null as »
2019-08-26 15:09:46 MSK 18828 postgres@XXX 192.168.1.XXX ОТЛАДКА: ProcessUtility
2019-08-26 15:09:46 MSK 18828 postgres@XXX 192.168.1.XXX ОПЕРАТОР: copy (select * from audit.aaa) to ‘/opt/123’ with delimiter ‘!’ null as »
2019-08-26 15:09:46 MSK 970 ОТЛАДКА: reaping dead processes
2019-08-26 15:09:46 MSK 970 ОТЛАДКА: процесс сервера (PID 18828) был завершён по сигналу 11: Segmentation fault
2019-08-26 15:09:46 MSK 970 ПОДРОБНОСТИ: Завершившийся процесс выполнял действие: copy (select * from audit.aaa) to ‘/opt/123’ with delimiter ‘!’ null as »
2019-08-26 15:09:46 MSK 970 СООБЩЕНИЕ: процесс сервера (PID 18828) был завершён по сигналу 11: Segmentation fault
2019-08-26 15:09:46 MSK 970 ПОДРОБНОСТИ: Завершившийся процесс выполнял действие: copy (select * from audit.aaa) to ‘/opt/123’ with delimiter ‘!’ null as »
2019-08-26 15:09:46 MSK 970 СООБЩЕНИЕ: завершение всех остальных активных серверных процессов

Читайте также:  Linux files system commands

Program received signal SIGSEGV, Segmentation fault.
0x00006582d5f88181 in pgac_chmac ()
(gdb) bt full
#0 0x00006582d5f88181 in pgac_chmac ()
No symbol table info available.
#1 0x00006582d5cbde06 in ?? ()
No symbol table info available.
#2 0x00006582d5cc271c in DoCopy ()
No symbol table info available.
#3 0x00006582d5e4d0d9 in standard_ProcessUtility ()
No symbol table info available.
#4 0x00007015210c6a85 in ?? () from /usr/lib/postgresql/9.6/lib/online_analyze.so
No symbol table info available.
#5 0x00006582d5e49ae9 in ?? ()
No symbol table info available.
#6 0x00006582d5e4a6a4 in ?? ()
No symbol table info available.
#7 0x00006582d5e4b3d6 in PortalRun ()
No symbol table info available.
#8 0x00006582d5e48b74 in PostgresMain ()
No symbol table info available.
#9 0x00006582d5bb0da7 in ?? ()
No symbol table info available.
#10 0x00006582d5de41df in PostmasterMain ()
No symbol table info available.
#11 0x00006582d5bb1987 in main ()

Источник

Ошибка сегментирования (стек памяти сброшен на диск) c++

запуск программы(не компиляция, а запуск) на Ubuntu

и пишет: у меня 2 вопроса. 1) что значит стек сброшен на диск? на жесткий диск? удалится ли он самостоятельно? если нет то как удалить? 2) как это решить и почему это вообще произошло?

«.exe» излишне, BTW. Вы находитесь в программном окружении, которое опознаёт исполняемые файлы по другим признакам, нежели кусок их имени.

3 ответа 3

«Стек памяти сброшен на диск» — это [весьма-а вольный] перевод фразы «Core dumped». На диске в текущем каталоге создаётся файл с именем «core». Сам он не удалится, но он — самый обычный файл, который вы можете удалить когда захотите.

Файл core также сам по себе является кратчайшим путём к ответу на вопрос номер 2. Если ваш бинарник собран с опцией компилятора «-g», то вы можете запустить отладчик с командной строкой в виде «gdb -c core main.exe». Отладчик автоматически окажется на той строке, которая вызвала segmentation fault. О работе в gdb рекомендую почитать его документацию, она обширна и исчерпывающа.

Читайте также:  Linux hdd битые сектора

Лежит — в текущем каталоге, там, где были, когда запускали программу. Весит — ну, по разному, в зависимости от упавшей программы, но не больше, чем ulimit -c . Это её память, в общем. В случае, если размер файла core оказался бы больше, чем ulimit -c (если только оно не равно нулю), core не дампится. При ulimit -c , равном нулю, лимита на размер core нет.

Источник

Fix: segmentation fault (core dumped) Linux

In Linux, the error “segmentation fault (core dumped)” comes across during the execution of the script file (C, C++, Python, Java) from the terminal. The core dump is when a code performs read and write operations on a free memory location.

This article will provide multiple solutions to the above-stated “segmentation fault (core dumped)” error. The supported content of this guideline is as follows:

Reason: Attempting the Non-Existing Memory

The main cause of this error is that you are trying to access a specific portion of memory that does not exist. For instance, when users try to read or write the elements of a non-existent array, do not define the pointer before using it or use a memory address with the same variable value. Therefore, the particular program will crash and display the “segmentation fault” error when executing the file:

The next sections contain several solutions to encounter the above error.

Solution 1: Remove the Lock File

During the execution of a program, locked files are created to make the script files executable. To resolve the error, one of the solutions is to remove the lock file that attempts the non-existent memory. For removing these files, the “rm” command is used to delete the lock files:

$ sudo rm -rvf /var/lib/apt/lists/lock /var/cache/apt/archives/lock /var/lib/dpkg/lock

Let’s head over to another solution.

Читайте также:  Linux application memory usage

Solution 2: Kill the Specific Process

Users can consider another solution to resolve errors by killing the specific process. First, locate the process id stored in the “/var/lib/dpkg/lock” directory:

After identifying the specific process id, you can go to terminate the process. For this, the “kill” command is utilized with a “-9” signal that forcefully terminates the running process “5903”:

You can verify that the “kill” command terminates the specific process via “5903” id.

Conclusion

In Linux, the error “segmentation fault (core dumped)” occurs when the process requires additional memory that the operating system does not permit access. It can be resolved by removing the “lock” files through the “rm” command, clearing the cache repository, or killing the process via “process id”. This article has explained all possible solutions to encounter the error mentioned above.

Источник

Оцените статью
Adblock
detector