longer watchdog timeouts for debug Skia build

Skia runs internal checks, which occassionally actually may take
a bit. Also abort() in dbgutil build already in case the watchdog
disables Skia, to make finding these easier.

Change-Id: I9ed09c57414e056de20a561b6945cba930edd37b
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/102096
Tested-by: Jenkins
Reviewed-by: Luboš Luňák <l.lunak@collabora.com>
This commit is contained in:
Luboš Luňák
2020-09-05 16:31:37 +02:00
parent c2275ee554
commit e8eaf5e287
3 changed files with 17 additions and 1 deletions

View File

@@ -67,7 +67,11 @@ void CheckConfigMacros::MacroDefined( const Token& macroToken, const MacroDirect
|| hasPathnamePrefix(filename, BUILDDIR "/config_build/") ))
{
// fprintf(stderr,"DEF: %s %s\n", macroToken.getIdentifierInfo()->getName().data(), filename );
configMacros.insert( macroToken.getIdentifierInfo()->getName().str());
StringRef macro = macroToken.getIdentifierInfo()->getName();
// Skia #defines do not have values, but we set them in config_skia.h .
if( macro.startswith( "SK_" ) && loplugin::isSamePathname(filename, BUILDDIR "/config_host/config_skia.h"))
return;
configMacros.insert( macro.str());
}
}

View File

@@ -18,6 +18,8 @@
#include <vcl/skia/SkiaHelper.hxx>
#include <config_skia.h>
/**
* Called from a signal handler or watchdog thread if we get
* a crash or hang in some driver.
@@ -59,7 +61,13 @@ const CrashWatchdogTimingsValues& SkiaZone::getCrashWatchdogTimingsValues()
{
case SkiaHelper::RenderVulkan:
{
#if defined(SK_RELEASE)
static const CrashWatchdogTimingsValues vulkanValues = { 6, 20 }; /* 1.5s, 5s */
#elif defined(SK_DEBUG)
static const CrashWatchdogTimingsValues vulkanValues = { 60, 200 }; /* 15s, 50s */
#else
#error Unknown Skia debug/release setting.
#endif
return vulkanValues;
}
case SkiaHelper::RenderRaster:

View File

@@ -57,8 +57,12 @@ template <typename Zone> struct WatchdogHelper
{
gbWatchdogFiring = true;
SAL_WARN("vcl.watchdog", "Watchdog triggered: hard disable " << Zone::name());
#ifdef DBG_UTIL
std::abort();
#else
Zone::hardDisable();
gbWatchdogFiring = false;
#endif
}
bFired = true;