# check if binary changed since the crash happened
if 'ExecutablePath' in self.report and 'ExecutableTimestamp' in self.report: orig_time = int(self.report['ExecutableTimestamp'])
del self.report['ExecutableTimestamp'] cur_time = int(os.stat(self.report['ExecutablePath']).st_mtime)
if orig_time != cur_time: self.report['UnreportableReason'] = ( _('The problem happened with the program %s which changed ' 'since the crash occurred.') % self.report['ExecutablePath']) return
However, because collect_info just returns here there will be a complete .crash file with 'UnreportableReason' in it which apport will then create a .upload file for, because the check_unreportable check is later. Whoopsie seems to deliberately ignore the UnreportableReason field and not upload that to daisy at all. This makes sense as you might want to be able to find out what kind of things are unreportable, but there currently is no way to filter these out.
This applies to every type of crash:
# check if binary changed since the crash happened stamp' in self.report:
orig_ time = int(self. report[ 'ExecutableTime stamp'] ) 'ExecutableTime stamp']
cur_ time = int(os. stat(self. report[ 'ExecutablePath ']).st_ mtime)
if 'ExecutablePath' in self.report and 'ExecutableTime
del self.report[
if orig_time != cur_time:
self. report[ 'UnreportableRe ason'] = (
_ ('The problem happened with the program %s which changed '
'since the crash occurred.') % self.report[ 'ExecutablePath '])
return
However, because collect_info just returns here there will be a complete .crash file with 'UnreportableRe ason' in it which apport will then create a .upload file for, because the check_unreportable check is later. Whoopsie seems to deliberately ignore the UnreportableReason field and not upload that to daisy at all. This makes sense as you might want to be able to find out what kind of things are unreportable, but there currently is no way to filter these out.