kartik-venugopal / aural-player

An audio player for macOS, inspired by Winamp.
MIT License
732 stars 43 forks source link

Log gets bloated with I/O errors #51

Closed LesterJitsi closed 1 year ago

LesterJitsi commented 1 year ago

Hi, I’m not really sure if this is the same issue I reported and you fixed (App crashes should not cause loss of app state (state.json) #36; I can’t see my original posts any longer).

MacBook Air 13”2019 macOS 10.14.6 (18G9323) Aural 3.14.0

Aural was playing a playlist whose source was on an external USB drive (Samsung T5 SSD) and I accidentally touched the connector. As MacBook is very picky about mounting/ejecting external drives, I received a sudden notification from Finder to unmount volumes before ejecting them. The icon disappeared form Desktop and reappeared a couple of seconds later. Aural began hanging with spinning beach ball and I had to force quit. On reopening Aural had lost all history of the current day.

When I looked at the support folders to report the issue, I was stunned by the size of Aural log: over 558 MB, mostly error messages (actually I never had issues playing all mentioned files). I’m attaching a hopefully useful selection from initial, middle and last parts. Just in case, on my machine Aural is allowed to control the computer but is not granted full disk access. I’m attaching also the .plist file from /Users/me/Library/Application Support/CrashReporter, even though it only reports the forced quit. I found no crash log in Console.

I can't say for sure, but I suspect this problem may have been introduced in recent Aural updates, as it already occurred to me to eject volumes improperly but, as far as I can remember, Aural retained recent history. Thanks in advance. Crash.zip

kartik-venugopal commented 1 year ago

Hi @LesterJitsi ! Good to hear from you :)

Hmm, okay, I think I get what's going on. However, 2 things:

1 - My first impression is that I may not be able to do too much with this particular issue, i.e. a Force Quit operation may not be recoverable from. I will try to fix it anyway. 2 - I am actually very busy with other things currently, so I'm not sure when I will get around to this, to be honest.

But whenever I do get back to it, I promise I will think about it !

BTW, I did not get around to fixing that other issue - App crashes should not cause loss of app state. But maybe I should look into fixing that because that may largely mitigate this new issue.

Cheers ! Kartik

LesterJitsi commented 1 year ago

Thanks. FWIW copying those same files onto my internal disk seems to solve the error messages issue.

LesterJitsi commented 1 year ago

@kartik-venugopal As I started this issue, it's fair to report that at least the error message flooding apparently had something to do with the flac files mentioned in the log. Though they appeared to be ok, I re-encoded all of them as flac with XLD, played with Aural from the Samsung external SSD and so far received no error message. I analyzed the troublesome files with Invisor but wasn't able to detect significant differences.

kartik-venugopal commented 1 year ago

Hi @LesterJitsi , thanks for the update, and sorry it took so long for me to respond.

It's great that you have found a workaround. Again, I haven't been able to put in too much time because of my private life 😄

Cheers, Kartik

LesterJitsi commented 1 year ago

Spoke too soon, Aural log is back at 200 MB... same errors 😖

kartik-venugopal commented 1 year ago

Okay, upon looking more closely, I see 2 separate issues here:

1 - Loss of app state in the case of Force Quit. There is already an issue filed for this: #36. So, let's put that aside here.

2 - Huge logs when an I/O error occurs (eg. ejecting a USB drive improperly). Now, I looked at the error messages in the logs. This is what I saw:

2023-02-21 19:51:33.775 Aural[3268:165486] Unable to read packet. Error: -5 (Input/output error))
2023-02-21 19:51:33.775 Aural[3268:165486] Packet read error while reading track /Volumes/Samsung Portable SSD T5 Media/MusicStore/L/Ligabue - 1990 - Ligabue [Remastered Version] [flac]/01 -  Ligabue - Balliamo sul mondo.flac : Aural.PacketReadError

It looks like these are occurring roughly 10 times per millisecond ... this indicates that Aural (through FFmpeg) is trying to continue reading the file even though it is evident that there is a serious I/O error. Perhaps the desired behavior should be to stop trying to read the same file once it is evident that the file is no longer present. That will result in only one such error and then it will stop.

Also, I think we should let the user specify a log size limit to prevent the log from getting too big.

kartik-venugopal commented 1 year ago

Hi @LesterJitsi !

I am pleased to report that:

Release v3.16.0

PS - Sorry it took so long to fix this issue ! Cheers :)