Send diagnostics event (BugreportCreated) when new bugreport is created 20/255620/2
authorMateusz Moscicki <m.moscicki2@partner.samsung.com>
Fri, 19 Mar 2021 16:51:35 +0000 (17:51 +0100)
committerMateusz Moscicki <m.moscicki2@partner.samsung.com>
Mon, 22 Mar 2021 12:23:25 +0000 (13:23 +0100)
Change-Id: I0fe77932bec656e1abbf0a1fd79eb68ae233ea3d

packaging/crash-worker.spec
src/bugreport-service/CMakeLists.txt
src/bugreport-service/bugreport-service.c
src/bugreport-service/systemdump.c
src/crash-manager/CMakeLists.txt
src/crash-manager/crash-manager.c
src/crash-manager/main.c

index d52aac1470ba38226b1e5e2b747d00714a731176..52ef2105c916638d694b25cbe6a86d13ce1a9dc2 100644 (file)
@@ -97,6 +97,7 @@ Requires:       %{name}-support-common = %{version}-%{release}
 Requires:       minicoredumper >= 2.1.0
 # Ensure crash_worker user is available (created by security-config, package provides crash_worker-owned files)
 Requires:       security-config
+BuildRequires:  pkgconfig(diagnostics)
 %description    support-regdump
 %endif
 
@@ -122,6 +123,7 @@ Summary:        package provides headers needed to develop programs using libcra
 
 %package -n     bugreport-service
 Summary:        bugreport provides dumpsys provider for diagnostics data
+BuildRequires:  pkgconfig(diagnostics)
 Requires:       %{name}-dumpsystemstate-util = %{version}-%{release}
 %if %{with livedumper}
 Requires:       %{name}-support-livecoredump = %{version}-%{release}
index dbcf9bd0252344d23b805f31af73624b722c271c..3d493be52affd56a5df233337e8090a34f7e8225 100644 (file)
@@ -35,7 +35,7 @@ INCLUDE(${CMAKE_SOURCE_DIR}/cmake/ProcessM4.cmake)
 LINK_DIRECTORIES(${CMAKE_SOURCE_DIR}/src/crash-manager)
 ADD_EXECUTABLE(${PROJECT_NAME} ${CRASH_SERVICE_SRCS})
 ADD_DEPENDENCIES(${PROJECT_NAME} crash-manager)
-TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${bugreport-service_pkgs_LDFLAGS} -pie -Wl,--as-needed -lrt -lcrash-manager)
+TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${bugreport-service_pkgs_LDFLAGS} -pie -Wl,--as-needed -lrt -lcrash-manager -ldiagnostics)
 
 PROCESS_M4("${M4_DEFINES}"
        "${CMAKE_CURRENT_SOURCE_DIR}/bugreport.service.m4"
index e5d2d2d14dced2353adab8e0a35b06f5f5212bde..3bea41897fa5fc7a504271f67bb3a3ad1ef8d690 100644 (file)
@@ -26,6 +26,7 @@
 #include <sys/types.h>
 #include <sys/wait.h>
 #include <unistd.h>
+#include <diagnostics.h>
 
 #include "bugreport-service.h"
 
@@ -162,6 +163,10 @@ static gboolean read_result_cb(gpointer data)
                }
        }
 
+       int res = diagnostics_send_event("BugreportCreated", NULL);
+       if (res != DIAGNOSTICS_ERROR_NONE)
+               _E("Send diagnostics event error: %d", res);
+
        g_dbus_method_invocation_return_value(cb_data->invocation,
                                              g_variant_new("(s)", report_path));
 end:
@@ -505,6 +510,7 @@ int main(void)
        g_mutex_init(&timeout_mutex);
        add_timeout();
 
+       diagnostics_set_client_id("org.tizen.bugreport-service");
        g_main_loop_run(loop);
 
        if (introspection_data)
index 012bcc90bc01130e11fb71690bca9de81cd7d7fa..b9a7a10b24f02e38b247690af11f57b46a5641cf 100644 (file)
@@ -22,6 +22,8 @@
 #include <stdio.h>
 #include <string.h>
 
+#include "bugreport-service.h"
+
 #include "systemdump.h"
 #include "defs.h"
 #include "shared/spawn.h"
index 70930cdcf4bdefba7e19355cb3b0a9ab601f46a9..d76671e15dbeebb1b23aac4dd045aa326c989067 100644 (file)
@@ -25,6 +25,7 @@ pkg_check_modules(crash-manager_pkgs REQUIRED
        pkgmgr-info
        rpm
        libcrypto1.1
+       diagnostics
        )
 
 pkg_check_modules(helper_pkgs REQUIRED
@@ -45,7 +46,7 @@ SET_TARGET_PROPERTIES(libcrash-manager PROPERTIES OUTPUT_NAME crash-manager)
 TARGET_LINK_LIBRARIES(libcrash-manager ${crash-manager_pkgs_LDFLAGS})
 
 ADD_EXECUTABLE(${PROJECT_NAME} ${CRASH_MANAGER_SRCS})
-TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${crash-manager_pkgs_LDFLAGS} -pie -lcap -lrt libcrash-manager)
+TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${crash-manager_pkgs_LDFLAGS} -pie -lcap -lrt libcrash-manager -ldiagnostics)
 
 set(CRASH_POPUP crash-popup-launch)
 ADD_EXECUTABLE(${CRASH_POPUP} ${CRASH_POPUP}.c)
index c6e0eb0ba3867f0f0e9bac92d8a5bd99e7eac951..beeb59dcc60ca12881ec222761118e8cf173e246 100644 (file)
@@ -39,6 +39,7 @@
 #include <sys/ptrace.h>
 #include <sys/vfs.h>
 #include <unistd.h>
+#include <diagnostics.h>
 
 #include <pkgmgr-info.h>
 #include <tzplatform_config.h>
@@ -1318,8 +1319,10 @@ static bool run(struct crash_info *cinfo)
        } else
                temp_report = cinfo->info_path;
 
-       if (move_dump_data(temp_report, cinfo))
+       if (move_dump_data(temp_report, cinfo)) {
                _I("Report for pid %d created at %s", cinfo->pid_info, cinfo->result_path);
+               diagnostics_send_event("BugreportCreated", NULL);
+       }
 
        if (cinfo->print_result_path)
                printf("REPORT_PATH=%s\n", cinfo->result_path);
index 6080bfe274d0f22ef9906f27b2b662d9bad35488..def780c4459bf8215d43325ac632065c4b5e0821 100644 (file)
@@ -1,3 +1,4 @@
+#include <diagnostics.h>
 #include <getopt.h>
 #include <grp.h>
 #include <pwd.h>
@@ -304,6 +305,7 @@ int main(int argc, char *argv[])
        if (!parse_args(&cinfo, argc, argv))
                return EXIT_FAILURE;
 
+       diagnostics_set_client_id("org.tizen.bugreport-service");
        res = crash_manager_direct(&cinfo) ? EXIT_SUCCESS : EXIT_FAILURE;
 
        crash_manager_free(&cinfo);