libreoffice-online/loolwsd/PROBLEMS

49 lines
2.5 KiB
Text
Raw Normal View History

2016-02-26 05:26:21 -06:00
- There is way too much of busy waiting for fairly arbitrarily chosen
timeout periods in the code.
- The use of the fifoCV condition variable and its associated mutex
2016-02-26 08:53:58 -06:00
fifoMutex in createLibreOfficeKit() in LOOLBroker.cpp is pointless
2016-02-26 05:26:21 -06:00
as there is no code that would notify the condition variable
anywhere.
- The --clientport= option to a lookit process (when spawning them,
not forking) can not work as intended. The ClientPortNumber variable
is declared *static* in ChildProcessSession.hpp and thus is a
separate variable in each compilation unit (object file) that
includes ChildProcessSession.hpp. The variable that is assigned in
main() in LOOLKit.cpp is not the variable used in
ChildProcessSession::downloadAs() in ChildProcessSession.cpp.
- Recursive mutexes are evil. In general, I think the consensus is
that recursive mutexes should be avoided. One should use them only
when absolutely necessary because the code-base is so complex that
one has no idea how it works. That was hopefully not the case when
recursive mutexes were introduced here? But probably it is by now...
- The use of separate "disconnect" messages over the WebSocket
connections is not good. It should be perfectly enough to just close
the WebSocket connection gracefully using the WebSocket mechanism,
i.e. a frame with the CLOSE opcode. Or just tearing down the socket
without a CLOSE frame. The code needs to be prepared to handle these
situations anyway, especially for the socket talking to the
client. For the internal communication in the process tree,
"disconnect" messages are barely acceptable, if the code is already
written to generate and expect them.
For the moment, we send them from the client too - to distinguish the
browser crash or connection loss from a deliberate shutdown.
We are saving the document in the case we don't get the explicit
'disconnect'. When we move to actually saving the document all
the time automatically, the 'disconnect' message should be removed.
2016-02-26 05:26:21 -06:00
- 'make check' does not work, or fails randomly, unless you have a
freshly started loolwsd with a --numprespawn option that is big
enough, 8 or so. Running 'make check' again without waiting for some
time (or re-starting loolwsd) fails most of the times. But
occasionally it passes. Clearly this is a sign that things do not
work as they should.
2016-02-26 08:52:23 -06:00
- Occasionally Control-C (SIGINT) doesn't shut fown loolwsd. One has
to kill it with SIGKILL. Which of course leaves all the chroot jails
around.