-
Bug
-
Resolution: Fixed
-
Normal
-
3.0
-
None
-
Docker
If a file has a poorly formatted DATE tag (in this case, from a FLAC file):
$ ffprobe 03\ -\ Everyday\ People\ \[FLAC\ 24bit\]\[FLAC\ 2.0\].flac
ffprobe version 6.1.1-3ubuntu5 Copyright (c) 2007-2023 the FFmpeg developers
# ...
Input #0, flac, from '03 - Everyday People [FLAC 24bit][FLAC 2.0].flac':
Metadata:
DATE : 20190303201903032019030320190303
# ...
When importing in Picard, an Overflow exception causes the application to crash, as it is not caught:
[app ] Traceback (most recent call last): [app ] File "/usr/local/lib/python3.10/dist-packages/picard/webservice/__init__.py", line 593, in _process_reply [app ] self._handle_reply(reply, request) [app ] File "/usr/local/lib/python3.10/dist-packages/picard/webservice/__init__.py", line 578, in _handle_reply [app ] handler(document, reply, error) [app ] File "/usr/local/lib/python3.10/dist-packages/picard/acoustid/__init__.py", line 125, in _on_lookup_finished [app ] resolver.resolve() [app ] File "/usr/local/lib/python3.10/dist-packages/picard/acoustid/recordings.py", line 110, in resolve [app ] self._load_recordings() [app ] File "/usr/local/lib/python3.10/dist-packages/picard/acoustid/recordings.py", line 114, in _load_recordings [app ] self._send_results() [app ] File "/usr/local/lib/python3.10/dist-packages/picard/acoustid/recordings.py", line 156, in _send_results [app ] self._callback(list(parse_recording_map(self._recording_map)), error) [app ] File "/usr/local/lib/python3.10/dist-packages/picard/acoustid/__init__.py", line 164, in _on_recording_resolve_finish [app ] task.next_func({'recordings': recording_list}, http, error) [app ] File "/usr/local/lib/python3.10/dist-packages/picard/file.py", line 851, in _lookup_finished [app ] trackmatch = self._match_to_track(tracks, threshold=threshold) [app ] File "/usr/local/lib/python3.10/dist-packages/picard/file.py", line 878, in _match_to_track [app ] best_match = find_best_match(candidates, no_match) [app ] File "/usr/local/lib/python3.10/dist-packages/picard/util/__init__.py", line 909, in find_best_match [app ] best_match = max(candidates, key=attrgetter('similarity'), default=no_match) [app ] File "/usr/local/lib/python3.10/dist-packages/picard/file.py", line 874, in <genexpr> [app ] self.metadata.compare_to_track(track, self.comparison_weights) [app ] File "/usr/local/lib/python3.10/dist-packages/picard/metadata.py", line 396, in compare_to_track [app ] release_parts = self.compare_to_release_parts(release, weights) [app ] File "/usr/local/lib/python3.10/dist-packages/picard/metadata.py", line 308, in compare_to_release_parts [app ] metadata_year = extract_year_from_date(metadata_date) [app ] File "/usr/local/lib/python3.10/dist-packages/picard/util/__init__.py", line 978, in extract_year_from_date [app ] return parse(dt).year [app ] File "/usr/local/lib/python3.10/dist-packages/dateutil/parser/_parser.py", line 1368, in parse [app ] return DEFAULTPARSER.parse(timestr, **kwargs) [app ] File "/usr/local/lib/python3.10/dist-packages/dateutil/parser/_parser.py", line 649, in parse [app ] ret = self._build_naive(res, default) [app ] File "/usr/local/lib/python3.10/dist-packages/dateutil/parser/_parser.py", line 1235, in _build_naive [app ] naive = default.replace(**repl) [app ] OverflowError: Python int too large to convert to C long [app ] Aborted (core dumped) [supervisor ] service 'app' exited (with status 134). [supervisor ] service 'app' exited, shutting down...