Bug 1300786

Summary: oowriter appears to hang on converting odt with images inserted as remote links
Product: [Fedora] Fedora Reporter: Przemek Klosowski <przemek>
Component: libreofficeAssignee: Caolan McNamara <caolanm>
Status: CLOSED NOTABUG QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: 23CC: caolanm, dtardon, erack, ltinkl, mstahl, sbergman
Target Milestone: ---   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2016-11-10 15:41:14 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Attachments:
Description Flags
37-page document that hangs libreoffice oowriter none

Description Przemek Klosowski 2016-01-21 17:17:33 UTC
Created attachment 1116980 [details]
37-page document that hangs libreoffice oowriter

Description of problem:
libreoffice hangs on a fairly simple document; locks GUI

Version-Release number of selected component (if applicable):
libreoffice-writer-5.0.4.2-3.fc23.x86_64
libreoffice-5.0.4.2-3.fc23.x86_64

How reproducible: every time

Steps to Reproduce:
1. run libreoffice on the attached file; in order to avoid GUI issues, use CLI:
soffice --convert-to doc dockerTutorial.odt 

Actual results: process hangs


Expected results: process does not hang


Additional info:
The contents was cut and pasted (from Firefox)

Comment 1 Przemek Klosowski 2016-01-21 17:20:09 UTC
The hang may be due to embedded elements (images?); stracing the executable shows it's getting some data from the network:

[pid  6351] socket(PF_INET, SOCK_DGRAM, IPPROTO_IP) = 33
[pid  6351] connect(33, {sa_family=AF_INET, sin_port=htons(0), sin_addr=inet_addr("104.18.58.204")}, 16) = 0
[pid  6351] getsockname(33, {sa_family=AF_INET, sin_port=htons(40733), sin_addr=inet_addr("129.6.122.133")}, [16]) = 0
[pid  6351] connect(33, {sa_family=AF_UNSPEC, sa_data="\0\0\0\0\0\0\0\0\0\0\0\0\0\0"}, 16) = 0
[pid  6351] connect(33, {sa_family=AF_INET, sin_port=htons(0), sin_addr=inet_addr("104.18.59.204")}, 16) = 0
[pid  6351] getsockname(33, {sa_family=AF_INET, sin_port=htons(39111), sin_addr=inet_addr("129.6.122.133")}, [16]) = 0
[pid  6351] close(33)                   = 0
[pid  6351] socket(PF_INET, SOCK_STREAM|SOCK_CLOEXEC, IPPROTO_TCP) = 33
[pid  6351] setsockopt(33, SOL_TCP, TCP_NODELAY, [1], 4) = 0
[pid  6351] connect(33, {sa_family=AF_INET, sin_port=htons(80), sin_addr=inet_addr("104.18.58.204")}, 16) = 0
[pid  6351] sendto(33, "PROPFIND /docker-curriculum/imag"..., 239, 0, NULL, 0) = 239
[pid  6351] sendto(33, "<?xml version=\"1.0\" encoding=\"ut"..., 237, 0, NULL, 0) = 237
[pid  6351] poll([{fd=33, events=POLLIN}], 1, 120000) = 1 ([{fd=33, revents=POLLIN}])
[pid  6351] recvfrom(33, "HTTP/1.1 405 Not Allowed\r\nDate: "..., 4096, 0, NULL, NULL) = 614
[pid  6351] sendto(33, "HEAD /docker-curriculum/images/e"..., 147, 0, NULL, 0) = 147
[pid  6351] poll([{fd=33, events=POLLIN}], 1, 120000) = 1 ([{fd=33, revents=POLLIN}])
[pid  6351] recvfrom(33, "HTTP/1.1 200 OK\r\nDate: Thu, 21 J"..., 4096, 0, NULL, NULL) = 589
[pid  6351] sendto(33, "GET /docker-curriculum/images/eb"..., 169, 0, NULL, 0) = 169

Comment 2 Przemek Klosowski 2016-01-21 17:30:14 UTC
In the way of explanation, the hang isn't infinite---the process slowly progresses and eventually (after tens of minutes) finishes. It's just that it's not acceptable to block user interaction for so long.
There should be a way to 

a) continue external uploads in background
b) terminate loading

Comment 3 Caolan McNamara 2016-11-10 15:41:14 UTC
All the images in the document are links to raw.githubusercontent.com and prakhar.me etc so they have to be downloaded to render the document. Manual command line on wget to the images on prakhar.me is pretty damn slow for me so that seems to be the problem.