crash: change path for dump to tmpfs 03/54903/2 accepted/tizen/mobile/20151221.050637 accepted/tizen/tv/20151221.050655 accepted/tizen/wearable/20151221.050716 submit/tizen/20151221.014746
authorTaeyoung Kim <ty317.kim@samsung.com>
Fri, 18 Dec 2015 12:00:27 +0000 (21:00 +0900)
committerTaeyoung Kim <ty317.kim@samsung.com>
Mon, 21 Dec 2015 01:43:32 +0000 (17:43 -0800)
- When power is turned off during zipping coredump file,
  the coredump files are remained even if target is rebooted.
- By changing the path to tmpfs, the dumps are removed
  when power is turned off before completing makging dump.

Change-Id: I8718bee8777a3ce6977f07bc975cdce772f5b8ad
Signed-off-by: Taeyoung Kim <ty317.kim@samsung.com>
packaging/crash-worker.spec
src/crash-manager/crash-init.service.in
src/crash-manager/crash-init.sh.in
src/crash-manager/crash-manager.sh.in

index 2e0ac57d6888d149070fd7b53ea1b50101ea34d2..faa5bf27a9532987098a86b72ad05aeac7477019 100644 (file)
@@ -23,6 +23,7 @@ crash-manager
 #Path to store logs and coredump files
 %define crash_root_path /opt%{TZ_SYS_SHARE}/crash
 %define crash_path      %{crash_root_path}/dump
+%define crash_temp      %{crash_root_path}/temp
 
 %build
 cp %{SOURCE1001} .
@@ -33,7 +34,8 @@ export CFLAGS+=" -Werror"
           -DCMAKE_INSTALL_PREFIX=%{_prefix} \
           -DTZ_SYS_BIN=%{TZ_SYS_BIN} \
           -DUNIT_DIR=%{_unitdir} \
-          -DCRASH_PATH=%{crash_path}
+          -DCRASH_PATH=%{crash_path} \
+          -DCRASH_TEMP=%{crash_temp}
 make %{?jobs:-j%jobs}
 
 %install
@@ -41,6 +43,7 @@ rm -rf %{buildroot}
 %make_install
 mkdir -p %{buildroot}%{crash_root_path}
 mkdir -p %{buildroot}%{crash_path}
+mkdir -p %{buildroot}%{crash_temp}
 
 %install_service sysinit.target.wants crash-init.service
 
@@ -50,6 +53,7 @@ mkdir -p %{buildroot}%{crash_path}
 %defattr(-,system,system,-)
 %dir %{crash_root_path}
 %dir %{crash_path}
+%dir %{crash_temp}
 %attr(0755,system,system) %{_bindir}/dump_systemstate
 %{_bindir}/crash-manager.sh
 %{_bindir}/crash-init.sh
index 866c22d2fe6fe7df831c4a10e369da3881e5503e..ea65932f6fe864d87383fe368e5ea2d283c0c171 100644 (file)
@@ -1,7 +1,7 @@
 [Unit]
 Description=Crash init
 DefaultDependencies=no
-Before=sysinit.target
+After=local-fs.target
 
 [Service]
 Type=normal
index 80b94d9550ee81c0a2de6c3345ed8f4d7fc5ca7a..f2d3020e6f69ebc43e4e0cdbcc64c48a81a13dc3 100644 (file)
@@ -1,5 +1,17 @@
 #!/bin/sh
 
+################################
+# MOUNT tmpfs ON TEMPORARY PATH
+################################
+
+mkdir -p @CRASH_TEMP@
+/usr/bin/mount tmpfs @CRASH_TEMP@ -t tmpfs
+
+
+############################
+# REMOVE PREVIOUS COREDUMPS
+############################
+
 id=""
 
 if [ -e "/proc/sys/kernel/random/boot_id" ]
@@ -12,7 +24,7 @@ if [ -d "/var/lib/systemd/coredump" ]
 then
        cd /var/lib/systemd/coredump
 
-#remove temporary dump files
+#remove garbage dump files
        if [ -e ".#core.*" ]
        then
                for i in `ls -a .#core.*`
index 69a583c38ae891ecc90222a04fae7a3d35f1f5a0..ec547bc97696bd2d5824aadab31475916373cff5 100644 (file)
@@ -9,15 +9,17 @@ app="$6"
 
 /usr/lib/systemd/systemd-coredump "$process" "$user" "$group" "$signal" "$time" "$app"
 
-rootpath=@CRASH_PATH@
+temppath=@CRASH_TEMP@
+resultpath=@CRASH_PATH@
 name="$app"_"$process"_"$time"
-path="$rootpath"/"$name"
+path="$temppath"/"$name"
 info="$name".info
 dump="$name".coredump
 log="$name".log
 result="$name".tar.gz
 
-/usr/bin/mkdir -p "$rootpath"
+/usr/bin/mkdir -p "$temppath"
+/usr/bin/mkdir -p "$resultpath"
 /usr/bin/mkdir -p "$path"
 
 cd "$path"
@@ -26,8 +28,9 @@ cd "$path"
 /usr/bin/coredumpctl dump "$process" --output="$dump"
 /usr/bin/dump_systemstate -d -k -f "$log"
 
-/usr/bin/tar cvfz ../"$result" "$dump" "$info" "$log"
+cd "$temppath"
+/usr/bin/tar cvfz "$result" "$name"/"$dump" "$name"/"$info" "$name"/"$log"
 
-cd ..
+/usr/bin/mv "$temppath"/"$result" "$resultpath"/"$result"
 
 /usr/bin/rm -rf "$path"