Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Remove ETAG #1816

Closed
tesshucom opened this issue Nov 3, 2022 · 0 comments · Fixed by #1894
Closed

Remove ETAG #1816

tesshucom opened this issue Nov 3, 2022 · 0 comments · Fixed by #1894
Assignees
Labels
for : ported-from-airsonic Known issue resolved after airsonic is closed in: web Issues in web modules (web, webmvc, webflux, websocket) in: web-playback Especially, issues with playback features on the browser. type: bug A general bug

Comments

@tesshucom
Copy link
Owner

tesshucom commented Nov 3, 2022

Http Headers considerations. Related airsonic/airsonic#1821, #1759.

It is to be expected that a poorly thought out ETAG could cause such problems. Therefore ETAG is temporarily removed.

ETAG's effectiveness is rather limited. We need to keep a calm eye on its effectiveness.

  • ETAG is not yet widely used. (Native apps, Smartphone apps, etc.)
    • There are various reasons. For example, a historical issue where media servers that worked correctly with ETAG were rare and malfunctioned more often. Relatively many apps have their own caching mechanism.
  • May have limited usefulness
    • There may be some benefits in web apps that use good frameworks or high-performance browsers. It's convenient when you listen to the same song repeatedly using an app like this.
      • Is this use case mainstream ... ?
    • I've never seen an app that gets HEAD. With on-the-fly transcoding enabled, issuing the correct ETAG may not be very effective. For example, depending on how the client connects, if the client preloads some songs and a GET is issued (twice) when playing, the transcode will be performed twice. HttpHeader alone doesn't make everything better
  • May adversely affect some validations
    • For applications that can faithfully interpret ETAG and use it effectively, publishing an incorrect ETAG may cause malfunction.
    • For example, suppose such a browser exists. If the Etag is not accurate, the veracity of the verification becomes questionable when using it to check the behavior change while changing various transcoding commands. The trial and error that took time in the past will also be invalid depending on the conditions.
    • Based on the priorities of getting it right, verifying it, and making it fast, ETAG is a make it fast concern. ETAG is a concern that should be addressed after the higher level issues are resolved.
      • Despite the deficiencies of past ETag implementations, no tests exist. Correcting this is of course possible, but removing it is the quickest way to get closer to normal behavior.
      • Affects the design and implementation of a great many follow-on processes. Etag can be reimplemented after those issues are resolved. It's never too late.

The successor, #1750 may be affected.

Subsonic's play count and scrobble logic is traditionally request-based. We may have to consider specs that have no impact on play count and scrobble logic, or rethink those logics.

@tesshucom tesshucom added type: bug A general bug in: web Issues in web modules (web, webmvc, webflux, websocket) in: web-playback Especially, issues with playback features on the browser. for : ported-from-airsonic Known issue resolved after airsonic is closed labels Nov 3, 2022
@tesshucom tesshucom added this to the jpsonic 111.6.0 milestone Nov 3, 2022
@tesshucom tesshucom self-assigned this Nov 3, 2022
@tesshucom tesshucom linked a pull request Nov 17, 2022 that will close this issue
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
for : ported-from-airsonic Known issue resolved after airsonic is closed in: web Issues in web modules (web, webmvc, webflux, websocket) in: web-playback Especially, issues with playback features on the browser. type: bug A general bug
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant