TimeTracker database output option sometimes causes exception
I am using the dbOutput (SQLite) output of TimeTracker to study module timing distributions. This works when I create a new file for each run. If instead I use the 'overwrite' option (overwrite : true) to overwrite an existing file, art sometimes issues an exception, noted below. The exception seems to be issued randomly (rerunning the same job multiple times produces different results), but is fairly consistently produced when processing more events the 2nd time than the first.
%MSG-s ArtException: Early 30-Oct-2017 16:04:12 CDT JobSetup cet::exception caught in art ---- OtherArt BEGIN ServiceCreation ---- SQLExecutionError BEGIN database disk image is malformed ---- SQLExecutionError END cet::exception caught during construction of service type art::TimeTracker: ---- OtherArt END %MSG Art has completed and will exit with status 1
As a more minor but annoying issue, I note that, without the overwrite option, if I try to write to the same database file, the exception message is obscure and doesn't help the user understand what the problem is.
Transaction d'tor called before commit was called. terminate called after throwing an instance of 'cet::coded_exception<cet::sqlite::errors::ErrorCodes, &cet::sqlite::ExceptionDetail::translate[abi:cxx11]>' what(): ---- SQLExecutionError BEGIN Failed to bind int64. Return code: 21 ---- SQLExecutionError END
#2 Updated by Kyle Knoepfel over 2 years ago
Dave, can you provide a sample job that demonstrates this (sporadic) failure? I need to know:
- the machine you're running on (e.g.
- the version of
mu2eOffline you're using if the job depends on anything from there
- ideally, the version of
art--the "Occurs In" field says you observe this is 1.03.09, which does not correspond to a version of