> ... I thought the code that used the monotonic clock in the internal
timer queues never got into a released version ...
dbScan.c was the one usage I still had confidence in, so I left it.
sigh...
epicsTimeDiffInSeconds() only tries to handle rollover >= `ULONG_MAX/2`.
Using it with a time source which rolls over sooner is wrong, and likely
unfixable.
--
You received this bug notification because you are a member of EPICS
Core Developers, which is subscribed to EPICS Base.
Matching subscriptions: epics-core-list-subscription
https://bugs.launchpad.net/bugs/1896295
Title:
WIN32: IOC scan loops hang
Status in EPICS Base:
New
Bug description:
The IOC scan loops hung on all IOCs on several computers, on
investigation this looks to be caused by the monotonic clock wrapping.
The values of next and now in dbScan.c / periodicTask() are consistent
with GetTickCount() wrapping (which happens every 49.7 days), which I
believe lead to epicsEventWaitWithTimeout() being called with a large
delay. I was initially confused by the debugger saying a delay of 0
had been passed to epicsEventWaitWithTimeout(), but I cannot see how
this is possible (the minimum delay should be penalty) so I assume the
debugger is reporting incorrectly due to the code being in release
mode.
The epics Monotonic time functions should not normally be using
GetTickCount(), however it looks like the logic in the test for
whether to use GetPerformanceCounter() is inverted and so
GetTickCount() is always used. I will push a patch to fix this, and
also to use GetTickCount64() as a fallback instead (which wraps on a
much longer timescale).
To manage notifications about this bug go to:
https://bugs.launchpad.net/epics-base/+bug/1896295/+subscriptions
- References:
- [Bug 1896295] [NEW] WIN32: IOC scan loops hang Freddie Akeroyd via Core-talk
- Navigate by Date:
- Prev:
Re: [Merge] ~freddie-akeroyd/epics-base:fix_win32_monotonic_time into epics-base:7.0 mdavidsaver via Core-talk
- Next:
[Bug 1896295] Re: WIN32: IOC scan loops hang mdavidsaver via Core-talk
- Index:
2002
2003
2004
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
<2020>
2021
2022
2023
2024
- Navigate by Thread:
- Prev:
[Bug 1896295] Re: WIN32: IOC scan loops hang Freddie Akeroyd via Core-talk
- Next:
[Bug 1896295] Re: WIN32: IOC scan loops hang mdavidsaver via Core-talk
- Index:
2002
2003
2004
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
<2020>
2021
2022
2023
2024
|