| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
| |
Signed-off-by: Saya Sugiura <ssugiura@jp.adit-jv.com>
|
|
|
|
|
|
|
|
|
| |
New option for binary dlt-test-multi-process. The format of context id
is constructed based on appId. Previously, context id is generated
randomly. Now test binary can support below testcase:
- Multiple apps can share the same context id.
Signed-off-by: Bui Nguyen Quoc Thanh <Thanh.BuiNguyenQuoc@vn.bosch.com>
|
|
|
|
|
|
|
| |
Support two options for dlt-test-filestransfer to specify the absolute
path to tested files.
Signed-off-by: Bui Nguyen Quoc Thanh <Thanh.BuiNguyenQuoc@vn.bosch.com>
|
|
|
|
| |
Signed-off-by: Saya Sugiura <ssugiura@jp.adit-jv.com>
|
|
|
|
|
|
| |
Since dlt_forward_msg() is not used anywhere, we will remove it.
Signed-off-by: Saya Sugiura <ssugiura@jp.adit-jv.com>
|
|
|
|
|
|
| |
This commit fixes dlt_user.dlt_ll_ts to compare to NULL instead of 0.
Signed-off-by: Saya Sugiura <ssugiura@jp.adit-jv.com>
|
|
|
|
| |
Signed-off-by: Saya Sugiura <ssugiura@jp.adit-jv.com>
|
|
|
|
|
|
|
|
|
|
|
|
| |
In dlt_daemon_client_send_all_multiple(), while in the loop,
the connection to client may be destroyed by recursive call to
dlt_daemon_close_socket(). So in some scenario we still use the removed
connection, which is unexpected behavior.
Solution: loop on the fds array and find the client connection
corresponds to.
Signed-off-by: Vo Trung Chi <Chi.VoTrung@vn.bosch.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
When it fails to send a log message to connected client, daemon
tries to store the remaining partial message to internal ring
buffer and send again later. When calculating the number of bytes
which were sent to client, it had a bug which it keeps on
incrementing instead of initializing the variable on every message,
which never reached to the condition mentioned above and had a
possibility to overflow and access invalid memory. On the other hand,
daemon doesn't need to store the unsent partial message, as the socket
to the client will be closed on failure and the sent partial message
will be dropped anyways.
This commit removes the lines where the daemon tries to store the
partial message to ring buffer. With this, variable bytes_sent is
now removed.
Related commit: 2262f8b Made socket send reliable
Signed-off-by: Saya Sugiura <ssugiura@jp.adit-jv.com>
|
|
|
|
|
|
|
|
| |
If a context is defined and loaded from runtime context config file,
that context won't be deleted/removed from dlt-daemon database
until its parent application is unregistered.
Signed-off-by: Bui Nguyen Quoc Thanh <thanh.buinguyenquoc@vn.bosch.com>
|
|
|
|
|
|
| |
Do not assign fd after destroying receiver pointer
Signed-off-by: Bui Nguyen Quoc Thanh <Thanh.BuiNguyenQuoc@vn.bosch.com>
|
|
|
|
|
|
|
| |
- Add an environment variable to handle interruption of test.
- By default, test1 won't wait for manual interruption anymore.
Signed-off-by: Bui Nguyen Quoc Thanh <Thanh.BuiNguyenQuoc@vn.bosch.com>
|
|
|
|
|
|
|
|
| |
If the message size is equal to remaining size of cache, it is still
written into cache. And then whole cache data must be synchronized to
file according to strategy.
Signed-off-by: Bui Nguyen Quoc Thanh <Thanh.BuiNguyenQuoc@vn.bosch.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This commit fixes couple of unexpected behavior on Logstorage sync behavior.
- A log file is created only if necessary to avoid creating an empty log file.
- The cache is synced with the condition:
1) When the ring buffer is not wrapped around, the cache is synced from
last sync offset to current offset
2) When the ring buffer is wrapped around for first time and current offset
is smaller than last sync offset, the cache is synced from last sync
offset to end sync offset, and then from beginning to current offset
3) Otherwise, the cache is synced from offset where the log message starts
to end sync offset, and then from beginning to current offset
Signed-off-by: Saya Sugiura <ssugiura@jp.adit-jv.com>
|
|
|
|
|
|
|
| |
When the message is just fitting to the remaining cache, it is ignored
and goes to the head. This commit fixes to add the message to the end.
Signed-off-by: Saya Sugiura <ssugiura@jp.adit-jv.com>
|
|
|
|
|
|
| |
Fix the warning from -Wmaybe-uninitialized.
Signed-off-by: Saya Sugiura <ssugiura@jp.adit-jv.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Sometimes it happens that internal threads present
in DLT library are cancelled with one of the task
still holding the mutex, then the main task gets locked forever.
The following changes have been made:
- Cleanup on thread cancellation with pthread_cleanup_push() is
introduced
- Locking on the message queue lock and subsequent signaling in
dlt_stop_threads is only done if the segmented thread was created.
- It is unnecessary to have a robust mutex for the message queue.
Replace it with a normal mutex and remove EOWNERDEAD logic. Add a
pthread_cancel handler to the segmented thread that might hold the
message queue mutex.
- Message queue mutex is statically initialized
Signed-off-by: S. Hameed <shameed@jp.adit-jv.com>
Signed-off-by: Jeevan Ramakant Nagvekar <jeevan.nagvekar1@wipro.com>
Signed-off-by: Saya Sugiura <ssugiura@jp.adit-jv.com>
|
|
|
|
|
|
| |
Rootcause: Free uninitialize memory.
Signed-off-by: Vo Trung Chi <Chi.VoTrung@vn.bosch.com>
|
|
|
|
|
|
|
|
| |
strtol converts extra data in the array, so it leads to data crash.
It is now fixed to fill the last byte of the array with null
character once data copy complete and before convert.
Signed-off-by: Ravi Sankar P <ponnurangamravi.sankar@in.bosch.com>
|
|
|
|
|
|
|
| |
Error message is printed only in error case and not in case of
expected failure.
Signed-off-by: ManikandanC <Manikandan.Chockalingam@in.bosch.com>
|
|
|
|
| |
Signed-off-by: Christoph Lipka <clipka@de.adit-jv.com>
|
|
|
|
| |
Signed-off-by: S. Hameed <shameed@jp.adit-jv.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Fix compiler warnings about socket usage
Correct the data types used for the socket declaration. We use AF_UNIX
sockets so we use struct sockaddr_un, but we need to cast to struct
sockaddr for the socket API.
Fix compiler warnings about sign-compare
Fix two occurences of signed - unsigned comparison by casting the values
accordingly. Note that the cast is legal as the first parts of both
conditional statements make sure the value is not negative before
casting to unsigned.
While at it, add strtol error checking.
Fix compiler warnings about string functions
Add string.h to src/daemon/dlt_daemon_unix_socket.c, because it was
unaware of memcpy and strerror. While at it, change unsafe use of
sprintf to proper dlt_vlog and remove the char buffer.
Fix compiler warnings about unused-*
Fix two unused-variable and one unused-parameter warning. While at it,
change the #ifdef to not run into an empty block. Simply reverse the
condition and enclose the complete else with the #ifdef.
POSIX: Use memset instead of bzero
"The bzero() function is deprecated (marked as LEGACY in POSIX.1-2001);
use memset(3) in new programs."
Use memset instead of bzero and remove any occurrence from DLT. Include
of header "strings.h" that has bzero is also removed.
Signed-off-by: Simon Herkenhoff <sherkenhoff@jp.adit-jv.com>
Signed-off-by: ManikandanC <Manikandan.Chockalingam@in.bosch.com>
Signed-off-by: Christoph Lipka <clipka@jp.adit-jv.com>
|
|
|
|
| |
Signed-off-by: Saya Sugiura <ssugiura@jp.adit-jv.com>
|
|
|
|
|
| |
Signed-off-by: Christoph Lipka <clipka@jp.adit-jv.com>
Signed-off-by: Vo Trung Chi <Chi.VoTrung@vn.bosch.com>
|
|
|
|
|
|
|
|
| |
sem_wait may return an error if a signal is received while waiting for
the lock,and therefore not take the lock before returning.
Changed to have a while loop.
Signed-off-by: Saya Sugiura <ssugiura@jp.adit-jv.com>
|
|
|
|
|
|
|
|
| |
Including net/if.h leads to duplicate definition of DLT_RAW.
However the header itself is not required in dlt_daemon_socket.c.
So it is now removed from the file.
Signed-off-by: Saya Sugiura <ssugiura@jp.adit-jv.com>
|
|
|
|
| |
Signed-off-by: S. Hameed <shameed@jp.adit-jv.com>
|
|
|
|
| |
Signed-off-by: Christoph Lipka <clipka@jp.adit-jv.com>
|
|
|
|
|
|
|
| |
* Size of Resend buffer less than or equal to DLT_USER_BUF_MAX_SIZE results in Memory corruption.
As older version of DLT DLT_USER_RESENDBUF_MAX_SIZE is [DLT_USER_BUF_MAX_SIZE + 100] which contains space for extra headers, where as in DLT 2.18 the resend buffer is bound to DLT_USER_BUF_MAX_SIZE which results in memory corruption in dlt_buffer_read_block when the size of the data is more than DLT_USER_BUF_MAX_SIZE.
Reason for not using "DLT_USER_RESENDBUF_MAX_SIZE" during dynamic memory allocation of resend buffer is as user has got the feasibility to alter the DLT_USER_BUF_MAX_SIZE using the environmental variables the resend buffer in any scenario to be greater then dlt_user.log_buf_len to accommodate the extra headers.
|
|
|
|
|
|
|
|
| |
0xFFFF was used as a magic number in the length field of a network
message in order to trigger a resend. DLT library will now use the
nw_trace_type field and a custom type to do this, thus assuring no
external client of the library can reach this
value(DLT_NW_TRACE_RESEND).
|
|
|
|
|
|
|
|
|
|
| |
Even if network trace is not used in the application, the library
will call mq_close() and mq_unlink() to segmented queue handles
and queue names, which triggers unnecessary close(). It is now
modified to call mq_close() and mq_unlink() only when network trace
is initialized.
Signed-off-by: Saya Sugiura <ssugiura@jp.adit-jv.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Rootcause:
The dlt-daemon rotates files for each key, but not for each [FILTER] because
dlt-daemon creates the DltLogStorageFilterConfig for each key (CTXT: or APPID: or APPID:CTXTID)
then added to the DltLogStorageFilterList.
And each DltLogStorageFilterConfig has it's own records (The list of files
that was recorded in the offline logstorage directory), that's why one [FILTER] might be
has multiple records and then its lead to the problem.
Solution:
Instead of creating the DltLogStorageFilterConfig for each key, dlt-daemon will create
the DltLogStorageFilterConfig for each [FILTER] and DltLogStorageFilterConfig has an information
of all the keys in this [FILTER].
Signed-off-by: Vo Trung Chi <Chi.VoTrung@vn.bosch.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
DLT shall not be used in a forked child until a variant of exec() is
called, because DLT is using non async-signal-safe functions.
The forking process can continue to use libdlt's logging facilities, but
any attempt to use libdlt from the forked child will be denied.
The fork-handler test is updated to reflect this by trying to log from
the forked child which will fail. The fork then calls exec and runs
another application that can continue to use DLT.
Signed-off-by: Simon Herkenhoff <sherkenhoff@jp.adit-jv.com>
|
| |
|
|
|
|
| |
Signed-off-by: Christoph Lipka <clipka@de.adit-jv.com>
|
|
|
|
|
|
|
|
|
|
| |
In previous, number of connections was output only if verbose mode
in dlt.conf was enabled. This information is basically useful
and is not output frequently. Therefore number of connections information
is made to output as default when new connection is established or
the connection is lost.
Signed-off-by: Yusuke Sato <yusuke-sato@apn.alpine.co.jp>
|
|
|
|
| |
Signed-off-by: Manikandan C <mchockalingam@de.adit-jv.com>
|
|
|
|
|
|
|
| |
Error handling was added in case it failed to send to daemon.
Signed-off-by: S. Hameed <shameed@jp.adit-jv.com>
Signed-off-by: Saya Sugiura <ssugiura@jp.adit-jv.com>
|
|
|
|
|
|
|
| |
If /dev/null fails to open during DLT daemon's fork handling,
it is treated as an error and DLT daemon exits.
Signed-off-by: Jeevan Ramakant Nagvekar <jeevan.nagvekar1@wipro.com>
|
|
|
|
|
|
|
|
|
|
|
| |
1> While daemonizing DLT, for connecting I/O file descriptors to
/dev/NULL POSIX call dup() is used. dup2() POSIX call is now used
where explicit standard I/O descriptor number is mentioned.
2>After fork() directory changed to root in place of FIFO Base
directory - "/tmp"
Signed-off-by: Jeevan Ramakant Nagvekar <jeevan.nagvekar1@wipro.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This commit removes DLT's "one-instance-lock" mechanism.
In daemonized mode, on first instance, a file is created (if not
already created) and locked. If second instance is attempted
file locking fails since the file is already locked by first instance.
This prevents new instance of the DLT daemon. After analysis
its found that there is no need of any mechanism for prevention
of another instance. The same is already taken care by socket
mechanism. Since main socket is created by first instance, attempt
to create it again with same port number fails.
Signed-off-by: Jeevan Ramakant Nagvekar <jeevan.nagvekar1@wipro.com>
|
|
|
|
|
| |
Signed-off-by: ManikandanC <Manikandan.Chockalingam@in.bosch.com>
Signed-off-by: Saya Sugiura <ssugiura@jp.adit-jv.com>
|
|
|
|
|
|
|
|
|
|
|
|
| |
Gateway
Logstorage
Event Handler
Signed-off-by: Christoph Lipka <clipka@de.adit-jv.com>
Signed-off-by: S. Hameed <shameed@jp.adit-jv.com>
Signed-off-by: Aditya Paluri <venkataaditya.paluri@in.bosch.com>
Signed-off-by: Saya Sugiura <ssugiura@jp.adit-jv.com>
Signed-off-by: ManikandanC <Manikandan.Chockalingam@in.bosch.com>
|
|
|
|
|
|
|
|
| |
Made TCP socket send reliable by storing the unsent/partial message
in the ring buffer. This will avoid the corrupted messages/Gaps in
Viewer side
Signed-off-by: ManikandanC <Manikandan.Chockalingam@in.bosch.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Sometimes socket will be closed even not all of the data is flushed to daemon.
So before closing, following will be handled:
1. Use shutdown() to shut down further transmissions
2. Subsequent read() to resend_buffer
Also socket fd is reset in child fork handler since the socket itself will
not be duplicated in the child process.
Solves JIRA: SWGIII-28702
Signed-off-by: Saya Sugiura <ssugiura@jp.adit-jv.com>
|
|
|
|
| |
Signed-off-by: Saya Sugiura <ssugiura@jp.adit-jv.com>
|
|
|
|
|
|
|
| |
Add more logs to places where any pointer of buffer may get modified,
to get more information when we get unexpected behaviour
Signed-off-by: Saya Sugiura <ssugiura@jp.adit-jv.com>
|
|
|
|
|
|
| |
with ll_ts API
Signed-off-by: Ravi Sankar P <ponnurangamravi.sankar@in.bosch.com>
|
|
|
|
|
|
| |
registration Macro and API which has option to register log level change callback along with it. This will avoid missing of initial log level change callback when daemon sends the log level change control msg during context registration
Signed-off-by: ManikandanC <Manikandan.Chockalingam@in.bosch.com>
|