modmail-dev / logviewer

An external website that allows moderators and administrators to view past Modmail threads. It provides a convenient way for moderators to track previous conversations and helps them to maintain a record of user interactions.
GNU General Public License v3.0
87 stars 1.28k forks source link

Onerror handler for lazy loading images repeats with no delay or cap #20

Open bast0006 opened 4 years ago

bast0006 commented 4 years ago

While experiencing some local network issues I discovered a potential issue with the lazy-loading feature for avatars within modmail logs.

                 onerror="this.src='{{ log_entry.recipient.default_avatar_url }}'"

Doesn't have a retry limit or retry cap, so despite the network requests failing with "ERR_NOT_REACHABLE" It continued to retry for the default avatar with millisecond delay times, counting up requests in the thousands/second, multiplied by the number of avatars present within the log.

You can reproduce the issue by blocking access to cdn.discordapp.com and loading a modmail log with the browser network panel open.

                 onerror="this.src='{{ log_entry.recipient.default_avatar_url }}';this.onerror=null"

Would reduce it to a single attempt to load the default avatar before failing and leaving the space with a broken image.

wolfier74 commented 3 years ago

Hi, please add this 👍

bast0006 commented 2 months ago

Anyway I just hit this again except this time triggered by my adblocker, so I'll open a PR.