Меню

Ошибка субд lost synchronization with server got message type d length 10000050

  1. 17.09.2019, 11:17


    #1

    niiikkki вне форума


    Гость форума


    По умолчанию Ошибка СУБД:` Lost synchronization with server: got message type «D»

    Столкнулся с проблемой в первые.
    ЧТо может означать данная проблема
    полностью звучит она так:

    Платформа: 1С:Предприятие 8.3 (8.3.14.1565)
    Конфигурация: Зарплата и управление персоналом, редакция 3.1 (3.1.8.216) (http://v8.1c.ru/hrm/)
    Copyright © ООО «1C-Софт», 2007-2018. Все права защищены
    (http://www.1c.ru)
    Режим: Серверный (сжатие: усиленное)
    Приложение: Тонкий клиент
    Локализация: Информационная база: русский (Россия), Сеанс: русский (Россия)
    Вариант интерфейса: Такси

    Ошибки:
    ———————————————————————————
    17.09.2019 10:10:51
    Невосстановимая ошибка
    Ошибка при выполнении запроса POST к ресурсу /e1cib/logForm:
    по причине:
    Ошибка СУБД:
    lost synchronization with server: got message type «D», length 5301060


  2. 17.09.2019, 11:46


    #2

    niiikkki вне форума


    Гость форума


    По умолчанию Re: Ошибка СУБД:` Lost synchronization with server: got message type «D»


  3. 02.10.2019, 14:51


    #3

    Shefanya вне форума


    Гость форума


    По умолчанию Re: Ошибка СУБД:` Lost synchronization with server: got message type «D»


  4. 03.10.2019, 09:01


    #4

    niiikkki вне форума


    Гость форума


    По умолчанию Re: Ошибка СУБД:` Lost synchronization with server: got message type «D»


  5. 14.01.2020, 17:12


    #5

    blackgod128 вне форума


    Гость форума


    По умолчанию Re: Ошибка СУБД:` Lost synchronization with server: got message type «D»

    Цитата Сообщение от niiikkki
    Посмотреть сообщение

    платформы

    на какую?


Я
   K1RSAN

24.02.20 — 09:16

Одна из баз отваливается с такой ошибкой. Думал протестировать, для этого хотел сделать ДТ на всякий случай и проверить в локальной версии — опять падает. Как бороться с таким?

   rphosts

1 — 24.02.20 — 09:21

Сам сервиc/служба постгри фурычит? С сервера 1С по Plqsl до постгри достучатся получается?

   K1RSAN

2 — 24.02.20 — 09:29

(1) Другие базы работают нормально. Ща админу позвонил, будем на пару смотреть, но вдруг есть готовое что-то. Отпала только одна база из 5

   K1RSAN

3 — 24.02.20 — 09:30

(1) Служба работает, 9.6 (х64) версия

   rphosts

4 — 24.02.20 — 09:51

(2) судя по сообщению сервер 1С не моет подключиться к этой БД. Бэкапы-то есть?

   K1RSAN

5 — 24.02.20 — 10:05

(4) бэкапы делаются ночью. Вопрос в том — перезагрузка сервера поможет (нашел в паре мест в интернете, в том числе на ИС), или надо именно архив восстанавливать? Или еще что может надо сделать? Или мало кто юзает связку Постгре+1С, и нет «коллективных знаний» по этому вопросу?

   rphosts

6 — 24.02.20 — 10:17

(5)начни с подключения именно к этой БД средствами plsql. То, что сколько-то баз норм — не показатель про остальные БД…. вариантов море, начиная с того, что базу могли вообще снести, могло место кончиться (если разные БД на разных дисках) и т.п.

Если собираетесь стопать — снимите со всего что снимается копии, как стопнете — сделайте копии каталогов настроек и каталогов с файлами БД прежде чем продолжать эксперименты.

   dmrjan

7 — 24.02.20 — 10:44

Тут посмотри https://www.linux.org.ru/forum/admin/1934412. Похожая тема и решение.

   ansh15

8 — 24.02.20 — 11:21

(0) >>для этого хотел сделать ДТ на всякий случай и проверить в локальной версии — опять падает

Что при этом пишет в логи СУБД, в техжурнал 1С, журналы операционной системы?

Обычно в dt может не выгружаться, когда сервер приложений 1С 32-битный.

   bolero

9 — 25.02.20 — 11:16

(0) давно сталкивался с таким, помню лишь что вылечилось легко, одним параметром в конфиге (каким — не помню)

после lost synchronization with server идет got message type «X», length NNNNN, вот от длины и надо отталкиваться

где-то есть параметр, ограничивающий максимальный кусок данных, нужно найти похожий по размеру

его увеличиваешь раз в 5 сразу, прогоняешь заново

у меня с рабочей машины:

shared_buffers = 8GB

work_mem = 512MB

temp_buffers = 1GB

maintenance_work_mem = 2GB

max_wal_size = 4096MB

effective_cache_size = 24GB

скорее всего один из этих параметров

   Nikoss

10 — 25.02.20 — 11:23

(9) для какого железа такой конфиг?

   bolero

11 — 25.02.20 — 11:27

(10) 64G мозгов

если у тебя, допустим, 16G — дели все на 4 😉

  

bolero

12 — 25.02.20 — 11:28

work_mem и temp_buffers только и так маленькие, сильно их не обижай

у меня просто 10 баз, и в них ходят все пользователи, в сумме сеансов получается немало, поэтому поставил такими маленькими

TurboConf — расширение возможностей Конфигуратора 1С

ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку «Обновить» в браузере.

Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.

My automated pg_dump process has been failing when attempting to backup a postgres database. The error message I’m receiving:

ERROR Message:

pg_dump: Error message from server: ERROR: invalid memory alloc
request size 1249770967 pg_dump: The command was: COPY
public.data_store (id, length, last_modified, data) TO stdout;
Custom backup of jackrabbit pg_dump: SQL command failed pg_dump: Error
message from server: ERROR: invalid memory alloc request size
1249770967 pg_dump: The command was: COPY public.data_store
(id, length, last_modified, data) TO stdout; [!!ERROR!!] Failed to
produce custom backup database jackrabbit Plain backup of pdi_logging
Custom backup of pdi_logging Plain backup of postgres Custom backup of
postgres Plain backup of quartz Custom backup of quartz

Based on my findings everything seemed to point to corrupt data in the table so I created a function to query the table and extract the ctid so I then may find the culprit and delete the corrupt row.

Function:

CREATE OR REPLACE FUNCTION find_bad_row(tablename text)
 RETURNS tid AS
$BODY$
DECLARE
result tid;
curs REFCURSOR;
row1 RECORD;
row2 RECORD;
tabName TEXT;
count BIGINT := 0;
BEGIN
SELECT reverse(split_part(reverse($1), '.', 1)) INTO tabName;

OPEN curs FOR EXECUTE 'SELECT ctid FROM ' || tableName;

count := 1;
FETCH curs INTO row1;

WHILE row1.ctid IS NOT NULL LOOP
result = row1.ctid;

count := count + 1;
FETCH curs INTO row1;

EXECUTE 'SELECT (each(hstore(' || tabName || '))).* FROM '
|| tableName || ' WHERE ctid = $1' INTO row2
USING row1.ctid;

IF count % 100000 = 0 THEN
RAISE NOTICE 'rows processed: %', count;
END IF;
END LOOP;

CLOSE curs;
RETURN row1.ctid;
EXCEPTION
WHEN OTHERS THEN
RAISE NOTICE 'LAST CTID: %', result;
RAISE NOTICE '%: %', SQLSTATE, SQLERRM;
RETURN result;
END
$BODY$
 LANGUAGE plpgsql VOLATILE
 COST 100;
ALTER FUNCTION find_bad_row(text)
 OWNER TO pentaho;

After calling the function select find_bad_row('public.data_store'), the result given was (0,2). I searched the table for said ctid, select ctid, * from public.data_store, and deleted the preceding row. I then executed my pg_dump script and received the same error. Re-running the function on the table returns a result again of the first row. Being new to postgres is my approach altogether wrong and is there another way to resolve this? Could it be that the entire table is corrupt?

Can someone shed some light on what's happening here?

D:backups>pg_dump -Z 9 -Fc -C -U postgres -f sheepcrcdbback.dmp sheepcrc2

pg_dump: Dumping the contents of table «uploadeddatafiles» failed:
PQgetCopyData

() failed.

pg_dump: Error message from server: lost synchronization with server:
got messag

e type "d", length 6036499

pg_dump: The command was: COPY public.uploadeddatafiles (id, username,
projectid
, aspsession, filename, filetype, filesize, filedata, uploadedon,
«timestamp») T

O stdout;

pg 8.3.1 server on w2k3
pg_dump 8.3.1 and 8.3.3 on the same machine both do the same thing.

data directory and backup directory excluded from virus scanner.

The followinng variations also failed. The length seems to be either
6036499 or 8435588 (84… is most common).

pg_dump -Z 9 -Fp -C -U postgres -f sheepcrcdbback.dmp sheepcrc2
pg_dump -Fp -C -U postgres -f sheepcrcdbback.dmp sheepcrc2

uploadeddatafiles holds excel spreadsheets in the filedata column.

sheepcrc2=# select count(*) from uploadeddatafiles;
count
-------
  405
(1 row)

sheepcrc2=# select sum(length(filedata)) from uploadeddatafiles;
   sum
-----------
271067619
(1 row)

This completes and returns all rows
select id, md5(filedata) from uploadeddatafiles

klint.

--
Klint Gore
Database Manager
Sheep CRC
A.G.B.U.
University of New England
Armidale NSW 2350

Ph: 02 6773 3789
Fax: 02 6773 3266

EMail: kgore4@xxxxxxxxxx


I am able to reproduce your issue with the following code:

print(f"Python version {sys.version}")
# Python version 3.7.4 (tags/v3.7.4:e09359112e, Jul  8 2019, 20:34:20) [MSC v.1916 64 bit (AMD64)]

print(f"pyodbc version {pyodbc.version}")
# pyodbc version 4.0.27

connection_string = get_conn_str()
print(connection_string)
# DSN=PostgreSQL35W

cnxn = pyodbc.connect(connection_string)
print(f'{cnxn.getinfo(pyodbc.SQL_DRIVER_NAME)}, version: {cnxn.getinfo(pyodbc.SQL_DRIVER_VER)}')
# PSQLODBC35W.DLL, version: 11.01.0000

enc = 'utf-8'
cnxn.setdecoding(pyodbc.SQL_CHAR, encoding=enc)
cnxn.setdecoding(pyodbc.SQL_WCHAR, encoding=enc)
cnxn.setencoding(encoding=enc)

crsr = cnxn.cursor()

num_params = 7499
print(f"Attempting {num_params} parameters ...")
qmark_string = ",".join(["(?)" for x in range(num_params)])
sql = "SELECT * FROM (VALUES " + qmark_string + ") t(val)"
params = tuple(range(num_params))
crsr.execute(sql, params)
n = 0
for row in crsr:
    n += 1
print(f"{n} row(s) returned")

The code works with num_params ≤ 7498, but fails for anything larger.

However, I was also able to reproduce the issue using System.Data.Odbc in .NET, although the failure point there was 32768 and the error was

Unhandled Exception: System.OverflowException: Arithmetic operation resulted in an overflow.
   at System.Data.Odbc.OdbcParameterCollection.Bind(OdbcCommand command, CMDWrapper cmdWrapper, CNativeBuffer parameterBuffer)
   at System.Data.Odbc.OdbcCommand.ExecuteReaderObject(CommandBehavior behavior, String method, Boolean needReader, Object[] methodArguments, SQL_API odbcApiMethod)
   at System.Data.Odbc.OdbcCommand.ExecuteReaderObject(CommandBehavior behavior, String method, Boolean needReader)
   at System.Data.Odbc.OdbcCommand.ExecuteReader(CommandBehavior behavior)
   at odbcConsoleApp.Program.Main(String[] args) in C:UsersGordsourcereposodbcConsoleAppProgram.cs:line 31

So it looks like there is some sort of limitation on the number of parameters that the ODBC driver can handle.

0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии

А вот еще интересные материалы:

  • Яшка сломя голову остановился исправьте ошибки
  • Ясность цели позволяет целеустремленно добиваться намеченного исправьте ошибки
  • Ясность цели позволяет целеустремленно добиваться намеченного где ошибка
  • Ошибка субд login failed for user sa
  • Ошибка сценария строка 16 символ 32115