platform/core/system/dlog.git
3 years agoUnify logger and pipe tests a bit 23/246723/1
Mateusz Majewski [Tue, 3 Nov 2020 12:03:33 +0000 (13:03 +0100)]
Unify logger and pipe tests a bit

Change-Id: I62beb09c8f00e3083037f655bf95be8684911aec

3 years agoWarn when log is duplicated X times 67/243867/24 submit/tizen/20201027.165937
Agnieszka Baumann [Tue, 8 Sep 2020 10:24:29 +0000 (12:24 +0200)]
Warn when log is duplicated X times

Change-Id: I9302cd761a7de0f090a35940f47ef38de19ba9fa

3 years agoFix QoS division by 0 55/246255/3
Mateusz Majewski [Tue, 27 Oct 2020 08:57:13 +0000 (09:57 +0100)]
Fix QoS division by 0

While the count_above_threshold does have a check for 0, it doesn't do
what we want; we want it to return an infinite value somehow, but it
instead returns the dividend. This patch checks for this case and
returns the correct value manually.

The reason why it is important to return infinite value in this case is
that this division is supposed to always increase the threshold value.
Usually it does that correctly, since remaining_throughput has been
decreased by only those values that were under the average value, and
count_above_threshold has been decreased by count of those values.
Therefore, the result of the division is the average of all the values
that weren't lower than the previous average, and this average obviously
can't be lower than the previous average. However, if all the values are
under the average, the new average doesn't exist. It's morally infinite,
but the division instead returns the remaining_throughput, which is
obviously much lower than the original throughput, and often lower than
the threshold value. For example, if throughput is 20 and we have one
log source having written 18 logs, the result will be 2, which is wrong.

Change-Id: Id6d085707aeabc4032f931869c213f01db2c927a

3 years agoRemove time travel 70/246270/1
Mateusz Majewski [Tue, 27 Oct 2020 11:49:21 +0000 (12:49 +0100)]
Remove time travel

This commit fixes a bug in which some logs come to the pipe backend with
receipt timestamp earlier than sending timestamp.

Change-Id: I6c93cfa97547f89d6c55a4d1767322f64fe8fb5f

3 years agoAdd Requires=local-fs.target dependency to dlog_logger.service 11/245411/2
INSUN PYO [Thu, 8 Oct 2020 08:22:40 +0000 (17:22 +0900)]
Add Requires=local-fs.target dependency to dlog_logger.service

In emergency mode, local-fs.target always fails.
So, you have to check if local-fs.target is successful.

Change-Id: I6094ee7c585e62179d12e83ee36c9462491e6226

3 years agoFix QoS blocking too many logs 59/245659/3
Mateusz Majewski [Tue, 13 Oct 2020 11:00:08 +0000 (13:00 +0200)]
Fix QoS blocking too many logs

The original implementation of QoS had some logic errors which made it
allow too few logs. This commit fixes those logic errors, and raises
the limit in the integration tests accordingly.

Change-Id: Ia2591eca30fa5518575c0889fc7fa9d4e6bc1e54

3 years agoUpdate the overview file 19/245819/1
Mateusz Majewski [Fri, 16 Oct 2020 07:07:14 +0000 (09:07 +0200)]
Update the overview file

Change-Id: Idd6a56f7543186112f9ce82bfa4d6edc3c094acc

3 years agoDo not prepare for printing if not going to print 70/245770/2
Mateusz Majewski [Thu, 15 Oct 2020 12:18:28 +0000 (14:18 +0200)]
Do not prepare for printing if not going to print

The prepare_print function assumes that we are going to print. In
particular, it can disable buffers at will if they aren't going to be
printed. This can be problematic if we want to clear those buffers.

Change-Id: Ibe13a21cf0b599340d6404be569a2199bb3be9bc

3 years agoMake sure a mode isn't set if we want to use fetch operations 69/245769/2
Mateusz Majewski [Thu, 15 Oct 2020 11:54:52 +0000 (13:54 +0200)]
Make sure a mode isn't set if we want to use fetch operations

Change-Id: Ida4603727554c721eb03c0ea22b543c6cb83c39d

3 years agoMake sure the buffer is enabled before querying it 57/245757/1
Mateusz Majewski [Thu, 15 Oct 2020 09:53:41 +0000 (11:53 +0200)]
Make sure the buffer is enabled before querying it

Otherwise, the operation might segfault.

Change-Id: I7ba7e8fab50bc9bb3cbfa26e8ebbd086bfc2b4e9

3 years agoFix some cases of data loss caused by partial writes 08/245708/2
Mateusz Majewski [Wed, 14 Oct 2020 12:14:02 +0000 (14:14 +0200)]
Fix some cases of data loss caused by partial writes

Change-Id: Ibce508fac5f674041547253ebc8ad6fe6c64d649

3 years agoRemove some obsolete TODOs 79/245679/2
Mateusz Majewski [Wed, 14 Oct 2020 06:26:50 +0000 (08:26 +0200)]
Remove some obsolete TODOs

We now have a separate option parser, which doesn't use dlogutil_config
for reusability. Also, the logger does have the flush functionality
already (see flush_logfile_timely in logger.c).

Change-Id: Iefbac63e499b22b2b359710be76b65dd4a55af39

3 years agoMake some functions static only outside of unit tests 85/245485/1
Mateusz Majewski [Fri, 9 Oct 2020 14:46:10 +0000 (16:46 +0200)]
Make some functions static only outside of unit tests

Change-Id: I92bad069655456172cef67d1da37463567e6303e

3 years agoMake sure a function is only declared when it's actually defined 84/245484/1
Mateusz Majewski [Fri, 9 Oct 2020 14:45:20 +0000 (16:45 +0200)]
Make sure a function is only declared when it's actually defined

Change-Id: I974d9b984260940c94dd7dca9704a77e8511a239

3 years agoFix function formatting 83/245483/1
Mateusz Majewski [Fri, 9 Oct 2020 14:03:32 +0000 (16:03 +0200)]
Fix function formatting

Change-Id: Id9058c6480d1a463f09ff9effe78d29575f2fdad

3 years agoImprove src/tests/logutil.c 78/245478/1
Mateusz Majewski [Fri, 9 Oct 2020 13:39:58 +0000 (15:39 +0200)]
Improve src/tests/logutil.c

Change-Id: Ied5c4a0f846f36d8941f4a1b492f76d3fd1468e4

3 years agoUse the sizeof(*ptr) pattern more consistently 75/245475/1
Mateusz Majewski [Fri, 9 Oct 2020 12:47:22 +0000 (14:47 +0200)]
Use the sizeof(*ptr) pattern more consistently

It allows the code to withstand type changes slightly better.

Change-Id: I143806c54528e8cf30d18526b7a481280665ac6b

3 years agoLearn to count to 9 74/245474/1
Mateusz Majewski [Fri, 9 Oct 2020 12:05:11 +0000 (14:05 +0200)]
Learn to count to 9

Change-Id: I2fd23c61a793aadaea1bad5f9be32c6ca38485d0

3 years agoFix various formatting issues 73/245473/1
Mateusz Majewski [Fri, 9 Oct 2020 11:47:30 +0000 (13:47 +0200)]
Fix various formatting issues

Change-Id: Ie6352f4b13f1eba6b2fb808b92efd1b8560495fe

3 years agoAdd some docs 40/245440/2
Mateusz Majewski [Thu, 8 Oct 2020 11:59:03 +0000 (13:59 +0200)]
Add some docs

Change-Id: I7132296bddf6ce1095184f7a8db4e510adaebacb

3 years agoPut critical logs in the main buffer in the tests 02/245402/2
Mateusz Majewski [Thu, 8 Oct 2020 07:33:58 +0000 (09:33 +0200)]
Put critical logs in the main buffer in the tests

Otherwise, the logger verbose tests emit an error.

Change-Id: Id5cdd781c3b4fa42da736fe2207837528416eec9

3 years agoMerge "Miscellaneous fixes" into tizen
Michal Bloch [Fri, 2 Oct 2020 15:05:07 +0000 (15:05 +0000)]
Merge "Miscellaneous fixes" into tizen

3 years agoconfigure: fix typo 28/245128/3
Karol Lewandowski [Fri, 2 Oct 2020 09:59:53 +0000 (11:59 +0200)]
configure: fix typo

Change-Id: Ib08aa4467566712a45e2c5e791ec3bff6557c13f

3 years agoMiscellaneous fixes 46/242546/8
Michal Bloch [Wed, 26 Aug 2020 10:51:56 +0000 (12:51 +0200)]
Miscellaneous fixes

Change-Id: I0245f509fa4e4c9b2ddf2d25ff823d486d7e7ae8
Signed-off-by: Michal Bloch <m.bloch@samsung.com>
3 years agolibdlogutil: relicense to MIT 82/242682/3
Michal Bloch [Fri, 28 Aug 2020 17:20:02 +0000 (19:20 +0200)]
libdlogutil: relicense to MIT

Change-Id: Ic9fe65de28a03e00ab954f7752dc13bbda5cae7e
Signed-off-by: Michal Bloch <m.bloch@samsung.com>
3 years agoRemove AOSP licenses 33/245133/2
Michal Bloch [Fri, 2 Oct 2020 11:06:36 +0000 (13:06 +0200)]
Remove AOSP licenses

As far as we are aware no AOSP code is left; possibly some trivial snippets
trace their origins to AOSP but I don't think anybody is going to complain
over one-liners.

Change-Id: I191add3a0348f7b7979977f2f80cef3f429acca3

3 years agoMake sure no partial UTF-8 encodings are left in the metadata 72/244972/5
Mateusz Majewski [Mon, 28 Sep 2020 10:11:00 +0000 (12:11 +0200)]
Make sure no partial UTF-8 encodings are left in the metadata

Change-Id: Ic02d5b13a3847a7231631782def6dc670082165a

3 years agotests: fixed typo 94/245094/1
Adrian Szyndela [Thu, 1 Oct 2020 11:14:07 +0000 (13:14 +0200)]
tests: fixed typo

Change-Id: I9fe7eedfd5f12fd7a4c8abf9887b059b5efcf4e4

3 years agoReuse util's parser in the logger daemon 53/244953/3 accepted/tizen_6.0_unified_hotfix tizen_6.0_hotfix accepted/tizen/6.0/unified/20201030.115440 accepted/tizen/6.0/unified/hotfix/20201103.002928 accepted/tizen/unified/20201005.101403 submit/tizen/20200928.173910 submit/tizen_6.0/20201029.205104 submit/tizen_6.0_hotfix/20201102.192504 submit/tizen_6.0_hotfix/20201103.114804 tizen_6.0.m2_release
Mateusz Majewski [Mon, 28 Sep 2020 08:21:02 +0000 (10:21 +0200)]
Reuse util's parser in the logger daemon

Change-Id: Ic3a73bf332b6359265a9727a46f2fdaf415d3d77

3 years agoMake the portable parser resetable 01/244901/3
Mateusz Majewski [Fri, 25 Sep 2020 13:06:18 +0000 (15:06 +0200)]
Make the portable parser resetable

Change-Id: I34531397651f5a2e6c315ea2b0888c4a67dd3a37

3 years agoMove the util parser outside of util so we can reuse it 93/244893/4
Mateusz Majewski [Fri, 25 Sep 2020 11:03:31 +0000 (13:03 +0200)]
Move the util parser outside of util so we can reuse it

Change-Id: Icec52e46925923e549850ad9f10f221f7e363dfc

3 years agoRewrite `log_add_filter_rule()` 74/244274/4
Michal Bloch [Wed, 16 Sep 2020 13:56:17 +0000 (15:56 +0200)]
Rewrite `log_add_filter_rule()`

 * the last ':' delimiter is now taken instead of the first.
   For example `FOO:::BAR:E` is now tag `FOO:::BAR` with prio `E`
   instead of tag `FOO` and priority `::BAR:E`.

 * fixes a memleak on `list_add()` failure.

 * removes AOSP license because this was the last piece of AOSP code.

Change-Id: I6a94382cd6a1d3b175c5daf71b566dec4ba28717
Signed-off-by: Michal Bloch <m.bloch@samsung.com>
3 years agoMake util's option parsing more modular 33/244633/5
Mateusz Majewski [Fri, 18 Sep 2020 09:05:26 +0000 (11:05 +0200)]
Make util's option parsing more modular

Will be helpful in making the logger daemon use this implementation too
instead of having its own implementation (DRY!).

Change-Id: I899923f4299d6a4604526d3bafb8c5ee60029d39

3 years agoptrs_list: list_clear family accepts NULLs 56/244856/1
Michal Bloch [Fri, 25 Sep 2020 06:20:13 +0000 (08:20 +0200)]
ptrs_list: list_clear family accepts NULLs

Change-Id: Id41135a151fcc354dbe6d7556ddb2cd98eb5f581
Signed-off-by: Michal Bloch <m.bloch@samsung.com>
3 years agoMove parsers.h to the include directory 36/244536/3 accepted/tizen/unified/20201005.005815 resubmit submit/tizen/20200925.070823
Agnieszka Baumann [Fri, 18 Sep 2020 19:41:19 +0000 (21:41 +0200)]
Move parsers.h to the include directory

Change-Id: I2f5e77306b4b0cee0ed2c991ce0af71cf4970b89

3 years agoRemove another nested function 68/244768/1 submit/resubmit/20200925.070106 submit/tizen/20200924.064724
Mateusz Majewski [Thu, 24 Sep 2020 06:09:35 +0000 (08:09 +0200)]
Remove another nested function

GCC nested functions bad in C.

Change-Id: Id37b7c00dc62937fb13eefd02e61b68c786a7b33

3 years agoRemove a ghetto lambda 11/244711/2
Michal Bloch [Wed, 23 Sep 2020 10:33:12 +0000 (12:33 +0200)]
Remove a ghetto lambda

Change-Id: I54da91b57b7a31f56c275a286e6226c2af5c13b3
Signed-off-by: Michal Bloch <m.bloch@samsung.com>
3 years agoAdd build option for DEP 64/244664/1 submit/tizen/20200923.060854
Yunmi Ha [Wed, 23 Sep 2020 05:11:52 +0000 (14:11 +0900)]
Add build option for DEP

- data execution prevention
- prevent execution at data area of memory

Change-Id: I8d6b00683754f57360cb8a42c880789a5748f9e0
Signed-off-by: Yunmi Ha <yunmi.ha@samsung.com>
3 years agoImprove printing of some edge case logs 49/244549/1 accepted/tizen/unified/20200922.090853 submit/tizen/20200922.010810
Mateusz Majewski [Mon, 21 Sep 2020 11:38:39 +0000 (13:38 +0200)]
Improve printing of some edge case logs

Change-Id: I69d5dc78a7ef896a623193c96d7091302bbb63ab

3 years agoFinish improving the dlog_test.in script 50/244250/2 accepted/tizen/unified/20200921.123319 submit/tizen/20200918.114600 submit/tizen/20200921.004137
Mateusz Majewski [Wed, 16 Sep 2020 08:20:58 +0000 (10:20 +0200)]
Finish improving the dlog_test.in script

Change-Id: I37ee9aa8a0a9bc78cfea48d7f3ed0f1b9873907f

3 years agoFix the test script a bit 49/244249/2
Mateusz Majewski [Wed, 16 Sep 2020 09:01:33 +0000 (11:01 +0200)]
Fix the test script a bit

Don't call the ok and fail functions in a subshell. Bad idea.

Change-Id: Ic8c1dd12620773c700d4200385def2983d5bd59e

3 years agoFix coverity issue - buffer not null terminated 76/244076/4
Yunmi Ha [Tue, 15 Sep 2020 01:20:27 +0000 (10:20 +0900)]
Fix coverity issue - buffer not null terminated

Change-Id: I51adcf189dd81ecef58e75f2fd4722ef2346755e
Signed-off-by: Yunmi Ha <yunmi.ha@samsung.com>
3 years agoRemove one last unnecessary link 18/244118/1
Mateusz Majewski [Tue, 15 Sep 2020 06:26:46 +0000 (08:26 +0200)]
Remove one last unnecessary link

Change-Id: I3926323ec45765a5b04041330b345457a1928b64

3 years agoClean up Makefile.am 12/244012/2
Mateusz Majewski [Mon, 14 Sep 2020 05:30:17 +0000 (07:30 +0200)]
Clean up Makefile.am

Change-Id: I573639255626da315293ca557b05f7ee6361b5d0

3 years agoRemove a useless variable 79/243979/2
Mateusz Majewski [Fri, 11 Sep 2020 12:19:44 +0000 (14:19 +0200)]
Remove a useless variable

Note that it's quite important to put the variables and the check inside
of the pipeline. This is because the shell is allowed to run the pipeline
command in a subshell (here done explicitly, but even if we wouldn't put
an explicit subshell the shell could create one), and therefore not
propagate the changes outside, making the test useless.

Change-Id: Ie3bd27e38bbe88ede1b7dfcf63639befa0b47486

3 years agoRemove… something 78/243978/2
Mateusz Majewski [Fri, 11 Sep 2020 12:43:15 +0000 (14:43 +0200)]
Remove… something

This line is obviously bogus. It looks like it always calls continue,
but the reality is not so simple; -eq is arithmetic comparision, and the
contents of $line are not numbers. After removing the line, the test
still works.

Change-Id: I9093943086018f0eed2c8f5bc10ebcaf57c0f143

3 years agoIntroduce basic --sort-by tests 04/243904/2
Mateusz Majewski [Thu, 10 Sep 2020 11:22:08 +0000 (13:22 +0200)]
Introduce basic --sort-by tests

Pipe backend only because there's not much to sort by on the AL backend.

Change-Id: Ib140bba2ddc677b49d19f0819729baa7304166c2

3 years agoMake API+internal functions behavior dependent on usage 61/243961/1
Mateusz Majewski [Fri, 11 Sep 2020 11:22:11 +0000 (13:22 +0200)]
Make API+internal functions behavior dependent on usage

Some functions are used both internally and exported in the libdlogutil
API. This is hacky, but we decided that, on invalid parameters, they
should assert when used internally, and return an error when used via
API.

Change-Id: Id8b2d173670a8eaa845c13a8178a43d4f421a004

3 years agoMerge changes Ibfc41bf3,Id7181124,Idf23665c into tizen
Michal Bloch [Thu, 10 Sep 2020 11:40:06 +0000 (11:40 +0000)]
Merge changes Ibfc41bf3,Id7181124,Idf23665c into tizen

* changes:
  Inline struct log_filter in the struct dlogutil_config
  Remove an unnecessary include
  Change dlogutil_filter_options -> log_filter

3 years agoRemove some unnecessary backslashes 51/243851/1
Mateusz Majewski [Thu, 10 Sep 2020 11:28:32 +0000 (13:28 +0200)]
Remove some unnecessary backslashes

Change-Id: Ifea988b15c12bf82bd85fe093cd4b8d0d9c27459

3 years agoFix a little regression in the JSON format 30/243830/2
Mateusz Majewski [Thu, 10 Sep 2020 10:00:28 +0000 (12:00 +0200)]
Fix a little regression in the JSON format

We've forgotten the case in which the tag/message are empty in JSON
format. This commit fixes it.

Change-Id: I3e2deaf0595e46bd92ab763ae9b95e62aa9dc9f7

3 years agoInline struct log_filter in the struct dlogutil_config 49/243749/1
Mateusz Majewski [Wed, 9 Sep 2020 13:40:42 +0000 (15:40 +0200)]
Inline struct log_filter in the struct dlogutil_config

Change-Id: Ibfc41bf3f40564a409b2fd459633308c1ad469d1

3 years agoRemove an unnecessary include 48/243748/1
Mateusz Majewski [Wed, 9 Sep 2020 13:28:00 +0000 (15:28 +0200)]
Remove an unnecessary include

Change-Id: Id718112405ebd1382eedf6f66e1ae84c65cba8b7

3 years agoChange dlogutil_filter_options -> log_filter 45/243745/2
Mateusz Majewski [Wed, 9 Sep 2020 12:57:12 +0000 (14:57 +0200)]
Change dlogutil_filter_options -> log_filter

The log_filter struct used to be called this. Then it became part of
libdlogutil API and we decided to rename it dlogutil_filter_options and
provide dlogutil_filter_options_s alias instead of creating a wrapper.
However, now it and some related functions aren't part of libdlogutil
API anymore, so they should be called log_filter_* again.

Change-Id: Idf23665c41ba0eb5d744e1362042f3a246bd510f

3 years agoInline dlogutil_filter_options_destroy 44/243744/1
Mateusz Majewski [Wed, 9 Sep 2020 12:31:21 +0000 (14:31 +0200)]
Inline dlogutil_filter_options_destroy

Note that the log_filter_free contains the NULL check too.

Change-Id: Iad6961fe9adf454350bc16e2a8a302a010a9d02b

3 years agoInline dlogutil_filter_options_create 43/243743/1
Mateusz Majewski [Wed, 9 Sep 2020 12:15:08 +0000 (14:15 +0200)]
Inline dlogutil_filter_options_create

Change-Id: I914bb6e3215e970d226000ea859c90caaf0a2e53

3 years agoMake some internal functions more internal 42/243742/1
Mateusz Majewski [Wed, 9 Sep 2020 11:53:00 +0000 (13:53 +0200)]
Make some internal functions more internal

Change-Id: I0868ab5a8eaee6e46a65510f133c4bb44bef689f

3 years agoMake the infamous rotation test more consistent 17/243717/2
Mateusz Majewski [Wed, 9 Sep 2020 08:50:26 +0000 (10:50 +0200)]
Make the infamous rotation test more consistent

This test used to like to fail, especially the (2/4) part. It turned out
that it's due to a race condition; we run the dlogutil instance in the
background but we neglect to wait for it to do it's job. We can
improve on this by running the instance in the foreground, after the
logs already have been written, in the dump mode, which makes it quit
after writing all the logs.

Change-Id: Ic004918557afdc8a171fe7996fec66fdcf666bfe

3 years agoAdd verbose mode and advanced argument parsing to the test script 27/243627/2
Mateusz Majewski [Tue, 8 Sep 2020 13:35:52 +0000 (15:35 +0200)]
Add verbose mode and advanced argument parsing to the test script

Change-Id: I8aa0e4cd21e0acaabdad6b82817d63d6087466fc

3 years agoQuote more in the test script 10/243610/1
Mateusz Majewski [Tue, 8 Sep 2020 11:38:25 +0000 (13:38 +0200)]
Quote more in the test script

Change-Id: I93b685e58ad659c8e60d01763fc94ccff038ad14

3 years agoAdd a test verifying the correct handling of SIGPIPE 63/243563/2
Mateusz Majewski [Tue, 8 Sep 2020 07:00:54 +0000 (09:00 +0200)]
Add a test verifying the correct handling of SIGPIPE

Change-Id: Ida44456203823bc51ed021e55e5d47b5c2913f29

3 years agoStop pretending log_print_log_line return value is meaningful 56/243156/3
Mateusz Majewski [Thu, 3 Sep 2020 09:12:55 +0000 (11:12 +0200)]
Stop pretending log_print_log_line return value is meaningful

According to its docs, log_print_log_line function returns the number of
bytes written, just like write.

In case of the write function, this is really useful, since the write
function can do partial writes in some cases and returning the exact
amount of bytes written allows us to restart the function and handle the
errors in a good way. However, all of this is irrelevant in the
log_print_log_line function, since the message is created inside the
function; there's no way to restart the write in case of the partial
write inside it. Therefore, the log_print_log_line is the only possible
place where the partial write is possible to be handled, and the place
where it should be handled; after doing so, there's no reason to return
the number of bytes written.

More importantly, after implementing log buffering, there's no good way
to report the number of bytes written, since sometimes it will just be 0
(if the log ends up in the buffer), even though everything went well.
Therefore, this function ended up returning some flummadiddle that was
strategically picked to appease tests, and had some correlation with the
log length, but had no real semantic meaning. It's simply better to not
pretend and to just return 1.

Change-Id: I31636c8aca8f3e90cf5322e4d3f85fed1df65e03

3 years agoDon't cache the file size 55/243155/3
Mateusz Majewski [Thu, 3 Sep 2020 09:50:16 +0000 (11:50 +0200)]
Don't cache the file size

Little point in caching the file size if you are going to update it
before using anyway.

Yes, in some edge cases, the accurate size might be unavailable, but I
don't think that there are many cases in which we can't check the file
size, but we can write to it. More importantly, the cached value was
wrong anyway, since log_print_log_line has been returning hogwash
instead of an accurate written byte count for some time.

Change-Id: I73d8b6d757ac0cd6574b66349ac2e8054bb15aaa

3 years agoRemove data loss possibility in the log_file struct (again) 14/243314/2
Mateusz Majewski [Fri, 4 Sep 2020 12:25:08 +0000 (14:25 +0200)]
Remove data loss possibility in the log_file struct (again)

This is the fixed version of the commit that was reverted. The
difference is in the

    if (written >= 0)

which used to be

    if (written > 0)

which is right if we are calling the write function. But the full_write
function is not the drop-in replacement; it returns 0 on success.

Change-Id: I68216849734b5c351b178613ff18636136aedb6d

3 years agoConform dlogutil_get_log to Tizen errors 79/243179/3
Agnieszka Baumann [Tue, 1 Sep 2020 17:24:54 +0000 (19:24 +0200)]
Conform dlogutil_get_log to Tizen errors

Change-Id: I25053217122caf750184ba208f6d19eb8fb9ae3e

3 years agoConform dlogutil_config_connect to Tizen errors 80/243180/2
Agnieszka Baumann [Mon, 31 Aug 2020 17:06:31 +0000 (19:06 +0200)]
Conform dlogutil_config_connect to Tizen errors

Change-Id: I32d660fe8ced95061a67ec7888483192c2f5af8d

3 years agoAdd basic persistent logging tests 89/243289/2 accepted/tizen/unified/20200908.060805 submit/tizen/20200907.062212
Mateusz Majewski [Fri, 4 Sep 2020 08:31:06 +0000 (10:31 +0200)]
Add basic persistent logging tests

For pipe backend only for now.

Change-Id: I59ea088c9ba39c10cd9706ac5e432513e291bad1

3 years agoRevert "Remove data loss possibility in the log_file struct" 70/243170/1
Mateusz Majewski [Thu, 3 Sep 2020 12:53:30 +0000 (14:53 +0200)]
Revert "Remove data loss possibility in the log_file struct"

This reverts commit 64b01bc83d247c02b0ef31b26ffd58a6741e1fdc.

It turned out that the commit worked too well :)

Change-Id: Id6005ebd0d281cbd60e1a369a8e1cf10e8a600a9

3 years agoDrop the CAP_SYSLOG requirement 78/242878/6
Mateusz Majewski [Tue, 1 Sep 2020 12:50:01 +0000 (14:50 +0200)]
Drop the CAP_SYSLOG requirement

With the last fix, we don't need it anymore!

Change-Id: Ic5ed1ccb7a08d20c5e869a68575c676e69694711

3 years agoRemove data loss possibility in the log_file struct 21/243021/2
Mateusz Majewski [Wed, 2 Sep 2020 13:10:50 +0000 (15:10 +0200)]
Remove data loss possibility in the log_file struct

Change-Id: I273953f7a5ebd4263b18d5e45c743793fb23f9b3

3 years agoCompile with -g 97/242997/4
Mateusz Majewski [Wed, 2 Sep 2020 08:37:48 +0000 (10:37 +0200)]
Compile with -g

Currently DLog ignores global compiler flags, which contain -g for
debugging symbols. We'd like to make sure that they aren't overridden in
the future, but for now, we can just add -g here. As a bonus, a little
spacing mistake is fixed.

Change-Id: Iaef47e487dd7f9dabea0a97286a5b3b4134ed3c7

3 years agoRemove some more bashisms and weird shell issues 04/243004/1
Mateusz Majewski [Wed, 2 Sep 2020 07:02:54 +0000 (09:02 +0200)]
Remove some more bashisms and weird shell issues

Change-Id: Icc8b3e13caf5961cef0938b68718fb39565dacb4

3 years agoRemove unnecessary wc -l 68/242968/1
Mateusz Majewski [Wed, 2 Sep 2020 06:33:52 +0000 (08:33 +0200)]
Remove unnecessary wc -l

Change-Id: I29d8541202e5a98b26b2f09c0f14bdf9b6f97f92

3 years agoFix AOSP file licenses 90/242890/1
Michal Bloch [Tue, 1 Sep 2020 16:17:40 +0000 (18:17 +0200)]
Fix AOSP file licenses

 * logprint.h → contains no implementations (it doesn't contain any
   Samsung implementations either but that is not a problem).

 * libdlogutil/lib.c → never had any AOSP code, the license text
   was copy-pasted from some other file. Some of the getters may
   have existed earlier but returning a member from a struct is
   its own specification so not really copyrightable.

 * shared/logprint.c → we thought we had removed the only AOSP func
   in e7aa8a06f7d400a494f06cf51dbce6a69757b5c5, but it looks like
   'log_add_filter_rule' has enough original AOSP parts that we'd
   like to err on the side of caution and consider it AOSP, thus
   the copyright note is reinstated until the func is rewritten.

Change-Id: Ie3c49f80261fc390bf5f7eca173963f0e93e21c5
Signed-off-by: Michal Bloch <m.bloch@samsung.com>
3 years agolibdlogutil: memory capacity failure now returns TIZEN_ERROR_OUT_OF_MEMORY 82/242882/2
Agnieszka Baumann [Mon, 31 Aug 2020 17:03:10 +0000 (19:03 +0200)]
libdlogutil: memory capacity failure now returns TIZEN_ERROR_OUT_OF_MEMORY

Change-Id: Ifab87328b3b59ec0ffee50a309631eb21967c4bc

3 years agolibdlogutil: request failure now IO_ERROR 83/242883/2
Agnieszka Baumann [Tue, 1 Sep 2020 10:50:38 +0000 (12:50 +0200)]
libdlogutil: request failure now IO_ERROR

Change-Id: I009ab67f874fe5894ed5befb97330bf93138d4a5

3 years agolibdlogutil: config failure now returns TIZEN_ERROR_IO_ERROR 84/242884/1
Agnieszka Baumann [Fri, 28 Aug 2020 13:56:17 +0000 (15:56 +0200)]
libdlogutil: config failure now returns TIZEN_ERROR_IO_ERROR

Instead of an arbitrary POSIX errno

Change-Id: Ieeb3c93d8d72fa19322ac9a0f232800632b16ca9

3 years agoAssert that the logger devices don't end 73/242873/1
Mateusz Majewski [Tue, 1 Sep 2020 10:41:28 +0000 (12:41 +0200)]
Assert that the logger devices don't end

Change-Id: Ib8abd22294360784158a75d49af127019922872a

3 years agoUse the hash from hash.c in the limiter 68/242868/1
Mateusz Majewski [Tue, 1 Sep 2020 10:08:26 +0000 (12:08 +0200)]
Use the hash from hash.c in the limiter

We have a nicely tested hash implementation in hash.c. It makes little
sense for the loglimiter to have its own hash.

Change-Id: I09e8c8bb8e2dcc385a2063d794bf5c627fa12460

3 years agoFix a long-standing Android Logger blocking bug 67/242867/1
Mateusz Majewski [Tue, 1 Sep 2020 08:11:51 +0000 (10:11 +0200)]
Fix a long-standing Android Logger blocking bug

Change-Id: I8c99d1f5ed70570e8bf1facab248207f07f1c2b3

3 years agoRemove an unused variable 34/242834/1
Mateusz Majewski [Tue, 1 Sep 2020 06:21:09 +0000 (08:21 +0200)]
Remove an unused variable

Change-Id: I7a4a7721e2c280ddbd57d37d4d62b87708acda3c

3 years agoRemove unused dlogutil_entry_cb 31/242731/1
Agnieszka Baumann [Mon, 31 Aug 2020 15:05:22 +0000 (17:05 +0200)]
Remove unused dlogutil_entry_cb

Change-Id: I74789caaee407e891be3816f9793f53831221128

3 years agoReduce gotos 78/242678/4
Agnieszka Baumann [Tue, 25 Aug 2020 10:43:23 +0000 (12:43 +0200)]
Reduce gotos

Change-Id: I85686289d0c3ab6c2f8a572a58a553c254b88a38

3 years agoUse the correct function 24/242724/2
Mateusz Majewski [Mon, 31 Aug 2020 12:33:04 +0000 (14:33 +0200)]
Use the correct function

Sadly a way too common in DLog case of "how has this even been working
in first place?".

Change-Id: I9f76e20fef78462ddd3d7acf239baf9f9035dbe7

3 years agoFix dlog_logger invocation in the test suite 15/242715/1
Mateusz Majewski [Mon, 31 Aug 2020 08:00:51 +0000 (10:00 +0200)]
Fix dlog_logger invocation in the test suite

Change-Id: I26823df8dd0719f2d34fcd22d2c412e5a7559b1c

3 years agoImplement a basic version of failed log stashing 88/242588/3
Mateusz Majewski [Tue, 25 Aug 2020 08:46:02 +0000 (10:46 +0200)]
Implement a basic version of failed log stashing

This implements a simple solution of keeping logs that weren't sent;
saving them in the critical log file. It's off by default.

Change-Id: I08c18d4bfe6c413961dc551fe93009a686ce1414

3 years agoImprove the integration test script a bit 56/242656/1
Mateusz Majewski [Thu, 27 Aug 2020 08:01:01 +0000 (10:01 +0200)]
Improve the integration test script a bit

This includes eliminating many bashisms (the script is supposed to be
POSIX-compatible) and fixing various warnings reported by shellcheck.
Not all warnings are fixed yet, but the other ones are harder to fix,
and what we already achieved is useful anyway.

Change-Id: Ib0f4a2f52f90fb2af823dfe9c9c37c947a0e6632

3 years agoIntroduce log write buffering 59/235659/13
Mateusz Majewski [Fri, 8 May 2020 12:59:02 +0000 (14:59 +0200)]
Introduce log write buffering

Change-Id: Iac626630b6885a4214e42c5f810aa50d98d66ecb

3 years agotests: make inline warning behave like a normal part of log 58/242158/5
Adrian Szyndela [Mon, 24 Aug 2020 13:56:59 +0000 (15:56 +0200)]
tests: make inline warning behave like a normal part of log

Inline warning is added to a log if timestamps are incorrect.
However, such warning is sometimes printed as a separate line,
with all metadata added, and sometimes printed as if it was
part of log lines.

This commit makes the tests conforming to the change in the printing
function: warning printing is now consistent with the printing
format. That is, if new lines get metadata, then warning also gets metadata,
and if new lines don't get metadata, then warning also doesn't get it.

Change-Id: I186330adb7728a715bc4bc85a386edfd2204c2ff

3 years agologprint: implement log_print_log_line() 57/242157/5
Adrian Szyndela [Fri, 7 Aug 2020 07:40:10 +0000 (09:40 +0200)]
logprint: implement log_print_log_line()

A brand new, clean room implementation of log_print_log_line()
made with the specification consisting of the existing tests,
and a bit of the other existing code, but not the old implementation
of log_print_log_line().

There was one additional change: "inline warning". Initially it was printed
sometimes with its own copy of log metadata, sometimes without it.
Now, it's consistent with the printing format: the warning gets
its own metadata only if separate lines in logs get their own metadata.

Change-Id: I93f3b7864854a6a988a9ae02743df54ad46a37fe

3 years agolog_format_log_line: CLEANSE! PURGE! KILL! 56/242156/4
Michal Bloch [Mon, 3 Aug 2020 11:17:12 +0000 (13:17 +0200)]
log_format_log_line: CLEANSE! PURGE! KILL!

Change-Id: I3387a1511920a8695420e09ea55120d677061a71
Signed-off-by: Michal Bloch <m.bloch@samsung.com>
3 years agoAdd a few more QoS distribution tests 23/242523/1
Agnieszka Baumann [Fri, 21 Aug 2020 14:04:51 +0000 (16:04 +0200)]
Add a few more QoS distribution tests

Change-Id: I7ca564e2cffaa07b0375067c8fe36737f9b4beba

3 years agoqos: add pictures to the documentation 74/242174/3
Agnieszka Baumann [Fri, 21 Aug 2020 09:43:09 +0000 (11:43 +0200)]
qos: add pictures to the documentation

Change-Id: If7a3bbe653aec3570ecc0450f7841594de39bee0

3 years agoAdd a simple critical log integration test 49/242349/3
Mateusz Majewski [Tue, 25 Aug 2020 12:54:29 +0000 (14:54 +0200)]
Add a simple critical log integration test

Change-Id: If70b4d29efd36df435f0e91fffdc0cef17da2a08

3 years agoMove various dlog_logger functions to better places 41/242141/1
Mateusz Majewski [Mon, 24 Aug 2020 11:57:03 +0000 (13:57 +0200)]
Move various dlog_logger functions to better places

Change-Id: Ib9c4364a92f3ffdfc71f7e6b93c4aaa7ea8672ea

3 years agoSplit various writer related stuff to a separate file 34/242134/2
Mateusz Majewski [Mon, 24 Aug 2020 10:31:35 +0000 (12:31 +0200)]
Split various writer related stuff to a separate file

Change-Id: I973e057119535f7a57a16c469900a6480eab5c8c

3 years agoSplit various log_buffer related stuff to separate file 29/242129/2
Mateusz Majewski [Mon, 24 Aug 2020 09:48:23 +0000 (11:48 +0200)]
Split various log_buffer related stuff to separate file

Change-Id: If20af3642f882f1cd3357cb5a726d1d98db4232a

3 years agoSplit various dlogutil line parsing to a separate file 24/242124/2
Mateusz Majewski [Mon, 24 Aug 2020 09:04:14 +0000 (11:04 +0200)]
Split various dlogutil line parsing to a separate file

Change-Id: I633d126554f6a9d086abd7585f25f911085b5aea

3 years agoMetrics: test sorting comparator 42/242042/1
Agnieszka Baumann [Thu, 13 Aug 2020 08:48:09 +0000 (10:48 +0200)]
Metrics: test sorting comparator

Change-Id: I66ef7749dbd211fcc6e4951cef7cf3cdb66888a7

3 years agoFix various tiny dlog_logger issues 40/242040/1
Mateusz Majewski [Fri, 21 Aug 2020 12:27:39 +0000 (14:27 +0200)]
Fix various tiny dlog_logger issues

Change-Id: I66c5424aed49aa8a67fbbe4cdf17877ba4bd3e82