This is compatible with the JavaScript
encodeURIComponent(), which supports
XML embedding.
Change-Id: I38bb64af67789bd5eea3f8f8bdb7f80e313599fb
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
This guarantees that the jail directory is always
created, especially in case mounting fails and
we cleanup and fallback.
Also, move the directory creation and setting
the perms into a helper, and reuse.
Change-Id: If6e9ef86afa5107638aa27050554e94c0af22b6e
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
It seems that on some systems it is possible
to succeed in mounting, but fail to unmount.
This is proving very problematic and it is
best to detect unmount failures and disable
mount-binding altogether.
Change-Id: I6f708b3a1e585dcbd95cced45c668629410562d6
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
This was a regression introduced in
14d96957cd.
The result was that multi-part logs were
not flushed and therefore not written to
the output.
Change-Id: Ib22a1da83209b00872d91ca05a940226cbb4552d
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
...when it's requested.
Previously always an empty string was returned on subsequent
calls, and the error message was only shown once.
Signed-off-by: Aron Budea <aron.budea@collabora.com>
Change-Id: I7645c7770e3e1712c8ef1b3ad145daec14530fb0
Eg. if only the version was changed, config.h was updated, and
everything was recompiled.
New structure, maintain these manually:
config.h.in - for configured variables that are stable if
configuration parameters are unchanged
config_version.h.in - for version/hash related variables
----
config_unused.h.in - still generated by autoheader with all
variables, don't use it
Signed-off-by: Aron Budea <aron.budea@collabora.com>
Change-Id: Id9a50a9f1e798a3b3814778d8683b7d7cb57bb29
There is a race between the time of modifying
a document, receiving the modified flag, and
saving. This can happen when, for example,
the user modifies the document and closes
immediately. In that case, when uploading
we will not have the modified flag and will
not set the User-Modified attribute.
While this isn't 100% accurate, and it can
never be, it's still better to be conservative
and flag a version in storage as user-modified
than otherwise.
Change-Id: Ia504a7cddd4839bcbfeaaf9bf6c90ed8b68efa91
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
When bind-mounting is disabled, we do a best-effort
to unmount any lingering mount-points. This is a
cleanup that helps with leftovers. Here, we
do a debug log level in case the unmounting fails,
and error, otherwise, when bind-mounting is enabled.
Change-Id: I199d6234aebfd84e6be812e5b7d3758273086815
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
This adds support for code-coverage HTML reporting.
To achieve this, we must use file-linking in jails
so that we can update the coverage data (.gcda files)
from the jails. This means that creating jails is
slower than with bind-mounting and we need to
account for that in our timeouts.
We also can't kill child processes with SIGKILL,
which is un-catchable. Instead, we use SIGTERM
and dump the profile data before exiting.
Change-Id: I16fa534f6ed42f7133014d841bb024423315e0a4
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
Compile-time constants are far superior
to hard-coded magic numbers and they
make changing them trivial. We need that
when we enable profiling.
Change-Id: I9ee42fabf3feb1feecb9b76ebca663007e263680
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
Explicit is always better. We also need to
terminate more gracefully when profiling.
Change-Id: I7145cb59583c5d7c6362bbf9c74e9d21799eaa33
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
We need to flush and shutdown logging before exiting,
so we can't use _exit/_Exit directly.
In addition, with profiling (e.g. code-coverage) we
must flush the profile data, lest it's all for naught.
Change-Id: I726c5a2f4e699c17dd0d7d5b1c86d856e0118b3c
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
- adds two new options
1. localize the dialog
2. change upsell image shown in dialog using proxy handler
- provides all the settings using dynamic configuration
Signed-off-by: Rash419 <rashesh.padia@collabora.com>
Change-Id: I7e21c1b31c806c88bf54f891de40f02fa342168f
We now have USR2 signal that dumps the
stack-trace of each process. This is useful for
capturing the state of misbehaving instances.
COOLWSD forwards USR2 to forkit and the kits
so they dump their stacktraces too.
This patch does not change the behavior of USR1.
Specifically, unlike USR2, USR1 is not forwarded
from wsd to frk and the kits. Also unlike USR2,
USR1 dumps into stderr.
Change-Id: I1d82f678f30f430f627692cc42961b1928f69e11
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
SIGUSR2 can now be used to dump the
stacktrace of coolwsd, forkit, and the
kit processes.
Also, support writing signalLog to files.
Although we write to stderr, we normalize
the interface used for signal logging and
allow for writing to any file descriptor.
Change-Id: If6366bb6ddbd9f8863baca52e4f65ebb468dc1f1
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
This replaces the hardcoded STDERR_FILENO
to allow for writing to any file, including
stdout or a redirection to disk, if needed.
Change-Id: I76f6461f46fd4bc035fcf643d01e60c2e3236894
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
In preparation to log to a file in the jail.
This will allow for including the log in the
log file, thus capturing all output from our
thread-group into the same log file.
Change-Id: Ia5c4ed35786d28f5d45f3065919d53f2c8492cb0
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
This simplifies the signal handling setup.
Change-Id: Id121a9df45fc11bfdea627f9828e0b624b1b2284
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
This is to ensure that libgcc is loaded and
backtrace is available during signal handling.
Change-Id: I5bb36b69401dbedf4c991ba7d60d2e806441a625
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
Since the value of the loSubPath (i.e. the directory
name of lo within the jail) is a compile-time constant,
there is no reason to pass it around at runtime.
Change-Id: If7457ea7f3e3fe5c42215eed3ce1ce4c8f328f16
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
This prepares the way to remove loSubPath
being passed around at runtime, which is
completely unnecessary.
Change-Id: I728629e3cb5eb079add4232543319b89a7dc4a2a
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
This is an internal rename of identifiers.
Child-Root is the top-level, configurable, directory
that stores the jails and related directories/files.
A Jail, by contrast, is the directory that contains
the filesyste tree of a Kit process. That is, it's
the directory that is chroot-ed.
To distinguish the two, we shall use "jail" for
the chroot-ed directory, and "child-root" for the
top-level directory.
Change-Id: Ie38b1c350234b75ddd15beb1c6bcdd2e53a82af0
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
This avoids problems with watermarking cross-talking betwene view.
Change-Id: Ifecf098423451bf7de3827dfdf9fdc078a06c5c9
Signed-off-by: Michael Meeks <michael.meeks@collabora.com>
Needs a run-time check to avoid breaking concurrency assumption
during compression.
Change-Id: Icc959693e19b3506497eb1aa198477445085aeb8
Signed-off-by: Michael Meeks <michael.meeks@collabora.com>
if host has regex and group has no aliases, when we receive first request from host pattern we considered it as original host and all the host following first request which matches the pattern are considered as aliases
for example:
<group>
<host>https://.*:80</host>
</group>
if we receives first request from asustuf then behaviour will similar to the following config:
<group>
<host>https://asustuf:80</host>
<alias>https://.*:80</alias>
</group>
Signed-off-by: Rash419 <rashesh.padia@collabora.com>
Change-Id: I70fb91a4bb7bf38ed79db9efd9fe4bc46db325e1
Apparently for some subset of messages (presumably on busy queues)
we have been double compressing the same tiles ...
Change-Id: I79aea4f2162caa8a5b5660c13ae2cae855d90755
Signed-off-by: Michael Meeks <michael.meeks@collabora.com>
No need to complain when bind() didn't fail.
And assert when/if we are going to overflow.
Change-Id: I66f5ff1963c0afc6652afb5a7d017e197d945736
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
We have around ~8k smaps lines for each process, polled regularly.
Change-Id: I7e78b17e52aeaec55fa17c5192a940aa9e44b045
Signed-off-by: Michael Meeks <michael.meeks@collabora.com>