Bug 36998 - Аварийное завершение клиента 1С:Предприятие
Summary: Аварийное завершение клиента 1С:Предприятие
Status: CLOSED FIXED
Alias: None
Product: Альт Рабочая станция
Classification: Distributions
Component: Ошибки работы (show other bugs)
Version: 9.0
Hardware: all Linux
: P3 major
Assignee: Andrey Cherepanov
QA Contact: qa-p8@altlinux.org
URL:
Keywords:
: 37311 (view as bug list)
Depends on:
Blocks:
 
Reported: 2019-07-09 14:03 MSK by Pavel Isopenko
Modified: 2020-04-09 16:31 MSK (History)
13 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Pavel Isopenko 2019-07-09 14:03:09 MSK
Аварийное завершение клиента 1С при подключении к базе данных, расположенной "На веб-сервере" (сервисы 1С:Fresh, 1С:ГРМ, 1С:БухОбслуживание). Само подключение проходит успешно, клиент валится после ввода учётных данных пользователя. Платформа 8.3.13 x86_64, на p8 работает нормально.

$ /opt/1C/v8.3/x86_64/1cv8c

(1cv8c:6745): dbind-WARNING **: 13:47:08.317: Couldn't connect to accessibility bus: Failed to connect to socket /tmp/dbus-48xxFhiWoR: В соединении отказано
NOT SANDBOXED
sh: gdb: команда не найдена
gdb return status: 32512

$ strace /opt/1C/v8.3/x86_64/1cv8c
...
wait4(6823, sh: gdb: команда не найдена
[{WIFEXITED(s) && WEXITSTATUS(s) == 127}], 0, NULL) = 6823
rt_sigaction(SIGINT, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=SA_RESTORER, sa_restorer=0x7efe80854890}, NULL, 8) = 0
rt_sigaction(SIGQUIT, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=SA_RESTORER, sa_restorer=0x7efe80854890}, NULL, 8) = 0
rt_sigprocmask(SIG_SETMASK, [ILL ABRT SEGV], NULL, 8) = 0
fstat(1, {st_mode=S_IFCHR|0620, st_rdev=makedev(0x88, 0), ...}) = 0
write(1, "gdb return status: 32512\n", 25gdb return status: 32512
) = 25
futex(0x7efe7ca08648, FUTEX_WAKE_PRIVATE, 2147483647) = 0
futex(0x7efe7ca08648, FUTEX_WAKE_PRIVATE, 2147483647) = 0
futex(0x39563f8, FUTEX_WAKE_PRIVATE, 2147483647) = 1
futex(0x39563a8, FUTEX_WAKE_PRIVATE, 1) = 1
futex(0x7efe7ca08648, FUTEX_WAKE_PRIVATE, 2147483647) = 0
futex(0x7efe4afe4ce8, FUTEX_WAKE_PRIVATE, 1) = 1
futex(0x7efe4afe4c98, FUTEX_WAKE_PRIVATE, 1) = 1
futex(0x7efe4f25820c, FUTEX_WAKE_PRIVATE, 2147483647) = 0
write(7, "\1\0\0\0\0\0\0\0", 8)         = 8
futex(0x104f8b0, FUTEX_WAKE_PRIVATE, 1) = 1
futex(0x7efe64004ae0, FUTEX_WAKE_PRIVATE, 1) = 1
futex(0xfe93b8, FUTEX_WAKE_PRIVATE, 1)  = 1
write(7, "\1\0\0\0\0\0\0\0", 8)         = 8
futex(0x104f8b0, FUTEX_WAKE_PRIVATE, 1) = 1
futex(0x7efe64004ae0, FUTEX_WAKE_PRIVATE, 1) = 1
futex(0xfe93b8, FUTEX_WAKE_PRIVATE, 1)  = 1
write(7, "\1\0\0\0\0\0\0\0", 8)         = 8
futex(0x104f8b0, FUTEX_WAKE_PRIVATE, 1) = 1
futex(0x7efe64004ae0, FUTEX_WAKE_PRIVATE, 1) = 1
futex(0xfe93b8, FUTEX_WAKE_PRIVATE, 1)  = 1
write(7, "\1\0\0\0\0\0\0\0", 8)         = 8
futex(0xfe93b8, FUTEX_WAKE_PRIVATE, 1)  = 1
write(7, "\1\0\0\0\0\0\0\0", 8)         = 8
futex(0x104f8b0, FUTEX_WAKE_PRIVATE, 1) = 1
futex(0x7efe64004ae0, FUTEX_WAKE_PRIVATE, 1) = 1
futex(0xfe93b8, FUTEX_WAKE_PRIVATE, 1)  = 1
write(7, "\1\0\0\0\0\0\0\0", 8)         = 8
futex(0x104f8b0, FUTEX_WAKE_PRIVATE, 1) = 1
futex(0x7efe64004ae0, FUTEX_WAKE_PRIVATE, 1) = 1
futex(0xfe93b8, FUTEX_WAKE_PRIVATE, 1)  = 1
futex(0x7efe7ca65648, FUTEX_WAIT_PRIVATE, 2, NULL) = -1 EAGAIN (Ресурс временно недоступен)
futex(0x7efe7ca65648, FUTEX_WAKE_PRIVATE, 1) = 0
close(40)                               = 0
close(38)                               = 0
close(39)                               = 0
getpid()                                = 6796
getpid()                                = 6796
munmap(0x7efe4a771000, 262144)          = 0
munmap(0x7efe4a630000, 262144)          = 0
munmap(0x7efe4b2e1000, 32768)           = 0
munmap(0x7efe4a9c6000, 32768)           = 0
munmap(0x7efe4b9ae000, 16384)           = 0
munmap(0x7efe745fb000, 16384)           = 0
munmap(0x7efe4b7c6000, 16384)           = 0
munmap(0x7efe745f7000, 16384)           = 0
munmap(0x7efe4b9aa000, 16384)           = 0
munmap(0x7efe4b0fa000, 8192)            = 0
exit_group(11)                          = ?
+++ exited with 11 +++
Comment 1 Pavel Isopenko 2019-07-24 17:35:56 MSK
То была альфа Рабочей станции, с бетой не лучше. Даже на запрос имени пользователя не выходит.

$ /opt/1C/v8.3/x86_64/1cv8

(1cv8:6219): dbind-WARNING **: 17:03:55.490: Couldn't connect to accessibility bus: Failed to connect to socket /tmp/dbus-gLgzu10U2z: В соединении отказано
Ошибка сегментирования

Самое любопытное тут:

$ strace /opt/1C/v8.3/x86_64/1cv8
...
openat(AT_FDCWD, "/usr/lib/browser-plugins", O_RDONLY|O_NONBLOCK|O_CLOEXEC|O_DIRECTORY) = -1 ENOENT (Нет такого файла или каталога)
openat(AT_FDCWD, "/usr/lib/mozilla/plugins", O_RDONLY|O_NONBLOCK|O_CLOEXEC|O_DIRECTORY) = -1 ENOENT (Нет такого файла или каталога)
openat(AT_FDCWD, "/usr/local/netscape/plugins", O_RDONLY|O_NONBLOCK|O_CLOEXEC|O_DIRECTORY) = -1 ENOENT (Нет такого файла или каталога)
openat(AT_FDCWD, "/opt/mozilla/plugins", O_RDONLY|O_NONBLOCK|O_CLOEXEC|O_DIRECTORY) = -1 ENOENT (Нет такого файла или каталога)
openat(AT_FDCWD, "/opt/mozilla/lib/plugins", O_RDONLY|O_NONBLOCK|O_CLOEXEC|O_DIRECTORY) = -1 ENOENT (Нет такого файла или каталога)
openat(AT_FDCWD, "/opt/netscape/plugins", O_RDONLY|O_NONBLOCK|O_CLOEXEC|O_DIRECTORY) = -1 ENOENT (Нет такого файла или каталога)
openat(AT_FDCWD, "/opt/netscape/communicator/plugins", O_RDONLY|O_NONBLOCK|O_CLOEXEC|O_DIRECTORY) = -1 ENOENT (Нет такого файла или каталога)
openat(AT_FDCWD, "/usr/lib/netscape/plugins", O_RDONLY|O_NONBLOCK|O_CLOEXEC|O_DIRECTORY) = -1 ENOENT (Нет такого файла или каталога)
openat(AT_FDCWD, "/usr/lib/netscape/plugins-libc5", O_RDONLY|O_NONBLOCK|O_CLOEXEC|O_DIRECTORY) = -1 ENOENT (Нет такого файла или каталога)
openat(AT_FDCWD, "/usr/lib/netscape/plugins-libc6", O_RDONLY|O_NONBLOCK|O_CLOEXEC|O_DIRECTORY) = -1 ENOENT (Нет такого файла или каталога)
openat(AT_FDCWD, "/usr/lib64/netscape/plugins", O_RDONLY|O_NONBLOCK|O_CLOEXEC|O_DIRECTORY) = -1 ENOENT (Нет такого файла или каталога)
openat(AT_FDCWD, "/usr/lib64/mozilla/plugins", O_RDONLY|O_NONBLOCK|O_CLOEXEC|O_DIRECTORY) = -1 ENOENT (Нет такого файла или каталога)
openat(AT_FDCWD, "/usr/lib/nsbrowser/plugins", O_RDONLY|O_NONBLOCK|O_CLOEXEC|O_DIRECTORY) = -1 ENOENT (Нет такого файла или каталога)
openat(AT_FDCWD, "/usr/lib64/nsbrowser/plugins", O_RDONLY|O_NONBLOCK|O_CLOEXEC|O_DIRECTORY) = -1 ENOENT (Нет такого файла или каталога)
openat(AT_FDCWD, "/plugins", O_RDONLY|O_NONBLOCK|O_CLOEXEC|O_DIRECTORY) = -1 ENOENT (Нет такого файла или каталога)
stat("/usr/lib64/browser-plugins/librtpkcs11ecp.so", {st_mode=S_IFREG|0644, st_size=2888416, ...}) = 0
stat("/usr/lib64/browser-plugins/libnpCryptoPlugin.so", {st_mode=S_IFREG|0644, st_size=5657312, ...}) = 0

Ладно, плагинов к USB-токенам в системе может и не быть

clock_gettime(CLOCK_MONOTONIC, {tv_sec=17906, tv_nsec=742684167}) = 0
poll([{fd=3, events=POLLIN|POLLOUT}], 1, -1) = 1 ([{fd=3, revents=POLLOUT}])
writev(3, [{iov_base="\24\0\6\0\30\7`\0026\1\0\0\6\0\0\0\0\0\0\0\377\377\377\377", iov_len=24}, {iov_base=NULL, iov_len=0}, {iov_base="", iov_len=0}], 3) = 24
poll([{fd=3, events=POLLIN}], 1, -1)    = 1 ([{fd=3, revents=POLLIN}])
recvmsg(3, {msg_name=NULL, msg_namelen=0, msg_iov=[{iov_base="\1 CS\4\0\0\0\6\0\0\0\0\0\0\0\4\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., iov_len=4096}], msg_iovlen=1, msg_controllen=0, msg_flags=0}, 0) = 48
poll([{fd=3, events=POLLIN|POLLOUT}], 1, -1) = 1 ([{fd=3, revents=POLLOUT}])
writev(3, [{iov_base="\16\0\2\0\30\7`\2", iov_len=8}, {iov_base=NULL, iov_len=0}, {iov_base="", iov_len=0}], 3) = 8
poll([{fd=3, events=POLLIN}], 1, -1)    = 1 ([{fd=3, revents=POLLIN}])
recvmsg(3, {msg_name=NULL, msg_namelen=0, msg_iov=[{iov_base="\1\30DS\0\0\0\0h\1\0\0\6\0\37\0\300\3\0\3\0\0\0\0\0\0\0\0\0\0\0\0", iov_len=4096}], msg_iovlen=1, msg_controllen=0, msg_flags=0}, 0) = 32
poll([{fd=3, events=POLLIN|POLLOUT}], 1, -1) = 1 ([{fd=3, revents=POLLOUT}])
writev(3, [{iov_base="(\0\4\0\30\7`\2h\1\0\0\0\0\0\0", iov_len=16}, {iov_base=NULL, iov_len=0}, {iov_base="", iov_len=0}], 3) = 16
poll([{fd=3, events=POLLIN}], 1, -1)    = 1 ([{fd=3, revents=POLLIN}])
recvmsg(3, {msg_name=NULL, msg_namelen=0, msg_iov=[{iov_base="\1\1ES\0\0\0\0\252\346\273\0\246\0\237\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", iov_len=4096}], msg_iovlen=1, msg_controllen=0, msg_flags=0}, 0) = 32
clock_gettime(CLOCK_MONOTONIC, {tv_sec=17906, tv_nsec=743335356}) = 0
mmap(NULL, 126976, PROT_NONE, MAP_PRIVATE|MAP_ANONYMOUS|MAP_NORESERVE, -1, 0) = 0x7f5dd9c97000
madvise(0x7f5dd9c97000, 126976, MADV_DONTNEED) = 0
mprotect(0x7f5dd9ca0000, 65536, PROT_READ|PROT_WRITE) = 0
madvise(0x7f5dd9ca0000, 65536, MADV_WILLNEED) = 0
mmap(NULL, 126976, PROT_NONE, MAP_PRIVATE|MAP_ANONYMOUS|MAP_NORESERVE, -1, 0) = 0x7f5dd9c78000
madvise(0x7f5dd9c78000, 126976, MADV_DONTNEED) = 0
mprotect(0x7f5dd9c80000, 65536, PROT_READ|PROT_WRITE) = 0
madvise(0x7f5dd9c80000, 65536, MADV_WILLNEED) = 0
mmap(NULL, 126976, PROT_NONE, MAP_PRIVATE|MAP_ANONYMOUS|MAP_NORESERVE, -1, 0) = 0x7f5dd9c59000
madvise(0x7f5dd9c59000, 126976, MADV_DONTNEED) = 0
mprotect(0x7f5dd9c60000, 65536, PROT_READ|PROT_WRITE) = 0
madvise(0x7f5dd9c60000, 65536, MADV_WILLNEED) = 0
mmap(NULL, 126976, PROT_NONE, MAP_PRIVATE|MAP_ANONYMOUS|MAP_NORESERVE, -1, 0) = 0x7f5dd9c3a000
madvise(0x7f5dd9c3a000, 126976, MADV_DONTNEED) = 0
mprotect(0x7f5dd9c40000, 65536, PROT_READ|PROT_WRITE) = 0
madvise(0x7f5dd9c40000, 65536, MADV_WILLNEED) = 0
mmap(NULL, 126976, PROT_NONE, MAP_PRIVATE|MAP_ANONYMOUS|MAP_NORESERVE, -1, 0) = 0x7f5dd9c1b000
madvise(0x7f5dd9c1b000, 126976, MADV_DONTNEED) = 0
mprotect(0x7f5dd9c20000, 65536, PROT_READ|PROT_WRITE) = 0
madvise(0x7f5dd9c20000, 65536, MADV_WILLNEED) = 0
mmap(NULL, 126976, PROT_NONE, MAP_PRIVATE|MAP_ANONYMOUS|MAP_NORESERVE, -1, 0) = 0x7f5dd9bfc000
madvise(0x7f5dd9bfc000, 126976, MADV_DONTNEED) = 0
mprotect(0x7f5dd9c00000, 65536, PROT_READ|PROT_WRITE) = 0
madvise(0x7f5dd9c00000, 65536, MADV_WILLNEED) = 0
mprotect(0x7f5d93fff000, 4096, PROT_READ|PROT_WRITE|PROT_EXEC) = 0
madvise(0x7f5d93fff000, 4096, MADV_WILLNEED) = 0
mmap(NULL, 126976, PROT_NONE, MAP_PRIVATE|MAP_ANONYMOUS|MAP_NORESERVE, -1, 0) = 0x7f5dd9bdd000
madvise(0x7f5dd9bdd000, 126976, MADV_DONTNEED) = 0
mprotect(0x7f5dd9be0000, 65536, PROT_READ|PROT_WRITE) = 0
madvise(0x7f5dd9be0000, 65536, MADV_WILLNEED) = 0
mmap(NULL, 126976, PROT_NONE, MAP_PRIVATE|MAP_ANONYMOUS|MAP_NORESERVE, -1, 0) = 0x7f5dd9bbe000
madvise(0x7f5dd9bbe000, 126976, MADV_DONTNEED) = 0
mprotect(0x7f5dd9bc0000, 65536, PROT_READ|PROT_WRITE) = 0
madvise(0x7f5dd9bc0000, 65536, MADV_WILLNEED) = 0
mmap(NULL, 126976, PROT_NONE, MAP_PRIVATE|MAP_ANONYMOUS|MAP_NORESERVE, -1, 0) = 0x7f5dd9b9f000
madvise(0x7f5dd9b9f000, 126976, MADV_DONTNEED) = 0
mprotect(0x7f5dd9ba0000, 65536, PROT_READ|PROT_WRITE) = 0
madvise(0x7f5dd9ba0000, 65536, MADV_WILLNEED) = 0
mmap(NULL, 126976, PROT_NONE, MAP_PRIVATE|MAP_ANONYMOUS|MAP_NORESERVE, -1, 0) = 0x7f5dd9b80000
madvise(0x7f5dd9b80000, 126976, MADV_DONTNEED) = 0
mprotect(0x7f5dd9b80000, 65536, PROT_READ|PROT_WRITE) = 0
madvise(0x7f5dd9b80000, 65536, MADV_WILLNEED) = 0
mmap(NULL, 126976, PROT_NONE, MAP_PRIVATE|MAP_ANONYMOUS|MAP_NORESERVE, -1, 0) = 0x7f5dd9b61000
madvise(0x7f5dd9b61000, 126976, MADV_DONTNEED) = 0
mprotect(0x7f5dd9b70000, 65536, PROT_READ|PROT_WRITE) = 0
madvise(0x7f5dd9b70000, 65536, MADV_WILLNEED) = 0
--- SIGSEGV {si_signo=SIGSEGV, si_code=SEGV_MAPERR, si_addr=0x8} ---
+++ killed by SIGSEGV +++
Ошибка сегментирования

Версия платформы 1С:Предприятие 8.3.13.1865, и - валится не с любой конфигурации.
Comment 2 Pavel Isopenko 2019-09-16 12:59:16 MSK
Актуальная версия платформы 1С:Предприятие 8.3.15.1565. Тоже завершается аварийно. 
# apt-get install 1c-preinstall-full
...
Последняя версия 1c-preinstall-full уже установлена.

Альт может вылететь из списка совместимости с платформой 1С (http://v8.1c.ru/requirements/). Будет обидно.
Comment 3 AEN 2019-09-17 12:09:47 MSK
1. Нам известна эта проблема, мы будем ее решать.
2. Релиза 9 версий продуктов пока не было .
3. Для работы с 1С используйте версии 8.* до решения 1.
Спасибо.
Comment 4 Pavel Isopenko 2019-09-17 12:30:51 MSK
Не при любых обстоятельствах платформа завершается с ошибкой, не на всякой
конфигурации прикладного решения. На Бухгалтерии предприятия падает, ошибка
выглядит примерно так:
NOT SANDBOXED
sh: gdb: команда не найдена
gdb return status: 32512

Можно предположить что проблема имеет отношение к механизму, обеспечивающему
безопасное выполение программ (sandbox), для актуальной 8.3.15 Руководство
разработчика глава 28.3 - судя по тому что конфигурации, не вызывающие
сообщения NOT SANDBOXED (не использующие этот механизм?), работают нормально.
Comment 5 Pavel Isopenko 2019-09-17 12:56:03 MSK
(В ответ на комментарий №3)
> 1. Нам известна эта проблема, мы будем ее решать.
> 2. Релиза 9 версий продуктов пока не было .
> 3. Для работы с 1С используйте версии 8.* до решения 1.
> Спасибо.

Верно. Производственные системы на p8 - из p9 развёрнуто cпециальное тестовое
окружение. 
Рассчитываю узнать о решения проблемы по состоянию баги. И если покажется
нелишней помощь в тестировании.
Comment 6 Andrey Cherepanov 2019-09-18 17:43:22 MSK
(В ответ на комментарий №5)
> (В ответ на комментарий №3)
> > 1. Нам известна эта проблема, мы будем ее решать.
> > 2. Релиза 9 версий продуктов пока не было .
> > 3. Для работы с 1С используйте версии 8.* до решения 1.
> > Спасибо.
> 
> Верно. Производственные системы на p8 - из p9 развёрнуто cпециальное тестовое
> окружение. 
> Рассчитываю узнать о решения проблемы по состоянию баги. И если покажется
> нелишней помощь в тестировании.
Есть координаты подключения к тестовому серверу. У меня на руках развёрнутый 1C_Enterprise83-thin-client-8.3.15-1565 (сервера нет) и он запускается до окна выбора базы. Можно написать письмом на cas@basealt.ru
Comment 7 Pavel Isopenko 2019-10-02 17:44:57 MSK
Повторить проблему можно без сервера, достаточно любой пустой конфигурации типовой Бухгалтерии предприятия 3. Пользователя заводить не обязательно, DefaultUser годится. Сначала открывается нормально, начальное заполение данных, потом настройка организации (пропустить), подключение к интернет-поддержке (отказаться).  Выйти. Всё, войти уже не получится.
Не факт даже что это есть аварийное завершение, может быть просто завершение с кодом возврата 11 (что бы это значило?). Не получается создать дамп, который категорически требует техподдержка 1С. Статья altlinux.org/Features/Core не помогает, точнее - тестовая утилита segfault, подложенная в каталог установки 1С, рождает файл core.* куда ей сказано. А 1cv8c - нет.
Моя фантазия исчерпана, нужны идеи куда копать дальше.
Comment 8 Michael Shigorin 2019-10-08 17:11:48 MSK
Павел, а у Вас воспроизводится на железе, в виртуалке (какой?) или везде?
Comment 9 Pavel Isopenko 2019-10-08 17:41:19 MSK
(В ответ на комментарий №8)
> Павел, а у Вас воспроизводится на железе, в виртуалке (какой?) или везде?

У меня железо. Свежеустановленная бета Рабочей станции 9. Постоянно обновляю до актуального состояния p9. Платформа 1С тоже менялась с 8.3.13 до 8.3.15.
Comment 10 Michael Shigorin 2019-10-10 19:11:04 MSK
Воспроизвели, корку сняли совместными усилиями.
Comment 11 Andrey Cherepanov 2019-11-08 17:20:13 MSK
1. Быстрый способ (под root):
wget http://ftp.altlinux.ru/pub/people/cas/1c-libs.tar
tar xvf 1c-libs.tar -C /opt/1C/v8.3/x86_64

2. Правильный способ. Ждать, пока мы не пересоберём libwebkitgtk3 со старой версией libicu в виде отдельного пакета. Далее надо придумать, чтобы каталог с этой версией через скрипт с 
export LD_LIBRARY_PATH=/opt/1C/v8.3/x86_64:$LD_LIBRARY_PATH 
вызывался из desktop-файлов запуска 1С. Возможно, через файл-триггеры при установке 1С они будут подменяться:
-Exec=/opt/1C/v8.3/x86_64/1cestart
+Exec=1с-wrapper /opt/1C/v8.3/x86_64/1cestart
Comment 12 Pavel Isopenko 2019-11-11 10:00:37 MSK
(В ответ на комментарий №11)
> 1. Быстрый способ (под root):
> wget http://ftp.altlinux.ru/pub/people/cas/1c-libs.tar
> tar xvf 1c-libs.tar -C /opt/1C/v8.3/x86_64
Подтверждаю, работает.
Comment 13 Andrey Cherepanov 2020-01-14 12:06:22 MSK
Прошу проверить:

apt-repo test 240839


Это подстановка специально собранной версии библиотеки libwebkitgtk3 до или после установки 1С. Пункты меню 1С должны подмениться на запуск через программу 1c-run
Comment 14 Pavel Isopenko 2020-01-14 12:28:22 MSK
(В ответ на комментарий №13)
> Прошу проверить:
> apt-repo test 240839
> Это подстановка специально собранной версии библиотеки libwebkitgtk3 до или
> после установки 1С. Пункты меню 1С должны подмениться на запуск через программу
> 1c-run
В системе успешно устанавливается libwebkitgtk3-1C-2.4.11-alt8.
Пункты меню не подменяются. требуется уточнение относительно программы 1c-run: как это, откуда берётся, что должно делать?
Comment 15 Pavel Isopenko 2020-01-14 12:41:05 MSK
(В ответ на комментарий №13)
> Пункты меню 1С должны подмениться на запуск через программу
> 1c-run
$ 1c-run
Usage: 1c-run <executable file from 1C>
Наверное, "пункты меню следует вручную переписать как 1с-run <...>"
А в принципе - да, у меня ярлык с комендой 1c-run /opt/1C/v8.3/x86_64/1cestart работает нормально. Для полной проверки со свежеустановленной системой потребуется время, я этим занимаюсь.
Comment 16 Andrey Cherepanov 2020-01-14 13:23:26 MSK
(В ответ на комментарий №14)
> (В ответ на комментарий №13)
> > Прошу проверить:
> > apt-repo test 240839
> > Это подстановка специально собранной версии библиотеки libwebkitgtk3 до или
> > после установки 1С. Пункты меню 1С должны подмениться на запуск через программу
> > 1c-run
> В системе успешно устанавливается libwebkitgtk3-1C-2.4.11-alt8.
> Пункты меню не подменяются. требуется уточнение относительно программы 1c-run:
> как это, откуда берётся, что должно делать?
Вставиться в Exec= desktop-файлов. До или после установки 1С ставили libwebkitgtk3-1C?
Comment 17 Andrey Cherepanov 2020-01-14 13:25:36 MSK
(В ответ на комментарий №16)
> (В ответ на комментарий №14)
> > (В ответ на комментарий №13)
> > > Прошу проверить:
> > > apt-repo test 240839
> > > Это подстановка специально собранной версии библиотеки libwebkitgtk3 до или
> > > после установки 1С. Пункты меню 1С должны подмениться на запуск через программу
> > > 1c-run
> > В системе успешно устанавливается libwebkitgtk3-1C-2.4.11-alt8.
> > Пункты меню не подменяются. требуется уточнение относительно программы 1c-run:
> > как это, откуда берётся, что должно делать?
> Вставиться в Exec= desktop-файлов. До или после установки 1С ставили
> libwebkitgtk3-1C?
Там при установке пакета в %post работает:

for f in /usr/share/applications/{1cestart,1cv8c,1cv8}.desktop;do
        [ -e $f ] || continue                                                                                          
        grep -qs 'Exec=1c-run ' "$f" && continue
        subst 's/^Exec=/Exec=1c-run /' "$f"
done

Если вручную запустить этот кусок кода - меняются Exec= ?

grep Exec= /usr/share/applications/{1cestart,1cv8c,1cv8}.desktop
Comment 18 Pavel Isopenko 2020-01-14 16:07:04 MSK
(В ответ на комментарий №16)
> Вставиться в Exec= desktop-файлов. До или после установки 1С ставили
> libwebkitgtk3-1C?

После. Если до - файлы не подменяются (потому что их ещё нет?). 

И перелогиниться надо (чтобы /usr/share/applications/*.desktop перечитались?). А так всё правильно, теперь меню выглядит как 1c-run /opt/1C/v8.3/x86_64/1cestart, 1c-run /opt/1C/v8.3/x86_64/1cv8c, 1c-run /opt/1C/v8.3/x86_64/1cv8

И - нет, на свежеустановленной Рабочей станции 9 крашится как раньше.
$ rpm -qa | grep libwebkitgtk3
libwebkitgtk3-1C-2.4.11-alt8.x86_64
libwebkitgtk3-2.4.11-alt7.x86_64
Comment 19 Pavel Isopenko 2020-01-14 16:13:36 MSK
(В ответ на комментарий №15)
> у меня ярлык с комендой 1c-run /opt/1C/v8.3/x86_64/1cestart
> работает нормально.
Потому что на моём рабочем месте я устанавливал 1c-libs.tar из комментария #11
А на свежеустановленной Рабочей станции - нет, поэтому на ней платформа падает как раньше.
Comment 20 Andrey Cherepanov 2020-01-16 13:56:46 MSK
(В ответ на комментарий №18)
> (В ответ на комментарий №16)
> > Вставиться в Exec= desktop-файлов. До или после установки 1С ставили
> > libwebkitgtk3-1C?
> 
> После. Если до - файлы не подменяются (потому что их ещё нет?). 
> 
> И перелогиниться надо (чтобы /usr/share/applications/*.desktop перечитались?).
> А так всё правильно, теперь меню выглядит как 1c-run
> /opt/1C/v8.3/x86_64/1cestart, 1c-run /opt/1C/v8.3/x86_64/1cv8c, 1c-run
> /opt/1C/v8.3/x86_64/1cv8
> 
> И - нет, на свежеустановленной Рабочей станции 9 крашится как раньше.
> $ rpm -qa | grep libwebkitgtk3
> libwebkitgtk3-1C-2.4.11-alt8.x86_64
> libwebkitgtk3-2.4.11-alt7.x86_64
Да, файл-триггер не работает. Впрочем, не работает и сама подкладываемая библиотека.

Thread 1 "1cv8c" received signal SIGSEGV, Segmentation fault.
0x00007fffef94e0b8 in WTF::String::isolatedCopy() const ()
   from /usr/lib64/1c-libs/libjavascriptcoregtk-3.0.so.0

Пробую отлаживать.
Comment 21 Andrey Cherepanov 2020-01-16 13:57:52 MSK
*** Bug 37311 has been marked as a duplicate of this bug. ***
Comment 22 Evgeniy Korneechev 2020-01-23 10:12:50 MSK
8.3.16-1148 от 20.01.2020 - аналогичная ситуация.
Comment 23 Leonid Krivoshein 2020-01-30 20:49:30 MSK
(In reply to Evgeniy Korneechev from comment #22)
> 8.3.16-1148 от 20.01.2020 - аналогичная ситуация.

8.3.16.1148 по нашим данным работает на свежеустановленной системе WS9 после установки штатного пакета libwebkitgtk3 из репозитория. Workaround не требуется. Проверьте, пожалуйста.
Comment 24 Pavel Isopenko 2020-01-31 10:55:07 MSK
(Ответ для Leonid Krivoshein на комментарий #23)
> (In reply to Evgeniy Korneechev from comment #22)
> > 8.3.16-1148 от 20.01.2020 - аналогичная ситуация.
> 
> 8.3.16.1148 по нашим данным работает на свежеустановленной системе WS9 после
> установки штатного пакета libwebkitgtk3 из репозитория. Workaround не
> требуется. Проверьте, пожалуйста.

Проверено. Валится как и раньше.
 
# apt-get update
# apt-get dist-upgrade
# apt-get install 1C_Enterprise83-client-8.3.16-1148.x86_64.rpm 1C_Enterprise83-common-8.3.16-1148.x86_64.rpm 1C_Enterprise83-server-8.3.16-1148.x86_64.rpm 
# rpm -qa | grep libwebkitgtk3
libwebkitgtk3-1C-2.4.11-alt8.x86_64
libwebkitgtk3-2.4.11-alt7.x86_64

1. В Сизифе 2.4.11-alt9, это может быть причиной?
2. Как проверялась работоспособность? Мы проверяем запуском актуальной версии Бухгалтерии предприятия (сейчас 3_0_75_70).
Comment 25 Andrey Cherepanov 2020-03-12 12:59:22 MSK
Павел, проверьте на новой версии, пожалуйста. Есть информация, что там починили.
Comment 26 Pavel Isopenko 2020-03-12 17:02:27 MSK
(Ответ для Andrey Cherepanov на комментарий #25)
> Павел, проверьте на новой версии, пожалуйста. Есть информация, что там
> починили.

Проверил. Хорошо бы - но нет. Крайняя актуальная на сейчас платформа релизной версии 8.3.16.1224 валится точно так же, на том же самом месте.
Или имелась в виду 8.3.16.1263 от 04.03.20 "только для тестирования"? Вот бы уточнить, а то так можно пробовать до второго пришествия.
Comment 27 Pavel Isopenko 2020-03-12 17:38:44 MSK
(Ответ для Pavel Isopenko на комментарий #26)
>
> Или имелась в виду 8.3.16.1263 от 04.03.20 "только для тестирования"? 

Однако, тоже валится. Не починили, значит.
Comment 28 Pavel Isopenko 2020-03-19 15:49:56 MSK
Тем временем, по линии техподдержки 1С поступил получен следующий комментарий:

"Проблема заключается, похоже, в изменившихся опциях компиляции WebKit, или в изменившемся поведении компилятора. В коде WebKit в некоторых случаях допускается использование экземпляров объектов с нулевым указателем this. В коде таких методов осуществляется проверка вида if (!this) { return; }; код_для_случая_this!=nullptr. В итоге компилятор производит оптимизацию кода и убирает проверку, поэтому для случаем this==nullptr начинает выполняться код, который по задумку авторов WebKit'а, выполняться не должен. Влияние на появление ошибки оказывает опция -ftree-vrp, появляющаяся на уровне оптимизации -O2, но только в совокупности со включенной опцией 
-fdelete-null-pointer-checks (которая включена всегда). Нужно проанализировать, что изменилось в новом Альт Линукс, и привести опции в соответствие с тем, как это было раньше. Либо включить опцию -fno-delete-null-pointer-checks"
Comment 29 Andrey Cherepanov 2020-03-26 07:20:05 MSK
(Ответ для Pavel Isopenko на комментарий #28)
> Тем временем, по линии техподдержки 1С поступил получен следующий
> комментарий:
> 
> "Проблема заключается, похоже, в изменившихся опциях компиляции WebKit, или
> в изменившемся поведении компилятора. В коде WebKit в некоторых случаях
> допускается использование экземпляров объектов с нулевым указателем this. В
> коде таких методов осуществляется проверка вида if (!this) { return; };
> код_для_случая_this!=nullptr. В итоге компилятор производит оптимизацию кода
> и убирает проверку, поэтому для случаем this==nullptr начинает выполняться
> код, который по задумку авторов WebKit'а, выполняться не должен. Влияние на
> появление ошибки оказывает опция -ftree-vrp, появляющаяся на уровне
> оптимизации -O2, но только в совокупности со включенной опцией 
> -fdelete-null-pointer-checks (которая включена всегда). Нужно
> проанализировать, что изменилось в новом Альт Линукс, и привести опции в
> соответствие с тем, как это было раньше. Либо включить опцию
> -fno-delete-null-pointer-checks"

Пожалуйста, проверьте на p9 сборку libwebkitgtk3:

apt-repo test 248557 libjavascriptcoregtk3 libwebkitgtk3
Comment 30 Igor 2020-03-26 08:51:25 MSK
сборка рабочая, добавте в пакет 1c-preinstall-full пакеты libjavascriptcoregtk3 libwebkitgtk3
Comment 31 AEN 2020-03-26 09:00:38 MSK
(Ответ для Igor на комментарий #30)
> сборка рабочая, добавте в пакет 1c-preinstall-full пакеты
> libjavascriptcoregtk3 libwebkitgtk3

Ура!
Спасибо.
Comment 32 Pavel Isopenko 2020-03-26 17:56:34 MSK
(Ответ для Andrey Cherepanov на комментарий #29)
> apt-repo test 248557 libjavascriptcoregtk3 libwebkitgtk3

Подтверждаю. Так 1С:Предприятие падать перестало. Думаю, что когда исправление попадёт в p9 багу можно будет закрыть.
Да, и по поводу 1c-preinstall-full - присоединяюсь.
Comment 33 AEN 2020-04-02 14:45:23 MSK
3 апреля с утра будет в p9
Comment 34 Pavel Isopenko 2020-04-09 14:55:37 MSK
(Ответ для AEN на комментарий #33)
> 3 апреля с утра будет в p9

Устранение проблемы на p9 проверил и подтверждаю. Инцидент исчерпан, можно закрывать.
Comment 35 Andrey Cherepanov 2020-04-09 16:31:08 MSK
Закрываем.