onetagger icon indicating copy to clipboard operation
onetagger copied to clipboard

100% yet incomplete

Open brendan-pike opened this issue 2 years ago • 16 comments

I tried running onetagger over my entire collection. I expected it would take days, however it seems to have finished, claiming 100% yet had only got through 7%

Is there a hard coded timeout somewhere?

onetagger

brendan-pike avatar Oct 15 '21 00:10 brendan-pike

Could you please send the log?

Marekkon5 avatar Oct 15 '21 08:10 Marekkon5

I assume I have to run from cli and capture the output? I don't see any log settings, I'll rerun and capture, is this what you want?

brendan-pike avatar Oct 20 '21 01:10 brendan-pike

The log is in: %AppData%/OneTagger on Windows ~/.config/onetagger on Linux.

Marekkon5 avatar Oct 20 '21 05:10 Marekkon5

Ah thanks, looks normal I think but at the end it has this; Oct 14 19:29:23.765 ERRO PANIC: panicked at 'range end index 31256947 out of range for slice of length 14479731', /home/runner/.cargo/registry/src/github.com-1ecc6299db9ec823/metaflac-0.2.4/src/block.rs:747:24 Oct 14 19:29:23.765 ERRO LOCATION: File: /home/runner/.cargo/registry/src/github.com-1ecc6299db9ec823/metaflac-0.2.4/src/block.rs, Line: 747 Oct 14 19:29:23.776 INFO Tagging finished, took: 19119 seconds. Oct 20 11:47:55.397 INFO Is that enough or do you need the whole log?

Cheers

brendan-pike avatar Oct 20 '21 13:10 brendan-pike

It seems that one of the FLAC files might be corrupted / causing issues with the library. Could you split your library to smaller portions and try to determine which specific FLAC file is it? Thanks

Marekkon5 avatar Oct 20 '21 17:10 Marekkon5

Just returning to this issue now sorry. With respect I think your idea of splitting the collection to try and identify the offending flac is not practical. The main directory is split into bands/artists and has 3405 folders which contain 7195 albums. These are indexed by multiple players around the house which would mess them up also. But manually splitting, re-running etc would probably take months. Could it be possible to have a debug mode which shows the track onetagger is about to load in a log?

brendan-pike avatar Dec 24 '21 03:12 brendan-pike

Yes, I do understand that, however - OneTagger already logs the paths of finished file. The problem in your case is panic (fatal error) caused by an library, so I can't just easily "catch the exception" and print the path. I will add printing the path to the track that is starting the tagging, however it won't be as easy either, because there are many threads running at once, so you won't have just a single track.

I'll try to figure out something better, sorry for the inconvenience.

Marekkon5 avatar Dec 24 '21 09:12 Marekkon5

Thank you, that's great. Testing the file for each thread won't be a problem for me, that would be excellent :)

brendan-pike avatar Dec 24 '21 12:12 brendan-pike

In the latest commit I've added logging of the currently tagged track (you can get the binary to test from the Actions tab).

It is currently logged as info level, because all debug/trace logs are removed from release builds (so I can't easily enable them). I'll figure out a better solution after Christmas.

Let me know if this works for you, thanks.

Marekkon5 avatar Dec 24 '21 13:12 Marekkon5

Thanks to your patch I've now identified the offending file. It's not immediately obvious to me what's wrong with it although if I run picard over that file then onetagger is happy with it, probably corrupt or invalid tag formatting.

I have kept a copy of the original file, would it help you to test. Not sure if its possible, but the ideal would be that onetagger logs the invalid file and continues without crashing. If you want it let me know how I can send you a download link privately please.

brendan-pike avatar Dec 29 '21 02:12 brendan-pike

Thanks for the work, it would be great if you could send me the file, so I can look what's wrong.

And as I said before - the issue is with a library causing panic (fatal error), which it shouldn't do. So I have to patch that, rather than fix OneTagger.

Marekkon5 avatar Dec 29 '21 09:12 Marekkon5

Can you let me know how to send you that file please?

I was wondering if there was a way to instruct one tagger to only work on files not previously done before, eg. if te custom onetagger tag is found then skip, to speed up subsequent runs. I guess then it would make sense that onetagger does not add its own custom tag if a match wasn't made with discog etc.

brendan-pike avatar Jan 19 '22 00:01 brendan-pike

You can post a link here to a google drive, mega, or any file sharing service if it's just a few tracks. Or you can sent them to my email: marekkon50 (at) gmail (dot) com.

I'll add the skipping tracks feature when I get time. Thanks.

Marekkon5 avatar Jan 19 '22 05:01 Marekkon5

I've added the skipping of tagged tracks in the latest commit. You can get the binary from the Actions tab to test it out. Thanks

Marekkon5 avatar Jan 21 '22 13:01 Marekkon5

Fantastic, its working well so far.

I did find the the CLI path doesn't work anymore though, ie.

nice -n19 ./repos/onetagger_release/onetagger /mnt/Audio/Lossless error: Found argument '/mnt/Audio/Lossless' which wasn't expected, or isn't valid in this context

brendan-pike avatar Jan 23 '22 08:01 brendan-pike

Sorry, this is because of #76 - I had to change the argument parsing. The new way to start with path is just ./onetagger --path /mnt/audio/123 or ./onetagger -p /mnt/audio/123

Thanks

Marekkon5 avatar Jan 23 '22 09:01 Marekkon5

Seems fixed, inactivity

Marekkon5 avatar Oct 11 '22 08:10 Marekkon5