platform/core/system/dlog.git
6 years agolibdlog: close Android Logger connections on exec 06/191706/1
Michal Bloch [Mon, 22 Oct 2018 12:16:18 +0000 (14:16 +0200)]
libdlog: close Android Logger connections on exec

Change-Id: Ib6576073f3c0c7f224a9d0c9605f879a9f347cd0
Signed-off-by: Michal Bloch <m.bloch@samsung.com>
6 years agoutil: optimize dumping instance timezone handling 02/191502/2
Michal Bloch [Wed, 17 Oct 2018 12:08:39 +0000 (14:08 +0200)]
util: optimize dumping instance timezone handling

  We can assume that such instances will not see a timezone
  change happen during their lifetime, and even if they do,
  it is probably best if they ignore it (a dump would ideally
  behave as if it was atomic). This means we can optimize the
  behaviour where printing the timestamp requires us to check
  whether the timezone changed, which involves calling stat()
  on /etc/localtime, which is not cheap on its own and made
  even worse when multiple symlinks are involves.

  glibc has a feature where setting the TZ environmental var
  will cache the timezone, achieving precisely what we want.

Change-Id: I2f5e26a4be81b8f846036282fc1a0bfe02b70b48
Signed-off-by: Michal Bloch <m.bloch@samsung.com>
6 years agoRelease 5.0.3 57/191657/1 submit/tizen/20181019.192244
Michal Bloch [Fri, 19 Oct 2018 19:11:10 +0000 (21:11 +0200)]
Release 5.0.3

Contains fixes and documentation for the recently added
dynamic configuration features:

 * the dlog-doc package now contains a usage guide describing
   the new feature with examples and common mistakes

 * fixed disabling dynamic configuration turning the limiter off as well

 * fixed disabling all buffers being permanent

 * fixed logs being able to slip through a disabled buffer

 * fixed dynamic config behaviour with forked processes

And some miscellaneous fixes:

 * fixed some resource leak and corruption issues

 * fixed some spurious static analysis warnings

 * fixed the config being needlessly read twice by libdlog

 * fixed the daemon not noticing timezone changes for the purpose
   of writing log files (on both backends)

Change-Id: I7acdc373c7acb5ae0b06bc0fe12ad507fd327d30
Signed-off-by: Michal Bloch <m.bloch@samsung.com>
6 years agolibdlog: Do not remove the dynamic filter watch in library destructor 55/191655/3
Karol Lewandowski [Fri, 19 Oct 2018 19:07:44 +0000 (21:07 +0200)]
libdlog: Do not remove the dynamic filter watch in library destructor

Calling inotify_rm_watch() on inotify fd will remove watches for
all processes that share that inotify fd. This means that every
process that uses dlog and forks will have the dynamic config
feature broken.

This commit fixes that by removing the erroneous rm_watch.

Change-Id: If023d75937b5b435e2188aca7f70b57ce964c767

6 years agodocumentation: describe some common mistakes 56/191656/1
Michal Bloch [Fri, 19 Oct 2018 18:56:15 +0000 (20:56 +0200)]
documentation: describe some common mistakes

Change-Id: Ib18b454042a50152bc0815fe42780d2fb8a05004
Signed-off-by: Michal Bloch <m.bloch@samsung.com>
6 years agoFurther documentation improvements 07/191407/3
Michal Bloch [Tue, 16 Oct 2018 12:49:05 +0000 (14:49 +0200)]
Further documentation improvements

 * fix some mistakes in the previous documentation commit
 * in particular, make the txt file actually end up in the doc rpm
 * extend config entry documentation
 * remove unused entries

Change-Id: I6f423ee42f5fc26059ee738909208719e4dd6753
Signed-off-by: Michal Bloch <m.bloch@samsung.com>
6 years agodlog_logger: update timezone at runtime 01/191301/1
Michal Bloch [Mon, 15 Oct 2018 13:40:26 +0000 (15:40 +0200)]
dlog_logger: update timezone at runtime

glibc looks for the existence of the TZ variable and caches the timezone,
preventing extra stat() calls. This saves some performance but also sets
the timezone in stone.

The daemon can afford the performance hit as it is spread gradually over
time.

Change-Id: I15e789a391e7a443c284b4e08d20dd7163eccce5
Signed-off-by: Michal Bloch <m.bloch@samsung.com>
6 years agolibdlog: fix broken limiter with static config 22/191222/1
Michal Bloch [Fri, 12 Oct 2018 14:23:39 +0000 (16:23 +0200)]
libdlog: fix broken limiter with static config

Change-Id: I0ecd8c3327ac12133aa2beb402bc1c52d598926b
Signed-off-by: Michal Bloch <m.bloch@samsung.com>
6 years agolibdlog: fix buffer disabling issues 20/191220/1
Michal Bloch [Fri, 12 Oct 2018 14:15:46 +0000 (16:15 +0200)]
libdlog: fix buffer disabling issues

 - fix reenabling a buffer requiring a log to be
   sent to another already enabled buffer

 - fix one log being able to slip through into a
   disabled buffer if was enabled the previous time

Change-Id: I47af64b8a74da31c24472190f2ab22806d16db26
Signed-off-by: Michal Bloch <m.bloch@samsung.com>
6 years agolibdlog: don't read the config twice 98/190498/2
Michal Bloch [Tue, 2 Oct 2018 11:29:38 +0000 (13:29 +0200)]
libdlog: don't read the config twice

Change-Id: I6c921f264cec7da77da0918ee94f03493f017424
Signed-off-by: Michal Bloch <m.bloch@samsung.com>
6 years agoFix various static analysis warnings. 33/190833/2
Michal Bloch [Fri, 5 Oct 2018 17:17:12 +0000 (19:17 +0200)]
Fix various static analysis warnings.

Change-Id: I2e677130ee43e11abd870bd9647f15bdebde7667
Signed-off-by: Michal Bloch <m.bloch@samsung.com>
6 years agodlogctl: documentation 44/190944/1
Michal Bloch [Tue, 9 Oct 2018 14:22:29 +0000 (16:22 +0200)]
dlogctl: documentation

 * the priority parameter is now `--priority`;
   note that `--prio`, as a contraction, is still accepted.

 * the dynamic config entry is now mentioned in `--help`,
   as is `limiter_apply_to_all_buffers`.

 * add a guide/manual on dlogctl to the documentation folder.
   Contains examples and commentary.

Change-Id: I80ce5f687f68d61efd729dffcfe70941c66ba3ab
Signed-off-by: Michal Bloch <m.bloch@samsung.com>
6 years agoAdd MIT License file 99/190599/1 accepted/tizen/5.0/unified/20181102.020628 accepted/tizen/unified/20181010.061632 submit/tizen/20181005.011712 submit/tizen_5.0/20181101.000004
pr.jung [Thu, 4 Oct 2018 05:02:17 +0000 (14:02 +0900)]
Add MIT License file

Change-Id: I7baea949dc8ffd3a83aca16bddb017fbb91e7f41
Signed-off-by: pr.jung <pr.jung@samsung.com>
6 years agoMerge "dlogctl: add runtime platform logging control" into tizen submit/tizen/20181002.093115
Maciej Slodczyk [Tue, 2 Oct 2018 09:22:57 +0000 (09:22 +0000)]
Merge "dlogctl: add runtime platform logging control" into tizen

6 years agoMerge "Extend the platform logging config values" into tizen
Maciej Slodczyk [Tue, 2 Oct 2018 09:22:55 +0000 (09:22 +0000)]
Merge "Extend the platform logging config values" into tizen

6 years agodlogctl: add runtime platform logging control 48/189648/8
Michal Bloch [Wed, 19 Sep 2018 14:37:36 +0000 (16:37 +0200)]
dlogctl: add runtime platform logging control

The runtime buffer toggling feature can now be exercised using dlogctl.

Example usage:
 $ dlogctl --enable
 $ dlogctl --disable -b main -b system

Change-Id: I1fd6a87b7c1ff74fcdc2c0d4d2985941a3eb7f2d
Signed-off-by: Michal Bloch <m.bloch@samsung.com>
6 years agoRemove svace error 37/190337/1 accepted/tizen/unified/20181002.093426 submit/tizen/20181001.071210 submit/tizen/20181002.010047
pr.jung [Mon, 1 Oct 2018 05:32:50 +0000 (14:32 +0900)]
Remove svace error

Change-Id: I6b1b82251e219a980743e7c9cc5e780bb7902dfd
Signed-off-by: pr.jung <pr.jung@samsung.com>
6 years agoMerge "libdlog: separate limiter and dynamic config" into tizen
Michal Bloch [Fri, 28 Sep 2018 14:22:31 +0000 (14:22 +0000)]
Merge "libdlog: separate limiter and dynamic config" into tizen

6 years agoMerge "Rename dynamic filters to dynamic config" into tizen
Michal Bloch [Fri, 28 Sep 2018 14:20:46 +0000 (14:20 +0000)]
Merge "Rename dynamic filters to dynamic config" into tizen

6 years agoExtend the platform logging config values 47/189647/7
Michal Bloch [Fri, 7 Sep 2018 13:50:32 +0000 (15:50 +0200)]
Extend the platform logging config values

  `plog` is a config value which controls whether platform logging is enabled,
  i.e. whether logs are even sent to the respective buffers. This is a global
  setting that affects all libdlog users indiscriminately but is very fast,
  unlike filters which have fine-grained control over who gets to log and how
  much but involve some processing.

 * `enable_X` can now be set to control this per buffer, for example to only
   control the `main` buffer, use `enable_main`. This overrides the global
   default from the `plog` value.

 * this can be set dynamically in the runtime config file, similar to filters.

 * the generic `plog` config value still works as a default for the three
   original buffers (`main`, `system`, `radio`) but can be overridden by
   the per-buffer settings. The `apps` buffer does not obey this setting
   and can only be controlled per-buffer. This is for backward compatibility.

Change-Id: I1c0facfe54e5aebeb28a54c808b93ddd1cff5125
Signed-off-by: Michal Bloch <m.bloch@samsung.com>
6 years agolibdlog: separate limiter and dynamic config 32/190032/3
Michal Bloch [Mon, 24 Sep 2018 17:27:49 +0000 (19:27 +0200)]
libdlog: separate limiter and dynamic config

Other dynamic features no longer require limiter to be enabled.

Change-Id: I0cbb8b4b2055397afffb23a0132acbb15b319420
Signed-off-by: Michal Bloch <m.bloch@samsung.com>
6 years agoRename dynamic filters to dynamic config 31/190031/3
Michal Bloch [Mon, 24 Sep 2018 14:34:40 +0000 (16:34 +0200)]
Rename dynamic filters to dynamic config

Filters are just one of the many config entries and there are plans
to make others available in the dynamic API.

So far this is just a rename with no logic changes. In particular,
the dynamic API is still enabled alongside limiter for the time being.
This is to make actual logic changes easier to track.

Change-Id: I39296f07a0fe9f8c36ac244f9b790e16bdaa173c
Signed-off-by: Michal Bloch <m.bloch@samsung.com>
6 years agodlog_logger daemon: make device throttling value buffer-specific 08/190008/4
Maciej Slodczyk [Tue, 25 Sep 2018 15:42:51 +0000 (17:42 +0200)]
dlog_logger daemon: make device throttling value buffer-specific

Change-Id: Ib8ffca5500d7eed2a9a83ee5621aa7e29fc0de2d
Signed-off-by: Maciej Slodczyk <m.slodczyk2@partner.samsung.com>
6 years agodlog_logger daemon: configurable device throttling 15/189915/5
Michal Bloch [Fri, 14 Sep 2018 13:53:27 +0000 (15:53 +0200)]
dlog_logger daemon: configurable device throttling

The `logger_dev_throttling` config value controls how many logs
the daemon will try to read at once from an Android Logger device.

Use with caution as this affects how a busy buffer will affect others:
 - a higher value means it is more likely to starve them
 - a lower one means it can lose logs itself

Change-Id: I7e4e67e64782456a8ee7f4467ab46151a435d3ae
Signed-off-by: Michal Bloch <m.bloch@samsung.com>
6 years agoChange /run/dlog/filters.d permission 23/190123/2
Hyotaek Shim [Thu, 27 Sep 2018 06:21:31 +0000 (15:21 +0900)]
Change /run/dlog/filters.d permission

(Before)
drwxr-xr-x  2 log  log          System::Run

(After)
drwxrwxr-x  2 log  log          System::Shared

...
User::Pkg::org.tizen.privacy-setting System::Run rwxat
^ System::Run rwxat
User System::Run rwxat
User::Shell System::Run rxl
System::TEF System::Run rwxat
System::Privileged System::Run rwxat
_ System::Run rwxat
System System::Run rwxat

...
User::Pkg::org.tizen.privacy-setting System::Shared rxl
User System::Shared rxl
User::Shell System::Shared rxl
System::TEF System::Shared rwxat
System::Privileged System::Shared rwxat
System System::Shared rwxat

/run/dlog/filters.d can only be updated by
1) 'root' shell (System::Privileged)
2) sdbd-forked processes ('log' gid + System)

Change-Id: I25875e09da720ca2d7be08216e1d7b60ee999b36
Signed-off-by: Hyotaek Shim <hyotaek.shim@samsung.com>
[ Added Smack's transmute xattr to ensure files under filters.d receive appropriate label. ]
Signed-off-by: Karol Lewandowski <k.lewandowsk@samsung.com>
6 years agodlogctl: make a cleanup function more generic 46/189646/3 accepted/tizen/unified/20180928.080526 submit/tizen/20180927.030248
Michal Bloch [Mon, 17 Sep 2018 14:31:50 +0000 (16:31 +0200)]
dlogctl: make a cleanup function more generic

There's no reason to limit the "free pointer" cleanup just to `char`.

Change-Id: I6fbca39c0f4e76673977a242ab812b96b53eb883
Signed-off-by: Michal Bloch <m.bloch@samsung.com>
6 years agodlogctl: document dump mode in help 76/189676/1
Michal Bloch [Wed, 19 Sep 2018 14:25:35 +0000 (16:25 +0200)]
dlogctl: document dump mode in help

Change-Id: I6855164bb20b0fafa9eb073088351f2cc4d4e780
Signed-off-by: Michal Bloch <m.bloch@samsung.com>
6 years agoChange /bin/dlogctl permission 23/188923/2
Hyotaek Shim [Wed, 12 Sep 2018 02:04:12 +0000 (11:04 +0900)]
Change /bin/dlogctl permission

-rwxr-x--- log log System::Tools /bin/dlogctl

User System::Tools rx
User::Shell System::Tools rx
System::TEF System::Tools rx
System::Privileged System::Tools rx
System System::Tools rx

Change-Id: If16d7aaa96373748113020c8bdafecceac280714
Signed-off-by: Hyotaek Shim <hyotaek.shim@samsung.com>
6 years agoAdd license file on all rpm packages 49/188849/1 accepted/tizen/unified/20180912.061604 submit/tizen/20180911.060541
pr.jung [Tue, 11 Sep 2018 05:47:14 +0000 (14:47 +0900)]
Add license file on all rpm packages

Change-Id: I6f6cf183704a834d5894504d01c07d3a7e5bf943
Signed-off-by: pr.jung <pr.jung@samsung.com>
6 years agoMerge "dlogfilterctl: add information about rule type when dumping" into tizen
Michal Bloch [Thu, 6 Sep 2018 13:16:41 +0000 (13:16 +0000)]
Merge "dlogfilterctl: add information about rule type when dumping" into tizen

6 years agodlogfilterctl: add information about rule type when dumping 40/187940/4
Maciej Slodczyk [Wed, 29 Aug 2018 15:19:34 +0000 (17:19 +0200)]
dlogfilterctl: add information about rule type when dumping

Change-Id: Iae7efbc2150f3dfb73971843438ce12946a27f5a
Signed-off-by: Maciej Slodczyk <m.slodczyk2@partner.samsung.com>
6 years agologctl: add long versions of command line options 96/188596/4
Maciej Slodczyk [Thu, 6 Sep 2018 11:04:33 +0000 (13:04 +0200)]
logctl: add long versions of command line options

Change-Id: Iff071d7240d903268b172b28ab87cc7444623bb3
Signed-off-by: Maciej Slodczyk <m.slodczyk2@partner.samsung.com>
6 years agofilters: rename dlogfilterctl to dlogctl 94/188594/3
Maciej Slodczyk [Thu, 6 Sep 2018 10:16:09 +0000 (12:16 +0200)]
filters: rename dlogfilterctl to dlogctl

Change-Id: I6dcab12485ca71d9e5ba611d40903334852be24a
Signed-off-by: Maciej Slodczyk <m.slodczyk2@partner.samsung.com>
6 years agotestsuite: add extended sorting tests 01/188401/3
Maciej Slodczyk [Tue, 4 Sep 2018 15:27:56 +0000 (17:27 +0200)]
testsuite: add extended sorting tests

dlogutil now sorts by timestamp selected by the format
argument. Add relevant tests to the testsuite.

Change-Id: I4b6877c817e803221e804988c886b912185185e7
Signed-off-by: Maciej Slodczyk <m.slodczyk2@partner.samsung.com>
6 years agoupgrade: remove unused script files. 96/188496/1
INSUN PYO [Wed, 18 Jul 2018 06:24:49 +0000 (15:24 +0900)]
upgrade: remove unused script files.

Signed-off-by: INSUN PYO <insun.pyo@samsung.com>
Change-Id: I4e2029364191eec819922c63b79d8fb4e4251005

6 years agoMinor dlogfilterctl dump improvements 94/188294/2 accepted/tizen/unified/20180905.140141 submit/tizen/20180905.013814
Michal Bloch [Mon, 3 Sep 2018 11:56:54 +0000 (13:56 +0200)]
Minor dlogfilterctl dump improvements

 * fix a resource leak
 * make output text consistent with -g

Change-Id: I473198c437bcc6e1476c823deaca7d1170d96e77
Signed-off-by: Michal Bloch <m.bloch@samsung.com>
6 years agocoverity fix 11/188311/1 accepted/tizen/unified/20180904.180632 submit/tizen/20180904.022921
sanghyeok.oh [Tue, 4 Sep 2018 01:29:56 +0000 (10:29 +0900)]
coverity fix

Change-Id: Idc69a7eb3c3f1d16df0023df3eaf30013539dcd8
Signed-off-by: sanghyeok.oh <sanghyeok.oh@samsung.com>
6 years agolcov: added excluding line 72/188072/1 accepted/tizen/unified/20180904.062847 submit/tizen/20180831.105137 submit/tizen/20180903.063948 submit/tizen/20180903.103359
sanghyeok.oh [Fri, 31 Aug 2018 04:32:21 +0000 (13:32 +0900)]
lcov: added excluding line

Change-Id: If6e9d5f47c784c436d6376f1e03412e0372f32e7
Signed-off-by: sanghyeok.oh <sanghyeok.oh@samsung.com>
6 years agodlogfilterctl: allow dumping all rules 27/187927/4
Maciej Slodczyk [Wed, 29 Aug 2018 12:36:03 +0000 (14:36 +0200)]
dlogfilterctl: allow dumping all rules

Change-Id: I2f128778561b520a6cf8f8ac767ee8d5579c03d7
Signed-off-by: Maciej Slodczyk <m.slodczyk2@partner.samsung.com>
6 years agoMinor fix on macro api alignment 01/187901/1
Hyotaek Shim [Wed, 29 Aug 2018 08:48:05 +0000 (17:48 +0900)]
Minor fix on macro api alignment

Change-Id: Ic8f63f1a5f0f231c0c5a23cf9fa59bad1415da92
Signed-off-by: Hyotaek Shim <hyotaek.shim@samsung.com>
6 years agoFix various SVACE static analysis warnings 64/187464/3 accepted/tizen/unified/20180831.061032 submit/tizen/20180829.051003
Michal Bloch [Wed, 22 Aug 2018 16:41:11 +0000 (18:41 +0200)]
Fix various SVACE static analysis warnings

Change-Id: I1ff2570548bab4e7877380633529ecdc7fafd22a
Signed-off-by: Michal Bloch <m.bloch@samsung.com>
6 years agolimiter: add a config variable to apply limiter rules to all buffers 13/187813/1
Maciej Slodczyk [Tue, 28 Aug 2018 12:02:19 +0000 (14:02 +0200)]
limiter: add a config variable to apply limiter rules to all buffers

Change-Id: I59936632495031b5caee1e8d6ae7821f8b166bfb
Signed-off-by: Maciej Slodczyk <m.slodczyk2@partner.samsung.com>
6 years agoRelease dlog 5.0.2 78/187678/1 submit/tizen/20180827.144207
Maciej Slodczyk [Mon, 27 Aug 2018 14:39:21 +0000 (16:39 +0200)]
Release dlog 5.0.2

- fix missing filters config file error

Change-Id: Ib9e3301cfe9c193b69e913cc22782ffe9b9646fe
Signed-off-by: Maciej Slodczyk <m.slodczyk2@partner.samsung.com>
6 years agofilters: don't treat missing config file on startup as an error 62/187662/1
Maciej Slodczyk [Mon, 27 Aug 2018 09:40:07 +0000 (11:40 +0200)]
filters: don't treat missing config file on startup as an error

Change-Id: I2cea1696d08100a9ad93414271fbf74ba935c867
Signed-off-by: Maciej Slodczyk <m.slodczyk2@partner.samsung.com>
6 years agoRelease dlog 5.0.1 90/187590/1 accepted/tizen/unified/20180827.071503 submit/tizen/20180824.105725
Maciej Slodczyk [Fri, 24 Aug 2018 10:31:33 +0000 (12:31 +0200)]
Release dlog 5.0.1

New features:
- runtime filters configuration
- dlogutil sorting enhancements

Change-Id: I69bed93149a54bc5892f10407d93235a5faefda1
Signed-off-by: Maciej Slodczyk <m.slodczyk2@partner.samsung.com>
6 years agoSort out default filters config file location 86/187586/2
Maciej Slodczyk [Fri, 24 Aug 2018 10:22:22 +0000 (12:22 +0200)]
Sort out default filters config file location

Change-Id: I8d2c2ca9a491d8fb50bd639f209e46f3edf1eef6
Signed-off-by: Maciej Slodczyk <m.slodczyk2@partner.samsung.com>
6 years agoImprove documentation 69/187469/2 submit/sorting/20180823.145108 submit/tizen/20180823.145725
Michal Bloch [Thu, 23 Aug 2018 11:07:00 +0000 (13:07 +0200)]
Improve documentation

Change-Id: I6359ddf9e578c49f891083cc3ff31abc7fb90c5c
Signed-off-by: Michal Bloch <m.bloch@samsung.com>
6 years agoutil: no sorting if not needed 48/185948/7
Michal Bloch [Fri, 3 Aug 2018 18:34:50 +0000 (20:34 +0200)]
util: no sorting if not needed

As long as the log source (the daemon, or Android Logger devices) sorts
logs, util does not have to.

Change-Id: I6262a29bc3db5ae2f43a3aac0a13f45deb215fec
Signed-off-by: Michal Bloch <m.bloch@samsung.com>
6 years agoRelax sorting constraints 49/187449/2
Michal Bloch [Fri, 3 Aug 2018 18:34:50 +0000 (20:34 +0200)]
Relax sorting constraints

Use a similar timestamp if one is missing instead of
disallowing that sorting altogether.

Change-Id: I31415926535b5ae2f43a3aac0a13f45deb215fec
Signed-off-by: Michal Bloch <m.bloch@samsung.com>
6 years agoutil: sort based on output format 47/185947/5
Michal Bloch [Fri, 3 Aug 2018 18:13:35 +0000 (20:13 +0200)]
util: sort based on output format

Different output formats use different timestamps.
Util now sorts according to desired format to make sure that
the timestamp shown is consistent.

Change-Id: I685fb209526117f7d17930c71fa751d5005ce803

6 years agoutil: format out of order message as a log entry 90/185790/4
Maciej Slodczyk [Thu, 2 Aug 2018 09:18:33 +0000 (11:18 +0200)]
util: format out of order message as a log entry

To prevent SDK log parsers errors, when an out of
order message is printed, it has to be formatted
in the same way as other entries.

Change-Id: I004bb4a3d1dc58b1a81f80e668efe71f07987bdf
Signed-off-by: Maciej Slodczyk <m.slodczyk2@partner.samsung.com>
6 years agoutil: use dynamic timestamp-oriented functions 45/185945/3
Michal Bloch [Wed, 1 Aug 2018 13:02:40 +0000 (15:02 +0200)]
util: use dynamic timestamp-oriented functions

Timestamps are now handled by functions that can choose between the
various timestamp forms. They actual choice is still hardcoded but
now there is a framework to easily change this.

Change-Id: I6a2f63037aae7f31e6ad320cd831595aa44aa00f
Signed-off-by: Michal Bloch <m.bloch@samsung.com>
6 years agolibdlog: log critical runtime filter errors 12/185412/9
Michal Bloch [Mon, 20 Aug 2018 13:13:02 +0000 (15:13 +0200)]
libdlog: log critical runtime filter errors

Change-Id: I4fede410764231bc2507348816c0ba3dbaa01c55
Signed-off-by: Michal Bloch <m.bloch@samsung.com>
6 years agolibdlog: runtime filtering tests 60/186260/11
Maciej Slodczyk [Wed, 8 Aug 2018 10:26:02 +0000 (12:26 +0200)]
libdlog: runtime filtering tests

Change-Id: Ice1f9f0fe912786b3a830265a0ccf22f601cf42a
Signed-off-by: Maciej Slodczyk <m.slodczyk2@partner.samsung.com>
6 years agoAdd dlogfilterctl: controls dynamic filters 17/186017/8
Michal Bloch [Mon, 6 Aug 2018 12:12:53 +0000 (14:12 +0200)]
Add dlogfilterctl: controls dynamic filters

Change-Id: If351b07c112bc3c53e10836f49af16127b29f24a
Signed-off-by: Michal Bloch <m.bloch@samsung.com>
6 years agolimiter: add a way to get applicable rules 90/186290/7
Michal Bloch [Mon, 20 Aug 2018 13:10:42 +0000 (15:10 +0200)]
limiter: add a way to get applicable rules

Returns all applicable rules, including the shadowed ones so as to know
which rules would be in effect if the currently applicable one was removed.

Change-Id: I32c6bac5cd2ae4506e2c0942989fb19d608a2cb9
Signed-off-by: Michal Bloch <m.bloch@samsung.com>
6 years agolibdlog: runtime filtering 43/184643/14
Michal Bloch [Mon, 23 Jul 2018 16:35:43 +0000 (18:35 +0200)]
libdlog: runtime filtering

Change-Id: I5d82d5db6022e6d1617ad3414d817376c4429450
Signed-off-by: Michal Bloch <m.bloch@samsung.com>
6 years agolidbdlog limiter: allow updating the ruleset 39/186139/4
Michal Bloch [Tue, 7 Aug 2018 11:42:45 +0000 (13:42 +0200)]
lidbdlog limiter: allow updating the ruleset

Do not cleanup the ruleset after turning it into a hashmap to allow reuse.

Change-Id: Id45171ba8c60f4f4e39789309276a06208deaef9
Signed-off-by: Michal Bloch <m.bloch@samsung.com>
6 years agoutil: cleanup backend reading 44/185944/2
Michal Bloch [Wed, 1 Aug 2018 10:37:42 +0000 (12:37 +0200)]
util: cleanup backend reading

Change-Id: I99b7b0d050a5ed66fcc6649f8287692c7929bcdc
Signed-off-by: Michal Bloch <m.bloch@samsung.com>
6 years agoutil: disallow mixing KMSG and other buffers 53/185653/4
Michal Bloch [Wed, 1 Aug 2018 09:38:18 +0000 (11:38 +0200)]
util: disallow mixing KMSG and other buffers

KMSG does not have the REALTIME_SENT timestamp available.
Meanwhile under the Android Logger backend the only timestamp available
is REALTIME_SENT. This makes it impossible to correctly sort logs and
complicates the design.

Change-Id: Ieedce46b2afe2428217c0ce895ba68c2fc77516f
Signed-off-by: Michal Bloch <m.bloch@samsung.com>
6 years agoshared: syslog logging accepts printf-like params 43/184743/7
Michal Bloch [Fri, 20 Jul 2018 18:30:14 +0000 (20:30 +0200)]
shared: syslog logging accepts printf-like params

Fixes missing path name in one of the error logs and is convenient.

Change-Id: Ic6aaa86b92f673402aa2bc5095ee5984b9998745
Signed-off-by: Michal Bloch <m.bloch@samsung.com>
6 years agoshared: add a bunch of sorting helper functions 46/185946/2
Michal Bloch [Fri, 3 Aug 2018 09:46:38 +0000 (11:46 +0200)]
shared: add a bunch of sorting helper functions

 * sorting order -> clock type mapping
 * format -> sorting order mapping
 * config -> sorting order getter

Change-Id: I7af5029f7ed9a4ba74bb34f09cc210f625109dd4
Signed-off-by: Michal Bloch <m.bloch@samsung.com>
6 years agolibdlog limiter: safer pointer handling 40/184840/4
Michal Bloch [Wed, 1 Aug 2018 17:34:12 +0000 (19:34 +0200)]
libdlog limiter: safer pointer handling

The destructor functions now nullify the passed pointer.
This reduces some duplication but more importantly makes
sure there can be no double free.

Improve some precondition checks (asserts).

Change-Id: I21a443aebf6787c1903e971bc5fa5ad706a29612
Signed-off-by: Michal Bloch <m.bloch@samsung.com>
6 years agolibdlog: isolate limiter creation 95/185795/3
Michal Bloch [Wed, 1 Aug 2018 17:17:50 +0000 (19:17 +0200)]
libdlog: isolate limiter creation

Limiter no longer checks whether it is enabled on construction,
it is now the caller's responsibility. This allows to construct
limiter with a limited config (for example containing just the
ruleset) and possibly to add extra rules between deciding to use
the limiter and actually creating it (so that the extras needn't
be loaded if opting out of the feature).

Change-Id: I8e6a4ad06c782f17e47cd5e90a73a150cf327eb3
Signed-off-by: Michal Bloch <m.bloch@samsung.com>
6 years agolibdlog: move limiter functions to loglimiter.c 42/184742/7
Michal Bloch [Wed, 1 Aug 2018 16:55:58 +0000 (18:55 +0200)]
libdlog: move limiter functions to loglimiter.c

Change-Id: I6ce8da53239257e1491b4cc184352f2bc596c0e2
Signed-off-by: Michal Bloch <m.bloch@samsung.com>
6 years agolibdlog limiter: fix duplicate rule handling 31/184831/4
Michal Bloch [Mon, 23 Jul 2018 11:07:25 +0000 (13:07 +0200)]
libdlog limiter: fix duplicate rule handling

A duplicate rule now updates the existing one instead of making a new one.

Change-Id: I96c3f6188495eb8a1eaffd0ac97b6061893a8e77
Signed-off-by: Michal Bloch <m.bloch@samsung.com>
6 years agolimiter: simplify code 55/186155/3
Michal Bloch [Tue, 7 Aug 2018 13:36:10 +0000 (15:36 +0200)]
limiter: simplify code

Change-Id: I28644362b8e749aa0df94236d6b98f3ef8658652
Signed-off-by: Michal Bloch <m.bloch@samsung.com>
6 years agodaemon: add sorting by selected timestamp 58/183558/9
Maciej Slodczyk [Fri, 6 Jul 2018 12:10:29 +0000 (14:10 +0200)]
daemon: add sorting by selected timestamp

In-daemon sorting feature allowed only to sort entries by
their default send timestamp. This patch adds a config entry
that allows to change that behavior and select a timestamp
to sort by from the list of: send monotonic, send realtime,
receive monotonic and receive realtime.

Change-Id: I28e6f6d714a3793c05934e733e4656e54a482508
Signed-off-by: Maciej Slodczyk <m.slodczyk2@partner.samsung.com>
6 years agoFix dlog-to-Dlog and Dlogutil-to-dlogutil on documentation
Hyotaek Shim [Tue, 7 Aug 2018 07:56:28 +0000 (16:56 +0900)]
Fix dlog-to-Dlog and Dlogutil-to-dlogutil on documentation

Change-Id: I34c55cf7e5b9a6feacd3b9eee013ad2842dde372
Signed-off-by: Hyotaek Shim <hyotaek.shim@samsung.com>
6 years agosvace fix 82/184982/1 accepted/tizen/unified/20180802.090201 submit/tizen/20180730.022401
sanghyeok.oh [Wed, 25 Jul 2018 02:55:40 +0000 (11:55 +0900)]
svace fix

Change-Id: I61bb4355468d3bb177b0bb35b80a069cf3e6a2b9
Signed-off-by: sanghyeok.oh <sanghyeok.oh@samsung.com>
6 years agolibdlog: Change prio/tag params order for consistency with other functions 87/184687/1
Karol Lewandowski [Fri, 20 Jul 2018 06:36:10 +0000 (08:36 +0200)]
libdlog: Change prio/tag params order for consistency with other functions

Change-Id: I51cfc0e7b2679a4f551aefb64cbb04665fd14dc4

6 years agoutil: "generic" functions are actually pipe only 68/177268/3 accepted/tizen/unified/20180713.160204 submit/tizen/20180712.015849
Michal Bloch [Thu, 26 Apr 2018 11:50:46 +0000 (13:50 +0200)]
util: "generic" functions are actually pipe only

With the removal of binary files, the "generic" functions have
now become pipe-only. Reflect this in their names and location.

Change-Id: I0980d55a1bb573fc447567eaebe2dad48bf7ccfc
Signed-off-by: Michal Bloch <m.bloch@samsung.com>
6 years agoadd monotonic send timestamp when using android backend 36/169836/24
Maciej Slodczyk [Fri, 9 Feb 2018 13:09:28 +0000 (14:09 +0100)]
add monotonic send timestamp when using android backend

feature is experimental and can be enabled/disabled with
autoconf's configure script command line option

Change-Id: I99b35d704789df343cfd051f7984c36d8b602709
Signed-off-by: Maciej Slodczyk <m.slodczyk2@partner.samsung.com>
6 years agoadd realtime send timestamp when using pipe backend 35/169835/22
Maciej Slodczyk [Fri, 9 Feb 2018 13:06:41 +0000 (14:06 +0100)]
add realtime send timestamp when using pipe backend

Since kmsg has only monotonic send timestamp and syslog only realtime,
pipe backend should support both of them to be able to compare send timestamps
with both kmsg and syslog.

Change-Id: Ica48365ae4f287257168ce4d3737abb255fcd73b
Signed-off-by: Maciej Slodczyk <m.slodczyk2@partner.samsung.com>
6 years agosort out send/receive timestamp names in structures 34/169834/22
Maciej Slodczyk [Fri, 9 Feb 2018 13:04:14 +0000 (14:04 +0100)]
sort out send/receive timestamp names in structures

Split the 'time sent' time stamp into two fields (one for each clock
type), allowing each log to potentially keep both for flexibility.

Change-Id: I17df2878acf3f784ead839607d7d6db717b84749
Signed-off-by: Maciej Slodczyk <m.slodczyk2@partner.samsung.com>
6 years agoadd information when an entry is printed out of order 53/183453/7
Maciej Slodczyk [Thu, 5 Jul 2018 11:50:58 +0000 (13:50 +0200)]
add information when an entry is printed out of order

Sometimes an entry is delivered to dlog with a delay longer
than sorting window and needs to be printed out of order.
Add information when it happens to minimize the risk of
confusion

Change-Id: I1b0913ad4755899b9000e2707193f07c3cdc9931
Signed-off-by: Maciej Slodczyk <m.slodczyk2@partner.samsung.com>
6 years agotestsuite: test sorting by send timestamp 26/183226/4
Maciej Slodczyk [Tue, 3 Jul 2018 11:06:45 +0000 (13:06 +0200)]
testsuite: test sorting by send timestamp

Sorting is now done by send timestamp. This is because
logs received from Android Logger devices don't contain
a recv timestamp which prevents dlogutil from actually
sorting them at all (it adds the recv timestamp on its
own, which is useless for both sorting and printing)

Change-Id: I7f0a060e718918a5269394ffa1bb221a63c7493a
Signed-off-by: Maciej Slodczyk <m.slodczyk2@partner.samsung.com>
6 years agoutil: implement a better sorting heuristic 90/149890/15
Michal Bloch [Wed, 25 Apr 2018 12:47:59 +0000 (14:47 +0200)]
util: implement a better sorting heuristic

Peek at each buffer's entry and add the oldest one to the sorting container.
Notably, this is fairly similar to how the original dlogutil worked.

Change-Id: I6f3bb33f38f37828a2153d44f801e71280541bf4
Signed-off-by: Michal Bloch <m.bloch@samsung.com>
6 years agoutil: add peeking at a buffered log 19/177119/5
Michal Bloch [Wed, 25 Apr 2018 12:23:47 +0000 (14:23 +0200)]
util: add peeking at a buffered log

Not yet used, but needed for the implementation of the sorting heuristic.

Change-Id: I451e9f138a9862799defbf536553411ba22ac21b
Signed-off-by: Michal Bloch <m.bloch@samsung.com>
6 years agoutil: read all ready log sources each iteration 78/158878/21
Michal Bloch [Mon, 16 Apr 2018 13:02:50 +0000 (15:02 +0200)]
util: read all ready log sources each iteration

This is necessary to be able to implement the "pick oldest" heuristic.

It should also result in a slight increase in sorting quality even now,
but this is mostly an afterthought.

Change-Id: Ic0e03bca96744c56cf19e6cc58954f83f6d3ac9c
Signed-off-by: Michal Bloch <m.bloch@samsung.com>
6 years agoutil: fix duplicated logs with backup buffers 70/183470/1 accepted/tizen/unified/20180706.062151 submit/tizen/20180705.230400
Michal Bloch [Thu, 5 Jul 2018 17:01:32 +0000 (19:01 +0200)]
util: fix duplicated logs with backup buffers

If a buffer's primary device is unavailable, another can serve as
a backup. This feature has existed for a long time in libdlog, yet
dlogutil did not know about it. Thus, printing from a buffer would
fail if it used a backup device.

Recently this has been changed so that dlogutil prints logs from the
device that actually handles the buffer. This encapsulates the backup
feature and allows users to retrieve their logs without requiring any
knowledge of the backup mechanism, but fails when printing multiple
buffers that are being handled by the same device, resulting in log
duplication.

This patch fixes that failure mode by preventing devices from being
opened multiple times.

Change-Id: Iad43200da8f544a1e920182d7ec814fb917c402f
Signed-off-by: Michal Bloch <m.bloch@samsung.com>
6 years agoutil: make log_len Android Logger backend specific 89/175089/5
Michal Bloch [Fri, 6 Apr 2018 13:55:48 +0000 (15:55 +0200)]
util: make log_len Android Logger backend specific

Under the pipe backend, it is the daemon who decides when to stop
sending more logs when dumping so util does not need to keep track.

Change-Id: I53aea552e8fd4bda2857dc63cef40d9f91f1b4d7
Signed-off-by: Michal Bloch <m.bloch@samsung.com>
6 years agokmsg parser uses supplied priority and facility 85/177385/4 accepted/tizen/unified/20180704.153959 submit/tizen/20180704.010647
Michal Bloch [Fri, 27 Apr 2018 12:55:29 +0000 (14:55 +0200)]
kmsg parser uses supplied priority and facility

Previously it was ignored and set to ERROR/"DEVKMSG".

Change-Id: Icaf481b741459d2053b4b2f73c51c2b2e465dd38
Signed-off-by: Michal Bloch <m.bloch@samsung.com>
6 years agoshared: split up queued_entry into separate files 84/177384/4
Michal Bloch [Fri, 27 Apr 2018 12:54:37 +0000 (14:54 +0200)]
shared: split up queued_entry into separate files

queued_entry used to contain a bunch of things that happened to use
one another but weren't otherwise related. Split them up to make the
files more specific and easier to navigate.

Change-Id: Ie709e7d9261bbd484d6e13fcceaa9fce495782cc
Signed-off-by: Michal Bloch <m.bloch@samsung.com>
6 years agoFix test contamination when missing apps AL device 18/183018/2
Michal Bloch [Fri, 29 Jun 2018 17:09:58 +0000 (19:09 +0200)]
Fix test contamination when missing apps AL device

Some devices have neither `/dev/log_apps` nor `/dev/log_events`
and so any `apps` logs end up in `main`. For testing we disable
other users from writing to `main` but not to `apps`, so the
redirection contaminates the testing environment.

Change-Id: I915e295c188319e4fe3a0c9403df17b163f15425
Signed-off-by: Michal Bloch <m.bloch@samsung.com>
6 years agologger: stop at first found buffer file even when unable to open it 45/182845/2
Maciej Slodczyk [Thu, 28 Jun 2018 09:15:34 +0000 (11:15 +0200)]
logger: stop at first found buffer file even when unable to open it

When trying to open a buffer device file from a list of possible
paths, make the process stop at first file that exists even if it
has no permissions to open that file. This will prevent from
opening a wrong or fallback buffer.

Change-Id: Iad6cc0154fc173066456395bfb1863ff4ccf27d9
Signed-off-by: Maciej Slodczyk <m.slodczyk2@partner.samsung.com>
6 years agotestsuite: add information when logger daemon dies during tests 91/182391/9
Maciej Slodczyk [Fri, 22 Jun 2018 12:42:16 +0000 (14:42 +0200)]
testsuite: add information when logger daemon dies during tests

Change-Id: If8abee87351465d68d37918b8562692ed31b958c
Signed-off-by: Maciej Slodczyk <m.slodczyk2@partner.samsung.com>
6 years agologger: add 'main' buffer as a fallback for other buffers 89/182389/10
Maciej Slodczyk [Thu, 21 Jun 2018 15:16:06 +0000 (17:16 +0200)]
logger: add 'main' buffer as a fallback for other buffers

Change-Id: Ic5399c4226cf008d0bd57108ba960e99509a3bb6
Signed-off-by: Maciej Slodczyk <m.slodczyk2@partner.samsung.com>
6 years agologger: eliminate possible bug when copying strings 88/182388/10
Maciej Slodczyk [Thu, 21 Jun 2018 15:08:29 +0000 (17:08 +0200)]
logger: eliminate possible bug when copying strings

The strncpy() call may result in unterminated
string bug if a source does not contain a string
termination byte in specified length.

Change-Id: I17a0a474d1e7589ba3ae4172e28c102f56bdc37b
Signed-off-by: Maciej Slodczyk <m.slodczyk2@partner.samsung.com>
6 years agologger: eliminate race condition in opening a buffer file 87/182387/10
Maciej Slodczyk [Thu, 21 Jun 2018 12:45:53 +0000 (14:45 +0200)]
logger: eliminate race condition in opening a buffer file

With a patch that allows specifying multiple buffer paths
in config file a race condition was introduced: the
existence of a buffer file was checked with access() in a loop,
then the one that was found was opened with open(). Now, the
access() call is eliminated, the file is opened immediately.

Change-Id: Ieda1219eef8457e0c1f21ad1d4a2112a933f39a4
Signed-off-by: Maciej Slodczyk <m.slodczyk2@partner.samsung.com>
6 years agotestsuite: add README file 02/182002/5
Maciej Slodczyk [Tue, 19 Jun 2018 13:55:39 +0000 (15:55 +0200)]
testsuite: add README file

Change-Id: I4f1a0bab9b1ca6bc8cbe455ec751096271a7b87b

6 years agologger: allow specifying multiple buffer paths in config file 53/181553/9
Maciej Slodczyk [Thu, 14 Jun 2018 15:32:31 +0000 (17:32 +0200)]
logger: allow specifying multiple buffer paths in config file

Change-Id: I53b87c26265b4c7774116c4f242abbc8149014b7
Signed-off-by: Maciej Slodczyk <m.slodczyk2@partner.samsung.com>
6 years agolcov: added excluding line 09/181009/4
sanghyeok.oh [Thu, 7 Jun 2018 07:59:12 +0000 (16:59 +0900)]
lcov: added excluding line

Change-Id: I41e6d5102c740d60ae3bb3aece09a769afe68bac
Signed-off-by: sanghyeok.oh <sanghyeok.oh@samsung.com>
6 years agoutil: improve formats (-v) documentation 48/181548/2
Michal Bloch [Thu, 14 Jun 2018 14:45:28 +0000 (16:45 +0200)]
util: improve formats (-v) documentation

Add a description of how each format looks
and what some of the values mean.

Change-Id: I2c90c26ceb12af04652ce75bd4a0ee57e819aa05
Signed-off-by: Michal Bloch <m.bloch@samsung.com>
6 years agotestsuite: supress stderr messages from subcommands during tests 51/181551/2 accepted/tizen/unified/20180619.142039 submit/tizen/20180619.052936
Maciej Slodczyk [Wed, 13 Jun 2018 15:45:48 +0000 (17:45 +0200)]
testsuite: supress stderr messages from subcommands during tests

Change-Id: I92285b5c8f4433db5157acccf4b245ac99d46592

6 years agopackaging: logger: Ensure logger device node permissions are applied before dlog_logg... 57/180457/4
Karol Lewandowski [Tue, 29 May 2018 15:14:10 +0000 (17:14 +0200)]
packaging: logger: Ensure logger device node permissions are applied before dlog_logger is started

This is workaround for dlog_logger being started before udev applies
its rules (which includes device node permissions, which dlog tries
to access).

Change-Id: Idd942e83bad03bd1eeefc8e5aa4a790f3d9c67dd

6 years agopackaging: tests: Do not try reboot machine to ensure proper dlog config 48/181648/2
Karol Lewandowski [Fri, 15 Jun 2018 08:44:23 +0000 (10:44 +0200)]
packaging: tests: Do not try reboot machine to ensure proper dlog config

Installing dlog-tests package intentionally breaks
dlog setup for normal use case, but system should
not be rebooted without user consent.  Rebooting
in %post might potentially make RPM db inconsistent
and impact other pending rpm actions.

Change-Id: I95e7eb0fcf6f12ff20c0bfaa6699e476793e4a4b

6 years agoMerge "Revert "logger: detect proper apps/events buffer path"" into tizen
Karol Lewandowski [Thu, 14 Jun 2018 12:25:45 +0000 (12:25 +0000)]
Merge "Revert "logger: detect proper apps/events buffer path"" into tizen

6 years agoFix sorting breaking tail dump mode 67/181367/3
Michal Bloch [Tue, 12 Jun 2018 12:06:21 +0000 (14:06 +0200)]
Fix sorting breaking tail dump mode

Change-Id: Ic15181104fc1f0c3bed8d487f9a0c18c33505805
Signed-off-by: Michal Bloch <m.bloch@samsung.com>
6 years agoRevert "logger: detect proper apps/events buffer path" 79/181379/1
Michal Bloch [Tue, 12 Jun 2018 15:07:38 +0000 (17:07 +0200)]
Revert "logger: detect proper apps/events buffer path"

This reverts commit f4fe42b5dc8dcff4572353675c1bc52a62d7d939.

The post-install script works correctly as long as the package
is installed on the target directly. However, it won't work if
it arrives on the target by being included in an image, due to
the post-install script having been ran on a different system,
the one where the image had been built and not the target one.

There isn't a strict regression because the end result is that
the image sometimes contains the other path (which means there
are still some devices that will work and some that won't), so
there might still be value to keeping the change as a reminder
of the underlying problem of Android log device availablility.

Change-Id: Id71b5a66d3115fdac876ad06c51aed607a31b452
Signed-off-by: Michal Bloch <m.bloch@samsung.com>