Write Error while exporting odp as ppt(x) formatted file

I am using:

$ libreoffice --version

LibreOffice 5.2.7.2 20m0(Build:2)

on:

$ uname -a

Linux niggahme 4.9.0-6-amd64 #1 SMP Debian 4.9.82-1+deb9u3 (2018-03-02) x86_64 GNU/Linux

after finishing a basic impress presentation without fancy transition, embedded objects … when I try to save the file as ppt to be displayed on Windows at school (I am a teacher), by going:

File > Save A Copy As

then selecting as file type: .ppt or .pptx (I have tried both)

I am getting:

Error saving the document <…>:
Write Error.
The file could not be written.

Why is this happening and how can I debug and fix that problem?


Here is a link to the actual file:

$ ls -l W04_Photosynthesis_Cicle_of_Life.odp

-rw-r–r-- 1 niggahme niggahme 1901985 Oct 4 16:03 W04_Photosynthesis_Cicle_of_Life.odp

$ md5sum -b W04_Photosynthesis_Cicle_of_Life.odp

cb1458f86a91a95a842bfb368d1efb0e *W04_Photosynthesis_Cicle_of_Life.odp


I have also tried to debug the file, but I don’t see anything of value. Libreoffice doesn’t report anything about a “title 2” page creating problems:

_IFL="…/W04/W04_Photosynthesis_Cicle_of_Life.odp"



_IPDFNX=${_IFL##/}

_FN="${_IPDFNX%.
}"



echo “// __ $_IPDFNX: |”${_IPDFNX}"|"

echo “// __ $_FN: |”${_FN}"|"



ls -l “${_IFL}”

md5sum -b “${_IFL}”



ls -l “${_ODIR}/${_FN}”.pptx

md5sum -b “${_ODIR}/${_FN}”.pptx



$ time libreoffice --convert-to pptx --backtrace --outdir “${_ODIR}” “${_IFL}”

GNU gdb (Debian 7.12-6) 7.12.0.20161007-git

Copyright (C) 2016 Free Software Foundation, Inc.

License GPLv3+: GNU GPL version 3 or later http://gnu.org/licenses/gpl.html

This is free software: you are free to change and redistribute it.

There is NO WARRANTY, to the extent permitted by law. Type “show copying”

and “show warranty” for details.

This GDB was configured as “x86_64-linux-gnu”.

Type “show configuration” for configuration details.

For bug reporting instructions, please see:

http://www.gnu.org/software/gdb/bugs/.

Find the GDB manual and other documentation resources online at:

http://www.gnu.org/software/gdb/documentation/.

—Type to continue, or q to quit—

For help, type “help”.

Type “apropos word” to search for commands related to “word”…

Reading symbols from /usr/lib/libreoffice/program/soffice.bin…(no debugging symbols found)…done.

log will be saved as gdbtrace.log, this will take some time, patience…







^Z

real 1m56.868s

user 0m3.208s

sys 0m0.888s



$ ls -l gdbtrace.log

-rw-r–r-- 1 niggahme niggahme 3041 Oct 8 00:14 gdbtrace.log



$ cat gdbtrace.log

warning: Currently logging to gdbtrace.log. Turn the logging off and on to make the new setting effective.

[Thread debugging using libthread_db enabled]

Using host libthread_db library “/lib/x86_64-linux-gnu/libthread_db.so.1”.

[New Thread 0x7fffe0ca2700 (LWP 20053)]

[New Thread 0x7fffd638e700 (LWP 20054)]

[Thread 0x7fffd638e700 (LWP 20054) exited]



Thread 1 “soffice.bin” received signal SIGTSTP, Stopped (user).

0x00007ffff33b17fd in connect () from /lib/x86_64-linux-gnu/libc.so.6

#0 0x00007ffff33b17fd in connect () from /lib/x86_64-linux-gnu/libc.so.6

#1 0x00007ffff369d648 in ?? () from /usr/lib/libreoffice/program/libuno_sal.so.3

#2 0x00007ffff369d75e in osl_createPipe () from /usr/lib/libreoffice/program/libuno_sal.so.3

#3 0x00007ffff5654e2e in ?? () from /usr/lib/libreoffice/program/libmergedlo.so

#4 0x00007ffff56557c8 in ?? () from /usr/lib/libreoffice/program/libmergedlo.so

#5 0x00007ffff5630bbe in ?? () from /usr/lib/libreoffice/program/libmergedlo.so

#6 0x00007ffff6553d6d in InitVCL() () from /usr/lib/libreoffice/program/libmergedlo.so

#7 0x00007ffff6554c2d in ?? () from /usr/lib/libreoffice/program/libmergedlo.so

#8 0x00007ffff6554c82 in SVMain() () from /usr/lib/libreoffice/program/libmergedlo.so

#9 0x00007ffff565de91 in soffice_main () from /usr/lib/libreoffice/program/libmergedlo.so

#10 0x00005555555547cb in ?? ()

#11 0x00007ffff32e82e1 in __libc_start_main () from /lib/x86_64-linux-gnu/libc.so.6

#12 0x000055555555480a in ?? ()



Thread 2 (Thread 0x7fffe0ca2700 (LWP 20053)):

# 0x00007ffff0e22508 in pthread_cond_timedwait@@GLIBC_2.3.2 () from /lib/x86_64-linux-gnu/libpthread.so.0

#1 0x00007ffff367f4db in ?? () from /usr/lib/libreoffice/program/libuno_sal.so.3

#2 0x00007ffff0e1c494 in start_thread () from /lib/x86_64-linux-gnu/libpthread.so.0

#3 0x00007ffff33b0acf in clone () from /lib/x86_64-linux-gnu/libc.so.6



Thread 1 (Thread 0x7ffff7f15ac0 (LWP 20048)):

#0 0x00007ffff33b17fd in connect () from /lib/x86_64-linux-gnu/libc.so.6

#1 0x00007ffff369d648 in ?? () from /usr/lib/libreoffice/program/libuno_sal.so.3

#2 0x00007ffff369d75e in osl_createPipe () from /usr/lib/libreoffice/program/libuno_sal.so.3

#3 0x00007ffff5654e2e in ?? () from /usr/lib/libreoffice/program/libmergedlo.so

#4 0x00007ffff56557c8 in ?? () from /usr/lib/libreoffice/program/libmergedlo.so

#5 0x00007ffff5630bbe in ?? () from /usr/lib/libreoffice/program/libmergedlo.so

#6 0x00007ffff6553d6d in InitVCL() () from /usr/lib/libreoffice/program/libmergedlo.so

#7 0x00007ffff6554c2d in ?? () from /usr/lib/libreoffice/program/libmergedlo.so

#8 0x00007ffff6554c82 in SVMain() () from /usr/lib/libreoffice/program/libmergedlo.so

#9 0x00007ffff565de91 in soffice_main () from /usr/lib/libreoffice/program/libmergedlo.so

#10 0x00005555555547cb in ?? ()

#11 0x00007ffff32e82e1 in __libc_start_main () from /lib/x86_64-linux-gnu/libc.so.6

#12 0x000055555555480a in ?? ()

A debugging session is active.



Inferior 1 [process 20048] will be killed.



Quit anyway? (y or n) [answered Y; input not from terminal]

$

Out of my frustration with libreoffice not producing, logging more and more useful debugging information, I even put together some silly bash script to find out where that Title2 master slide was:



_W=“Title2”

_ODFL="/W04_Photosynthesis_Cicle_of_Life.odp"



### should not touch

_ODIR=$(dirname “${_ODFL}”)

_IPDFNX=${_ODFL##/}

_DT=$(date +%Y%m%d%H%M%S)

_FN="${_IPDFNX%.
}"

_ZFL="${_ODIR}/${FN}$_DT.zip"



echo “// __ $_ZFL: |${_ZFL}|”



cp “${_ODFL}” “${_ZFL}”

ls -l “${_ODFL}”

ls -l “${_ZFL}”



md5sum -b “${_ODFL}”

md5sum -b “${_ZFL}”



_TESTLN=“No errors detected in compressed data of “${_ZFL}”.”

_TESTFL="${_FN}.zip.test.txt"



unzip -t “${_ZFL}” > “${_TESTFL}”



_LSTLN=$(tail -n 1 “${_TESTFL}”)



if [ “${_TESTLN}” == “${_LSTLN}” ]; then

echo “// __ TEST OK! |${_TESTLN}|${_LSTLN}|”



_OZDIR="${_ODIR}/${_FN}/${FN}${_DT}"



mkdir -p “${_OZDIR}”

unzip “${_ZFL}” -d “${_OZDIR}”



_TMP="${FN}"$(mktemp “${_DT}”.XXXXXX)



find “${_OZDIR}” -type f -iname “*.xml” >> “${_TMP}” 2>&1



_LNS=$(wc -l ${_TMP}| awk ‘{print $1}’)



_IX=0

while read -r _XMLFL; do

echo “// __ [$_IX,$_LNS): |$_XMLFL|”



_FND=$(cat “${_XMLFL}” | grep “${_W}”)



if [[ ! -z “${_FND}” ]]; then

echo “// __ |${_W}|${_XMLFL}|”

fi



_IX=$(( _IX+1 ))

done < “${_TMP}”



rm --force “${_TMP}”

rm --force “${_ZFL}”

rm --force “${_TESTFL}”



else

echo “// __ $_TESTLN: |${_TESTLN}|”

echo “// __ $_LSTLN: |${_LSTLN}|”

fi

Read these guidelines and improve your question. In particular, give us more detail on how and where do you try to save a ppt file(x).

And just in case, please provide a sample ODP which you know to produce such a problem (to test it if that’s a file problem - might be template-related; or a problem with some settings or OS or LO version).

Confirmed with Version: 6.1.2.1 (x64)
Build ID: 65905a128db06ba48db947242809d14d3f9a93fe
CPU threads: 12; OS: Windows 10.0; UI render: GL;
Locale: ru-RU (ru_RU); Calc: CL

Please file a bug report.

Filed tdf#120382. The problem is the “Title2” master page, which isn’t used in the file, and removing which solves the problem.

I have also tried to debug the file, but I don’t see anything of value. Libreoffice doesn’t report anything about a “title 2” page creating problems

Well, did you actually try to delete the said master to see if that fixes things for you?

  1. I went: “Slide” → “Slide Master Design” and 2) on the “Select a Slide Design” I clicked on “Title2”; but I couldn’t see a way of deleting that “Master Slide”. Right clicking on it didn’t show any options and there was no option on that window to do so.

ViewNormal; F11 (open sidebar)→Master Slides sidebar deck; locate the “Title2” master on the deck, right-click it and Delete Master.

Or: ViewMaster Slide; locate the “Title2” slide on the left Slides pane (second one); right-click it and Delete Master.

I may not be able to remove that slide because there may have deep dependencies relating to it. How do you know which slides relate to which master? I think I may have copied that slide with its master (I just visually drag them into the new doc). That may have created all or some of those problems.

I finally got it to work. On the slide mater pane on the left is where you should right click!

I finally got it to work. On the slide mater pane on the left is where you should right click and then delete the “master slide” which dependency was creating all that problem! Impress apparently assigned the first/“default?” master slide to whichever slide was using that master slide.
I still think that libreoffice/impress should produce clearer, more and more useful debugging information.
Most people, as I did, would have understood a: “Write Error. The file could not be written” as having to do with a FS operation such as a low capacity drive or a character set incompatibility issue. Had the error message been: “Title2 master slide is dangling with no reference to actual slides” or "Title2 conflicts with Title1, since both claim the same slides … " which is what seems to be happening somehow; that would have saved a good chunk of time to me and a number of people. Thank you very much!