Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 27 Sep 2019 11:36:05 -0400
From:      mike tancsa <mike@sentex.net>
To:        freebsd-embedded <freebsd-embedded@freebsd.org>
Subject:   watchdogd stat location
Message-ID:  <5eba25eb-9ba4-0c93-27c8-e834491298ad@sentex.net>

next in thread | raw e-mail | index | archive | help
We sometimes run into an issue where our embedded devices that boot off
a read only SD card, hang with a controller error.  Its not clear if
this is a BIOS/firmware/SDCard or driver bug issue. Its pretty
infrequent, but annoying enough that I started to dig to see why the box
is not rebooting via the hardware watchdog.   It seems to fail to reboot
the box as the stat that it does on the filesystem is off the md backed
/etc which is not impacted.  I know I could run an external program, but
would it be safer to change the default directory where the stat is done
to something that is generally not mounted via ramdisk ?

eg.


 diff -u watchdogd.c.orig watchdogd.c
--- watchdogd.c.orig    2019-09-27 10:51:04.273113000 -0400
+++ watchdogd.c 2019-09-27 10:51:23.592200000 -0400
@@ -365,7 +365,7 @@
                if (test_cmd != NULL)
                        failed = system(test_cmd);
                else
-                       failed = stat("/etc", &sb);
+                       failed = stat("/boot", &sb);
 
                error = watchdog_getuptime(&ts_end);
                if (error) {


    ---Mike




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?5eba25eb-9ba4-0c93-27c8-e834491298ad>