You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Today's Google Doodle is an animated GIF for the Fourth of July, with 72 frames. It looks like ImageDecoder tries to send back the decoded bitmaps with one fd per frame, and there is a hardcoded limit of 64 fds per transfer:
returnError::from_string_literal("Too many file descriptors to send");
This means that opening the Google homepage causes ImageDecoder to crash with Too many file descriptors to send. I'm not sure the best way to fix this -- I tried locally bumping MAX_LOCAL_SOCKET_TRANSFER_FDS to 128, which worked for the Google Doodle, but obviously doesn't fix the underlying issue (what if there was an animated gif with >128 frames....).
Hmm, just tried it and still getting the same error:
674715.789 ImageDecoder(4097406): ConnectionFromClient(0x00006295ec91e160) (id=1931607624) had an error (Too many file descriptors to send), disconnecting.
674715.812 WebContent(4097423): ImageDecoder disconnected trying to decode image
(you can try it too, by opening the linked GIF in my original message with Ladybird.)
I think the PR you mentioned only solves a problem where the descriptors leaked, but doesn't fundamentally change the way that this works (sending an array containing one fd for each frame, hitting a limit on the array size over IPC). But the other linked PR (#1435) should fix it.
Today's Google Doodle is an animated GIF for the Fourth of July, with 72 frames. It looks like ImageDecoder tries to send back the decoded bitmaps with one fd per frame, and there is a hardcoded limit of 64 fds per transfer:
ladybird/Userland/Libraries/LibCore/Socket.cpp
Line 13 in fce8ed1
ladybird/Userland/Libraries/LibCore/Socket.cpp
Lines 372 to 373 in fce8ed1
This means that opening the Google homepage causes ImageDecoder to crash with
Too many file descriptors to send
. I'm not sure the best way to fix this -- I tried locally bumpingMAX_LOCAL_SOCKET_TRANSFER_FDS
to 128, which worked for the Google Doodle, but obviously doesn't fix the underlying issue (what if there was an animated gif with >128 frames....).Here's the image if it's useful as a test case:
https://www.google.com/logos/doodles/2024/fourth-of-july-2024-6753651837110246-law.gif
The text was updated successfully, but these errors were encountered: