Bug 36505 - Зависает libreoffice при открытии документа, сконвертированного из docx в odt
Summary: Зависает libreoffice при открытии документа, сконвертированного из docx в odt
Status: CLOSED WORKSFORME
Alias: None
Product: Sisyphus
Classification: Development
Component: LibreOffice (show other bugs)
Version: unstable
Hardware: all Linux
: P3 normal
Assignee: Fr. Br. George
QA Contact: qa-sisyphus
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2019-04-04 14:35 MSK by Konstantin Kondratyuk
Modified: 2019-04-08 12:32 MSK (History)
8 users (show)

See Also:


Attachments
пример документа (12.42 KB, application/vnd.oasis.opendocument.text)
2019-04-04 14:35 MSK, Konstantin Kondratyuk
no flags Details

Note You need to log in before you can comment on or make changes to this bug.
Description Konstantin Kondratyuk 2019-04-04 14:35:03 MSK
Created attachment 8076 [details]
пример документа

При попытке открыть документ, который создан в docx и затем сохранён в odt, LibreOffice зависает. Если запустить strace, то видно, что идёт рекурсивный lstat по всем файлам домашнего каталога.

$ epmqp libreoffice
 $ rpm -qa | egrep -i --color -- "(libreoffice)"
LibreOffice-mimetypes-6.2.2.2-alt1.noarch
LibreOffice-6.2.2.2-alt1.x86_64
LibreOffice-integrated-6.2.2.2-alt1.x86_64
LibreOffice-extensions-6.2.2.2-alt1.x86_64
LibreOffice-langpack-ru-6.2.2.2-alt1.x86_64
LibreOffice-common-6.2.2.2-alt1.x86_64

На версии 6.1.3 проблема не воспроизводилась.
Comment 1 Anton Farygin 2019-04-04 14:36:57 MSK
У меня присоединённый документ открылся без проблем.
$ rpm -qa|grep Libre
LibreOffice-extensions-6.2.2.2-alt1.x86_64
LibreOffice-common-6.2.2.2-alt1.x86_64
LibreOffice-langpack-uk-6.2.2.2-alt1.x86_64
LibreOffice-kde5-6.2.2.2-alt1.x86_64
LibreOffice-integrated-6.2.2.2-alt1.x86_64
LibreOffice-langpack-ru-6.2.2.2-alt1.x86_64
LibreOffice-mimetypes-6.2.2.2-alt1.noarch
LibreOffice-qt5-6.2.2.2-alt1.x86_64
LibreOffice-6.2.2.2-alt1.x86_64
LibreOffice-gtk3-6.2.2.2-alt1.x86_64
Comment 2 Vitaly Lipatov 2019-04-04 15:03:30 MSK
Примерно так начинается опрос файлов:

[pid 30524] getcwd("/tmp", 4096)        = 5
[pid 30524] lstat("/usr", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
[pid 30524] lstat("/usr", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
[pid 30524] lstat("/usr/lib64", {st_mode=S_IFDIR|0755, st_size=253952, ...}) = 0
[pid 30524] lstat("/usr", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
[pid 30524] lstat("/usr/lib64", {st_mode=S_IFDIR|0755, st_size=253952, ...}) = 0
[pid 30524] lstat("/usr/lib64/LibreOffice", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
[pid 30524] lstat("/usr", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
[pid 30524] lstat("/usr/lib64", {st_mode=S_IFDIR|0755, st_size=253952, ...}) = 0
[pid 30524] lstat("/usr/lib64/LibreOffice", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
[pid 30524] lstat("/usr/lib64/LibreOffice/program", {st_mode=S_IFDIR|0755, st_size=16384, ...}) = 0
[pid 30524] lstat("/usr", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
[pid 30524] lstat("/usr/lib64", {st_mode=S_IFDIR|0755, st_size=253952, ...}) = 0
[pid 30524] lstat("/usr/lib64/LibreOffice", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
[pid 30524] lstat("/usr/lib64/LibreOffice/program", {st_mode=S_IFDIR|0755, st_size=16384, ...}) = 0
[pid 30524] lstat("/usr/lib64/LibreOffice/program/libuno_cppu.so.3", {st_mode=S_IFREG|0644, st_size=228328, ...}) = 0
[pid 30524] lstat("/home", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
[pid 30524] lstat("/home", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
[pid 30524] lstat("/home/lav", {st_mode=S_IFDIR|0711, st_size=20480, ...}) = 0
[pid 30524] access("/home/lav", F_OK)   = 0
[pid 30524] openat(AT_FDCWD, "/home/lav", O_RDONLY|O_NONBLOCK|O_CLOEXEC|O_DIRECTORY) = 25</home/lav>
[pid 30524] fstat(25</home/lav>, {st_mode=S_IFDIR|0711, st_size=20480, ...}) = 0
[pid 30524] getdents(25</home/lav>, /* 605 entries */, 32768) = 20864
[pid 30524] lstat("/home/lav/.fakexinerama", {st_mode=S_IFREG|0644, st_size=104, ...}) = 0
[pid 30524] lstat("/home/lav/.bash_profile", {st_mode=S_IFREG|0600, st_size=827, ...}) = 0


Причём, если запустить
$ HOME=$(mktemp -d) lowriter docx2odf.odt
всё открывается. И дело не в новом профиле.

Видимо, сканирует он домашний каталог.
Comment 3 Anton Farygin 2019-04-04 15:11:43 MSK
Ну дайте алгоритм воспроизведения. Документ открывается без зависаний.
Comment 4 Vitaly Lipatov 2019-04-04 15:15:14 MSK
На 6.1.3.1-alt3 всё открывалось без проблем.

(В ответ на комментарий №3)
> Ну дайте алгоритм воспроизведения. Документ открывается без зависаний.
Исходя из условий, у тебя пустой home :)

В выводе strace есть у тебя
getdents.*/home/
?
Comment 5 Anton Farygin 2019-04-04 15:16:07 MSK
home у меня не пустой, а libreoffice я под strace не запускаю.
Comment 6 Vladimir Cherny 2019-04-04 17:00:43 MSK
У меня виснет весь LO, сжирает весь проц.
Comment 7 Andrey Cherepanov 2019-04-04 17:01:44 MSK
(В ответ на комментарий №6)
> У меня виснет весь LO, сжирает весь проц.
Для работы есть LibreOffice-still в Sisyphus.
Comment 8 Anton Farygin 2019-04-04 17:44:06 MSK
А, у вас у всех mate, наверное. На KDE не виснет.
Comment 9 Vladimir Cherny 2019-04-04 17:47:52 MSK
Да, именно mate
Comment 10 Anton Farygin 2019-04-04 17:51:34 MSK
Т.к. LibreOffice в сизифе довольно давно не менялся, то посмотрите на Mate. Что-то с ним.
Comment 11 Konstantin Kondratyuk 2019-04-04 17:56:02 MSK
(In reply to comment #10)
> Т.к. LibreOffice в сизифе довольно давно не менялся, то посмотрите на Mate.
> Что-то с ним.

А неделя - это для сизифа давно?
> Build Date  : Вт 26 мар 2019 21:40:23

У меня xfce4.
Comment 12 Anton Farygin 2019-04-04 18:14:56 MSK
А если UI поменять на другой - тоже виснет ?
Comment 13 Aleksei Nikiforov 2019-04-04 18:23:56 MSK
Тут очень пригодилась бы debuginfo для LibreOffice, но при сборке пакета с ней сборка упирается в лимиты места. Хотя бы можно было бы получить нормальные бэктрейсы тех мест, где LO висит.
Comment 14 Anton Farygin 2019-04-04 18:24:48 MSK
Дима, мы можем увеличить лимиты на размер для получения debuginfo пакетов libreoffice ?
Comment 15 Konstantin Kondratyuk 2019-04-04 18:28:49 MSK
(In reply to comment #13)
> Тут очень пригодилась бы debuginfo для LibreOffice, но при сборке пакета с ней
> сборка упирается в лимиты места. Хотя бы можно было бы получить нормальные
> бэктрейсы тех мест, где LO висит.

Он не висит. Он перебирает все файлы в $HOME, это видно по strace. Наверное, если подождать несколько минут или десятков минут, он даже загрузится.
Comment 16 Anton Farygin 2019-04-04 18:34:03 MSK
А если запустить так:
SAL_USE_VCLPLUGIN=gen lowriter
- тоже висит ?
Comment 17 Anton Farygin 2019-04-04 18:35:30 MSK
Стоп, а у вас gtk3 и нет. А если поставить его и в нём попробовать ?
Comment 18 Vitaly Lipatov 2019-04-04 19:03:54 MSK
(В ответ на комментарий №17)
> Стоп, а у вас gtk3 и нет. А если поставить его и в нём попробовать ?
У меня только
LibreOffice-gtk3-6.2.2.2-alt1.x86_64
проблема та же.

(В ответ на комментарий №16)
> А если запустить так:
> SAL_USE_VCLPLUGIN=gen lowriter
> - тоже висит ?
Да — файлы сканирует в домашнем каталоге.
По такому поведению я бы признал эту сборку Malware.
Comment 19 Anton Farygin 2019-04-04 19:08:41 MSK
интересно.
Ну разберитесь - у меня вот такого нет, например. А какое поведение будет если запустить libreoffice у нового, чистого пользователя ?
Comment 20 Vitaly Lipatov 2019-04-04 19:38:37 MSK
(В ответ на комментарий №19)
> интересно.
> Ну разберитесь - у меня вот такого нет, например. А какое поведение будет если
> запустить libreoffice у нового, чистого пользователя ?

Я уже писал: если запустить
$ HOME=$(mktemp -d) lowriter docx2odf.odt
всё открывается. И дело не в новом профиле — просто в этом HOME нет файлов и сканировать нечего.
Comment 21 Anton Farygin 2019-04-04 19:41:51 MSK
Ну у меня в $HOME:
$ find $HOME 2>/dev/null |wc -l 
501097

И ничего, libreoffice работает.

Под новым пользователем нужно попробовать для того, что бы убедиться в отсутствии влияния на поведение LibreOffice твоих локальных настроек.
Comment 22 Fr. Br. George 2019-04-08 12:32:23 MSK
У меня не воспроизводится. Возможно, какое-то особенное устройство $HOME на целевой машине, просьба разобраться.