Bug 1893457

Summary: Easytag leaves ogg files malformed
Product: [Fedora] Fedora Reporter: iolo
Component: easytagAssignee: David King <amigadave>
Status: NEW --- QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: urgent Docs Contact:
Priority: unspecified    
Version: 38CC: amigadave, cbm, email, lalexand, matthias, rpm, saythep22, van.de.bugger
Target Milestone: ---Keywords: Desktop, Reopened
Target Release: ---   
Hardware: x86_64   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2023-05-25 15:27:20 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Attachments:
Description Flags
MPV error output none

Description iolo 2020-10-31 18:33:21 UTC
Created attachment 1725521 [details]
MPV error output

Description of problem:
After editing ogg files with easytag, the files are malformed, and will no longer play in MPV.

Version-Release number of selected component (if applicable):
easytag-2.4.3-11.fc33.x86_64

How reproducible:
always

Steps to Reproduce:
1. Try to play an ogg file in a player; I used MPV and it worked
2. Edit the tags of that ogg file with Easytag
3. Try to play the file again after saving it in Easytag

Actual results:
The file fails to play.

Expected results:
The file plays normally.

Additional info:
MPV prints some error messages when trying to play the file post-Easytag. They're in the attachment mpv-ogg.txt.

This seems to be a somewhat common issue and has been for some years, as suggested by https://gitlab.gnome.org/GNOME/easytag/-/issues/8 and the fact that OpenSUSE specifically patches their distribution of Easytag to fix the issue: https://build.opensuse.org/request/show/596947

Heaven only knows why the Gnome people have decided not to patch the issue upstream, but in the meantime it might be best if a downstream patch is applied in Fedora, like OpenSUSE have done.

Comment 1 iolo 2020-11-11 18:20:56 UTC
Any thoughts on whether something similar as what OpenSUSE does could be done in Fedora?

Comment 2 iolo 2020-11-19 19:17:02 UTC
Hello? Is anybody still maintaining this package?

Comment 3 David King 2020-11-23 15:17:54 UTC
Currently waiting on the upstream merge request to be approved.

Comment 4 Van de Bugger 2020-12-09 14:10:53 UTC
> Currently waiting on the upstream merge request to be approved.

It can take some time (the issue is known for 2 years for now). Meanwhile it's better to apply the patch or disable Ogg support, because currently EasyTag is not Ogg tagger but Ogg destroyer.

Comment 5 iolo 2020-12-12 20:07:44 UTC
The way I stumbled upon this bug was that I, being unaware of this long-standing issue with easytag, used it to tag some ogg files for which I had no backups, thus destroying them. I would hate for that to happen to someone else, and thus I think it would be good to apply a patch downstream, or disable ogg support altogether, while waiting for upstream to fix the issue on their end. That is, unless there is a Fedora policy forbidding that.

The way things are going, it looks like easytag may be almost unmaintained, with the bug having been open for several years, and the merge request [1] sitting untouched for several months, with who knows how many more months until they manage to actually merge the fix. That is a lot of time for people to accidentally destroy their ogg files.


[1] https://gitlab.gnome.org/GNOME/easytag/-/merge_requests/8

Comment 6 Lars Alexandersen 2021-01-25 03:10:42 UTC
I can confirm that this bug has existed for quite a while.

However it seems that it mostly appears after a file has been edited and saved using EasyTag at least two times. First time may succeed without noticeable problems.


Steps to reproduce:

======
Step 0

0a) Create a reference file: Use Audacity to generate a sine tone, e.g. 3 seconds of 440 Hz. Export as ogg, sine.ogg. You may want to create a read only backup copy of the file as a base line and source for further testing.

0b) Check the ogg file using ogginfo:
#ogginfo sine.ogg

output:
...
	TITLE=440 Hz sine
...

0c) Play the ogg file using ogg123
#ogg123 sine.ogg

No audible errors.

======
Step 1

1a) Edit the ogg file using EasyTAG, e.g. add an artist and date. Save the file.

1b) Check the ogg file again using ogginfo:
#ogginfo sine.ogg

output:
...
	TITLE=440 Hz sine
	ARTIST=audacity
	DATE=2017
...

1c) Play the off file using ogg123
#ogg123 sine.ogg

No audible errors.

======
Step 2

2a) Re-edit the ogg file using EasyTAG, e.g. add a track number. Save the file.

2b) Check the ogg file using ogginfo:
#ogginfo sine.ogg
output:
...
	TITLE=440 Hz sine
	ARTIST=audacity
	DATE=2017
	TRACKNUMBER=01
	TRACKTOTAL=01
Negative or zero granulepos (-335) on Vorbis stream outside of headers. This file was created by a buggy encoder
...


2c) Play the ogg file using ogg123
#ogg123 sine.ogg

Error(s) should be audible.

2d) Open file in Audacity. Changes to the sine waveform are visible upon zoom in.

Comment 7 Tim Jackson 2021-08-17 21:55:18 UTC
Still reproducible on easytag-2.4.3-12.fc34.x86_64

Comment 8 Ben Cotton 2021-11-04 13:47:17 UTC
This message is a reminder that Fedora 33 is nearing its end of life.
Fedora will stop maintaining and issuing updates for Fedora 33 on 2021-11-30.
It is Fedora's policy to close all bug reports from releases that are no longer
maintained. At that time this bug will be closed as EOL if it remains open with a
Fedora 'version' of '33'.

Package Maintainer: If you wish for this bug to remain open because you
plan to fix it in a currently maintained version, simply change the 'version' 
to a later Fedora version.

Thank you for reporting this issue and we are sorry that we were not 
able to fix it before Fedora 33 is end of life. If you would still like 
to see this bug fixed and are able to reproduce it against a later version 
of Fedora, you are encouraged  change the 'version' to a later Fedora 
version prior this bug is closed as described in the policy above.

Although we aim to fix as many bugs as possible during every release's 
lifetime, sometimes those efforts are overtaken by events. Often a 
more recent Fedora release includes newer upstream software that fixes 
bugs or makes them obsolete.

Comment 9 Ben Cotton 2021-11-04 14:16:43 UTC
This message is a reminder that Fedora 33 is nearing its end of life.
Fedora will stop maintaining and issuing updates for Fedora 33 on 2021-11-30.
It is Fedora's policy to close all bug reports from releases that are no longer
maintained. At that time this bug will be closed as EOL if it remains open with a
Fedora 'version' of '33'.

Package Maintainer: If you wish for this bug to remain open because you
plan to fix it in a currently maintained version, simply change the 'version' 
to a later Fedora version.

Thank you for reporting this issue and we are sorry that we were not 
able to fix it before Fedora 33 is end of life. If you would still like 
to see this bug fixed and are able to reproduce it against a later version 
of Fedora, you are encouraged  change the 'version' to a later Fedora 
version prior this bug is closed as described in the policy above.

Although we aim to fix as many bugs as possible during every release's 
lifetime, sometimes those efforts are overtaken by events. Often a 
more recent Fedora release includes newer upstream software that fixes 
bugs or makes them obsolete.

Comment 10 Ben Cotton 2021-11-04 15:14:23 UTC
This message is a reminder that Fedora 33 is nearing its end of life.
Fedora will stop maintaining and issuing updates for Fedora 33 on 2021-11-30.
It is Fedora's policy to close all bug reports from releases that are no longer
maintained. At that time this bug will be closed as EOL if it remains open with a
Fedora 'version' of '33'.

Package Maintainer: If you wish for this bug to remain open because you
plan to fix it in a currently maintained version, simply change the 'version' 
to a later Fedora version.

Thank you for reporting this issue and we are sorry that we were not 
able to fix it before Fedora 33 is end of life. If you would still like 
to see this bug fixed and are able to reproduce it against a later version 
of Fedora, you are encouraged  change the 'version' to a later Fedora 
version prior this bug is closed as described in the policy above.

Although we aim to fix as many bugs as possible during every release's 
lifetime, sometimes those efforts are overtaken by events. Often a 
more recent Fedora release includes newer upstream software that fixes 
bugs or makes them obsolete.

Comment 11 Tim Jackson 2022-01-14 22:28:40 UTC
This serious data-damaging bug has been open for far too long. Whilst it's clear that this should be fixed upstream (and upstream seems largely dead), what is standing in the way of temporarily applying the known-good patch which OpenSuSE has been carrying for over 3 years?

Here's the pull request: https://src.fedoraproject.org/rpms/easytag/pull-request/1

If none of the maintainers is willing to apply this downstream patch, I offer to do the work in Fedora if granted access to do it. (username: timj)

For the record, I took the patch from https://build.opensuse.org/package/view_file/GNOME:Apps/easytag/easytag-revert-open-handle-ogg.patch and applied it to the sources of easytag-2.4.3-12.fc34. Rebuilt cleanly and appears to solve the issue:

# with 2.4.3-12.fc34
ffmpeg -f lavfi -i "sine=frequency=1000:duration=5" -ac 2 sine.wav
oggenc sine.wav
[...]
oggz-validate sine.ogg
# ok
easytag .&
[edit track number in sine.ogg to "1", save]
oggz-validate sine.ogg
# ok
[edit track number in sine.ogg to "2", save]
oggz-validate sine.ogg
-00:00:00.007: serialno 1130217793: Packet out of order (previous 00:00:00.033)
-00:00:00.007: serialno 1130217793: Granulepos decreasing within track

# patched with easytag-revert-open-handle-ogg.patch -p1 -R
ffmpeg -f lavfi -i "sine=frequency=1000:duration=5" -ac 2 sine.wav
oggenc sine.wav
[...]
oggz-validate sine.ogg
# ok
easytag .&
[edit track number in sine.ogg to "1", save]
oggz-validate sine.ogg
# ok
[edit track number in sine.ogg to "2", save]
oggz-validate sine.ogg
#ok

After the patch, I am unable to trigger the creation of a corrupt file despite edited various tags, adding/removing cover art etc.

Comment 12 Ben Cotton 2022-05-12 14:55:22 UTC
This message is a reminder that Fedora Linux 34 is nearing its end of life.
Fedora will stop maintaining and issuing updates for Fedora Linux 34 on 2022-06-07.
It is Fedora's policy to close all bug reports from releases that are no longer
maintained. At that time this bug will be closed as EOL if it remains open with a
'version' of '34'.

Package Maintainer: If you wish for this bug to remain open because you
plan to fix it in a currently maintained version, change the 'version' 
to a later Fedora Linux version.

Thank you for reporting this issue and we are sorry that we were not 
able to fix it before Fedora Linux 34 is end of life. If you would still like 
to see this bug fixed and are able to reproduce it against a later version 
of Fedora Linux, you are encouraged to change the 'version' to a later version
prior to this bug being closed.

Comment 13 Van de Bugger 2022-05-19 00:08:36 UTC
The problem still present in easytag-2.4.3-14.fc36.x86_64.

Comment 14 Josh G 2022-09-15 19:02:05 UTC
I discovered this problem when some of my OGG files wouldn't get detected by plex on Fedora 36. At first I thought it was a problem with ffmpeg because gstreamer would still play them. Then I looked deeper to try and debug gstreamer and noticed the OGG headers had been repeated. Since I had recently ripped them with asunder I repeated the process and noticed the freshly ripped files didn't have the extra headers but only got them after I adjusted the tags using easytag.  I pulled from the repo created here a week ago: https://github.com/maazl/easytag and then updated its configure script and the makefile.am/in files so that the appdata check passed.  I also renamed some of the icon/appdata info but I wasn't 100% successful since the app icon doesn't show up but I did end up successfully making an rpm for fedora 36 where this issue no longer occurs.  I think at a minimum the opensuse patch above should be considered or at least disable the use of easytag for OGG files since its corrupting them.

Comment 15 Ben Cotton 2023-04-25 16:41:02 UTC
This message is a reminder that Fedora Linux 36 is nearing its end of life.
Fedora will stop maintaining and issuing updates for Fedora Linux 36 on 2023-05-16.
It is Fedora's policy to close all bug reports from releases that are no longer
maintained. At that time this bug will be closed as EOL if it remains open with a
'version' of '36'.

Package Maintainer: If you wish for this bug to remain open because you
plan to fix it in a currently maintained version, change the 'version' 
to a later Fedora Linux version. Note that the version field may be hidden.
Click the "Show advanced fields" button if you do not see it.

Thank you for reporting this issue and we are sorry that we were not 
able to fix it before Fedora Linux 36 is end of life. If you would still like 
to see this bug fixed and are able to reproduce it against a later version 
of Fedora Linux, you are encouraged to change the 'version' to a later version
prior to this bug being closed.

Comment 16 Ludek Smid 2023-05-25 15:27:20 UTC
Fedora Linux 36 entered end-of-life (EOL) status on 2023-05-16.

Fedora Linux 36 is no longer maintained, which means that it
will not receive any further security or bug fix updates. As a result we
are closing this bug.

If you can reproduce this bug against a currently maintained version of Fedora Linux
please feel free to reopen this bug against that version. Note that the version
field may be hidden. Click the "Show advanced fields" button if you do not see
the version field.

If you are unable to reopen this bug, please file a new report against an
active release.

Thank you for reporting this bug and we are sorry it could not be fixed.

Comment 17 Lars Alexandersen 2023-05-26 15:50:43 UTC
The problem is still present in easytag-2.4.3-18.fc38.x86_64. See below.

I have followed the steps in post by Tim Jackson of 2022-01-14 22:28:40 UTC to recreate the error on
Fedora Linux 38 Workstation Edition (x86-64), 6.2.15-300.fc38.x86_64

[create sine.wav using ffmpeg and encode it as sine.ogg using oggenc and validate file using oggz-validate]
ffmpeg -f lavfi -i "sine=frequency=1000:duration=5" -ac 2 sine.wav
oggenc sine.wav
oggz-validate sine.ogg
[output: nothing (=no errors found)]

[1st easytag edit: add track number 1 to sine.ogg, save and exit easytag, validate sine.ogg again using oggz-validate]
easytag .&
oggz-validate sine.ogg
[output: nothing (=no errors found)]

[2nd edit: change track number to 2, save and exit easytag, validate sine.ogg again using oggz-validate]
easytag .&
oggz-validate sine.ogg
sine.ogg: Error:
-00:00:00.007: serialno 1925726919: Packet out of order (previous 00:00:00.033)
-00:00:00.007: serialno 1925726919: Granulepos decreasing within track

Please reopen bug record, if possible

Comment 18 Adrien D 2023-12-20 13:32:01 UTC
Same problem with easytag-2.4.3-19.fc39.x86_64

Comment 19 Adrien D 2023-12-20 13:56:10 UTC
(In reply to Adrien D from comment #18)
> Same problem with easytag-2.4.3-19.fc39.x86_64

Including the patch in my copr : https://copr.fedorainfracloud.org/coprs/adriend/fedora-apps/build/6773502/

Tested to update tags : all is okay. The patch works

Comment 20 Adrien D 2024-03-27 09:48:58 UTC
Is it possible to add this patch please ?
I think no new version for Easytag planned ... because the actual version released 7 years ago !!!!

Comment 21 Aoife Moloney 2024-05-07 15:42:50 UTC
This message is a reminder that Fedora Linux 38 is nearing its end of life.
Fedora will stop maintaining and issuing updates for Fedora Linux 38 on 2024-05-21.
It is Fedora's policy to close all bug reports from releases that are no longer
maintained. At that time this bug will be closed as EOL if it remains open with a
'version' of '38'.

Package Maintainer: If you wish for this bug to remain open because you
plan to fix it in a currently maintained version, change the 'version' 
to a later Fedora Linux version. Note that the version field may be hidden.
Click the "Show advanced fields" button if you do not see it.

Thank you for reporting this issue and we are sorry that we were not 
able to fix it before Fedora Linux 38 is end of life. If you would still like 
to see this bug fixed and are able to reproduce it against a later version 
of Fedora Linux, you are encouraged to change the 'version' to a later version
prior to this bug being closed.

Comment 22 Adrien D 2024-05-08 12:20:14 UTC
The issue still present in Fedora 40